diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 2326d0b579ea4..64849033283bb 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -179,6 +179,10 @@ The "???" is the issue number. This automatically closes the issue when the PR i See https://help.github.com/articles/closing-issues-using-keywords/ for more. +## Tooling support + +Various tools are available to help you keep your contributions conforming to the appropriate style. See [the relevant docs](../doc/DEVELOPER_TOOLING.md) for more details. + ## Advanced Techniques These guidelines aren't essential, but they can make keeping things in order much easier. diff --git a/.gitignore b/.gitignore index 84b50535a3370..38383b7cc6159 100644 --- a/.gitignore +++ b/.gitignore @@ -68,6 +68,9 @@ Cataclysm.exe.lastcodeanalysissucceeded #Visual Studio 2017 /msvc-full-features/PredictedInputCache_Debug_x64.dat +# PVS Studio +/msvc-full-features/*PVS-Studio* + # Temporary and backup files *.bak *.cbTemp diff --git a/.travis.yml b/.travis.yml index 0560999c7a9f1..d6ae1955dbaaa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,17 +48,15 @@ jobs: packages: ["g++-8", "g++-8-multilib", "libc6-dbg", "libc6-dbg:i386", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"] sources: *apt_sources - # MXE variants disabled while pkg.mxe.cc is down + # MXE variants using alternate repository http://mirror.mxe.cc/repos/apt # GCC MinGW - env: COMPILER='g++' LDFLAGS='-static-libgcc -static-libstdc++' MXE_TARGET='i686-w64-mingw32.static' WINE='wine' - if: type = disabled addons: &gcc apt: packages: ["wine"] # Windows Tiles - env: COMPILER='g++' LDFLAGS='-static-libgcc -static-libstdc++' MXE_TARGET='i686-w64-mingw32.static' WINE='wine' TILES=1 SOUND=1 - if: type = disabled compiler: gcc addons: &gcc apt: @@ -161,7 +159,7 @@ jobs: sources: [*apt_sources, llvm-toolchain-trusty-5.0] # Clang 6.0 - - env: CLANG=clang++-6.0 CXXFLAGS=-Wno-error=unused-command-line-argument SANITIZE=address + - env: CLANG=clang++-6.0 CXXFLAGS=-Wno-error=unused-command-line-argument SANITIZE=address EXTRA_TEST_OPTS="~[.] ~vehicle_efficiency ~vehicle_drag ~starting_items" dist: trusty compiler: clang addons: &clang60 diff --git a/build-scripts/build.sh b/build-scripts/build.sh index 73c8d93d6a048..4e9f43d48bd2c 100755 --- a/build-scripts/build.sh +++ b/build-scripts/build.sh @@ -6,7 +6,7 @@ set -ex function run_tests { - $WINE "$@" -d yes -r cata --rng-seed time + $WINE "$@" -d yes -r cata --rng-seed time $EXTRA_TEST_OPTS } if [ -n "$CMAKE" ] diff --git a/build-scripts/requirements.sh b/build-scripts/requirements.sh index 632e5c05a01e8..8e1d07c3fbaf3 100644 --- a/build-scripts/requirements.sh +++ b/build-scripts/requirements.sh @@ -10,10 +10,8 @@ fi # Influenced by https://github.com/zer0main/battleship/blob/master/build/windows/requirements.sh if [ -n "${MXE_TARGET}" ]; then - echo "deb http://pkg.mxe.cc/repos/apt/debian wheezy main" \ - | sudo tee /etc/apt/sources.list.d/mxeapt.list - travis_retry sudo apt-key adv --keyserver x-hkp://keyserver.ubuntu.com:80 \ - --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB + sudo add-apt-repository 'deb [arch=amd64] https://mirror.mxe.cc/repos/apt xenial main' + travis_retry sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 84C7C89FC632241A6999ED0A580873F586B72ED9 # We need to treat apt-get update warnings as errors for which the exit code # is not sufficient. The following workaround inspired by # https://unix.stackexchange.com/questions/175146/apt-get-update-exit-status/ @@ -34,6 +32,6 @@ fi if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update - brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gettext ncurses lua coreutils + brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gettext ncurses lua brew link --force gettext ncurses fi diff --git a/data/changelog.txt b/data/changelog.txt index 0d3570120144d..804b797aa516b 100644 --- a/data/changelog.txt +++ b/data/changelog.txt @@ -1,4 +1,4 @@ -# 0.D (2018-12-01) +# 0.D (2019-01-01) ## Features: @@ -169,7 +169,24 @@ Update the fireman belt to allow attachments from fire axes, war hammers, and ma Adds stealth modifier as JSON-ized mutation property. npctalk: add support for NPC backstories. npctalk: NPC group commands to guard and follow. -npc: Warn the player about dangerous monsters. +NPCs can hear monsters and warn the player about them. +NPC: Warn the player about dangerous monsters. +Background traits - framework for dialogue update. +Adds expertise traits for NPCs. +Faction camp clearcutting mission. +Allow aiming anywhere. Mark practice target. +Vehicles: add multiple fuel support. +Add blind throwing. +Overhaul of map revealing items. +Allow peeking z levels. +Allow custom sprites for corpses. +Makes monster corpses the same weight and volume as defined in the json files. +Favorite ammo location for RELOAD_AND_SHOOT and RELOAD_ONE weapons. +Vehicles: increase effective speed in tiles per turn. +Adds a corpse to gibbed creatures. +Selfies can be made and stored on camera. +NPC photos show visible mutations. +Enable Loot Zones to bind to vehicle Cargo parts. ## Content: @@ -287,6 +304,22 @@ Implementation to support use of JSON snippets for procedural music descriptions Adds LivePeople Tileset. Add forest trails. Add new pond map extra. +Added railroad overmap terrains. +Add new offal recipes in the game using the new offal types. +Adds sourdough bread and sourdough starter. +Add trail guide item. +Adds a way to craft anesthetic kits in the game. +Explosion of NPC dialogue. +NPC Dialogue: role-specific survivor stories. +Adds formaldehyde and methanol as precursors for hexamine, and recipes to make them. +Adds shanty-town walls comprised of bolted-together junk. +Adds extra recipe for nitric acid, which requires a pressure cooker and a platinum grille as a catalyst. +Adds lab nanofabricator finale, letting players create high tech items.' +Update RetroDaysTileset to include RetroDaysJar, AdamRetroDays, long grass +Mainline NPC traits mod. +Added outbuildings to default farm. +Regularize city grid and allow large in-city specials. +Adds area_name into info box when looking_around. ## Interface: @@ -513,6 +546,21 @@ Prevent seeing light through walls. Make walls sensibly visible at night. Have vehicles become dark inside when that makes sense. Allow toggling display of forest trails on the overmap. +Added 'center' action for look around mode. +Vehicle: display engine power and electrical drain/production. +Bandage/Disinfactant display/compare/apply improvements. +Allow hiding of recipe categories from crafting menu. +Player: don't create the reload prompt if there's only one option. +Better scrolling through requirements list in crafting GUI. +Improve info for worn items which cover nothing. +Show how much water and cleanser will be required on washing UI. +Basecamp: store food supply in calories. +Missions: display name of NPC that gave the mission. +Automatically choose infinite sources for crafting when available. +Play Now! loads a world with 0 character if available. +Crafting-gui - colorize book enumeration. +Veh_interact.cpp - colorize cargo volume. +Sounds: add descriptions to player shouts. ## Mods: @@ -572,6 +620,8 @@ Added Fuji's Struct mod. Salvaged Robots mod. Partially moved Folding Parts Mod to base game. Convert Bright Nights region_settings to region_overlay. +Added anthill, bee, and large zombie exclusion mods. +MSX Dead People tileset update and make it default. ## Balance: @@ -739,6 +789,12 @@ Let one screwdriver recipes produce screwdriver set. Flowers won't collide with vehicles no more. Increase HP of paper-thin palisades. Many animals such as coyotes and dogs are now less aggressive across the board. +Allow fishing in fishable non-river locations. +Nerf pneumatic gun reload times. +Modifies calorie amounts for flesh/fish and Fat products, including butchery products. +Rework vehicle safe and max velocities based on physics. +Adding more requirements to screwdriver set recipe. +Causes corpse damage level to negatively affect butchery yields. ## Bugfixes: @@ -856,6 +912,23 @@ Fix item category names not updated when switching the language. Fixed lightmap-related crashes in MinGW 64-bit executables. npc: NPCs on guard duty in a vehicle stay in the vehicle. Fixes isometric tile rendering. +Npc: friendly NPCs only warn about hostile monsters. +Fix bomb fragment placement with z-levels on. +Fixes safemode custom rules when creating a new character. +Melee: make sure aoe techniques don't access an array out of bounds. +Fix aiming if target moves out of LOS. +Improve terrain bashing with experimental z-levels. +Allow turrets to shoot "over" the vehicle they are mounted on. +Vehicles: show active, fueled engines or battery in sidebar fuel indicator. +Hack around android joystick shifting bug. +Restore NPC ability to target player. +Deep bites now actually progress over time. +Fixes errors in graphical builds without sound enabled. +assure_dir_exist now creates parent directories recursively. +Skip dodge and block techniques when looking for a normal technique. +Fixed zombie necromancer was able to revive zombies pulped by a very hard hit. +Fix aiming anywhere after player has moved. +Applies radiation mitigation to all sources. ## Performance: @@ -898,6 +971,10 @@ Reduce Submap constant memory requirements of Cosmetic strings. Reduce memory consumption for soundpacks. Fix lag due to copying player objects. Encode mapbuffer terrain data using RLE scheme for smaller save files. +Faster item layer computation. +Improve performance of encumbrance calculations. +Lazily load sound effects as they are encountered instead of at application startup unless explicitly preloaded. +Faster color name lookup. ## Infrastructure: @@ -1025,31 +1102,43 @@ Npctalk to JSON: Move most NPC dialog to JSON. Properly implement time duration string alignment. made_of_any(materials) for creature. Add the option to create Changelogs grouped by Build to generate_changelog.py -POSIX crash handling and backtrace improvements. Add support for deferral of player movement, use it to fix two bugs. Load time duration from string (containing units). Converts monster size to weight and volume. Replace usage of sentinel tripoint_min with cata::optional. Add more functions to vpart_position and vpart_reference -Move most NPC dialogue into JSON -Better clarity in item description code -clean up handling of vehicle power to always use watts -Add error reporting to many calls of SDL function -Final cleanup of uimenu -> uilist migration -Changes various functions in `vehicle` to take arguments as a single `point` instead of x,y values. -Replace usage of raw managed pointers with values / managed pointers -Do not ask for retarget when opening projects in Visual Studio -Print the Cataclysm version number in the debug log -Fix foldstring ignoring multiple linebreaks -Make point and tripoint literal so they can be used in constexpr contexts. -Move most NPC dialogue into JSON. +Better clarity in item description code. Clean up handling of vehicle power to always use watts. -Replace usage of raw managed pointers with values / managed pointers. +Add error reporting to many calls of SDL function. Do not ask for retarget when opening projects in Visual Studio. Print the Cataclysm version number in the debug log. +Fix foldstring ignoring multiple linebreaks +Make point and tripoint literal so they can be used in constexpr contexts. POSIX backtraces now work for installed binaries and position-independent executables. Improved CI infrastructure error handling. Allow explicit specification of overmap special connection type. +Find or create overmap special after overmap generation. +Basecamp, faction camp: start merging faction camps into basecamps. +Better statistics in tests. +Upgrade tests to Catch2 2.5.0. +Show debug logs during tests. +Missions: autoset monster_kill_goal for KILL_TYPE and KILL_SPEC. +Missions: Move some start functions into JSON. +Add tracking of overmap special for placed terrain. +Faction camps: consolidate and clean up farm code. +Basecamp: try to regularize mission starts and mission returns. +Unhardcoded comfort, warmth and feet fire bonus values for furniture. +Reorganize NPC backstories into their own folder. +Enable JSONized placement of overmap specials at mission start. +Split sound functionality out of sdltiles.cpp into its own file. +Split comestibles.json into many files. +NPC expertise infrastructure. +Changed butchery to use JSON for drops, for all butchery actions. +Show test times in CI results. +Add tool qualities to the game for later use in scientific tools. +Replace tag_colored_string with colorize. +Run tests for CMake CI build. +Simpler test randomness seeding. ## Build: @@ -1124,6 +1213,11 @@ Vehicle power test: make it more consistent. Visual Studio solution with vcpkg support. Use travis build stages. Run tests under AddressSanitizer in Travis CI. +Sort generated lua bindings source file to allow reproducible builds. +Adding astyle to deb/ubuntu packages. +Automate changelog generation. +Add macOS to travis-ci builds. +Added VS solution to build statically linked executable using vcpkg. ## I18N and A11Y: @@ -1157,6 +1251,8 @@ Display l10nized tab names when creating new world. Link against ncursesw if L10N enabled. Make user-facing error messages translatable. Many, Many new strings and menus are translatable. +Provide context for translating strings of monster abilities. +Allowed recoil level to be translated. ## Statistics: diff --git a/data/fontdata.json b/data/fontdata.json index cd7cbee966b87..7b64e1b8f29d3 100644 --- a/data/fontdata.json +++ b/data/fontdata.json @@ -1,15 +1,15 @@ { - "fontblending": false, - "fontwidth": 8, - "fontheight": 16, - "fontsize": 16, - "typeface": "unifont", - "map_fontwidth": 8, - "map_fontheight": 16, - "map_fontsize": 16, - "map_typeface": "unifont", - "overmap_fontwidth": 8, - "overmap_fontheight": 16, - "overmap_fontsize": 16, - "overmap_typeface": "unifont" + "fontblending": false, + "fontwidth": 8, + "fontheight": 16, + "fontsize": 16, + "typeface": "unifont", + "map_fontwidth": 8, + "map_fontheight": 16, + "map_fontsize": 16, + "map_typeface": "unifont", + "overmap_fontwidth": 8, + "overmap_fontheight": 16, + "overmap_fontsize": 16, + "overmap_typeface": "unifont" } diff --git a/data/help/texts.json b/data/help/texts.json index fcb1d8f0754ed..4077323db0ec0 100644 --- a/data/help/texts.json +++ b/data/help/texts.json @@ -93,8 +93,10 @@ "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 fuel consumption.", - "Bionics come in ready-to-install canisters. Installation of a bionic is best left to a 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 canisters are difficult to find, but may be purchased from certain wandering vagabonds for a very high price.", - "As you may note, all of your body parts have only limited space for containing bionics, so you should choose bionics for installation wisely. Of course, 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." + "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.", + "Probably best choice of installing or uninstallings bionic for lone surviros is Autodoc. Usually you can find those in hospipatls and clinincs (even in some 'unnoficial' ones). Any procedure using it requires consuming of single Anesthesia kit. You can bypass this restriction if you find the way to completely ignore pain. But don't even try to bypass this restriction using drugs - it 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." ] }, { @@ -140,7 +142,7 @@ "order": 12, "name": ": Combat", "messages": [ - "With the default Static spawn option, 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. If the world is set to use the Dynamic spawn option, you will have 90 minutes to prepare yourself before the spawns start; after that, monsters everywhere will be spawned based on the noise you make.", + "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.", @@ -148,7 +150,7 @@ "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 hit '.' or 'f'. Some guns have alternate firing modes, such as burst fire; to cycle modes, press . Firing continuously, especially in bursts, will severely reduce accuracy.", + "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." ] }, @@ -241,14 +243,14 @@ "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, where larger guns fare poorly. 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.", + "( 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! Because of this, shotguns are best reserved for emergencies.", + "( 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.", - "( Hunting Rifles\nHunting rifles are popular for their superior range and accuracy. What's more, their scopes or sights make shots fired at targets more than 10 tiles away as accurate as those with a shorter range. However, they are very poor at hitting targets 4 squares or less from the player. Unlike assault rifles, hunting rifles have no automatic fire. They are also slow to reload and fire, so when facing a large group of nearby enemies, they are not the best pick.", + "( 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.", - "( Machine Guns\nMachine guns are one of the most powerful firearms available. They are even larger than assault rifles, and make poor melee weapons; 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.", + "( 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 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." ] }, @@ -267,9 +269,9 @@ "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. (The shelter basement is a good place to check first!)", - "Q: Shotguns bring in more zombies than they kill! What's the point?\nA: Shotguns are intended for emergency use. If you are cornered, use your shotgun to escape, then just run from the zombies it attracts.", "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 016a5eb667b53..df84d3e827828 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -330,8 +330,7 @@ "name": "Ethanol Burner", "description": "You burn alcohol as fuel in an extremely efficient reaction. However, you will still suffer the inebriating effects of the substance.", "occupied_bodyparts": [ [ "TORSO", 26 ] ], - "flags": [ "BIONIC_POWER_SOURCE" , "BIONIC_NPC_USABLE" ] - + "flags": [ "BIONIC_POWER_SOURCE", "BIONIC_NPC_USABLE" ] }, { "id": "bio_evap", @@ -561,6 +560,7 @@ "name": "Mini-Flamethrower", "description": "The index fingers of both hands have powerful fire starters which extend from the tip.", "occupied_bodyparts": [ [ "HAND_L", 1 ], [ "HAND_R", 1 ] ], + "fake_item": "fake_firestarter", "act_cost": 75 }, { @@ -1008,7 +1008,7 @@ "id": "bio_tools", "type": "bionic", "name": "Integrated Toolset", - "description": "Surgically implanted in your hands and fingers is a complete tool set - screwdriver, hammer, wrench, and heating elements. You can use this in place of many tools when crafting.", + "description": "Surgically implanted in your hands and fingers is a complete tool set - screwdriver, hammer, wrench, hacksaw, wood saw, boltcutters, drill and heating elements. You can use this in place of many tools when crafting.", "occupied_bodyparts": [ [ "HAND_L", 3 ], [ "HAND_R", 3 ] ], "flags": [ "BIONIC_TOGGLED" ], "fake_item": "toolset" diff --git a/data/json/construction.json b/data/json/construction.json index 3b00c4a59d020..15ef38bd6d76f 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -1,2424 +1,1904 @@ [ - { - "type" : "construction", - "description" : "Deconstruct Furniture", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 20, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SCREW", "level": 1 } - ] - ], - "pre_special" : "check_deconstruct", - "post_special" : "done_deconstruct" - },{ - "type" : "construction", - "description" : "Deconstruct Simple Furniture", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 10, - "pre_note" : "Certain terrain and furniture can be deconstructed without any tools.", - "pre_flags" : "EASY_DECONSTRUCT", - "pre_special" : "check_deconstruct", - "post_special" : "done_deconstruct" - },{ - "type" : "construction", - "description" : "Spike Pit", - "category" : "DIG", - "required_skills" : [ [ "survival", 1 ] ], - "time" : 30, - "components" : [ - [ [ "spear_wood", 4 ], [ "pointy_stick", 4] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_pit_spiked" - },{ - "type" : "construction", - "description" : "Glass Pit", - "category" : "DIG", - "required_skills" : [ [ "survival", 1 ] ], - "time" : 30, - "components" : [ - [ ["glass_shard", 20] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_pit_glass" - },{ - "type" : "construction", - "description" : "Chop Tree Trunk Into Planks", - "category" : "FARM_WOOD", - "required_skills" : [ [ "survival", 2 ] ], - "time" : 60, - "qualities": [ [ - { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } - ] ], - "pre_terrain" : "t_trunk", - "post_terrain" : "t_dirt", - "post_special" : "done_trunk_plank" - },{ - "type" : "construction", - "skill" : "survival", - "description" : "Build Improvised Shelter", - "category" : "CONSTRUCT", - "required_skills" : [ [ "survival", 2 ] ], - "time" : 120, - "qualities": [ [ - { "id": "CUT", "level": 1 }, - { "id": "HAMMER", "level": 1 } - ] ], - "components" : [ - [ [ "stick", 12 ], [ "2x4", 6 ] ], - [ [ "pine_bough", 24 ], [ "willowbark", 24 ] ] - ], - "pre_terrain" : "t_pit_shallow", - "post_terrain" : "t_improvised_shelter" - },{ - "type" : "construction", - "description" : "Build Door Curtain", "//": "Door frame not required", - "category" : "CONSTRUCT", - "required_skills" : [ [ "tailor", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "nail", 4 ], [ "pointy_stick", 2 ], [ "spike", 2 ] ], - [ [ "sheet", 2 ] ], - [ [ "stick", 1 ] ], - [ [ "withered", 12 ], [ "straw_pile", 12 ], [ "string_36", 1 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "t_door_curtain_c" - },{ - "type" : "construction", - "description" : "Build Makeshift Door", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ [ - { "id": "CUT", "level": 1 } - ] ], - "components" : [ - [ [ "2x4", 6 ], [ "stick", 6 ] ], - [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_terrain" : "t_door_frame", - "post_terrain" : "t_door_makeshift_c" - },{ - "type" : "construction", - "description" : "Build Door", "//": "Step 1: door frame", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 60, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "nail", 24 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_door_frame" - },{ - "type" : "construction", - "description" : "Build Door", "//": "Step 2: door", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 12 ] ] - ], - "pre_terrain" : "t_door_frame", - "post_terrain" : "t_door_c" - },{ - "type" : "construction", - "description" : "Build Door", "//": "Step 3: peephole", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 15, - "qualities": [ - [ - { "id": "DRILL", "level": 1 } - ], - [ - { "id": "SCREW", "level": 1 } - ], - [ - { "id": "WRENCH", "level": 1 } - ] - ], - "components" : [ - [ [ "peephole", 1 ] ] - ], - "pre_terrain" : "t_door_c", - "post_terrain" : "t_door_c_peep" - },{ - "type" : "construction", - "description" : "Repair Wood Door", "//": "Repair the regular door", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 3 ] ], - [ [ "nail", 12 ] ] - ], - "pre_terrain" : "t_door_b", - "post_terrain" : "t_door_c" - },{ - "type" : "construction", - "description" : "Repair Wood Door", "//": "Repair the peephole door", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 3 ] ], - [ [ "nail", 12 ] ] - ], - "pre_terrain" : "t_door_b_peep", - "post_terrain" : "t_door_c_peep" - },{ - "type" : "construction", - "description" : "Repair Wood Door", "//": "Repair the reinforced door", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 45, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "nail", 24 ] ] - ], - "pre_terrain" : "t_rdoor_b", - "post_terrain" : "t_rdoor_c" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "regular door", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_DOOR", - "post_terrain" : "t_door_boarded" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "peephole door", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_door_c_peep", - "post_terrain" : "t_door_boarded_peep" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "boarded damaged door", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_DOOR_DAMAGED", - "post_terrain" : "t_door_boarded_damaged" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "boarded damaged peephole door", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_door_b_peep", - "post_terrain" : "t_door_boarded_damaged_peep" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "the reinforced doors", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_DOOR_REINFORCED", - "post_terrain" : "t_rdoor_boarded" - },{ - "type" : "construction", - "description" : "Board Up Wood Door", "//": "damaged reinforced doors", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_DOOR_REINFORCED_DAMAGED", - "post_terrain" : "t_rdoor_boarded_damaged" - },{ - "type" : "construction", - "description" : "Reinforce Wood Door", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 90, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "nail", 48 ] ] - ], - "pre_flags" : "BARRICADABLE_DOOR", - "post_terrain" : "t_rdoor_c" - },{ - "type" : "construction", - "description" : "Build Metal Door", "//": "step 1: door frame", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 90, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ] - ], - "components" : [ - [ [ "spike", 8 ] ], - [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_mdoor_frame" - },{ - "type" : "construction", - "description" : "Build Metal Door", "//": "Step 2: metal door", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 7 ] ], - "time" : 120, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ], - [ - { "id": "WRENCH", "level": 1 } - ] - ], - "components" : [ - [ [ "steel_lump", 4 ], [ "steel_chunk", 12 ], [ "scrap", 36 ] ], - [ [ "steel_plate", 2 ], [ "sheet_metal", 8 ] ] - ], - "pre_terrain" : "t_mdoor_frame", - "post_terrain" : "t_door_metal_c" - },{ - "type" : "construction", - "description" : "Build Metal Door", "//": "Step 3: peephole", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 25, - "qualities": [ - [ { "id": "DRILL", "level": 1 } ], - [ { "id": "SCREW", "level": 1 } ], - [ { "id": "WRENCH", "level": 1 } ] ], - "components" : [ [ [ "peephole", 1 ] ] ], - "pre_terrain" : "t_door_metal_c", - "post_terrain" : "t_door_metal_c_peep" - },{ - "type" : "construction", - "description" : "Build Window", "//": "Step 1: window frame", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 75, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 15 ], [ "log", 2 ] ], - [ [ "nail", 30 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_window_empty" - },{ - "type" : "construction", - "description" : "Build Window", "//": "Step 2: window, no curtains", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 30, - "components" : [ - [ [ "glass_sheet", 1 ] ] - ], - "pre_terrain" : "t_window_empty", - "post_terrain" : "t_window_no_curtains" - },{ - "type" : "construction", - "description" : "Build Window", "//": "Step 3: window with curtains", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ - [ { "id": "SAW_W", "level": 1 } ], - [ { "id": "HAMMER", "level": 2 } ] - ], - "components" : [ - [ [ "nail", 4 ] ], - [ [ "sheet", 2 ] ], - [ [ "stick", 1 ] ], - [ [ "string_36", 1 ] ] - ], - "pre_terrain" : "t_window_no_curtains", - "post_terrain" : "t_window_domestic" - },{ - "type" : "construction", - "description" : "Clean Broken Window", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 5, - "pre_terrain" : "t_window_frame", - "post_terrain" : "t_window_empty" - },{ - "type" : "construction", - "description" : "Tape Up Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 5, - "components" : [ - [ [ "duct_tape", 50 ] ] - ], - "pre_terrain" : "t_window", - "post_terrain" : "t_window_taped" - },{ - "type" : "construction", - "description" : "Tape Up Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 5, - "components" : [ - [ [ "duct_tape", 50 ] ] - ], - "pre_terrain" : "t_window_domestic", - "post_terrain" : "t_window_domestic_taped" - },{ - "type" : "construction", - "description" : "Tape Up Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 5, - "components" : [ - [ [ "duct_tape", 50 ] ] - ], - "pre_terrain" : "t_window_alarm", - "post_terrain" : "t_window_alarm_taped" - },{ - "type" : "construction", - "description" : "Tape Up Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 5, - "components" : [ - [ [ "duct_tape", 50 ] ] - ], - "pre_terrain" : "t_window_no_curtains", - "post_terrain" : "t_window_no_curtains_taped" - },{ - "type" : "construction", - "description" : "Remove Tape from Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 2, - "qualities": [ [ - { "id": "CUT", "level": 1 } - ] ], - "pre_terrain" : "t_window_taped", - "post_terrain" : "t_window" - },{ - "type" : "construction", - "description" : "Remove Tape from Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 2, - "qualities": [ [ - { "id": "CUT", "level": 1 } - ] ], - "pre_terrain" : "t_window_domestic_taped", - "post_terrain" : "t_window_domestic" - },{ - "type" : "construction", - "description" : "Remove Tape from Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 2, - "qualities": [ [ - { "id": "CUT", "level": 1 } - ] ], - "pre_terrain" : "t_window_alarm_taped", - "post_terrain" : "t_window_alarm" - },{ - "type" : "construction", - "description" : "Remove Tape from Window", "//": "Need a recipe for each type of window tapable due to how code works", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 2, - "qualities": [ [ - { "id": "CUT", "level": 1 } - ] ], - "pre_terrain" : "t_window_no_curtains_taped", - "post_terrain" : "t_window_no_curtains" - },{ - "type" : "construction", - "description" : "Board Up Window", "//": "Board up normal window", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_WINDOW", - "post_terrain" : "t_window_boarded" - },{ - "type" : "construction", - "description" : "Board Up Window", "//": "Board up window with curtains", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_flags" : "BARRICADABLE_WINDOW_CURTAINS", - "post_terrain" : "t_window_boarded", - "post_special" : "done_window_curtains" - },{ - "type" : "construction", - "description" : "Board Up Window", "//": "Board up empty window", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_window_empty", - "post_terrain" : "t_window_boarded_noglass" - },{ - "type" : "construction", - "description" : "Board Up Window", "//": "Board up window frame only", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_window_frame", - "post_terrain" : "t_window_boarded_noglass" - },{ - "type" : "construction", - "description" : "Reinforce Boarded Window", "//": "For regular windows", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 40, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "nail", 16 ] ] - ], - "pre_terrain" : "t_window_boarded", - "post_terrain" : "t_window_reinforced" - },{ - "type" : "construction", - "description" : "Reinforce Boarded Window", "//": "For windows with no glass that were barricaded", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 40, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "nail", 16 ] ] - ], - "pre_terrain" : "t_window_boarded_noglass", - "post_terrain" : "t_window_reinforced_noglass" - },{ - "type" : "construction", - "description" : "Armor Reinforced Window", "//": "Armo up regular reinforced window", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 60, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "spike", 4 ] ], - [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] - ], - "pre_terrain" : "t_window_reinforced", - "post_terrain" : "t_window_enhanced" - },{ - "type" : "construction", - "description" : "Armor Reinforced Window", "//": "When underlying window has no glass", - "category" : "REINFORCE", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 60, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "spike", 4 ] ], - [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] - ], - "pre_terrain" : "t_window_reinforced_noglass", - "post_terrain" : "t_window_enhanced_noglass" - },{ - "type" : "construction", - "description" : "Build Metal Bars", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 60, - "tools": [ - [ - [ "oxy_torch", 4 ], - [ "welder", 20 ], - [ "welder_crude", 30 ], - [ "toolset", 30 ] - ] - ], - "qualities": [ [ - { "id": "SAW_M", "level": 1 }, - { "id" : "GLARE", "level" : 2 } - ] ], - "components" : [ - [ [ "pipe", 6 ] ], - [ [ "sheet_metal", 2 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "t_bars" - },{ - "type" : "construction", - "description" : "Build Wood Wall", "//": "Step 1: half of a wall where a window used to be", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 50, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 10 ] ], - [ [ "nail", 20 ] ] - ], - "pre_terrain" : "t_window_empty", - "post_terrain" : "t_wall_half" - },{ - "type" : "construction", - "description" : "Build Wood Wall", "//": "Step 1: half of a wall in an empty space", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 50, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 10 ] ], - [ [ "nail", 20 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_wall_half" - },{ - "type" : "construction", - "description" : "Build Wood Wall", "//": "Step 2: complete the half made wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 50, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 10 ] ], - [ [ "nail", 20 ] ] - ], - "pre_terrain" : "t_wall_half", - "post_terrain" : "t_wall_wood" - },{ - "type" : "construction", - "description" : "Repair Wood Wall", "//": "fix a chip", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 16 ] ] - ], - "pre_terrain" : "t_wall_wood_chipped", - "post_terrain" : "t_wall_wood" - },{ - "type" : "construction", - "description" : "Repair Wood Wall", "//": "fix the broken to chipped", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 60, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "nail", 32 ] ] - ], - "pre_terrain" : "t_wall_wood_broken", - "post_terrain" : "t_wall_wood_chipped" - },{ - "type" : "construction", - "description" : "Build Log Wall", "//": "Step 1: half of a log wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 60, - "qualities": [ [ { "id": "DIG", "level": 2 } ] ], - "components" : [ - [ [ "log", 2 ] ], - [ [ "stick", 3 ], [ "2x4", 6 ] ] - ], - "pre_terrain" : "t_pit_shallow", - "post_terrain" : "t_wall_log_half" - },{ - "type" : "construction", - "description" : "Build Log Wall", "//": "Step 2: Finish the log wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 60, - "qualities": [ [ { "id": "DIG", "level": 2 } ] ], - "components" : [ - [ [ "log", 2 ] ], - [ [ "stick", 3 ], [ "2x4", 6 ] ] - ], - "pre_terrain" : "t_wall_log_half", - "post_terrain" : "t_wall_log" - },{ - "type" : "construction", - "description" : "Repair Log Wall", "//": "Fix the chipped back to normal", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 16 ] ] - ], - "pre_terrain" : "t_wall_log_chipped", - "post_terrain" : "t_wall_log" - },{ - "type" : "construction", - "description" : "Repair Log Wall", "//": "fix broken back to chipped", - "category" : "REPAIR", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 50, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "log", 1 ] ], - [ [ "2x4", 2 ] ], - [ [ "nail", 24 ] ] - ], - "pre_terrain" : "t_wall_log_broken", - "post_terrain" : "t_wall_log_chipped" - },{ - "type" : "construction", - "description" : "Build Sandbag Wall", "//": "Step 1: Build sandbag barricade", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 60, - "components" : [ - [ [ "bag_canvas", 2 ] ], - [ [ "material_sand", 20 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_sandbag_half" - },{ - "type" : "construction", - "description" : "Build Sandbag Wall", "//": "Step 2: Finish the sandbag wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 90, - "components" : [ - [ [ "bag_canvas", 4 ] ], - [ [ "material_sand", 40 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_terrain" : "f_sandbag_half", - "post_terrain" : "f_sandbag_wall" - },{ - "type" : "construction", - "description" : "Build Metal Wall", "//": "Step 1: foundation", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 90, - "qualities" : [ { "id" : "GLARE", "level" : 2 } ], - "tools": [ - [ - [ "oxy_torch", 10 ], - [ "welder", 50 ], - [ "welder_crude", 75 ], - [ "toolset", 75 ] - ] - ], - "components" : [ - [ [ "steel_plate", 2] ] - ], - "pre_terrain" : "t_pit_shallow", - "post_terrain" : "t_scrap_wall_halfway" - },{ - "type" : "construction", - "description" : "Build Metal Wall", "//": "Step 2: finish wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 90, - "qualities" : [ { "id" : "GLARE", "level" : 2 } ], - "tools": [ - [ - [ "oxy_torch", 10 ], - [ "welder", 50 ], - [ "welder_crude", 75 ], - [ "toolset", 75 ] - ] - ], - "components" : [ - [ [ "steel_plate", 2] ] - ], - "pre_terrain" : "t_scrap_wall_halfway", - "post_terrain" : "t_scrap_wall" - },{ - "type" : "construction", - "description" : "Build Brick Wall", "//": "Step 1: start wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 120, - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "brick", 15] ], - [ [ "mortar_build", 1] ], - [ [ "water", 1], ["water_clean", 1]] - ], - "pre_terrain" : "t_dirt", - "post_terrain" : "t_brick_wall_halfway" - },{ - "type" : "construction", - "description" : "Build Brick Wall", "//": "Step 2: finish wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 120, - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "brick", 15] ], - [ [ "mortar_build", 1] ], - [ [ "water", 1], ["water_clean", 1]] - ], - "pre_terrain" : "t_brick_wall_halfway", - "post_terrain" : "t_brick_wall" - },{ - "type" : "construction", - "description" : "Build Simple Concrete Wall", "//": "Step 1: foundation", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 180, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 1 } - ] ], - "components" : [ - [ [ "concrete", 4] ], - [ [ "2x4", 12] ], - [ [ "water", 4], [ "water_clean", 4] ] - ], - "pre_terrain" : "t_pit_shallow", - "post_terrain" : "t_sconc_wall_halfway" - },{ - "type" : "construction", - "description" : "Build Simple Concrete Wall", "//": "Step 2: finish wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 180, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 1 } - ] ], - "components" : [ - [ [ "concrete", 4] ], - [ [ "2x4", 12] ], - [ [ "water", 4], [ "water_clean", 4] ] - ], - "pre_terrain" : "t_sconc_wall_halfway", - "post_terrain" : "t_sconc_wall" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Wall", "//": "Step 1: rebar cage", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 120, - "qualities": [ [ - { "id": "WELD", "level": 2 } - ], [ - { "id": "GLARE", "level": 2} - ] ], - "components" : [ - [ [ "rebar", 16] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_reb_cage" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Wall", "//": "Step 2: foundation", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 120, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "concrete", 6] ], - [ [ "2x4", 12] ], - [ [ "water", 4 ], [ "water_clean", 4 ] ] - ], - "pre_terrain" : "t_reb_cage", - "post_terrain" : "t_strconc_wall_halfway" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Wall", "//": "Step 3: finish wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 120, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "concrete", 6] ], - [ [ "2x4", 12] ], - [ [ "water", 4 ], [ "water_clean", 4 ] ] - ], - "pre_terrain" : "t_strconc_wall_halfway", - "post_terrain" : "t_strconc_wall" - },{ - "type" : "construction", - "description" : "Build Metal Roof", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 90, - "qualities" : [ { "id" : "GLARE", "level" : 2 } ], - "tools": [ - [ - [ "oxy_torch", 10 ], - [ "welder", 50 ], - [ "welder_crude", 75 ], - [ "toolset", 75 ] - ] - ], - "components" : [ - [ [ "steel_plate", 2] ] - ], - "pre_note" : "Must be supported on at least two sides.", - "pre_special" : "check_support", - "post_terrain" : "t_scrap_floor" - },{ - "type" : "construction", - "description" : "Build Concrete Roof", "//": "Step 1: rebar cage & supports", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 120, - "qualities": [ [ - { "id": "WELD", "level": 2 } - ], [ - { "id": "GLARE", "level": 2} - ] ], - "components" : [ - [ [ "rebar", 8] ], - [ [ "2x4", 12] ], - [ [ "pipe", 4] ] - ], - "pre_terrain" : "t_pit_shallow", - "post_terrain" : "t_ov_smreb_cage" - },{ - "type" : "construction", - "description" : "Build Concrete Roof", "//": "Step 2: roof & floor", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 120, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 1 } - ] ], - "components" : [ - [ [ "concrete", 4] ], - [ [ "water", 4] ] - ], - "pre_terrain" : "t_ov_smreb_cage", - "post_terrain" : "t_thconc_floor" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Roof", "//": "Step 1: rebar cage & supports", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 180, - "qualities": [ [ - { "id": "WELD", "level": 2 } - ], [ - { "id": "GLARE", "level": 2} - ] ], - "components" : [ - [ [ "rebar", 12] ], - [ [ "2x4", 12] ], - [ [ "pipe", 4] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_ov_reb_cage" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Roof", "//": "Step 2: start roof & floor", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 180, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "concrete", 6] ], - [ [ "water", 3] ] - ], - "pre_terrain" : "t_ov_reb_cage", - "post_terrain" : "t_strconc_floor_halfway" - },{ - "type" : "construction", - "description" : "Build Reinforced Concrete Roof", "//": "Step 3: finish roof & floor", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ] ], - "time" : 180, - "tools": [ [ [ "con_mix", 50 ] ] ], - "qualities": [ [ - { "id": "SMOOTH", "level": 2 } - ] ], - "components" : [ - [ [ "concrete", 6] ], - [ [ "water", 3] ] - ], - "pre_terrain" : "t_strconc_floor_halfway", - "post_terrain" : "t_strconc_floor" - },{ - "type" : "construction", - "description" : "Build Palisade Wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ], [ "survival", 2 ] ], - "time" : 120, - "qualities": [ [ { "id": "DIG", "level": 2 } ] ], - "components" : [ - [ [ "log", 3 ] ], - [ [ "wire", 6 ], [ "wire_barbed", 4 ], [ "rope_6", 2 ], [ "rope_makeshift_6", 2 ], [ "chain", 1 ], [ "vine_30", 1 ] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_palisade" - },{ - "type" : "construction", - "description" : "Build Stone Wall", "//": "Step 1: half the wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ], [ "survival", 2 ] ], - "time" : 180, - "qualities": [ [ - { "id": "HAMMER", "level": 2 }, - { "id": "DIG", "level": 2 } - ] ], - "components" : [ - [ [ "rock", 12 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_rock_wall_half" - },{ - "type" : "construction", - "description" : "Build Stone Wall", "//": "Step 2: the full wall", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 6 ], [ "survival", 2 ] ], - "time" : 180, - "qualities": [ [ - { "id": "HAMMER", "level": 2 }, - { "id": "DIG", "level": 2 } - ] ], - "components" : [ - [ [ "rock", 12 ] ] - ], - "pre_terrain" : "t_rock_wall_half", - "post_terrain" : "t_rock_wall" - },{ - "type" : "construction", - "description" : "Build Roof", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 120, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "nail", 40 ] ] - ], - "pre_note" : "Must be supported on at least two sides.", - "pre_special" : "check_support", - "post_terrain" : "t_floor" - },{ - "type" : "construction", - "description" : "Build Log & Sod Roof", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 120, - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components" : [ - [ [ "log", 2 ] ], - [ [ "stick", 4 ], [ "2x4", 8 ] ] - ], - "pre_note" : "Must be supported on at least two sides.", - "pre_special" : "check_support", - "post_terrain" : "t_floor_primitive" - },{ - "type" : "construction", - "description" : "Build Rope & Pulley System", - "category" : "CONSTRUCT", - "required_skills" : [ - [ "fabrication", 5 ], - [ "mechanics", 2 ] - ], - "time" : 60, - "components" : [ - [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ], - [ [ "stick", 8 ], [ "2x4", 8 ] ] - ], - "pre_note" : "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.", - "pre_special" : "check_empty", - "post_terrain" : "t_palisade_pulley" - },{ - "type" : "construction", - "description" : "Build Palisade Gate", - "category" : "CONSTRUCT", - "required_skills" : [ - [ "fabrication", 4 ], - [ "survival", 2 ] - ], - "time" : 120, - "qualities": [ [ { "id": "DIG", "level": 2 } ] ], - "components" : [ - [ [ "log", 2 ] ], - [ [ "2x4", 3 ] ], - [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ], [ "vine_30", 1 ] ] - ], - "pre_note" : "Must be between palisade walls to function, and at least one wall must have an adjacent rope & pulley system.", - "pre_terrain" : "t_pit", - "post_terrain" : "t_palisade_gate" - },{ - "type" : "construction", - "description" : "Build Fence Posts", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 0 ], [ "survival", 0 ] ], - "time" : 15, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "DIG", "level": 2 } - ] - ], - "components" : [ - [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ] - ], - "pre_flags" : "DIGGABLE", - "post_terrain" : "t_fence_post" - },{ - "type" : "construction", - "description" : "Build Fence", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 15, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 5 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_fence_post", - "post_terrain" : "t_fence" - },{ - "type" : "construction", - "description" : "Build Fence Gate", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 2 ], [ "survival", 1 ] ], - "time" : 30, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "DIG", "level": 2 } - ] - ], - "components" : [ - [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], - [ [ "2x4", 5 ] ], - [ [ "nail", 12 ] ] - ], - "pre_flags" : "DIGGABLE", - "post_terrain" : "t_fencegate_c" - }, - { - "type" : "construction", - "description" : "Build Rope Fence", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 15, - "components" : [ - [ [ "rope_6", 2 ] ] - ], - "pre_terrain" : "t_fence_post", - "post_terrain" : "t_fence_rope" - }, - { - "type" : "construction", - "description" : "Build Wire Fence", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 15, - "components" : [ - [ [ "wire", 2 ] ] - ], - "pre_terrain" : "t_fence_post", - "post_terrain" : "t_fence_wire" - }, - { - "type" : "construction", - "description" : "Build Barbed Wire Fence", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 15, - "components" : [ - [ [ "wire_barbed", 2 ] ] - ], - "pre_terrain" : "t_fence_post", - "post_terrain" : "t_fence_barbed" - },{ - "type" : "construction", - "description" : "Build Chainlink Fence", "//": "Step 1: fence posts", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "pipe", 6 ] ], - [ [ "scrap", 8 ] ] - ], - "pre_flags" : "DIGGABLE", - "post_terrain" : "t_chainfence_posts" - },{ - "type" : "construction", - "description" : "Build Chainlink Fence", "//": "Step 2: chainlink", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 120, - "components" : [ - [ [ "wire", 20 ] ] - ], - "pre_terrain" : "t_chainfence_posts", - "post_terrain" : "t_chainfence" - },{ - "type" : "construction", - "description" : "Build Chainlink Gate", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 150, - "components" : [ - [ [ "wire", 20 ] ], - [ [ "steel_chunk", 3 ], [ "scrap", 12 ] ], - [ [ "pipe", 20 ] ] - ], - "pre_note" : "Needs to be supported on both sides by fencing, walls, etc.", - "pre_special" : "check_support", - "post_terrain" : "t_chaingate_c" - },{ - "type" : "construction", - "description" : "Seal Crate", - "category" : "FURN", - "required_skills" : [ [ "mechanics", 0 ] ], - "time" : 10, - "//": "You can re-use the lid and most of the nails", - "components" : [ - [ ["nail", 6] ] - ], - "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], - "pre_terrain" : "f_crate_o", - "post_terrain" : "f_crate_c" - },{ - "type" : "construction", - "description" : "Build Crate", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 45, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ] - ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "nail", 24 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_crate_o" - },{ - "type" : "construction", - "description" : "Seal Coffin", - "category" : "FURN", - "required_skills" : [ [ "mechanics", 0 ] ], - "time" : 10, - "components" : [ - [ ["nail", 6] ] - ], - "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], - "pre_terrain" : "f_coffin_o", - "post_terrain" : "f_coffin_c" - },{ - "type" : "construction", - "description" : "Build Coffin", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ] - ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "sheet", 2 ], [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1] ], - [ [ "nail", 24 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_coffin_o" - },{ - "type" : "construction", - "description" : "Build Bulletin Board", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 20, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_bulletin" - },{ - "type" : "construction", - "description" : "Build Dresser", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 30, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_dresser" - },{ - "type" : "construction", - "description" : "Build Bookcase", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "nail", 16 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_bookcase" - },{ - "type" : "construction", - "description" : "Build Locker", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "WRENCH", "level": 1 } - ] - ], - "components" : [ - [ [ "sheet_metal", 2 ] ], - [ [ "pipe", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_locker" - },{ - "type" : "construction", - "description" : "Build Metal Rack", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "WRENCH", "level": 1 } - ] - ], - "components" : [ - [ [ "pipe", 12 ] ], - [ [ "sheet_metal", 2 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_rack" - },{ - "type": "construction", - "description": "Build Coat Rack", - "category": "FURN", - "required_skills": [ [ "fabrication", 2 ] ], - "time": 25, - "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 8 ] ] ], - "pre_special": "check_empty", - "post_terrain": "f_rack_coat" - },{ - "type" : "construction", - "description" : "Build Cupboard", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 3 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_cupboard" - },{ - "type" : "construction", - "description" : "Build Counter", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_counter" - },{ - "type" : "construction", - "description" : "Build Table", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_table" - },{ - "type" : "construction", - "description" : "Build Chair", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_chair" - },{ - "type": "construction", - "description": "Build Stool", - "category": "FURN", - "required_skills": [ [ "fabrication", 2 ] ], - "time": 25, - "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], - "pre_special": "check_empty", - "post_terrain": "f_stool" - },{ - "type" : "construction", - "description" : "Build Bench", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 10 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_bench" - },{ - "type" : "construction", - "description" : "Build Makeshift Bed", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ] ], - "time" : 45, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "nail", 6 ] ], - [ [ "sheet", 2 ], [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_makeshift_bed" - },{ - "type" : "construction", - "description" : "Build Straw Bed", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "components" : [ - [ [ "2x4", 4 ] ], - [ [ "straw_pile", 8 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_straw_bed" - },{ - "type" : "construction", - "description" : "Build Bed", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 4 ], [ "tailor", 4 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "nail", 10 ] ], - [ [ "sheet", 4 ], [ "blanket", 2 ], [ "down_blanket", 2 ], [ "fur_blanket", 2 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_bed" - },{ - "type" : "construction", - "description" : "Build Armchair", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ], [ "tailor", 3 ] ], - "time" : 45, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 10 ] ], - [ [ "nail", 8 ] ], - [ [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_armchair" - },{ - "type" : "construction", - "description" : "Build Sofa", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 4 ], [ "tailor", 3 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 12 ] ], - [ [ "nail", 10 ] ], - [ [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_sofa" - },{ - "type" : "construction", - "description" : "Build Sign", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 20, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 3 ] ], - [ [ "nail", 6 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_sign" - },{ - "type" : "construction", - "description" : "Build Stone Fireplace", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ], [ "survival", 1 ] ], - "time" : 120, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "DIG", "level": 2 } - ] - ], - "components" : [ - [ [ "rock", 40 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_fireplace" - },{ - "type" : "construction", - "description" : "Build Wood Stove", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 5 ], [ "mechanics", 3 ] ], - "time" : 60, - "qualities": [ [ - { "id": "SAW_M", "level": 1 } - ] ], - "components" : [ - [ [ "metal_tank", 1 ] ], - [ [ "pipe", 1 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_woodstove" - },{ - "type" : "construction", - "description" : "Build Fermenting Vat", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ], [ "cooking", 3 ] ], - "time" : 90, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_W", "level": 1 } - ] - ], - "components" : [ - [ [ "2x4", 14 ] ], - [ [ "nail", 12 ] ], - [ [ "sheet_metal_small", 12 ] ], - [ [ "water_faucet", 1 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_fvat_empty" - },{ - "type" : "construction", - "description" : "Build Wooden Keg", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ], [ "cooking", 2 ] ], - "time" : 120, - "qualities": [ - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "SAW_M", "level": 2 } ], - [ { "id": "SAW_W", "level": 1 } ] - ], - "components" : [ - [ [ "2x4", 18 ] ], - [ [ "nail", 14 ] ], - [ [ "sheet_metal", 1 ] ], - [ [ "water_faucet", 1 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_wood_keg" - }, - { - "type" : "construction", - "description" : "Build Standing Tank", "//": "a freestanding metal tank, useful for holding liquids", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 2 ], [ "cooking", 1 ] ], - "time" : 180, - "qualities": [ - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "SAW_M", "level": 1 } ], - [ { "id": "WELD", "level": 2 } ], - [ { "id": "GLARE", "level": 2} ] - ], - "components" : [ - [ [ "metal_tank", 4 ] ], - [ [ "water_faucet", 1] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_standing_tank" - }, - { - "type" : "construction", - "description" : "Place Forge", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 1, - "components" : [ - [ [ "char_forge", 1 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_forge" - },{ - "type" : "construction", - "description" : "Place Still", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 1, - "components" : [ - [ [ "still", 1 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_still" - },{ - "type" : "construction", - "description" : "Build Water Well", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ], [ "survival", 4 ] ], - "time" : 480, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "DIG", "level": 2 } - ] - ], - "components" : [ - [ [ "rock", 40 ] ], - [ [ "2x4", 4 ] ], - [ [ "nail", 8 ] ] - ], - "pre_terrain" : "t_pit", - "post_terrain" : "t_covered_well" - },{ - "type" : "construction", - "description" : "Build Water Well", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ], [ "mechanics", 2 ] ], - "time" : 180, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "WRENCH", "level": 1 } - ] - ], - "components" : [ - [ [ "well_pump", 1 ] ], - [ [ "pipe", 6 ] ] - ], - "pre_terrain" : "t_covered_well", - "post_terrain" : "t_water_pump" - },{ - "type" : "construction", - "description" : "Paint Wall Red", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "r_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_r" - },{ - "type" : "construction", - "description" : "Paint Wall Blue", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "b_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_b" - },{ - "type" : "construction", - "description" : "Paint Wall white", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "w_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_w" - },{ - "type" : "construction", - "description" : "Paint Wall Green", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "g_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_g" - },{ - "type" : "construction", - "description" : "Paint Wall Purple", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "p_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_p" - },{ - "type" : "construction", - "description" : "Paint Wall Yellow", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 40, - "tools" : [ - [ "paint_brush"] - ], - "components" : [ - [ [ "y_paint", 25 ] ] - ], - "pre_terrain" : "t_wall", - "post_terrain" : "t_wall_y" - },{ - "type" : "construction", - "description" : "Take Paint Off Wall", "//": "For vertical walls", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 80, - "tools" : [ - [ "chipper"] - ], - "pre_flags" : "CHIP", - "post_terrain" : "t_wall" - },{ - "type" : "construction", - "description" : "Remove Carpet", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "pre_flags" : "RUG", - "post_terrain" : "t_floor" - },{ - "type" : "construction", - "description" : "Carpet Floor Red", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "nail", 5 ] ], - [ [ "r_carpet", 1 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "t_carpet_red" - },{ - "type" : "construction", - "description" : "Carpet Floor Purple", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "nail", 5 ] ], - [ [ "p_carpet", 1 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "t_carpet_purple" - },{ - "type" : "construction", - "description" : "Carpet Floor Yellow", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "nail", 5 ] ], - [ [ "y_carpet", 1 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "t_carpet_yellow" - },{ - "type" : "construction", - "description" : "Carpet Floor Green", - "category" : "DECORATE", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 2 } - ] ], - "components" : [ - [ [ "nail", 5 ] ], - [ [ "g_carpet", 1 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "t_carpet_green" - },{ - "type" : "construction", - "description" : "Dig Downstair", - "category" : "DIG", - "required_skills" : [ [ "fabrication", 5 ], [ "survival", 3 ] ], - "time" : 420, - "qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "DIG", "level": 2 } ] - ], - "tools" : [ - [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ] - ], - "components" : [ - [ [ "2x4", 8 ] , [ "log", 8 ] ], - [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] - ], - "pre_flags" : "DIGGABLE", - "post_special" : "done_dig_stair" - },{ - "type" : "construction", - "description" : "Mine Downstair", - "category" : "DIG", - "required_skills" : [ [ "fabrication", 6 ], [ "survival", 4 ] ], - "time" : 480, - "qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "DIG", "level": 2 } ] - ], - "tools" : [ - [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ] - ], - "components" : [ - [ [ "2x4", 12 ] , [ "log", 12 ] ], - [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] - ], - "pre_special" : "check_down_OK", - "pre_terrain" : "t_rock_floor", - "post_special" : "done_mine_downstair" - },{ - "type" : "construction", - "description" : "Mine Upstair", - "category" : "DIG", - "required_skills" : [ [ "fabrication", 6 ], [ "survival", 4 ] ], - "time" : 480, - "qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "DIG", "level": 2 } ] - ], - "tools" : [ - [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ], - [ "miner_hat", "hat_hard", "firehelmet", "helmet_ball", - "helmet_army", "helmet_lobster", "helmet_riot", "tac_helmet", - "helmet_hsurvivor", "helmet_survivor", "helmet_xlsurvivor", "miner_hat_on"] - ], - "//" : "Helmets are essential because you're digging up and things may fall on you.", - "components" : [ - [ [ "2x4", 12 ] , [ "log", 12 ] ], - [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] - ], - "pre_special" : "check_up_OK", - "pre_terrain" : "t_rock", - "post_special" : "done_mine_upstair" - },{ - "type" : "construction", - "description" : "Start Vehicle Construction", "//": "Rest of vehicle construction done in the vehicle construction menu", - "category" : "OTHER", - "required_skills" : [ [ "mechanics", 0 ] ], - "time" : 10, - "//": "no components required, they are filled in at runtime based on the vehicle parts that can be used to start a vehicle", - "pre_special" : "check_empty", - "post_special" : "done_vehicle", - "vehicle_start" : true - },{ - "type" : "construction", - "description" : "Build Road Barricade", - "category" : "OTHER", - "required_skills" : [ [ "fabrication", 1 ] ], - "time" : 30, - "qualities": [ [ - { "id": "HAMMER", "level": 1 } - ] ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "nail", 12 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_barricade_road" - },{ - "type" : "construction", - "description" : "Build Pontoon Bridge", "//": "Set up pontoon bridge", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 80, - "qualities": [ [ - { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 8 ] ], - [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ], - [ [ "55gal_drum", 2 ], [ "30gal_drum", 2 ], [ "wooden_barrel", 2 ] ] - ], - "pre_terrain" : "t_water_dp", - "post_terrain" : "t_pontoon_dp" - },{ - "type" : "construction", - "description" : "Build Dock/Shallow Bridge", "//": "Set up dock", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 80, - "qualities": [ [ - { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } - ] ], - "components" : [ - [ [ "2x4", 6 ] ], - [ [ "log", 1 ] ], - [ [ "nail", 12 ] ] - ], - "pre_terrain" : "t_water_sh", - "post_terrain" : "t_dock" - },{ - "type" : "construction", - "description" : "Cut Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "pre_terrain" : "t_grass_long", - "post_terrain" : "t_grass", - "tools": [ - [ [ "scythe", -1 ], [ "sickle", -1 ] ] - ] - },{ - "type" : "construction", - "description" : "Cut Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "pre_terrain" : "t_grass_tall", - "post_terrain" : "t_grass", - "tools": [ - [ [ "scythe", -1 ], [ "sickle", -1 ] ] - ] - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass_long", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass_tall", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass_dead", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass_golf", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Remove Grass", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 6, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "pre_terrain" : "t_grass_white", - "post_terrain" : "t_dirt" - },{ - "type" : "construction", - "description" : "Extract Sand", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 30, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "byproducts": [ { "item": "material_sand", "charges": [ 300, 600 ] } ], - "pre_terrain" : "t_sand", - "post_special" : "done_extract_maybe_revert_to_dirt" - },{ - "type" : "construction", - "description" : "Extract Clay", - "category" : "OTHER", - "required_skills" : [ [ "survival", 0 ] ], - "time" : 30, - "qualities": [ [ { "id": "DIG", "level": 1 } ] ], - "byproducts": [ { "item": "clay_lump", "count": [ 6, 12 ] } ], - "pre_terrain" : "t_clay", - "post_special" : "done_extract_maybe_revert_to_dirt" - },{ - "type" : "construction", - "description" : "Build Charcoal Kiln", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 120, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "DIG", "level": 2 } - ] - ], - "components" : [ - [ [ "rock", 40 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_kiln_empty" - },{ - "type" : "construction", - "description" : "Build Metal Charcoal Kiln", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ] ], - "time" : 60, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ] - ], - "components" : [ - [ [ "metal_tank", 4 ] ], - [ [ "pipe", 4 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "f_kiln_metal_empty" - },{ - "type" : "construction", - "description" : "Build Smoking Rack", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 3 ], [ "cooking", 2 ] ], - "time" : 90, - "qualities": [ - [ { "id": "DIG", "level": 1 } ], - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "CUT", "level": 1 } ], - [ { "id": "SAW_W", "level": 1 } ] - ], - "components" : [ - [ [ "stick", 16 ], [ "2x4", 16 ] ], - [ [ "rock", 8 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_smoking_rack" - },{ - "type" : "construction", - "description" : "Build Rock Forge", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 5 ] ], - "time" : 120, - "qualities": [ - [ { "id": "DIG", "level": 2 } ], - [ { "id": "HAMMER", "level": 2 } ] - ], - "components" : [ - [ [ "rock", 40 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_forge_rock" - },{ - "type" : "construction", - "description" : "Build Clay Kiln", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 4 ] ], - "time" : 150, - "qualities": [ - [ {"id": "HAMMER", "level": 2 } ] - ], - "components" : [ - [ [ "rock", 40 ] ], - [ [ "material_cement", 50 ], [ "mortar_build", 1 ], [ "clay_lump", 12 ] ], - [ [ "water", 2 ], [ "water_clean", 2 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_clay_kiln" - },{ - "type" : "construction", - "description" : "Build Reinforced Glass Window", "//": "Step 1 : metal frame", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 7 ] ], - "time" : 90, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ] - ], - "components" : [ - [ [ "spike", 8 ] ], - [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] - ], - "pre_special" : "check_empty", - "post_terrain" : "t_m_frame" - },{ - "type" : "construction", - "description" : "Build Reinforced Glass Window", "//": "Step 2 : Reinforced Glass", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 8 ] ], - "time" : 150, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ] - ], - "components" : [ - [["reinforced_glass_sheet", 1]] - ], - "pre_terrain" : "t_m_frame", - "post_terrain" : "t_reinforced_glass" - },{ - "type" : "construction", - "description" : "Build Reinforced Glass Window", "//": "Step 3 : Metal shutters", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 8 ] ], - "time" : 150, - "qualities": [ - [ - { "id": "HAMMER", "level": 2 } - ], - [ - { "id": "SAW_M", "level": 1 } - ] - ], - "components" : [ - [ [ "steel_plate", 2 ]] - ], - "pre_terrain" : "t_reinforced_glass", - "post_terrain" : "t_reinforced_glass_shutter" - },{ - "type" : "construction", - "description" : "Build Root Cellar", - "category" : "CONSTRUCT", - "required_skills" : [ [ "survival", 4 ], [ "fabrication", 4 ] ], - "time" : 130, - "qualities": [ - [ { "id": "DIG", "level": 2 } ], - [ { "id": "HAMMER", "level": 2 } ] - ], - "components" : [ - [ [ "rock", 40 ], [ "brick", 40] ], - [ [ "2x4", 6 ], [ "stick", 6 ] ], - [ [ "withered", 12 ], [ "straw_pile", 12 ] ] - ], - "pre_note": "You need a deep pit to construct a root cellar.", - "pre_terrain": "t_pit", - "post_terrain": "t_rootcellar" - },{ - "type" : "construction", - "description" : "Mark firewood source", - "category" : "OTHER", - "required_skills" : [], - "time" : 0, - "pre_note" : "Firewood or other flammable materials on a nearby tile marked in this way may be used to automatically refuel fires. This will be done to maintain light during long-running tasks that require it such as crafting or reading, but not (for example) if you are simply waiting nearby.", - "pre_special" : "check_no_trap", - "post_special" : "done_mark_firewood" - },{ - "type" : "construction", - "description" : "Mark practice target", - "category" : "OTHER", - "required_skills" : [], - "time" : 0, - "pre_note" : "Mark a spot for target practice. Firing will automatically target the first practice target location found in gun range, if no enemies are around.", - "pre_special" : "check_no_trap", - "post_special" : "done_mark_practice_target" - },{ - "type" : "construction", - "description" : "Build Butchering Rack", - "category" : "FURN", - "required_skills" : [ [ "fabrication", 1 ], [ "survival", 3 ] ], - "time" : 45, - "qualities": [ - [ { "id": "CUT", "level": 1 } ], - [ { "id": "SAW_W", "level": 1 } ] - ], - "components" : [ - [ [ "stick_long", 6 ] ], - [ [ "rope_natural_short", 1, "LIST" ], [ "cordage", 2, "LIST" ], [ "wire", 8 ] ], - [ [ "pointy_stick", 2 ], [ "spike", 2 ] ] - ], - "pre_note" : "Can be deconstructed without tools.", - "pre_special" : "check_empty", - "post_terrain" : "f_butcher_rack" - }, + { + "type": "construction", + "description": "Deconstruct Furniture", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SCREW", "level": 1 } ] ], + "pre_special": "check_deconstruct", + "post_special": "done_deconstruct" + }, + { + "type": "construction", + "description": "Deconstruct Simple Furniture", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 10, + "pre_note": "Certain terrain and furniture can be deconstructed without any tools.", + "pre_flags": "EASY_DECONSTRUCT", + "pre_special": "check_deconstruct", + "post_special": "done_deconstruct" + }, + { + "type": "construction", + "description": "Spike Pit", + "category": "DIG", + "required_skills": [ [ "survival", 1 ] ], + "time": 30, + "components": [ [ [ "spear_wood", 4 ], [ "pointy_stick", 4 ] ] ], + "pre_terrain": "t_pit", + "post_terrain": "t_pit_spiked" + }, + { + "type": "construction", + "description": "Glass Pit", + "category": "DIG", + "required_skills": [ [ "survival", 1 ] ], + "time": 30, + "components": [ [ [ "glass_shard", 20 ] ] ], + "pre_terrain": "t_pit", + "post_terrain": "t_pit_glass" + }, + { + "type": "construction", + "description": "Chop Tree Trunk Into Planks", + "category": "FARM_WOOD", + "required_skills": [ [ "survival", 2 ] ], + "time": 60, + "qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ] ], + "pre_terrain": "t_trunk", + "post_terrain": "t_dirt", + "post_special": "done_trunk_plank" + }, + { + "type": "construction", + "skill": "survival", + "description": "Build Improvised Shelter", + "category": "CONSTRUCT", + "required_skills": [ [ "survival", 2 ] ], + "time": 120, + "qualities": [ [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ] ], + "components": [ [ [ "stick", 12 ], [ "2x4", 6 ] ], [ [ "pine_bough", 24 ], [ "willowbark", 24 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_improvised_shelter" + }, + { + "type": "construction", + "description": "Build Door Curtain", + "//": "Door frame not required", + "category": "CONSTRUCT", + "required_skills": [ [ "tailor", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ + [ [ "nail", 4 ], [ "pointy_stick", 2 ], [ "spike", 2 ] ], + [ [ "sheet", 2 ] ], + [ [ "stick", 1 ] ], + [ [ "withered", 12 ], [ "straw_pile", 12 ], [ "string_36", 1 ] ] + ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "t_door_curtain_c" + }, + { + "type": "construction", + "description": "Build Makeshift Door", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "CUT", "level": 1 } ] ], + "components": [ [ [ "2x4", 6 ], [ "stick", 6 ] ], [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_terrain": "t_door_frame", + "post_terrain": "t_door_makeshift_c" + }, + { + "type": "construction", + "description": "Build Door", + "//": "Step 1: door frame", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 24 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_door_frame" + }, + { + "type": "construction", + "description": "Build Door", + "//": "Step 2: door", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 12 ] ] ], + "pre_terrain": "t_door_frame", + "post_terrain": "t_door_c" + }, + { + "type": "construction", + "description": "Build Door", + "//": "Step 3: peephole", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 15, + "qualities": [ [ { "id": "DRILL", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "peephole", 1 ] ] ], + "pre_terrain": "t_door_c", + "post_terrain": "t_door_c_peep" + }, + { + "type": "construction", + "description": "Repair Wood Door", + "//": "Repair the regular door", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 12 ] ] ], + "pre_terrain": "t_door_b", + "post_terrain": "t_door_c" + }, + { + "type": "construction", + "description": "Repair Wood Door", + "//": "Repair the peephole door", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 12 ] ] ], + "pre_terrain": "t_door_b_peep", + "post_terrain": "t_door_c_peep" + }, + { + "type": "construction", + "description": "Repair Wood Door", + "//": "Repair the reinforced door", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 45, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 24 ] ] ], + "pre_terrain": "t_rdoor_b", + "post_terrain": "t_rdoor_c" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "regular door", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_DOOR", + "post_terrain": "t_door_boarded" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "peephole door", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_door_c_peep", + "post_terrain": "t_door_boarded_peep" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "boarded damaged door", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_DOOR_DAMAGED", + "post_terrain": "t_door_boarded_damaged" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "boarded damaged peephole door", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_door_b_peep", + "post_terrain": "t_door_boarded_damaged_peep" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "the reinforced doors", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_DOOR_REINFORCED", + "post_terrain": "t_rdoor_boarded" + }, + { + "type": "construction", + "description": "Board Up Wood Door", + "//": "damaged reinforced doors", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_DOOR_REINFORCED_DAMAGED", + "post_terrain": "t_rdoor_boarded_damaged" + }, + { + "type": "construction", + "description": "Reinforce Wood Door", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 90, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 48 ] ] ], + "pre_flags": "BARRICADABLE_DOOR", + "post_terrain": "t_rdoor_c" + }, + { + "type": "construction", + "description": "Build Metal Door", + "//": "step 1: door frame", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 90, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "spike", 8 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_mdoor_frame" + }, + { + "type": "construction", + "description": "Build Metal Door", + "//": "Step 2: metal door", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 7 ] ], + "time": 120, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "steel_lump", 4 ], [ "steel_chunk", 12 ], [ "scrap", 36 ] ], [ [ "steel_plate", 2 ], [ "sheet_metal", 8 ] ] ], + "pre_terrain": "t_mdoor_frame", + "post_terrain": "t_door_metal_c" + }, + { + "type": "construction", + "description": "Build Metal Door", + "//": "Step 3: peephole", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 25, + "qualities": [ [ { "id": "DRILL", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "peephole", 1 ] ] ], + "pre_terrain": "t_door_metal_c", + "post_terrain": "t_door_metal_c_peep" + }, + { + "type": "construction", + "description": "Build Window", + "//": "Step 1: window frame", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 75, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 15 ], [ "log", 2 ] ], [ [ "nail", 30 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_window_empty" + }, + { + "type": "construction", + "description": "Build Window", + "//": "Step 2: window, no curtains", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 30, + "components": [ [ [ "glass_sheet", 1 ] ] ], + "pre_terrain": "t_window_empty", + "post_terrain": "t_window_no_curtains" + }, + { + "type": "construction", + "description": "Build Window", + "//": "Step 3: window with curtains", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "SAW_W", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "nail", 4 ] ], [ [ "sheet", 2 ] ], [ [ "stick", 1 ] ], [ [ "string_36", 1 ] ] ], + "pre_terrain": "t_window_no_curtains", + "post_terrain": "t_window_domestic" + }, + { + "type": "construction", + "description": "Clean Broken Window", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 5, + "pre_terrain": "t_window_frame", + "post_terrain": "t_window_empty" + }, + { + "type": "construction", + "description": "Tape Up Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 5, + "components": [ [ [ "duct_tape", 50 ] ] ], + "pre_terrain": "t_window", + "post_terrain": "t_window_taped" + }, + { + "type": "construction", + "description": "Tape Up Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 5, + "components": [ [ [ "duct_tape", 50 ] ] ], + "pre_terrain": "t_window_domestic", + "post_terrain": "t_window_domestic_taped" + }, + { + "type": "construction", + "description": "Tape Up Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 5, + "components": [ [ [ "duct_tape", 50 ] ] ], + "pre_terrain": "t_window_alarm", + "post_terrain": "t_window_alarm_taped" + }, + { + "type": "construction", + "description": "Tape Up Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 5, + "components": [ [ [ "duct_tape", 50 ] ] ], + "pre_terrain": "t_window_no_curtains", + "post_terrain": "t_window_no_curtains_taped" + }, + { + "type": "construction", + "description": "Remove Tape from Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 2, + "qualities": [ [ { "id": "CUT", "level": 1 } ] ], + "pre_terrain": "t_window_taped", + "post_terrain": "t_window" + }, + { + "type": "construction", + "description": "Remove Tape from Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 2, + "qualities": [ [ { "id": "CUT", "level": 1 } ] ], + "pre_terrain": "t_window_domestic_taped", + "post_terrain": "t_window_domestic" + }, + { + "type": "construction", + "description": "Remove Tape from Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 2, + "qualities": [ [ { "id": "CUT", "level": 1 } ] ], + "pre_terrain": "t_window_alarm_taped", + "post_terrain": "t_window_alarm" + }, + { + "type": "construction", + "description": "Remove Tape from Window", + "//": "Need a recipe for each type of window tapable due to how code works", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 2, + "qualities": [ [ { "id": "CUT", "level": 1 } ] ], + "pre_terrain": "t_window_no_curtains_taped", + "post_terrain": "t_window_no_curtains" + }, + { + "type": "construction", + "description": "Board Up Window", + "//": "Board up normal window", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_WINDOW", + "post_terrain": "t_window_boarded" + }, + { + "type": "construction", + "description": "Board Up Window", + "//": "Board up window with curtains", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_flags": "BARRICADABLE_WINDOW_CURTAINS", + "post_terrain": "t_window_boarded", + "post_special": "done_window_curtains" + }, + { + "type": "construction", + "description": "Board Up Window", + "//": "Board up empty window", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_window_empty", + "post_terrain": "t_window_boarded_noglass" + }, + { + "type": "construction", + "description": "Board Up Window", + "//": "Board up window frame only", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_window_frame", + "post_terrain": "t_window_boarded_noglass" + }, + { + "type": "construction", + "description": "Reinforce Boarded Window", + "//": "For regular windows", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 40, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 16 ] ] ], + "pre_terrain": "t_window_boarded", + "post_terrain": "t_window_reinforced" + }, + { + "type": "construction", + "description": "Reinforce Boarded Window", + "//": "For windows with no glass that were barricaded", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 40, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 16 ] ] ], + "pre_terrain": "t_window_boarded_noglass", + "post_terrain": "t_window_reinforced_noglass" + }, + { + "type": "construction", + "description": "Armor Reinforced Window", + "//": "Armo up regular reinforced window", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "spike", 4 ] ], [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] ], + "pre_terrain": "t_window_reinforced", + "post_terrain": "t_window_enhanced" + }, + { + "type": "construction", + "description": "Armor Reinforced Window", + "//": "When underlying window has no glass", + "category": "REINFORCE", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "spike", 4 ] ], [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] ], + "pre_terrain": "t_window_reinforced_noglass", + "post_terrain": "t_window_enhanced_noglass" + }, + { + "type": "construction", + "description": "Build Metal Bars", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 60, + "tools": [ [ [ "oxy_torch", 4 ], [ "welder", 20 ], [ "welder_crude", 30 ], [ "toolset", 30 ] ] ], + "qualities": [ [ { "id": "SAW_M", "level": 1 }, { "id": "GLARE", "level": 2 } ] ], + "components": [ [ [ "pipe", 6 ] ], [ [ "sheet_metal", 2 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "t_bars" + }, + { + "type": "construction", + "description": "Build Wood Wall", + "//": "Step 1: half of a wall where a window used to be", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 50, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ], + "pre_terrain": "t_window_empty", + "post_terrain": "t_wall_half" + }, + { + "type": "construction", + "description": "Build Wood Wall", + "//": "Step 1: half of a wall in an empty space", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 50, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_wall_half" + }, + { + "type": "construction", + "description": "Build Wood Wall", + "//": "Step 2: complete the half made wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 50, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ], + "pre_terrain": "t_wall_half", + "post_terrain": "t_wall_wood" + }, + { + "type": "construction", + "description": "Repair Wood Wall", + "//": "fix a chip", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 16 ] ] ], + "pre_terrain": "t_wall_wood_chipped", + "post_terrain": "t_wall_wood" + }, + { + "type": "construction", + "description": "Repair Wood Wall", + "//": "fix the broken to chipped", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 32 ] ] ], + "pre_terrain": "t_wall_wood_broken", + "post_terrain": "t_wall_wood_chipped" + }, + { + "type": "construction", + "description": "Build Log Wall", + "//": "Step 1: half of a log wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 60, + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "log", 2 ] ], [ [ "stick", 3 ], [ "2x4", 6 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_wall_log_half" + }, + { + "type": "construction", + "description": "Build Log Wall", + "//": "Step 2: Finish the log wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 60, + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "log", 2 ] ], [ [ "stick", 3 ], [ "2x4", 6 ] ] ], + "pre_terrain": "t_wall_log_half", + "post_terrain": "t_wall_log" + }, + { + "type": "construction", + "description": "Repair Log Wall", + "//": "Fix the chipped back to normal", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 16 ] ] ], + "pre_terrain": "t_wall_log_chipped", + "post_terrain": "t_wall_log" + }, + { + "type": "construction", + "description": "Repair Log Wall", + "//": "fix broken back to chipped", + "category": "REPAIR", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 50, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 1 ] ], [ [ "2x4", 2 ] ], [ [ "nail", 24 ] ] ], + "pre_terrain": "t_wall_log_broken", + "post_terrain": "t_wall_log_chipped" + }, + { + "type": "construction", + "description": "Build Sandbag Wall", + "//": "Step 1: Build sandbag barricade", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 60, + "components": [ [ [ "bag_canvas", 2 ] ], [ [ "material_sand", 20 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_sandbag_half" + }, + { + "type": "construction", + "description": "Build Sandbag Wall", + "//": "Step 2: Finish the sandbag wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 90, + "components": [ [ [ "bag_canvas", 4 ] ], [ [ "material_sand", 40 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_terrain": "f_sandbag_half", + "post_terrain": "f_sandbag_wall" + }, + { + "type": "construction", + "description": "Build Metal Wall", + "//": "Step 1: foundation", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 90, + "qualities": [ { "id": "GLARE", "level": 2 } ], + "tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ], + "components": [ [ [ "steel_plate", 2 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_scrap_wall_halfway" + }, + { + "type": "construction", + "description": "Build Metal Wall", + "//": "Step 2: finish wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 90, + "qualities": [ { "id": "GLARE", "level": 2 } ], + "tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ], + "components": [ [ [ "steel_plate", 2 ] ] ], + "pre_terrain": "t_scrap_wall_halfway", + "post_terrain": "t_scrap_wall" + }, + { + "type": "construction", + "description": "Build Brick Wall", + "//": "Step 1: start wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 120, + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "brick", 15 ] ], [ [ "mortar_build", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ], + "pre_terrain": "t_dirt", + "post_terrain": "t_brick_wall_halfway" + }, + { + "type": "construction", + "description": "Build Brick Wall", + "//": "Step 2: finish wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 120, + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "brick", 15 ] ], [ [ "mortar_build", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ], + "pre_terrain": "t_brick_wall_halfway", + "post_terrain": "t_brick_wall" + }, + { + "type": "construction", + "description": "Build Simple Concrete Wall", + "//": "Step 1: foundation", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 180, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ], + "components": [ [ [ "concrete", 4 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_sconc_wall_halfway" + }, + { + "type": "construction", + "description": "Build Simple Concrete Wall", + "//": "Step 2: finish wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 180, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ], + "components": [ [ [ "concrete", 4 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ], + "pre_terrain": "t_sconc_wall_halfway", + "post_terrain": "t_sconc_wall" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Wall", + "//": "Step 1: rebar cage", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 120, + "qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ], + "components": [ [ [ "rebar", 16 ] ] ], + "pre_terrain": "t_pit", + "post_terrain": "t_reb_cage" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Wall", + "//": "Step 2: foundation", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 120, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "concrete", 6 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ], + "pre_terrain": "t_reb_cage", + "post_terrain": "t_strconc_wall_halfway" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Wall", + "//": "Step 3: finish wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 120, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "concrete", 6 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ], + "pre_terrain": "t_strconc_wall_halfway", + "post_terrain": "t_strconc_wall" + }, + { + "type": "construction", + "description": "Build Metal Roof", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 90, + "qualities": [ { "id": "GLARE", "level": 2 } ], + "tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ], + "components": [ [ [ "steel_plate", 2 ] ] ], + "pre_note": "Must be supported on at least two sides.", + "pre_special": "check_support", + "post_terrain": "t_scrap_floor" + }, + { + "type": "construction", + "description": "Build Concrete Roof", + "//": "Step 1: rebar cage & supports", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 120, + "qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ], + "components": [ [ [ "rebar", 8 ] ], [ [ "2x4", 12 ] ], [ [ "pipe", 4 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_ov_smreb_cage" + }, + { + "type": "construction", + "description": "Build Concrete Roof", + "//": "Step 2: roof & floor", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 120, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ], + "components": [ [ [ "concrete", 4 ] ], [ [ "water", 4 ] ] ], + "pre_terrain": "t_ov_smreb_cage", + "post_terrain": "t_thconc_floor" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Roof", + "//": "Step 1: rebar cage & supports", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 180, + "qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ], + "components": [ [ [ "rebar", 12 ] ], [ [ "2x4", 12 ] ], [ [ "pipe", 4 ] ] ], + "pre_terrain": "t_pit", + "post_terrain": "t_ov_reb_cage" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Roof", + "//": "Step 2: start roof & floor", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 180, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "concrete", 6 ] ], [ [ "water", 3 ] ] ], + "pre_terrain": "t_ov_reb_cage", + "post_terrain": "t_strconc_floor_halfway" + }, + { + "type": "construction", + "description": "Build Reinforced Concrete Roof", + "//": "Step 3: finish roof & floor", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": 180, + "tools": [ [ [ "con_mix", 50 ] ] ], + "qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ], + "components": [ [ [ "concrete", 6 ] ], [ [ "water", 3 ] ] ], + "pre_terrain": "t_strconc_floor_halfway", + "post_terrain": "t_strconc_floor" + }, + { + "type": "construction", + "description": "Build Palisade Wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ] ], + "time": 120, + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ + [ [ "log", 3 ] ], + [ + [ "wire", 6 ], + [ "wire_barbed", 4 ], + [ "rope_6", 2 ], + [ "rope_makeshift_6", 2 ], + [ "chain", 1 ], + [ "vine_30", 1 ] + ] + ], + "pre_terrain": "t_pit", + "post_terrain": "t_palisade" + }, + { + "type": "construction", + "description": "Build Stone Wall", + "//": "Step 1: half the wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ], [ "survival", 2 ] ], + "time": 180, + "qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 12 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_rock_wall_half" + }, + { + "type": "construction", + "description": "Build Stone Wall", + "//": "Step 2: the full wall", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ], [ "survival", 2 ] ], + "time": 180, + "qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 12 ] ] ], + "pre_terrain": "t_rock_wall_half", + "post_terrain": "t_rock_wall" + }, + { + "type": "construction", + "description": "Build Roof", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 120, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 40 ] ] ], + "pre_note": "Must be supported on at least two sides.", + "pre_special": "check_support", + "post_terrain": "t_floor" + }, + { + "type": "construction", + "description": "Build Log & Sod Roof", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 120, + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 2 ] ], [ [ "stick", 4 ], [ "2x4", 8 ] ] ], + "pre_note": "Must be supported on at least two sides.", + "pre_special": "check_support", + "post_terrain": "t_floor_primitive" + }, + { + "type": "construction", + "description": "Build Rope & Pulley System", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ], [ "mechanics", 2 ] ], + "time": 60, + "components": [ [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ], [ [ "stick", 8 ], [ "2x4", 8 ] ] ], + "pre_note": "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.", + "pre_special": "check_empty", + "post_terrain": "t_palisade_pulley" + }, + { + "type": "construction", + "description": "Build Palisade Gate", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ] ], + "time": 120, + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "log", 2 ] ], [ [ "2x4", 3 ] ], [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ], [ "vine_30", 1 ] ] ], + "pre_note": "Must be between palisade walls to function, and at least one wall must have an adjacent rope & pulley system.", + "pre_terrain": "t_pit", + "post_terrain": "t_palisade_gate" + }, + { + "type": "construction", + "description": "Build Fence Posts", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ], [ "survival", 0 ] ], + "time": 15, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ] ], + "pre_flags": "DIGGABLE", + "post_terrain": "t_fence_post" + }, + { + "type": "construction", + "description": "Build Fence", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 15, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 5 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_fence_post", + "post_terrain": "t_fence" + }, + { + "type": "construction", + "description": "Build Fence Gate", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], [ [ "2x4", 5 ] ], [ [ "nail", 12 ] ] ], + "pre_flags": "DIGGABLE", + "post_terrain": "t_fencegate_c" + }, + { + "type": "construction", + "description": "Build Rope Fence", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 15, + "components": [ [ [ "rope_6", 2 ] ] ], + "pre_terrain": "t_fence_post", + "post_terrain": "t_fence_rope" + }, + { + "type": "construction", + "description": "Build Wire Fence", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 15, + "components": [ [ [ "wire", 2 ] ] ], + "pre_terrain": "t_fence_post", + "post_terrain": "t_fence_wire" + }, + { + "type": "construction", + "description": "Build Barbed Wire Fence", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 15, + "components": [ [ [ "wire_barbed", 2 ] ] ], + "pre_terrain": "t_fence_post", + "post_terrain": "t_fence_barbed" + }, + { + "type": "construction", + "description": "Build Chainlink Fence", + "//": "Step 1: fence posts", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "pipe", 6 ] ], [ [ "scrap", 8 ] ] ], + "pre_flags": "DIGGABLE", + "post_terrain": "t_chainfence_posts" + }, + { + "type": "construction", + "description": "Build Chainlink Fence", + "//": "Step 2: chainlink", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 120, + "components": [ [ [ "wire", 20 ] ] ], + "pre_terrain": "t_chainfence_posts", + "post_terrain": "t_chainfence" + }, + { + "type": "construction", + "description": "Build Chainlink Gate", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 150, + "components": [ [ [ "wire", 20 ] ], [ [ "steel_chunk", 3 ], [ "scrap", 12 ] ], [ [ "pipe", 20 ] ] ], + "pre_note": "Needs to be supported on both sides by fencing, walls, etc.", + "pre_special": "check_support", + "post_terrain": "t_chaingate_c" + }, + { + "type": "construction", + "description": "Seal Crate", + "category": "FURN", + "required_skills": [ [ "mechanics", 0 ] ], + "time": 10, + "//": "You can re-use the lid and most of the nails", + "components": [ [ [ "nail", 6 ] ] ], + "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], + "pre_terrain": "f_crate_o", + "post_terrain": "f_crate_c" + }, + { + "type": "construction", + "description": "Build Crate", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 45, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 24 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_crate_o" + }, + { + "type": "construction", + "description": "Seal Coffin", + "category": "FURN", + "required_skills": [ [ "mechanics", 0 ] ], + "time": 10, + "components": [ [ [ "nail", 6 ] ] ], + "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], + "pre_terrain": "f_coffin_o", + "post_terrain": "f_coffin_c" + }, + { + "type": "construction", + "description": "Build Coffin", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ + [ [ "2x4", 12 ] ], + [ [ "sheet", 2 ], [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ], + [ [ "nail", 24 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_coffin_o" + }, + { + "type": "construction", + "description": "Build Bulletin Board", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_bulletin" + }, + { + "type": "construction", + "description": "Build Dresser", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_dresser" + }, + { + "type": "construction", + "description": "Build Bookcase", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 16 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_bookcase" + }, + { + "type": "construction", + "description": "Build Locker", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "sheet_metal", 2 ] ], [ [ "pipe", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_locker" + }, + { + "type": "construction", + "description": "Build Metal Rack", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "pipe", 12 ] ], [ [ "sheet_metal", 2 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_rack" + }, + { + "type": "construction", + "description": "Build Coat Rack", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 25, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_rack_coat" + }, + { + "type": "construction", + "description": "Build Cupboard", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_cupboard" + }, + { + "type": "construction", + "description": "Build Counter", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_counter" + }, + { + "type": "construction", + "description": "Build Table", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_table" + }, + { + "type": "construction", + "description": "Build Chair", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_chair" + }, + { + "type": "construction", + "description": "Build Stool", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 25, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_stool" + }, + { + "type": "construction", + "description": "Build Bench", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 10 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_bench" + }, + { + "type": "construction", + "description": "Build Makeshift Bed", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ] ], + "time": 45, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ + [ [ "2x4", 4 ] ], + [ [ "nail", 6 ] ], + [ [ "sheet", 2 ], [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_makeshift_bed" + }, + { + "type": "construction", + "description": "Build Straw Bed", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "components": [ [ [ "2x4", 4 ] ], [ [ "straw_pile", 8 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_straw_bed" + }, + { + "type": "construction", + "description": "Build Bed", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ], [ "tailor", 4 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ + [ [ "2x4", 12 ] ], + [ [ "nail", 10 ] ], + [ [ "sheet", 4 ], [ "blanket", 2 ], [ "down_blanket", 2 ], [ "fur_blanket", 2 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_bed" + }, + { + "type": "construction", + "description": "Build Armchair", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ], [ "tailor", 3 ] ], + "time": 45, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 8 ] ], [ [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_armchair" + }, + { + "type": "construction", + "description": "Build Sofa", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ], [ "tailor", 3 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 10 ] ], [ [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_sofa" + }, + { + "type": "construction", + "description": "Build Sign", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 20, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 6 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_sign" + }, + { + "type": "construction", + "description": "Build Stone Fireplace", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ], + "time": 120, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 40 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_fireplace" + }, + { + "type": "construction", + "description": "Build Wood Stove", + "category": "FURN", + "required_skills": [ [ "fabrication", 5 ], [ "mechanics", 3 ] ], + "time": 60, + "qualities": [ [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "metal_tank", 1 ] ], [ [ "pipe", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_woodstove" + }, + { + "type": "construction", + "description": "Build Fermenting Vat", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ], [ "cooking", 3 ] ], + "time": 90, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 14 ] ], [ [ "nail", 12 ] ], [ [ "sheet_metal_small", 12 ] ], [ [ "water_faucet", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_fvat_empty" + }, + { + "type": "construction", + "description": "Build Wooden Keg", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ], [ "cooking", 2 ] ], + "time": 120, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 18 ] ], [ [ "nail", 14 ] ], [ [ "sheet_metal", 1 ] ], [ [ "water_faucet", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_wood_keg" + }, + { + "type": "construction", + "description": "Build Standing Tank", + "//": "a freestanding metal tank, useful for holding liquids", + "category": "FURN", + "required_skills": [ [ "fabrication", 2 ], [ "cooking", 1 ] ], + "time": 180, + "qualities": [ + [ { "id": "HAMMER", "level": 2 } ], + [ { "id": "SAW_M", "level": 1 } ], + [ { "id": "WELD", "level": 2 } ], + [ { "id": "GLARE", "level": 2 } ] + ], + "components": [ [ [ "metal_tank", 4 ] ], [ [ "water_faucet", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_standing_tank" + }, + { + "type": "construction", + "description": "Place Forge", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 1, + "components": [ [ [ "char_forge", 1 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_forge" + }, + { + "type": "construction", + "description": "Place Still", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 1, + "components": [ [ [ "still", 1 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_still" + }, + { + "type": "construction", + "description": "Build Water Well", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ], [ "survival", 4 ] ], + "time": 480, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 40 ] ], [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ], + "pre_terrain": "t_pit", + "post_terrain": "t_covered_well" + }, + { + "type": "construction", + "description": "Build Water Well", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ], [ "mechanics", 2 ] ], + "time": 180, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ [ [ "well_pump", 1 ] ], [ [ "pipe", 6 ] ] ], + "pre_terrain": "t_covered_well", + "post_terrain": "t_water_pump" + }, + { + "type": "construction", + "description": "Paint Wall Red", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "r_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_r" + }, + { + "type": "construction", + "description": "Paint Wall Blue", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "b_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_b" + }, + { + "type": "construction", + "description": "Paint Wall white", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "w_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_w" + }, + { + "type": "construction", + "description": "Paint Wall Green", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "g_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_g" + }, + { + "type": "construction", + "description": "Paint Wall Purple", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "p_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_p" + }, + { + "type": "construction", + "description": "Paint Wall Yellow", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 40, + "tools": [ [ "paint_brush" ] ], + "components": [ [ [ "y_paint", 25 ] ] ], + "pre_terrain": "t_wall", + "post_terrain": "t_wall_y" + }, + { + "type": "construction", + "description": "Take Paint Off Wall", + "//": "For vertical walls", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 80, + "tools": [ [ "chipper" ] ], + "pre_flags": "CHIP", + "post_terrain": "t_wall" + }, + { + "type": "construction", + "description": "Remove Carpet", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "pre_flags": "RUG", + "post_terrain": "t_floor" + }, + { + "type": "construction", + "description": "Carpet Floor Red", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "nail", 5 ] ], [ [ "r_carpet", 1 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "t_carpet_red" + }, + { + "type": "construction", + "description": "Carpet Floor Purple", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "nail", 5 ] ], [ [ "p_carpet", 1 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "t_carpet_purple" + }, + { + "type": "construction", + "description": "Carpet Floor Yellow", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "nail", 5 ] ], [ [ "y_carpet", 1 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "t_carpet_yellow" + }, + { + "type": "construction", + "description": "Carpet Floor Green", + "category": "DECORATE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "nail", 5 ] ], [ [ "g_carpet", 1 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "t_carpet_green" + }, + { + "type": "construction", + "description": "Dig Downstair", + "category": "DIG", + "required_skills": [ [ "fabrication", 5 ], [ "survival", 3 ] ], + "time": 420, + "qualities": [ + [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], + [ { "id": "HAMMER", "level": 2 } ], + [ { "id": "DIG", "level": 2 } ] + ], + "tools": [ [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ] ], + "components": [ [ [ "2x4", 8 ], [ "log", 8 ] ], [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] ], + "pre_flags": "DIGGABLE", + "post_special": "done_dig_stair" + }, + { + "type": "construction", + "description": "Mine Downstair", + "category": "DIG", + "required_skills": [ [ "fabrication", 6 ], [ "survival", 4 ] ], + "time": 480, + "qualities": [ + [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], + [ { "id": "HAMMER", "level": 2 } ], + [ { "id": "DIG", "level": 2 } ] + ], + "tools": [ [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ] ], + "components": [ [ [ "2x4", 12 ], [ "log", 12 ] ], [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] ], + "pre_special": "check_down_OK", + "pre_terrain": "t_rock_floor", + "post_special": "done_mine_downstair" + }, + { + "type": "construction", + "description": "Mine Upstair", + "category": "DIG", + "required_skills": [ [ "fabrication", 6 ], [ "survival", 4 ] ], + "time": 480, + "qualities": [ + [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ], + [ { "id": "HAMMER", "level": 2 } ], + [ { "id": "DIG", "level": 2 } ] + ], + "tools": [ + [ [ "pickaxe", -1 ], [ "jackhammer", 30 ], [ "elec_jackhammer", 30 ] ], + [ + "miner_hat", + "hat_hard", + "firehelmet", + "helmet_ball", + "helmet_army", + "helmet_lobster", + "helmet_riot", + "tac_helmet", + "helmet_hsurvivor", + "helmet_survivor", + "helmet_xlsurvivor", + "miner_hat_on" + ] + ], + "//": "Helmets are essential because you're digging up and things may fall on you.", + "components": [ [ [ "2x4", 12 ], [ "log", 12 ] ], [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ] ], + "pre_special": "check_up_OK", + "pre_terrain": "t_rock", + "post_special": "done_mine_upstair" + }, + { + "type": "construction", + "description": "Start Vehicle Construction", + "//": "Rest of vehicle construction done in the vehicle construction menu", + "category": "OTHER", + "required_skills": [ [ "mechanics", 0 ] ], + "time": 10, + "//": "no components required, they are filled in at runtime based on the vehicle parts that can be used to start a vehicle", + "pre_special": "check_empty", + "post_special": "done_vehicle", + "vehicle_start": true + }, + { + "type": "construction", + "description": "Build Road Barricade", + "category": "OTHER", + "required_skills": [ [ "fabrication", 1 ] ], + "time": 30, + "qualities": [ [ { "id": "HAMMER", "level": 1 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 12 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_barricade_road" + }, + { + "type": "construction", + "description": "Build Pontoon Bridge", + "//": "Set up pontoon bridge", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 80, + "qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ], + "components": [ + [ [ "2x4", 8 ] ], + [ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ], + [ [ "55gal_drum", 2 ], [ "30gal_drum", 2 ], [ "wooden_barrel", 2 ] ] + ], + "pre_terrain": "t_water_dp", + "post_terrain": "t_pontoon_dp" + }, + { + "type": "construction", + "description": "Build Dock/Shallow Bridge", + "//": "Set up dock", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 80, + "qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ], + "components": [ [ [ "2x4", 6 ] ], [ [ "log", 1 ] ], [ [ "nail", 12 ] ] ], + "pre_terrain": "t_water_sh", + "post_terrain": "t_dock" + }, + { + "type": "construction", + "description": "Cut Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "pre_terrain": "t_grass_long", + "post_terrain": "t_grass", + "tools": [ [ [ "scythe", -1 ], [ "sickle", -1 ] ] ] + }, + { + "type": "construction", + "description": "Cut Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "pre_terrain": "t_grass_tall", + "post_terrain": "t_grass", + "tools": [ [ [ "scythe", -1 ], [ "sickle", -1 ] ] ] + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass_long", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass_tall", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass_dead", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass_golf", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Remove Grass", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 6, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "pre_terrain": "t_grass_white", + "post_terrain": "t_dirt" + }, + { + "type": "construction", + "description": "Extract Sand", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 30, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "byproducts": [ { "item": "material_sand", "charges": [ 300, 600 ] } ], + "pre_terrain": "t_sand", + "post_special": "done_extract_maybe_revert_to_dirt" + }, + { + "type": "construction", + "description": "Extract Clay", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": 30, + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "byproducts": [ { "item": "clay_lump", "count": [ 6, 12 ] } ], + "pre_terrain": "t_clay", + "post_special": "done_extract_maybe_revert_to_dirt" + }, + { + "type": "construction", + "description": "Build Charcoal Kiln", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 120, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ], + "components": [ [ [ "rock", 40 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_kiln_empty" + }, + { + "type": "construction", + "description": "Build Metal Charcoal Kiln", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ] ], + "time": 60, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "metal_tank", 4 ] ], [ [ "pipe", 4 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_kiln_metal_empty" + }, + { + "type": "construction", + "description": "Build Smoking Rack", + "category": "FURN", + "required_skills": [ [ "fabrication", 3 ], [ "cooking", 2 ] ], + "time": 90, + "qualities": [ + [ { "id": "DIG", "level": 1 } ], + [ { "id": "HAMMER", "level": 2 } ], + [ { "id": "CUT", "level": 1 } ], + [ { "id": "SAW_W", "level": 1 } ] + ], + "components": [ [ [ "stick", 16 ], [ "2x4", 16 ] ], [ [ "rock", 8 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_smoking_rack" + }, + { + "type": "construction", + "description": "Build Rock Forge", + "category": "FURN", + "required_skills": [ [ "fabrication", 5 ] ], + "time": 120, + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "rock", 40 ] ] ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_forge_rock" + }, + { + "type": "construction", + "description": "Build Clay Kiln", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ] ], + "time": 150, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ + [ [ "rock", 40 ] ], + [ [ "material_cement", 50 ], [ "mortar_build", 1 ], [ "clay_lump", 12 ] ], + [ [ "water", 2 ], [ "water_clean", 2 ] ] + ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_clay_kiln" + }, + { + "type": "construction", + "description": "Build Reinforced Glass Window", + "//": "Step 1 : metal frame", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 7 ] ], + "time": 90, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "spike", 8 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ], + "pre_special": "check_empty", + "post_terrain": "t_m_frame" + }, + { + "type": "construction", + "description": "Build Reinforced Glass Window", + "//": "Step 2 : Reinforced Glass", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 8 ] ], + "time": 150, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "reinforced_glass_sheet", 1 ] ] ], + "pre_terrain": "t_m_frame", + "post_terrain": "t_reinforced_glass" + }, + { + "type": "construction", + "description": "Build Reinforced Glass Window", + "//": "Step 3 : Metal shutters", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 8 ] ], + "time": 150, + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ], + "components": [ [ [ "steel_plate", 2 ] ] ], + "pre_terrain": "t_reinforced_glass", + "post_terrain": "t_reinforced_glass_shutter" + }, + { + "type": "construction", + "description": "Build Root Cellar", + "category": "CONSTRUCT", + "required_skills": [ [ "survival", 4 ], [ "fabrication", 4 ] ], + "time": 130, + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "rock", 40 ], [ "brick", 40 ] ], [ [ "2x4", 6 ], [ "stick", 6 ] ], [ [ "withered", 12 ], [ "straw_pile", 12 ] ] ], + "pre_note": "You need a deep pit to construct a root cellar.", + "pre_terrain": "t_pit", + "post_terrain": "t_rootcellar" + }, + { + "type": "construction", + "description": "Mark firewood source", + "category": "OTHER", + "required_skills": [ ], + "time": 0, + "pre_note": "Firewood or other flammable materials on a nearby tile marked in this way may be used to automatically refuel fires. This will be done to maintain light during long-running tasks that require it such as crafting or reading, but not (for example) if you are simply waiting nearby.", + "pre_special": "check_no_trap", + "post_special": "done_mark_firewood" + }, + { + "type": "construction", + "description": "Mark practice target", + "category": "OTHER", + "required_skills": [ ], + "time": 0, + "pre_note": "Mark a spot for target practice. Firing will automatically target the first practice target location found in gun range, if no enemies are around.", + "pre_special": "check_no_trap", + "post_special": "done_mark_practice_target" + }, + { + "type": "construction", + "description": "Build Butchering Rack", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ], [ "survival", 3 ] ], + "time": 45, + "qualities": [ [ { "id": "CUT", "level": 1 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ + [ [ "stick_long", 6 ] ], + [ [ "rope_natural_short", 1, "LIST" ], [ "cordage", 2, "LIST" ], [ "wire", 8 ] ], + [ [ "pointy_stick", 2 ], [ "spike", 2 ] ] + ], + "pre_note": "Can be deconstructed without tools.", + "pre_special": "check_empty", + "post_terrain": "f_butcher_rack" + }, { "type": "construction", "description": "Build Junk Metal Barrier", @@ -2512,20 +1992,18 @@ [ "pipe", 12 ] ] ], - "pre_special" : "check_empty", + "pre_special": "check_empty", "post_terrain": "t_junk_floor" }, { - "type" : "construction", - "description" : "Build Pillow Fort", - "category" : "CONSTRUCT", - "required_skills" : [ [ "fabrication", 0 ] ], - "time" : 15, - "components" : [ - [ [ "pillow", 19 ],[ "down_pillow", 19 ] ], - [ [ "down_blanket", 3 ], [ "blanket", 3 ], [ "fur_blanket", 3 ] ] - ], - "pre_terrain" : "t_floor", - "post_terrain" : "f_pillow_fort" + "type": "construction", + "description": "Build Pillow Fort", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ] ], + "time": 15, + "pre_special": "check_empty", + "components": [ [ [ "pillow", 19 ], [ "down_pillow", 19 ] ], [ [ "down_blanket", 3 ], [ "blanket", 3 ], [ "fur_blanket", 3 ] ] ], + "pre_terrain": "t_floor", + "post_terrain": "f_pillow_fort" } ] diff --git a/data/json/doll_speech.json b/data/json/doll_speech.json index 41005a65b5e44..9f040d2059a8b 100644 --- a/data/json/doll_speech.json +++ b/data/json/doll_speech.json @@ -1,163 +1,194 @@ [ - { - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Wanna play with me?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Sing with me!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "I love you!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Please take me with you!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "May I have a cookie?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Let's play together!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Time to play!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Om nom nom! Delicious!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Are you my mommy?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Oh, how fun!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "You're my best friend!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Heehee!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Let's have fun!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "Let's have a tea party!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "talking_doll", - "sound" : "You're the best!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "You shouldn't have done that.", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Let's play... Russian roulette.", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "I hate you.", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Go kill yourself!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Big Brother is watching you...", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Die for me!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Why won't you die?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Blood... Delicious.", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "See you... IN HELL!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "AAAIEEEEEEE!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "FUCK YOU!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "What did you do with my Mommy?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Stay with me... forever!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Hey kids. Want some candy?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Down here, they ALL float!", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "Do you really need that much honey?", - "volume" : 10 - },{ - "type" : "speech", - "speaker" : "creepy_doll", - "sound" : "My previous owner squealed like a pig when I gutted her!", - "volume" : 10 - } + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Wanna play with me?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Sing with me!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "I love you!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Please take me with you!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "May I have a cookie?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Let's play together!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Time to play!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Om nom nom! Delicious!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Are you my mommy?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Oh, how fun!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "You're my best friend!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Heehee!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Let's have fun!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "Let's have a tea party!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "talking_doll", + "sound": "You're the best!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "You shouldn't have done that.", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Let's play... Russian roulette.", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "I hate you.", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Go kill yourself!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Big Brother is watching you...", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Die for me!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Why won't you die?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Blood... Delicious.", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "See you... IN HELL!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "AAAIEEEEEEE!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "FUCK YOU!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "What did you do with my Mommy?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Stay with me... forever!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Hey kids. Want some candy?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Down here, they ALL float!", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "Do you really need that much honey?", + "volume": 10 + }, + { + "type": "speech", + "speaker": "creepy_doll", + "sound": "My previous owner squealed like a pig when I gutted her!", + "volume": 10 + } ] diff --git a/data/json/dreams.json b/data/json/dreams.json index e22597967c363..d4117daa0464e 100644 --- a/data/json/dreams.json +++ b/data/json/dreams.json @@ -1,698 +1,675 @@ [ - { - "type" : "dream", - "messages" : [ - "You have a strange dream about lizards.", - "Your dreams give you a strange scaly feeling." - ], - "category" : "LIZARD", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about being a patient in a frightening hospital.", - "Your dreams give you an oddly medicated feeling." - ], - "category" : "MEDICAL", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about birds.", - "Your dreams give you a strange feathered feeling." - ], - "category" : "BIRD", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about fish.", - "Your dreams give you a strange wet, scaly feeling." - ], - "category" : "FISH", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about animals.", - "Your dreams give you a strange furry feeling." - ], - "category" : "BEAST", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about bears.", - "Your dreams give you a rough furry feeling." - ], - "category" : "URSINE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about cats.", - "Your dreams give you a sleek furry feeling." - ], - "category" : "FELINE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about wolves.", - "Your dreams give you a thick furry feeling." - ], - "category" : "LUPINE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about cattle.", - "Your dreams give you a strange content, furry feeling." - ], - "category" : "CATTLE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about insects.", - "Your dreams give you a strange chitinous feeling." - ], - "category" : "INSECT", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about plants.", - "Your dreams give you a strange plantlike feeling." - ], - "category" : "PLANT", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about slime.", - "Your dreams give you a strange slimy feeling." - ], - "category" : "SLIME", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about living in a cave.", - "Your dreams give a strange reclusive feeling." - ], - "category" : "TROGLOBITE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about sea creatures.", - "Your dreams give you a strange wet feeling." - ], - "category" : "CEPHALOPOD", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about spiders.", - "Your dreams give you a strange webbed feeling." - ], - "category" : "SPIDER", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream about rats.", - "Your dreams give you a strange fuzzy feeling." - ], - "category" : "RAT", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream.", - "You feel... OK." - ], - "category" : "ALPHA", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream.", - "You feel a yearning..." - ], - "category" : "ELFA", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You dream about the zoo, for some reason.", - "Your dreams... are complex and multifaceted." - ], - "category" : "CHIMERA", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You dream of the tropics.", - "You feel warm." - ], - "category" : "RAPTOR", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You dream of a massive block of cheese bigger than you.", - "You dream of being cozy in a dark place." - ], - "category" : "MOUSE", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You dream of a strange quest for a bush that grows gray apples.", - "You feel like you're cracking a combination lock.", - "Red, blue, and yellow cancel each other out, don't they?", - "Red, blue, and yellow add together, don't they?" - ], - "category" : "MARLOSS", - "strength" : 1 - },{ - "type" : "dream", - "messages" : [ - "You have a disturbing dream of bathing in the sun on a rock.", - "While dreaming, you see a distinctively lizard-like reflection of yourself." - ], - "category" : "LIZARD", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a disturbing dream of undergoing strange medical procedures.", - "While dreaming, you see yourself dressed in a hospital gown, receiving treatment." - ], - "category" : "MEDICAL", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have strange dreams of soaring through the sky.", - "In a dream, you see a curiously birdlike reflection of yourself." - ], - "category" : "BIRD", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of swimming in the open ocean", - "In your dream, you see a strangely fishlike image of yourself." - ], - "category" : "FISH", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a vivid dream of hunting in the woods.", - "Whilst dreaming, you see a disturbingly bestial version of yourself." - ], - "category" : "BEAST", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of foraging in the woods... mouth-first?", - "Your dream-reflection is rather bearish." - ], - "category" : "URSINE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You easily bound from the street to a roof..oh, only a dream.", - "As you dream, your reflection looks rather catlike." - ], - "category" : "FELINE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a disturbing dream of someone invading your territory.", - "Your dream-self's muzzle looks... wait, muzzle?" - ], - "category" : "LUPINE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of grazing in an open field.", - "In a dream you catch a glimpse of a strangely cattle-like image of yourself." - ], - "category" : "CATTLE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a dream of working in a hive.", - "While dreaming you look into a mirror and see a frighteningly insectoid reflection." - ], - "category" : "INSECT", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a confusing dream of growing in a garden.", - "You are confused by a plantlike image of yourself in a dream." - ], - "category" : "PLANT", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream of living in sludge.", - "In your dream you see an odd, slimy reflection of yourself." - ], - "category" : "SLIME", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of living deep inside a dark cave.", - "You dream of being a primitive cave dweller." - ], - "category" : "TROGLOBITE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of living on the ocean floor.", - "While dreaming, a reflection of yourself appears almost like an octopus." - ], - "category" : "CEPHALOPOD", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You have a strange dream of spinning webs", - "In your dream you see a very spiderlike version of yourself." - ], - "category" : "SPIDER", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You vividly dream of living in the sewers.", - "In your dream you see a group of rats that look almost like yourself." - ], - "category" : "RAT", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of having that success you knew you deserved, back before all this.", - "Your dream-self looks competent and in control." - ], - "category" : "ALPHA", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of a home in the forests.", - "You feel beautiful, and yet riven with worry..." - ], - "category" : "ELFA", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You can't quite work out what the dream is about... it just keeps changing.", - "Your dream is filled with creatures, and yet all seem like you." - ], - "category" : "CHIMERA", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of stalking some sort of lizard... no, that can't be right, can it?", - "For some reason you dream of your shoes. They don't fit, and nothing seems to help..." - ], - "category" : "RAPTOR", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You dream of... sneaking.", - "You dream of a cold winter night. Your jacket is too big to put on." - ], - "category" : "MOUSE", - "strength" : 2 - },{ - "type" : "dream", - "messages" : [ - "You are terrified by a dream of becoming a lizard hybrid.", - "You have a disturbingly lifelike dream of living as a lizard." - ], - "category" : "LIZARD", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You have a dream of doctors and nurses doing unnatural things to your body, which brings you perverse pleasure.", - "You have a vivid dream of being a medical anomaly, as your heartbeat syncs with the steady drip of an IV line." - ], - "category" : "MEDICAL", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You have a realistic dream of flying south with your flock for the winter.", - "You are disturbed when your birdlike dreams are more lifelike than reality." - ], - "category" : "BIRD", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You have a disturbing dream of swimming with a school of fish.", - "When you wake up you panic about drowning from being out of water." - ], - "category" : "FISH", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You vividly dream of running with your pack, hunting a wild animal.", - "A terrifyingly real dream has you killing game with your bare teeth." - ], - "category" : "BEAST", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "Your dream of raiding a giant beehive has you licking your... muzzle in anticipation.", - "In your dream, you stalk and kill a young wolf, using only your teeth and claws." - ], - "category" : "URSINE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "A warm, sunny spot high up where you can watch your prey. What a great dream!", - "You dream of pursuing and killing a rat, for some reason." - ], - "category" : "FELINE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You dream of tearing into a fresh kill.", - "You dream of finally finding the perfect place to make your den." - ], - "category" : "LUPINE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You terrifyingly dream of being led to a slaughterhouse by a farmer.", - "You find it hard to wake from a vivid dream of grazing on a farm." - ], - "category" : "CATTLE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You are terrified by a dream of serving the hive queen mindlessly.", - "Your disturbingly lifelike dream has you pollinating plants." - ], - "category" : "INSECT", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You have a confusing and scary dream of becoming a plant.", - "The transition from your lifelike dreams of living as a plant to reality shocks you." - ], - "category" : "PLANT", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "Your vivid dream of living as a slime blob frightens you.", - "You find it hard to control your limbs after dreaming of amorphous blob life." - ], - "category" : "SLIME", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "Your dream of living in the dark for years is almost real.", - "You are frightened of the outside after your vivid dream of cave life." - ], - "category" : "TROGLOBITE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "Your dreams of living on the ocean floor seem more lifelike than reality.", - "You dream of living as a terrifying octopus mutant." - ], - "category" : "CEPHALOPOD", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You vividly dream of living in a web and consuming insects.", - "Your dreams of fully turning into a spider frighten you." - ], - "category" : "SPIDER", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You scream in fear while you dream of being chased by a cat", - "Your lifelike dreams have you scavenging food with a pack of rats." - ], - "category" : "RAT", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You see yourself, five years from now, as the leader of a successful city.", - "Your success in restoring civilization was only a dream. For now." - ], - "category" : "ALPHA", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "NO! You will not allow this corruption to prevail!", - "You see yourself reflected in the beauty of the forest." - ], - "category" : "ELFA", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You are many animals, and yet one.", - "Hoof. Talon. Tooth. Fight. Feed. Forward." - ], - "category" : "CHIMERA", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You've never felt so lithe and powerful.", - "After an exciting and tasty hunt, you retire to your nest. Mmm, yes, nest." - ], - "category" : "RAPTOR", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "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...", - "Once you finish your tasty dinner of seeds, you look around for your drink, but you already ate it." - ], - "category" : "MOUSE", - "strength" : 3 - },{ - "type" : "dream", - "messages" : [ - "You are terrified by a dream of becoming an ape hybrid.", - "You blissfully recall days spent lounging in the sun." - ], - "category" : "LIZARD", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You dream of your legions of undead admirers, their attentions, and the wonderful pain.", - "You have a vivid dream of being a medical anomaly, as your heartbeat syncs with the steady drip of an IV line." - ], - "category" : "MEDICAL", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You wonder if your nest will be good enough.", - "Your dream of soaring over the landscape becomes a nightmare when you find yourself with arms and a glider!" - ], - "category" : "BIRD", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You have a comforting dream of swimming with a school of fish.", - "The thought of being out of water, forced to crawl unsupported, terrifies you." - ], - "category" : "FISH", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You vividly dream of sharing a kill with your pack.", - "A fond memory of throating some prey animal bubbles up." - ], - "category" : "BEAST", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You wonder if you could find one of those 'salmon runs', or if they were just a legend...", - "Ah, the wolf-slaying dream again. That's a good one..." - ], - "category" : "URSINE", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "Boing! and you've pounced another yummy critter.", - "Your nightmare of sentient rats turns successful, as you grab their King and shake it apart!" - ], - "category" : "FELINE", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You dream of the hunt, the feed, and your pack.", - "Oh, you should really patrol your territory again, maybe expand." - ], - "category" : "LUPINE", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You dream of jumping the gate and leading your herd to freedom.", - "The herd moves along and you with them, finding greener pastures." - ], - "category" : "CATTLE", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You feel smug, knowing that the Queen is dependent on you.", - "You dream of a weirdly shaped plant, whose nectar surpassed your every wish..." - ], - "category" : "INSECT", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You dream of bees fighting over your sweet nectar. Mmm.", - "A rather attractive triffid offers you a bouquet of ape heads. How thoughtful!" - ], - "category" : "PLANT", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "Your vivid dream of your pseudopods calcifying into rigid structures terrifies you.", - "Ah, the painting-the-planet dream again. Maybe if you assimilated more..." - ], - "category" : "SLIME", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "The years seem to fly past as you dream of carving great underground fastnesses.", - "You have a horrible nightmare of being caught out in the sunlight." - ], - "category" : "TROGLOBITE", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "Mmm. The shellfish dream again. Yum!", - "You dream of recruiting a cult of fishfolk to serve your needs." - ], - "category" : "CEPHALOPOD", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You excitedly web up an interloper and prepare to feast... nope, dream.", - "Your dreams of having to live without a web frighten you." - ], - "category" : "SPIDER", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "The Fury is so big! It's GONNA GET YOAAAAAH! *pant* only a dream.", - "You find your paws twitching. There's a cave. You should go." - ], - "category" : "RAT", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You dream of the peaceful world you'll give humankind. Because no one else can.", - "There are underground Faults in the world. Faults you should remedy." - ], - "category" : "ALPHA", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You pant, terrified at the thought of that FUNGUS destroying your home!", - "You wish others could understand, and join your struggle..." - ], - "category" : "ELFA", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "Your body flows slightly faster than you expected... oh, just a dream.", - "FIGHT. FEED. FORWARD." - ], - "category" : "CHIMERA", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "Oh. No, that 'rex' thing was only a myth.", - "You stir, saddened that your beautiful hatchlings were only a dream." - ], - "category" : "RAPTOR", - "strength" : 4 - },{ - "type" : "dream", - "messages" : [ - "You curl up some more in your nest. Geez, shredded paper really *is* comfy.", - "You hear the sirens again, but this time you stay in your hole in the wall. Nobody will think to look there!" - ], - "category" : "MOUSE", - "strength" : 4 - },{ - "type" : "dream", - "//" : "The Mycus is ONLY post-thresh, so many more here.", - "messages" : [ - "We have been waiting a long time for a place such as this.", - "We will raise bountiful orchards and beautiful gardens.", - "The walking plants seek to harness us as a food source. We will not allow that.", - "Our colonists are limitless. We shall adapt to this world, as we adapt to all.", - "Non-Mycus sometimes reject the Marloss. Our colonial efforts flourish with broad-minded guidance.", - "The seething masses attempt to wall non-Mycus away from the Marloss. We will adapt and defeat them." - ], - "category" : "MYCUS", - "strength" : 4 - } + { + "type": "dream", + "messages": [ "You have a strange dream about lizards.", "Your dreams give you a strange scaly feeling." ], + "category": "LIZARD", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "You have a strange dream about being a patient in a frightening hospital.", + "Your dreams give you an oddly medicated feeling." + ], + "category": "MEDICAL", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about birds.", "Your dreams give you a strange feathered feeling." ], + "category": "BIRD", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about fish.", "Your dreams give you a strange wet, scaly feeling." ], + "category": "FISH", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about animals.", "Your dreams give you a strange furry feeling." ], + "category": "BEAST", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about bears.", "Your dreams give you a rough furry feeling." ], + "category": "URSINE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about cats.", "Your dreams give you a sleek furry feeling." ], + "category": "FELINE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about wolves.", "Your dreams give you a thick furry feeling." ], + "category": "LUPINE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about cattle.", "Your dreams give you a strange content, furry feeling." ], + "category": "CATTLE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about insects.", "Your dreams give you a strange chitinous feeling." ], + "category": "INSECT", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about plants.", "Your dreams give you a strange plantlike feeling." ], + "category": "PLANT", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about slime.", "Your dreams give you a strange slimy feeling." ], + "category": "SLIME", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about living in a cave.", "Your dreams give a strange reclusive feeling." ], + "category": "TROGLOBITE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about sea creatures.", "Your dreams give you a strange wet feeling." ], + "category": "CEPHALOPOD", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about spiders.", "Your dreams give you a strange webbed feeling." ], + "category": "SPIDER", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream about rats.", "Your dreams give you a strange fuzzy feeling." ], + "category": "RAT", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream.", "You feel... OK." ], + "category": "ALPHA", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You have a strange dream.", "You feel a yearning..." ], + "category": "ELFA", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You dream about the zoo, for some reason.", "Your dreams... are complex and multifaceted." ], + "category": "CHIMERA", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You dream of the tropics.", "You feel warm." ], + "category": "RAPTOR", + "strength": 1 + }, + { + "type": "dream", + "messages": [ "You dream of a massive block of cheese bigger than you.", "You dream of being cozy in a dark place." ], + "category": "MOUSE", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "You dream of a strange quest for a bush that grows gray apples.", + "You feel like you're cracking a combination lock.", + "Red, blue, and yellow cancel each other out, don't they?", + "Red, blue, and yellow add together, don't they?" + ], + "category": "MARLOSS", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "You have a disturbing dream of bathing in the sun on a rock.", + "While dreaming, you see a distinctively lizard-like reflection of yourself." + ], + "category": "LIZARD", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You have a disturbing dream of undergoing strange medical procedures.", + "While dreaming, you see yourself dressed in a hospital gown, receiving treatment." + ], + "category": "MEDICAL", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You have strange dreams of soaring through the sky.", + "In a dream, you see a curiously birdlike reflection of yourself." + ], + "category": "BIRD", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You dream of swimming in the open ocean", "In your dream, you see a strangely fishlike image of yourself." ], + "category": "FISH", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You have a vivid dream of hunting in the woods.", + "Whilst dreaming, you see a disturbingly bestial version of yourself." + ], + "category": "BEAST", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You dream of foraging in the woods... mouth-first?", "Your dream-reflection is rather bearish." ], + "category": "URSINE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You easily bound from the street to a roof..oh, only a dream.", + "As you dream, your reflection looks rather catlike." + ], + "category": "FELINE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You have a disturbing dream of someone invading your territory.", "Your dream-self's muzzle looks... wait, muzzle?" ], + "category": "LUPINE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You dream of grazing in an open field.", + "In a dream you catch a glimpse of a strangely cattle-like image of yourself." + ], + "category": "CATTLE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You have a dream of working in a hive.", + "While dreaming you look into a mirror and see a frighteningly insectoid reflection." + ], + "category": "INSECT", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You have a confusing dream of growing in a garden.", + "You are confused by a plantlike image of yourself in a dream." + ], + "category": "PLANT", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You have a strange dream of living in sludge.", "In your dream you see an odd, slimy reflection of yourself." ], + "category": "SLIME", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You dream of living deep inside a dark cave.", "You dream of being a primitive cave dweller." ], + "category": "TROGLOBITE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You dream of living on the ocean floor.", + "While dreaming, a reflection of yourself appears almost like an octopus." + ], + "category": "CEPHALOPOD", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You have a strange dream of spinning webs", "In your dream you see a very spiderlike version of yourself." ], + "category": "SPIDER", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You vividly dream of living in the sewers.", + "In your dream you see a group of rats that look almost like yourself." + ], + "category": "RAT", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You dream of having that success you knew you deserved, back before all this.", + "Your dream-self looks competent and in control." + ], + "category": "ALPHA", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You dream of a home in the forests.", "You feel beautiful, and yet riven with worry..." ], + "category": "ELFA", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You can't quite work out what the dream is about... it just keeps changing.", + "Your dream is filled with creatures, and yet all seem like you." + ], + "category": "CHIMERA", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You dream of stalking some sort of lizard... no, that can't be right, can it?", + "For some reason you dream of your shoes. They don't fit, and nothing seems to help..." + ], + "category": "RAPTOR", + "strength": 2 + }, + { + "type": "dream", + "messages": [ "You dream of... sneaking.", "You dream of a cold winter night. Your jacket is too big to put on." ], + "category": "MOUSE", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You are terrified by a dream of becoming a lizard hybrid.", + "You have a disturbingly lifelike dream of living as a lizard." + ], + "category": "LIZARD", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You have a dream of doctors and nurses doing unnatural things to your body, which brings you perverse pleasure.", + "You have a vivid dream of being a medical anomaly, as your heartbeat syncs with the steady drip of an IV line." + ], + "category": "MEDICAL", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You have a realistic dream of flying south with your flock for the winter.", + "You are disturbed when your birdlike dreams are more lifelike than reality." + ], + "category": "BIRD", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You have a disturbing dream of swimming with a school of fish.", + "When you wake up you panic about drowning from being out of water." + ], + "category": "FISH", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You vividly dream of running with your pack, hunting a wild animal.", + "A terrifyingly real dream has you killing game with your bare teeth." + ], + "category": "BEAST", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Your dream of raiding a giant beehive has you licking your... muzzle in anticipation.", + "In your dream, you stalk and kill a young wolf, using only your teeth and claws." + ], + "category": "URSINE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "A warm, sunny spot high up where you can watch your prey. What a great dream!", + "You dream of pursuing and killing a rat, for some reason." + ], + "category": "FELINE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ "You dream of tearing into a fresh kill.", "You dream of finally finding the perfect place to make your den." ], + "category": "LUPINE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You terrifyingly dream of being led to a slaughterhouse by a farmer.", + "You find it hard to wake from a vivid dream of grazing on a farm." + ], + "category": "CATTLE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You are terrified by a dream of serving the hive queen mindlessly.", + "Your disturbingly lifelike dream has you pollinating plants." + ], + "category": "INSECT", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You have a confusing and scary dream of becoming a plant.", + "The transition from your lifelike dreams of living as a plant to reality shocks you." + ], + "category": "PLANT", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Your vivid dream of living as a slime blob frightens you.", + "You find it hard to control your limbs after dreaming of amorphous blob life." + ], + "category": "SLIME", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Your dream of living in the dark for years is almost real.", + "You are frightened of the outside after your vivid dream of cave life." + ], + "category": "TROGLOBITE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Your dreams of living on the ocean floor seem more lifelike than reality.", + "You dream of living as a terrifying octopus mutant." + ], + "category": "CEPHALOPOD", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You vividly dream of living in a web and consuming insects.", + "Your dreams of fully turning into a spider frighten you." + ], + "category": "SPIDER", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You scream in fear while you dream of being chased by a cat", + "Your lifelike dreams have you scavenging food with a pack of rats." + ], + "category": "RAT", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You see yourself, five years from now, as the leader of a successful city.", + "Your success in restoring civilization was only a dream. For now." + ], + "category": "ALPHA", + "strength": 3 + }, + { + "type": "dream", + "messages": [ "NO! You will not allow this corruption to prevail!", "You see yourself reflected in the beauty of the forest." ], + "category": "ELFA", + "strength": 3 + }, + { + "type": "dream", + "messages": [ "You are many animals, and yet one.", "Hoof. Talon. Tooth. Fight. Feed. Forward." ], + "category": "CHIMERA", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "You've never felt so lithe and powerful.", + "After an exciting and tasty hunt, you retire to your nest. Mmm, yes, nest." + ], + "category": "RAPTOR", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "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...", + "Once you finish your tasty dinner of seeds, you look around for your drink, but you already ate it." + ], + "category": "MOUSE", + "strength": 3 + }, + { + "type": "dream", + "messages": [ "You are terrified by a dream of becoming an ape hybrid.", "You blissfully recall days spent lounging in the sun." ], + "category": "LIZARD", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You dream of your legions of undead admirers, their attentions, and the wonderful pain.", + "You have a vivid dream of being a medical anomaly, as your heartbeat syncs with the steady drip of an IV line." + ], + "category": "MEDICAL", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You wonder if your nest will be good enough.", + "Your dream of soaring over the landscape becomes a nightmare when you find yourself with arms and a glider!" + ], + "category": "BIRD", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You have a comforting dream of swimming with a school of fish.", + "The thought of being out of water, forced to crawl unsupported, terrifies you." + ], + "category": "FISH", + "strength": 4 + }, + { + "type": "dream", + "messages": [ "You vividly dream of sharing a kill with your pack.", "A fond memory of throating some prey animal bubbles up." ], + "category": "BEAST", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You wonder if you could find one of those 'salmon runs', or if they were just a legend...", + "Ah, the wolf-slaying dream again. That's a good one..." + ], + "category": "URSINE", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "Boing! and you've pounced another yummy critter.", + "Your nightmare of sentient rats turns successful, as you grab their King and shake it apart!" + ], + "category": "FELINE", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You dream of the hunt, the feed, and your pack.", + "Oh, you should really patrol your territory again, maybe expand." + ], + "category": "LUPINE", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You dream of jumping the gate and leading your herd to freedom.", + "The herd moves along and you with them, finding greener pastures." + ], + "category": "CATTLE", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You feel smug, knowing that the Queen is dependent on you.", + "You dream of a weirdly shaped plant, whose nectar surpassed your every wish..." + ], + "category": "INSECT", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You dream of bees fighting over your sweet nectar. Mmm.", + "A rather attractive triffid offers you a bouquet of ape heads. How thoughtful!" + ], + "category": "PLANT", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "Your vivid dream of your pseudopods calcifying into rigid structures terrifies you.", + "Ah, the painting-the-planet dream again. Maybe if you assimilated more..." + ], + "category": "SLIME", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "The years seem to fly past as you dream of carving great underground fastnesses.", + "You have a horrible nightmare of being caught out in the sunlight." + ], + "category": "TROGLOBITE", + "strength": 4 + }, + { + "type": "dream", + "messages": [ "Mmm. The shellfish dream again. Yum!", "You dream of recruiting a cult of fishfolk to serve your needs." ], + "category": "CEPHALOPOD", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You excitedly web up an interloper and prepare to feast... nope, dream.", + "Your dreams of having to live without a web frighten you." + ], + "category": "SPIDER", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "The Fury is so big! It's GONNA GET YOAAAAAH! *pant* only a dream.", + "You find your paws twitching. There's a cave. You should go." + ], + "category": "RAT", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You dream of the peaceful world you'll give humankind. Because no one else can.", + "There are underground Faults in the world. Faults you should remedy." + ], + "category": "ALPHA", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You pant, terrified at the thought of that FUNGUS destroying your home!", + "You wish others could understand, and join your struggle..." + ], + "category": "ELFA", + "strength": 4 + }, + { + "type": "dream", + "messages": [ "Your body flows slightly faster than you expected... oh, just a dream.", "FIGHT. FEED. FORWARD." ], + "category": "CHIMERA", + "strength": 4 + }, + { + "type": "dream", + "messages": [ "Oh. No, that 'rex' thing was only a myth.", "You stir, saddened that your beautiful hatchlings were only a dream." ], + "category": "RAPTOR", + "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You curl up some more in your nest. Geez, shredded paper really *is* comfy.", + "You hear the sirens again, but this time you stay in your hole in the wall. Nobody will think to look there!" + ], + "category": "MOUSE", + "strength": 4 + }, + { + "type": "dream", + "//": "The Mycus is ONLY post-thresh, so many more here.", + "messages": [ + "We have been waiting a long time for a place such as this.", + "We will raise bountiful orchards and beautiful gardens.", + "The walking plants seek to harness us as a food source. We will not allow that.", + "Our colonists are limitless. We shall adapt to this world, as we adapt to all.", + "Non-Mycus sometimes reject the Marloss. Our colonial efforts flourish with broad-minded guidance.", + "The seething masses attempt to wall non-Mycus away from the Marloss. We will adapt and defeat them." + ], + "category": "MYCUS", + "strength": 4 + } ] diff --git a/data/json/effects.json b/data/json/effects.json index 912c558467413..811f276369b42 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -1,1931 +1,1616 @@ [ - { - "type": "effect_type", - "id": "null" - }, - { - "//": "AI EFFECTS BELOW THIS", - "type": "effect_type", - "id": "hit_by_player", - "name": ["Hit By Player"], - "desc": ["AI tag for when monsters are hit by player. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "docile", - "name": ["Docile Monster"], - "desc": ["AI tag for when monsters are tamed. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "controlled", - "name": ["Controlled Monster"], - "desc": ["AI tag for when monsters are being controlled by another. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "run", - "name": ["Hit-and-run Running"], - "desc": ["AI tag for when hit-and-run monsters run away. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "countdown", - "name": ["Counting Down"], - "desc": ["AI tag for monster's counting down. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "no_ammo", - "name": ["No ammo"], - "desc": ["AI tag used to stop a monster reviving with ammo. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "asked_to_lead", - "name": ["Asked to Lead"], - "desc": ["AI tag for asking to lead NPCs. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "asked_to_follow", - "name": ["Asked to Follow"], - "desc": ["AI tag for asking to NPCs to follow you. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "asked_to_train", - "name": ["Asked to Train"], - "desc": ["AI tag for asking to NPCs to train you. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "asked_personal_info", - "name": ["Asked Info"], - "desc": ["AI tag for asking to NPCs for personal information. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "asked_for_item", - "name": ["Asked for Item"], - "desc": ["AI tag for asking NPCs for items. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "currently_busy", - "name": ["Currently Busy"], - "desc": ["AI cooldown tag for items or services. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "gave_quest_item", - "name": ["Already Gave Quest Item"], - "desc": ["AI tag to prevent you from getting multiple quest items. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "catch_up", - "name": ["Catch Up"], - "desc": ["AI tag for telling NPCs to catch up. This is a bug if you have it."], - "int_add_val": 1, - "max_intensity": 15 - }, - { - "type": "effect_type", - "id": "allow_sleep", - "name": ["Allow to Sleep"], - "desc": ["AI tag for telling NPCs to sleep. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "npc_said", - "name": ["Said Something Recently"], - "desc": ["AI tag to control NPC verbosity. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "infection", - "name": ["Infection"], - "desc": ["AI tag used for the infected NPC quest. This is a bug if you have it."], - "base_mods": { - "speed_mod": [-80] - } - }, - { - "type": "effect_type", - "id": "pet", - "name": ["Pet"], - "desc": ["AI tag used for pet critters. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "pacified", - "name": ["Pacified"], - "desc": ["AI tag used for pacified critters. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "has_bag", - "name": ["Has Bag"], - "desc": ["AI tag used for critters holding your bags. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "tied", - "name": ["Tied Up"], - "desc": ["AI tag used for tied up critters. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "shrieking", - "name": ["Shrieking"], - "desc": ["AI tag used for screecher sounds. This is a bug if you have it."], - "show_in_info": true - }, - { - "type": "effect_type", - "id": "targeted", - "name": ["Turret is Targeted"], - "desc": ["AI tag used for turret targeting sounds. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "bounced", - "name": ["Bounced"], - "desc": ["AI tag used for bouncing ammo targeting. This is a bug if you have it."] - }, - { - "type": "effect_type", - "id": "pushed", - "name": ["Pushed"], - "desc": ["AI tag used for monsters pushing each other. This is a bug if you have it."] - }, - { - "//": "ACTUAL PLAYER EFFECTS START HERE", - "type": "effect_type", - "id": "downed", - "name": ["Downed"], - "desc": ["You're knocked to the ground. You have to get up before you can move."], - "apply_message": "You're knocked to the floor!", - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "winded", - "name": ["Winded"], - "desc": ["You're short of breath. Running and fighting will be difficult until you recover."], - "apply_message": "Your breath gives out!", - "remove_message": "You catch your breath.", - "rating": "bad", - "base_mods": { - "per_mod": [-1], - "dex_mod": [-1], - "str_mod": [-4, -1], - "speed_mod": [-20], - "pain_min": [1], - "pain_chance": [1, 30], - "fatigue_min": [1], - "fatigue_chance": [1, 4], - "hunger_min": [1], - "hunger_chance": [1, 6], - "thirst_min": [1], - "thirst_chance": [1, 4] - } - }, - { - "type": "effect_type", - "id": "darkness", - "apply_message": "Your vision flickers and goes gray!", - "remove_message": "The world flickers back to normality.", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "stunned", - "name": ["Stunned"], - "desc": ["Your movement is randomized."], - "apply_message": "You're stunned!", - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "dazed", - "name": ["Dazed"], - "desc": ["You're visibly shaken up, and are having a hard time focusing on what's going on around you."], - "apply_message": "The scream dazes you!", - "rating": "bad", - "max_intensity": 10, - "int_add_val": 2, - "base_mods": { - "per_mod": [-5], - "dex_mod": [-2] - }, - "scaling_mods": { - "speed_mod": [-3] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "onfire", - "name": ["On Fire"], - "desc": ["Loss of health - Entire Body\nYour clothing and other equipment may be consumed by the flames."], - "remove_memorial_log": "Put out the fire.", - "apply_message": "You're on fire! Wait in place to attempt to put out the fire.", - "apply_memorial_log": "Caught on fire.", - "rating": "bad", - "max_intensity": 3, - "int_dur_factor": 5, - "max_duration": 50, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "bouldering", - "name": ["Unstable footing"], - "desc": ["Your footing is unstable. It's more difficult to fight while standing here."], - "apply_message": "You try to keep your balance.", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "blind", - "name": ["Blind"], - "desc": ["Range of Sight: 0. You cannot see anything."], - "removes_effects": ["glare", "darkness"], - "apply_message": "You're blinded!", - "remove_message": "Your sight returns!", - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "earphones", - "name": ["Wearing earphones"], - "desc": ["You are wearing earphones and can't hear much from outside world."], - "rating": "bad" - }, - { - "type": "effect_type", - "id": "deaf", - "name": [ - "Impaired hearing", - "Ringing ears", - "Deaf" - ], - "desc": [ - "Your hearing is impaired.", - "You can barely hear anything and your ears hurt.", - "You can't hear anything and your head aches from all the noise. You can't converse with NPCs." - ], - "apply_message": "Your ears ring!", - "remove_message": "You can hear again!", - "rating": "bad", - "max_intensity": 3, - "int_dur_factor": 100, - "base_mods": { - "pain_min": [1], - "pain_chance": [-50], - "pain_chance_bot": [1000] - }, - "scaling_mods": { - "pain_max_val": [5], - "pain_chance": [150] - } - }, - { - "type": "effect_type", - "id": "stung", - "name": ["Stung"], - "desc": ["You have been stung!"], - "rating": "bad", - "base_mods": { - "pain_min": [1] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "poison", - "name": ["Poisoned"], - "desc": ["You have been poisoned!"], - "miss_messages": [["You feel bad inside.", 1]], - "rating": "bad", - "resist_traits": ["POISRESIST"], - "pain_sizing": true, - "hurt_sizing": true, - "main_parts_only": true, - "base_mods": { - "per_mod": [-2, -1], - "dex_mod": [-1, -1], - "str_mod": [-2, 0], - "pain_min": [1], - "pain_chance": [150, 900], - "hurt_min": [1], - "hurt_chance": [450, 2700] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "badpoison", - "name": ["Badly Poisoned"], - "desc": ["You have been badly poisoned!"], - "miss_messages": [["You feel bad inside.", 2]], - "rating": "bad", - "resist_traits": ["POISRESIST"], - "pain_sizing": true, - "hurt_sizing": true, - "main_parts_only": true, - "base_mods": { - "per_mod": [-2], - "dex_mod": [-2], - "str_mod": [-3, -1], - "speed_mod": [-10], - "pain_min": [2], - "pain_chance": [100, 500], - "hurt_min": [1], - "hurt_max": [2], - "hurt_chance": [300, 1800] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "foodpoison", - "name": ["Food Poisoning"], - "desc": ["Your stomach is extremely upset, and you are quite nauseous."], - "miss_messages": [["Your stomach bothers you.", 1]], - "rating": "bad", - "resist_traits": ["POISRESIST"], - "base_mods": { - "per_mod": [-1], - "dex_mod": [-1], - "str_mod": [-3, -1], - "speed_mod": [-20], - "pain_min": [1], - "pain_chance": [300, 900], - "vomit_chance": [600, 1200] - } - }, - { - "type": "effect_type", - "id": "paralyzepoison", - "name": [ "Slowed", "Slowed", "Slowed", "Slowed", "Slowed", - "Sluggish", "Sluggish", "Sluggish", "Sluggish", "Sluggish", - "Partially Paralyzed", "Partially Paralyzed", "Partially Paralyzed", - "Partially Paralyzed", "Partially Paralyzed", - "Totally Paralyzed", "Totally Paralyzed", "Totally Paralyzed", - "Totally Paralyzed", "Totally Paralyzed" - ], - "desc": ["You are being slowed by a paralyzing poison!"], - "miss_messages": [["You feel stiff.", 3]], - "rating": "bad", - "max_intensity": 20, - "resist_traits": ["POISRESIST"], - "int_add_val": 1, - "int_decay_tick": 100, - "base_mods": { - "dex_mod": [-0.34, -0.17], - "speed_mod": [-5, -3] - }, - "scaling_mods": { - "dex_mod": [-0.34, -0.17], - "speed_mod": [-5, -3] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "nausea", - "name" : ["Nausea"], - "desc": ["You feel nauseous. Even a thought of food makes you feel sick."], - "remove_message": "You no longer feel nauseous.", - "rating": "bad", - "int_dur_factor": 300, - "max_intensity": 3, - "max_duration": 900, - "base_mods": { - "vomit_chance": [60] - } - }, - { - "type": "effect_type", - "id": "beartrap", - "name": ["Stuck in beartrap"], - "desc": ["You can't move until you get free!"], - "apply_message": "You are caught!", - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "glare", - "name": ["Glare"], - "desc": ["The sun is in your eyes."], - "apply_message": "The sunlight's glare makes it hard to see.", - "rating": "bad", - "base_mods": { - "per_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "laserlocked", - "name": ["Laser-targeted"], - "desc": ["A laser sight is targeting you!"], - "apply_message": "", - "max_duration": 5, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "was_laserlocked", - "name": [""], - "desc": [""], - "apply_message": "", - "max_duration": 5, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "smoke", - "name": [ { "ctxt": "inhaled", "str": "Smoke" } ], - "desc": ["You've inhaled a lungful of thick smoke."], - "apply_message": "You inhale a lungful of thick smoke.", - "rating": "bad", - "miss_messages": [["Your lungs burn from the smoke.", 1]], - "harmful_cough": true, - "max_duration": 600, - "base_mods" : { - "str_mod": [-1], - "dex_mod": [-1], - "cough_chance": [10] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "teargas", - "name": ["Tear gas"], - "desc": ["You've been exposed to tear gas!"], - "apply_message": "You inhale a lungful of tear gas.", - "rating": "bad", - "miss_messages": [["Your eyes burn from the tear gas.", 2]], - "harmful_cough": true, - "base_mods": { - "str_mod": [-2], - "dex_mod": [-2], - "per_mod": [-5], - "cough_chance": [3] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "boomered", - "name": ["Boomered"], - "desc": ["Range of Sight: 1; You are covered in magenta bile!"], - "apply_message": "You're covered in bile!", - "rating": "bad", - "base_mods": { - "per_mod": [-3], - "vomit_chance": [500] - } - }, - { - "type": "effect_type", - "id": "glowing", - "name": ["Glowing"], - "desc": ["You are covered in glowing goo!"], - "apply_message": "You're covered in a glowing goo!", - "rating": "bad", - "base_mods": { - "vomit_chance": [500] - } - }, - { - "type": "effect_type", - "id": "took_flumed" - }, - { - "type": "effect_type", - "id": "took_xanax", - "dur_add_perc": 22, - "base_mods": { - "stim_tick": [25], - "stim_min":[-1], - "stim_min_val":[-1] - } - }, - { - "type": "effect_type", - "id": "took_xanax_visible", - "name": ["Took Xanax"], - "desc": ["You took Xanax some time ago and you might still be under its influence."] - }, - { - "type": "effect_type", - "id": "took_prozac" - }, - { - "type": "effect_type", - "id": "took_prozac_bad" - }, - { - "type": "effect_type", - "id": "took_prozac_visible", - "name": ["Took Prozac"], - "desc": ["You took Prozac some time ago and you might still be under its influence."] - }, - { - "type": "effect_type", - "id": "in_pit", - "name": ["Stuck in Pit"], - "desc": ["You're stuck in a pit. Sight distance is limited and you have to climb out."], - "show_in_info": true - }, - { - "type": "effect_type", - "id": "pkill1", - "max_duration": 240, - "base_mods": { - "pkill_tick": [7], - "pkill_min": [1], - "pkill_max_val": [15] - } - }, - { - "type": "effect_type", - "id": "pkill2", - "pkill_addict_reduces": true, - "base_mods": { - "pkill_tick": [7], - "pkill_min": [2] - } - }, - { - "type": "effect_type", - "id": "pkill3", - "pkill_addict_reduces": true, - "base_mods": { - "pkill_tick": [2], - "pkill_min": [1] - } - }, - { - "type": "effect_type", - "id": "pkill_l", - "pkill_addict_reduces": true, - "base_mods": { - "pkill_max_val": [40], - "pkill_tick": [20], - "pkill_min": [1] - } - }, - { - "type": "effect_type", - "id": "webbed", - "name": ["Webbed"], - "desc": ["You are covered in webs!"], - "apply_message": "You're covered in webs!", - "rating": "bad", - "miss_messages": [["The webs constrict your movement.", 4]], - "max_intensity": 3, - "base_mods": { - "speed_mod": [-20] - }, - "scaling_mods": { - "speed_mod": [-5] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "bite", - "name": [ - "Bite", - "Painful Bite" - ], - "desc": ["You have a nasty bite wound."], - "apply_memorial_log": "Received a deep bite wound.", - "remove_memorial_log": "Recovered from a bite wound.", - "apply_message": "The bite wound feels really deep...", - "resist_traits": ["INFRESIST"], - "main_parts_only": true, - "rating": "bad", - "int_dur_factor": 1800, - "max_intensity": 2, - "scaling_mods": { - "dex_mod": [-1, 0], - "pain_chance_bot": [200], - "pain_chance": [2, 1], - "pain_min": [1], - "pain_max_val": [10, 5] - } - }, - { - "type": "effect_type", - "id": "infected", - "name": [ - "Infected", - "Badly Infected", - "Pus Filled" - ], - "desc": ["You have an infected wound."], - "apply_memorial_log": "Contracted an infection.", - "remove_memorial_log": "Recovered from an infection... this time.", - "apply_message": "Your bite wound feels infected.", - "resist_traits": ["INFRESIST"], - "main_parts_only": true, - "rating": "bad", - "int_dur_factor": 4800, - "max_intensity": 3, - "base_mods": { - "pain_chance": [2, 1], - "pain_chance_bot": [200], - "pain_min": [1], - "pain_max_val": [30, 20], - "str_mod": [-1], - "dex_mod": [-1], - "vomit_chance": [1000, 1200], - "sleep_min": [60, 30], - "sleep_chance": [-102] - }, - "scaling_mods": { - "pain_max_val": [30, 20], - "str_mod": [-1, -0.5], - "dex_mod": [-1, -0.5], - "vomit_chance": [-400], - "sleep_chance": [101] - } - }, - { - "type": "effect_type", - "id": "recover", - "name": ["Recovering From Infection"], - "desc": ["You are recovering from an infection."], - "rating": "bad", - "max_intensity": 3, - "int_dur_factor": 19200, - "base_mods": { - "pain_chance": [100], - "pain_min": [1], - "pain_max_val": [30], - "str_mod": [-1], - "dex_mod": [-1], - "vomit_chance": [1000], - "sleep_min": [60], - "sleep_chance": [-102] - }, - "scaling_mods": { - "pain_max_val": [30], - "str_mod": [-1], - "dex_mod": [-1], - "vomit_chance": [-400], - "sleep_chance": [101] - } - }, - { - "type": "effect_type", - "id": "bandaged", - "name": ["Bandaged"], - "desc": ["Your wounds are bandaged."], - "main_parts_only": true, - "rating": "good", - "int_dur_factor": 3600, - "max_intensity": 16, - "max_effective_intensity": 8, - "max_duration": 57600, - "base_mods": { - "healing_rate": [2], - "healing_head": [50], - "healing_torso": [150] - }, - "scaling_mods": { - "healing_rate": [2] - } - }, - { - "type": "effect_type", - "id": "disinfected", - "name": ["Disinfected"], - "desc": ["Your wounds are disinfected."], - "main_parts_only": true, - "rating": "good", - "int_dur_factor": 3600, - "max_intensity": 16, - "max_effective_intensity": 8, - "max_duration": 57600, - "base_mods": { - "healing_rate": [2], - "healing_head": [50], - "healing_torso": [150] - }, - "scaling_mods": { - "healing_rate": [2] - } - }, - { - "type": "effect_type", - "id": "spores", - "name": [ - "Spore dusted", - "Spore covered", - "Spore coated" - ], - "speed_name": "Spore covered", - "desc": ["You can feel the tiny spores sinking directly into your flesh."], - "max_intensity": 3, - "int_decay_tick": 120, - "int_add_val": 1, - "main_parts_only": true, - "base_mods": { - "speed_mod": [-7] - }, - "scaling_mods": { - "speed_mod": [-3] - } - }, - { - "type": "effect_type", - "id": "fungus", - "apply_memorial_log": "Contracted a fungal infection.", - "remove_memorial_log": "Cured the fungal infection.", - "miss_messages": [["You feel sick inside.", 1]], - "speed_name": "Fungal infection", - "rating": "bad", - "max_intensity": 3, - "resist_traits": ["POISRESIST"], - "base_mods": { - "speed_mod": [-10], - "str_mod": [-1], - "dex_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "visuals", - "name": ["Hallucinating"], - "desc": ["You can't trust everything that you see."], - "rating": "bad", - "base_mods": { - "int_mod": [-2], - "dex_mod": [-1], - "per_mod": [-4] - } - }, - { - "type": "effect_type", - "id": "rat", - "name": ["Ratting"], - "desc": ["You feel nauseous and rat-like."], - "max_intensity": 100, - "base_mods": { - "int_mod": [-0.5], - "str_mod": [-0.2], - "per_mod": [-0.4] - }, - "scaling_mods": { - "int_mod": [-0.5], - "str_mod": [-0.2], - "per_mod": [-0.4] - } - }, - { - "type": "effect_type", - "id": "pblue", - "base_mods": { - "rad_chance": [600], - "rad_min": [-1] - } - }, - { - "type": "effect_type", - "id": "iodine" - }, - { - "type": "effect_type", - "id": "shakes", - "name": ["Shakes"], - "desc": ["Your hands just won't stop shaking."], - "miss_messages": [["You tremble", 4]], - "base_mods": { - "str_mod": [-1], - "dex_mod": [-4] - } - }, - { - "type": "effect_type", - "id": "bleed", - "name": [ - "Bleeding", - "Bad Bleeding", - "Heavy Bleeding" - ], - "desc": [ - "You are slowly losing blood.", - "You are losing blood.", - "You are rapidly losing blood." - ], - "main_parts_only": true, - "apply_message": "You're bleeding!", - "rating": "bad", - "max_intensity": 3, - "int_decay_tick": 120, - "int_add_val": 1, - "base_mods": { - "str_mod": [-1], - "per_mod": [-1] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "slimed", - "name": ["Slimed"], - "desc": ["You're covered in thick goo!"], - "apply_message": "You're covered in thick goo!", - "rating": "bad", - "miss_messages": [["This goo makes you slip", 2]], - "base_mods": { - "dex_mod": [-2], - "speed_mod": [-25], - "vomit_chance": [2100] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "hallu", - "max_duration": 3600 - }, - { - "type": "effect_type", - "id": "cold", - "name": [ - "Chilly", - "Cold", - "Freezing" - ], - "desc": [ - "Your %s is exposed to the cold.", - "Your %s is very exposed to the cold.", - "Your %s is dangerously cold!" - ], - "speed_name": "Cold", - "max_intensity": 3, - "part_descs": true, - "base_mods": { - "speed_mod": [-2] - }, - "scaling_mods": { - "speed_mod": [-7], - "int_mod": [-0.5], - "dex_mod": [-0.5], - "hurt_min": [1], - "hurt_chance": [200], - "pkill_tick": [10], - "pkill_min": [1], - "pkill_max_val": [30], - "stamina_chance": [2], - "stamina_min": [-2] - } - }, - { - "type": "effect_type", - "id": "hot", - "name": [ - "Warm", - "Hot", - "Scorching" - ], - "desc": [ - "Your %s feels warm.", - "Your %s is sweating from the heat.", - "Your %s is sweating profusely!" - ], - "speed_name": "Hot", - "max_intensity": 3, - "part_descs": true, - "base_mods": { - "speed_mod": [-2], - "thirst_tick": [400], - "thirst_chance": [2], - "pain_min": [1], - "pain_chance": [2], - "pain_max_val": [-1], - "hurt_min": [1], - "hurt_chance": [-300], - "stamina_chance": [2] - }, - "scaling_mods": { - "speed_mod": [-4], - "thirst_min": [1], - "thirst_tick": [-100], - "pain_max_val": [10], - "hurt_chance": [200], - "stamina_min": [-1] - } - }, - { - "type": "effect_type", - "id": "frostbite", - "name": [ - "Frostnip", - "Frostbite" - ], - "desc": [ - "Your %s is frostnipped and has gone numb.", - "Your %s is frostbitten! Its tissues are frozen from the cold!" - ], - "part_descs": true, - "speed_name": "Frostbite", - "dur_add_perc": 0, - "max_intensity": 2, - "scaling_mods": { - "speed_mod": [-5] - } - }, - { - "type": "effect_type", - "id": "frostbite_recovery", - "name": ["Defrosting"], - "desc": ["Your %s is starting to feel the damage cold has wrought."], - "part_descs": true, - "base_mods": { - "pain_max_val": [40], - "pain_chance": [2], - "pain_min": [1] - } - }, - { - "type": "effect_type", - "id": "blisters", - "name": ["Blisters"], - "desc": ["Your %s is blistering from the intense heat."], - "main_parts_only": true, - "part_descs": true, - "miss_messages": [["Your blisters distract you", 1]], - "base_mods": { - "dex_mod": [-1], - "str_mod": [-1], - "per_mod": [-1], - "pain_max_val": [35], - "pain_chance": [2], - "pain_min": [1], - "hurt_chance": [4], - "hurt_min": [1] - } - }, - { - "type": "effect_type", - "id": "dermatik" - }, - { - "type": "effect_type", - "id": "formication", - "name": [ - "Itchy skin", - "Writhing skin", - "Bugs in skin" - ], - "desc": ["You stop to scratch yourself frequently; high INT helps you resist the urge."], - "apply_message": "Your skin feels extremely itchy!", - "rating": "bad", - "main_parts_only": true, - "max_intensity": 3, - "base_mods": { - "str_mod": [-0.34], - "int_mod": [-1] - }, - "scaling_mods": { - "str_mod": [-0.34], - "int_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "sap", - "name": ["Sap-coated"], - "desc": ["You're coated in sap!"], - "apply_message": "You're coated in sap!", - "rating": "bad", - "miss_messages": [["The sap's too sticky for you to fight effectively.", 3]], - "base_mods": { - "speed_mod": [-25], - "dex_mod": [-3] - } - }, - { - "type": "effect_type", - "id": "common_cold", - "name": ["Common Cold"], - "desc": ["You have contracted the 'Common Cold'. Symptoms can be alleviated by medication (cough syrup)."], - "apply_memorial_log": "Caught a cold.", - "remove_memorial_log": "Got over the cold.", - "apply_message": "You feel a cold coming on...", - "rating": "bad", - "resist_effects": ["took_flumed"], - "miss_messages": [["You're too stuffed up to fight effectively.", 1]], - "base_mods": { - "thirst_tick": [300], - "thirst_min": [1], - "fatigue_tick": [50], - "fatigue_min": [1], - "str_mod": [-3, -1], - "dex_mod": [-1, 0], - "per_mod": [-1, 0], - "int_mod": [-2, -1], - "cough_chance": [300, 0] - } - }, - { - "type": "effect_type", - "id": "flu", - "name": ["Influenza"], - "desc": ["You have contracted flu, or more technically speaking, the 'Influenza'. Symptoms can be alleviated by medication (cough syrup)."], - "apply_memorial_log": "Caught the flu.", - "remove_memorial_log": "Got over the flu.", - "apply_message": "You feel a flu coming on...", - "rating": "bad", - "resist_effects": ["took_flumed"], - "base_mods": { - "thirst_tick": [300], - "thirst_min": [1], - "fatigue_tick": [50], - "fatigue_min": [1], - "str_mod": [-4, -2], - "dex_mod": [-2, 0], - "per_mod": [-1, 0], - "int_mod": [-2, -1], - "pain_max_val": [15], - "pain_min": [1, 0], - "cough_chance": [300, 0], - "vomit_chance": [3600, 7200] - } - }, - { - "type": "effect_type", - "id": "flushot", - "blocks_effects": ["flu"] - }, - { - "type": "effect_type", - "id": "cureall", - "//": "This is the royal jelly effect, it should cure pretty much everything.", - "removes_effects": ["fungus", "dermatik", "bloodworms", "paincysts", "brainworms", "tapeworm", - "blind", "poison", "stung", "badpoison", "foodpoison", "paralyzepoison", - "tetanus", "infected", "asthma", "common_cold", "flu"], - "base_mods": { - "pkill_min": [5] - } - }, - { - "type": "effect_type", - "id": "evil" - }, - { - "type": "effect_type", - "id": "raising", - "int_add_val": 1, - "max_intensity": 100 - }, - { - "type": "effect_type", - "id": "attention" - }, - { - "type": "effect_type", - "id": "jetinjector", - "name": [ - "RX12 Healing Comedown", - "RX12 Healing Rush" - ], - "desc": [ - "You feel completely drained.", - "You feel the rush of stimulants in your body!" - ], - "apply_message": "You feel a rush as the chemicals flow through your body!", - "decay_messages": [["The jet injector's chemicals wear off. You feel AWFUL!", "bad"]], - "rating": "good", - "max_intensity": 2, - "int_dur_factor": 50, - "removes_effects": ["infected", "bite", "bleed", "fungus", "dermatik", "winded"], - "base_mods": { - "str_mod": [-1], - "dex_mod": [-2], - "per_mod": [-2], - "int_mod": [-1] - }, - "scaling_mods": { - "str_mod": [2], - "dex_mod": [3], - "per_mod": [3], - "int_mod": [1] - } - }, - { - "type": "effect_type", - "id": "stimpack", - "name": [ - "RX11 Stimulant Comedown", - "RX11 Stimulant Rush" - ], - "desc": [ - "You feel sluggish and slow.", - "An intense surge of stimulants pulses through your body." - ], - "apply_message": "You feel an intense surge of stimulants pulse through your body!", - "decay_messages": [["The stimulant combo is wearing off. You feel sluggish.", "bad"]], - "rating": "good", - "max_intensity": 2, - "int_dur_factor": 50, - "removes_effects": ["winded"], - "base_mods": { - "speed_mod": [-5], - "dex_mod": [-2], - "per_mod": [-1], - "int_mod": [-2] - }, - "scaling_mods": { - "speed_mod": [15], - "str_mod": [1], - "dex_mod": [4], - "per_mod": [4], - "int_mod": [-1], - "stamina_min": [4], - "stamina_max": [8] - } - }, - { - "type": "effect_type", - "id": "adrenaline", - "name": [ - "Adrenaline Comedown", - "Adrenaline Rush" - ], - "desc": [ - "You feel completely drained.", - "You feel the rush of adrenaline in your body!" - ], - "apply_message": "You feel a surge of adrenaline!", - "rating": "good", - "decay_messages": [["Your adrenaline rush wears off. You feel AWFUL!", "bad"]], - "miss_messages": [["Your comedown throws you off.", 1]], - "max_intensity": 2, - "int_dur_factor": 150, - "removes_effects": ["winded"], - "base_mods": { - "speed_mod": [-10], - "str_mod": [-2], - "dex_mod": [-2], - "int_mod": [-1], - "per_mod": [-1], - "stamina_min": [-2] - }, - "scaling_mods": { - "speed_mod": [30], - "str_mod": [5], - "dex_mod": [4], - "int_mod": [-7], - "per_mod": [2], - "stamina_min": [4] - } - }, - { - "type": "effect_type", - "id": "adrenaline_mycus", - "name": [ - "Mycus Respite", - "Mycus Wrath" - ], - "desc": [ - "Our fibers are stretched near breaking. Local power diverted to regenerate.", - "Our enemies are near, and violent action is imminent. We are turgid." - ], - "apply_message": "Mycal wrath fills our fibers, and we grow turgid.", - "rating": "good", - "decay_messages": [["We require repose; our fibers are nearly spent...", "bad"]], - "max_intensity": 2, - "int_dur_factor": 150, - "base_mods": { - "speed_mod": [-10], - "str_mod": [-2], - "dex_mod": [-2], - "int_mod": [-1], - "per_mod": [-1], - "stamina_min": [-2] - }, - "scaling_mods": { - "speed_mod": [30], - "str_mod": [5], - "dex_mod": [4], - "int_mod": [-7], - "per_mod": [2], - "stamina_min": [4] - } - }, - { - "type": "effect_type", - "id": "meth", - "name": [ - "Meth comedown", - "High on Meth" - ], - "max_intensity": 2, - "int_dur_factor": 200, - "base_mods": { - "speed_mod": [-20], - "str_mod": [-3], - "dex_mod": [-2], - "int_mod": [-1], - "per_mod": [-2], - "vomit_chance": [2000], - "stamina_min": [-4] - }, - "scaling_mods": { - "speed_mod": [30], - "str_mod": [4], - "dex_mod": [4], - "int_mod": [3], - "per_mod": [5], - "fatigue_min": [1], - "stamina_min": [8] - } - }, - { - "type": "effect_type", - "id": "cig", - "name": ["Nicotine"], - "desc": [ - "You had a puff or two.", - "You smoked too much." - ], - "max_intensity": 2, - "int_dur_factor": 600, - "base_mods": { - "int_mod": [1], - "per_mod": [1] - }, - "scaling_mods": { - "str_mod": [-1], - "dex_mod": [-1], - "int_mod": [-1], - "per_mod": [-1], - "vomit_chance": [500] - } - }, - { - "type": "effect_type", - "id": "teleglow" - }, - { - "type": "effect_type", - "id": "high", - "name": ["High"], - "desc": ["You are high as a kite."], - "apply_message": "You feel lightheaded.", - "base_mods": { - "int_mod": [-1], - "per_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "weed_high", - "apply_message": "You feel lightheaded.", - "miss_messages": [["That critter's jumping around like a jitterbug! It needs to mellow out.", 1]], - "base_mods": { - "str_mod": [-1], - "dex_mod": [-1], - "per_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "contacts", - "name": ["Contact Lenses"], - "desc": ["You are wearing contact lenses."], - "apply_message": "You can see more clearly.", - "remove_message": "Your vision starts to blur.", - "rating": "good" - }, - { - "type": "effect_type", - "id": "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?" ], - "max_intensity": 4, - "apply_message": "You feel lightheaded.", - "int_dur_factor": 1000, - "miss_messages": [["You feel woozy.", 1]], - "base_mods": { - "str_mod": [1], - "vomit_chance": [-43], - "sleep_chance": [-1003], - "sleep_min": [2500], - "sleep_max": [3500] - }, - "scaling_mods": { - "str_mod": [-0.67], - "per_mod": [-1], - "dex_mod": [-1], - "int_mod": [-1.42], - "vomit_chance": [21], - "sleep_chance": [501] - } - }, - { - "type": "effect_type", - "id": "amigara", - "apply_message": "You can't look away from the faultline...", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "fearparalyze", - "name": ["Feared"], - "desc": ["You have been paralyzed by the fear."], - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "asthma", - "name": [ - "Asthma", - "Asthma", - "Asthma", - "Asthma", - "Heavy Asthma", - "Heavy Asthma" - ], - "desc": [ "You suffer from a respiratory disorder that makes breathing difficult.\nAn asthma attack can occur from time to time, so have your inhaler nearby." ], - "apply_message": "You can't breathe... asthma attack!", - "rating": "bad", - "max_intensity": 6, - "int_dur_factor": 200, - "miss_messages": [["You're winded.", 3]], - "base_mods": { - "str_mod": [-2], - "dex_mod": [-3], - "speed_mod": [-20] - }, - "scaling_mods": { - "speed_mod": [-40] - } - }, - { - "type": "effect_type", - "id": "crushed", - "apply_message": "The ceiling collapses on you!", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "stemcell_treatment", - "name": ["Stem cell treatment"], - "desc": ["Your insides are shifting in strange ways as the treatment takes effect."], - "apply_message": "You receive a pureed bone & enamel injection into your eyeball.", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "valium", - "removes_effects": ["shakes"], - "base_mods": { - "stim_tick": [25], - "stim_chance": [2], - "stim_min": [1], - "stim_min_val": [-1] - } - }, - { - "type": "effect_type", - "id": "took_anticonvulsant_visible", - "name": ["Took anticonvulsant drugs"], - "desc": ["You took anticonvulsant drugs some time ago and you might still be under its influence.\nPrescription note says its effect duration may vary, so your estimate may be inaccurate."] - }, - { - "type": "effect_type", - "id": "music" - }, - { - "type": "effect_type", - "id": "relax_gas", - "name": ["Relaxation gas"], - "desc": ["You are thoroughly relaxed and don't feel like moving. Fighting? Too much effort."], - "apply_message": "You inhale sweetish gas.", - "remove_message": "The slackness leaves your muscles.", - "rating": "bad", - "base_mods": { - "str_mod": [-3], - "dex_mod": [-3], - "int_mod": [-2], - "per_mod": [-4] - } - }, - { - "type": "effect_type", - "id": "tapeworm", - "rating": "bad", - "base_mods": { - "hunger_chance": [50], - "hunger_min": [1] - } - }, - { - "type": "effect_type", - "id": "bloodworms", - "rating": "bad", - "base_mods": { - "thirst_tick": [100], - "thirst_min": [1], - "h_mod_chance": [512], - "h_mod_min": [-10], - "cough_chance": [300, 0] - } - }, - { - "type": "effect_type", - "id": "brainworms", - "rating": "bad", - "base_mods": { - "pain_chance": [512], - "pain_min": [2], - "pain_max": [8], - "h_mod_chance": [512], - "h_mod_min": [-10] - } - }, - { - "type": "effect_type", - "id": "paincysts", - "rating": "bad", - "base_mods": { - "pain_chance": [256], - "pain_min": [1], - "pain_max": [4], - "fatigue_chance": [256], - "fatigue_min": [1] - } - }, - { - "type": "effect_type", - "id": "tetanus", - "rating": "bad", - "resist_effects": ["valium"], - "base_mods": { - "dex_mod": [-4, 0] - } - }, - { - "type": "effect_type", - "id": "datura", - "name": ["Experiencing Datura"], - "desc": ["Buy the ticket, take the ride. The datura has you now."], - "rating": "bad", - "base_mods": { - "per_mod": [-6], - "dex_mod": [-3], - "thirst_chance": [8], - "thirst_min": [1], - "thirst_max_val": [20] - } - }, - { - "type": "effect_type", - "id": "grabbed", - "name": ["Grabbed"], - "desc": ["You have been grabbed by an attack.\nYou are being held in place and cannot dodge, and blocking is very difficult."], - "rating": "bad", - "max_duration": 2, - "max_intensity": 15, - "base_mods": { - "speed_mod": [-15] - }, - "scaling_mods": { - "speed_mod": [-5] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "lack_sleep", - "name": ["Lacking Sleep"], - "desc": ["You haven't slept in a while, and it shows."], - "apply_message": "You are too physically tired to function well.", - "rating": "bad", - "miss_messages": [["You don't have energy to fight.", 1]], - "base_mods": { - "speed_mod": [-5], - "str_mod": [-1], - "dex_mod": [-1], - "int_mod": [-2], - "per_mod": [-2] - } - }, - { - "type": "effect_type", - "id": "lying_down", - "apply_message": "You lie down to go to sleep...", - "rating": "neutral", - "max_duration": 3000 - }, - { - "type": "effect_type", - "id": "sleep", - "apply_message": "You fall asleep.", - "remove_message": "You wake up.", - "rating": "neutral", - "max_intensity": 24 - }, - { - "type": "effect_type", - "id": "narcosis" - }, - { - "type": "effect_type", - "id": "alarm_clock" - }, - { - "type": "effect_type", - "id": "slept_through_alarm" - }, - { - "type": "effect_type", - "name": ["Playing an instrument"], - "desc": ["You're playing an instrument.\nFocusing on playing music distracts you, slowing you down."], - "id": "playing_instrument", - "rating": "neutral", - "max_duration": 2, - "max_intensity": 100, - "base_mods": { - "speed_mod": [-1] - }, - "scaling_mods": { - "speed_mod": [-1] - } - }, - { - "//": "On roof of a vehicle, aiming a turret", - "type": "effect_type", - "id": "on_roof" - }, - { - "type": "effect_type", - "id": "corroding", - "name": ["Corroding"], - "desc": ["You're covered in acid!"], - "apply_message": "You're covered in acid!", - "rating": "bad", - "max_duration": 30, - "max_intensity": 5, - "int_dur_factor": 5, - "base_mods": { - "hurt_min": [1], - "hurt_chance": [1], - "hurt_chance_bot": [10] - }, - "scaling_mods": { - "hurt_chance": [1] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "zapped", - "name": ["Zapped"], - "desc": ["You've been zapped with electricity and are barely able to move!"], - "apply_message": "You're zapped!", - "rating": "bad", - "max_duration": 2, - "dur_add_perc": 20, - "base_mods": { - "speed_mod": [-1000], - "dex_mod": [-100] - }, - "show_in_info": true - }, - { - "type": "effect_type", - "id": "hypocalcemia", - "name": [ "Hypocalcemia", "Weak bones", "Brittle bones" ], - "desc": [ "A lack of calcium in your diet will make your bones progressively weaker." ], - "apply_message": "Your bones are becoming more brittle.", - "remove_message": "Your bones regain their usual strength.", - "decay_messages": [ - [ "Your calcium deficiency is nearly resolved.", "good" ], - [ "Your bones become stronger as your calcium deficiency improves.", "good" ] - ], - "max_intensity": 3, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "anemia", - "name": [ "Iron deficiency", "Early anemia", "Anemia" ], - "desc": [ "A lack of iron in your diet will result in progressively worsening anemia." ], - "apply_message": "You begin feeling increasingly tired and listless.", - "remove_message": "You no longer feel anemic.", - "decay_messages": [ - [ "Your iron deficiency is nearly resolved.", "good" ], - [ "Your feel stronger as your anemia starts to improve.", "good" ] - ], - "max_intensity": 3, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "hypovitA", - "name": [ "VitA deficiency", "Poor vision", "Night blindness" ], - "desc": [ "A lack of vitamin A in your diet will progressively worsen your vision." ], - "apply_message": "You start struggling to make out the finer details.", - "remove_message": "Your normal visual acuity returns.", - "decay_messages": [ - [ "Your vitamin A deficiency is nearly resolved.", "good" ], - [ "Your vision improves as your Vitamin A deficiency improves.", "good" ] - ], - "max_intensity": 3, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "hypovitB", - "name": [ "B12 deficiency", "Slow healing", "No healing" ], - "desc": [ "A lack of vitamin B12 in your diet will affect your ability to heal." ], - "apply_message": "Simple wounds are starting to concern you more than usual.", - "remove_message": "Your wounds now heal normally.", - "decay_messages": [ - [ "Your vitamin B12 deficiency is starting to resolve.", "good" ], - [ "Your ability to heal returns as your Vitamin B12 deficiency improves.", "good" ] - ], - "max_intensity": 3, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "scurvy", - "name": [ "Early scurvy", "Scurvy", "Bad Scurvy" ], - "desc": [ "A lack of vitamin C in your diet will result in progressively worse symptoms of scurvy." ], - "apply_message": "You start to develop symptoms of scurvy.", - "remove_message": "Your scurvy has resolved.", - "decay_messages": [ - [ "Your vitamin C deficiency is starting to resolve.", "good" ], - [ "Your scurvy lessens as your Vitamin C deficiency improves.", "good" ] - ], - "max_intensity": 3, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "hypervitaminosis", - "name": [ "Hypervitaminosis" ], - "desc": [ "An excess of vitamins has badly affected your metabolism." ], - "apply_message": "Your metabolism becomes unstable.", - "remove_message": "Your metabolism becomes more stable.", - "rating": "bad" - }, - { - "type": "effect_type", - "id": "cough_suppress" - }, - { - "type": "effect_type", - "id": "haslight", - "name": [ "Lit up" ], - "desc": [ "You are carrying a light and can't hide well." ], - "max_duration": 1, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "mending", - "name": [ "Started recovery", "Recovering", "Mostly recovered" ], - "desc": [ "This damaged limb is slowly regaining its functions." ], - "//": "Duration is 10 days, but the actual time taken is probabilistic.", - "max_duration": 144000, - "int_dur_factor": 36000, - "max_intensity": 3, - "rating": "good" - }, - { - "type": "effect_type", - "id": "disabled", - "name": [ { "ctxt": "physically", "str": "Disabled" } ], - "desc": [ "This limb is damaged beyond use and may require a splint to recover." ], - "//": "This sounds weird. We need tag or something", - "apply_message": "Your limb breaks!", - "remove_message": "The broken limb has mended.", - "max_duration": 2, - "rating": "bad" - }, - { - "type": "effect_type", - "id": "milked", - "name": [ "Milked" ], - "desc": [ "The creature has been partially or fully milked." ], - "max_duration": 14400 - }, - { - "type": "effect_type", - "id": "pkill", - "name": [ "Painkillers" ], - "desc": [ "You are under the influence of analgesic substances to relieve pain, but they may numb you a bit." ], - "max_intensity": 30, - "int_dur_factor": 10, - "scaling_mods": { - "speed_mod": [-1] - } - }, - { - "type": "effect_type", - "id": "happy", - "name": [ "Happy", "Happy", "Happy", "Happy", "Happy", - "Joyful", "Joyful", "Joyful", "Joyful", "Joyful", - "Elated" ], - "desc": [ "Life is good.", "Life is good.", "Life is good.", "Life is good.", "Life is good.", - "Oh what a day! What a lovely day!", - "Oh what a day! What a lovely day!", "Oh what a day! What a lovely day!", - "Oh what a day! What a lovely day!", "Oh what a day! What a lovely day!", - "I'm on top of the world, baby!" ], - "max_intensity": 25, - "int_dur_factor": 10, - "scaling_mods": { - "speed_mod": [0.42], - "str_mod": [0.06], - "dex_mod": [0.05], - "int_mod": [0.084], - "per_mod": [0.1] - } - }, - { - "type": "effect_type", - "id": "sad", - "name": [ "Unhappy", "Unhappy", "Unhappy", "Unhappy", "Unhappy", - "Sad", "Sad", "Sad", "Sad", "Sad", - "Depressed" ], - "desc": [ "You are not content with your life.", "You are not content with your life.", - "You are not content with your life.", "You are not content with your life.", - "You are not content with your life.", "This is not what you planned for your life.", - "This is not what you planned for your life.", "This is not what you planned for your life.", - "This is not what you planned for your life.", "This is not what you planned for your life.", - "When will all your suffering end?" ], - "max_intensity": 1000, - "int_dur_factor": 10, - "scaling_mods": { - "speed_mod": [-0.42], - "str_mod": [-0.06], - "dex_mod": [-0.05], - "int_mod": [-0.084], - "per_mod": [-0.1] - }, - "miss_messages": [ [ "What's the point of fighting?", 1 ] ] - }, - { - "type": "effect_type", - "id": "irradiated", - "name": [ "Irradiated" ], - "desc": [ "You suffer symptoms of a radiation sickness that weakens your body." ], - "max_intensity": 2000, - "int_dur_factor": 10, - "scaling_mods": { - "speed_mod": [-0.2], - "str_mod": [-0.125], - "dex_mod": [-0.09], - "int_mod": [-0.1], - "per_mod": [-0.083] - }, - "miss_messages": [ [ "Radiation weakens you.", 1 ] ] - }, - { - "type": "effect_type", - "id": "stim", - "name": [ "Stimulants" ], - "desc": [ "You're very jittery and pumped up, probably from some stimulants." ], - "max_intensity": 1000, - "int_dur_factor": 1, - "scaling_mods": { - "speed_mod": [0.33], - "dex_mod": [0.1], - "int_mod": [0.16], - "per_mod": [0.14] - } - }, - { - "type": "effect_type", - "id": "depressants", - "name": [ "Depressants" ], - "desc": [ "You are under the influence of depressants, and in a bit of a daze." ], - "max_intensity": 1000, - "int_dur_factor": 1, - "scaling_mods": { - "speed_mod": [-0.25], - "dex_mod": [-0.1], - "int_mod": [-0.16], - "per_mod": [-0.14] - }, - "miss_messages": [ [ "You feel woozy.", 1 ] ] - }, - { - "type": "effect_type", - "id": "stim_overdose", - "name": [ "Stimulant Overdose" ], - "desc": [ "You can't sit still as you feel your heart pounding out of your chest. You probably overdosed on those stims." ], - "max_intensity": 1000, - "int_dur_factor": 1, - "base_mods": { - "dex_mod": [-1.88], - "int_mod": [-1.1], - "per_mod": [-1.25] - }, - "scaling_mods": { - "speed_mod": [-0.25], - "dex_mod": [-0.125], - "int_mod": [-0.0833], - "per_mod": [-0.071] - }, - "miss_messages": [ [ "You shake with the excess stimulation.", 1 ] ] - }, - { - "type": "effect_type", - "id": "weak_antibiotic_visible", - "name": ["Took weak antibiotic"], - "desc": [ "You consumed mild antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." ] - }, - { - "type": "effect_type", - "id": "antibiotic_visible", - "name": ["Took antibiotic"], - "desc": [ "You consumed antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." ] - }, - { - "type": "effect_type", - "id": "strong_antibiotic_visible", - "name": ["Took strong antibiotic"], - "desc": [ "You consumed prescription-grade antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." ] - }, - { - "type": "effect_type", - "id": "weak_antibiotic" - }, - { - "type": "effect_type", - "id": "antibiotic" - }, - { - "type": "effect_type", - "id": "strong_antibiotic" - }, - { - "type": "effect_type", - "id": "panacea", - "name": [ "Panacea" ], - "desc": [ "You feel incredible! You could take on the world!" ], - "max_duration": 10, - "base_mods": { - "speed_mod": [20], - "str_mod": [2], - "dex_mod": [2], - "int_mod": [2], - "per_mod": [2] - } - }, - { - "//": "This effect is a dummy effect for disabling certain things for a few turns after an electromagnetic pulse and does nothing on its own", - "type": "effect_type", - "id": "emp", - "name": [ "Discharge" ], - "desc": [ "You've been recently affected by an electromagnetic pulse." ], - "max_duration": 30 - }, - { - "type": "effect_type", - "id": "supercharged", - "//": "not given to players by default", - "name": [ "Supercharged" ], - "desc": [ "You've been struck by lightning, and feel... different." ], - "base_mods": { - "speed_mod": [50] - } - }, - { - "type": "effect_type", - "id": "has_og_comm_freq" - }, - { - "type": "effect_type", - "id": "has_prospectus" + { + "type": "effect_type", + "id": "null" + }, + { + "//": "AI EFFECTS BELOW THIS", + "type": "effect_type", + "id": "hit_by_player", + "name": [ "Hit By Player" ], + "desc": [ "AI tag for when monsters are hit by player. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "docile", + "name": [ "Docile Monster" ], + "desc": [ "AI tag for when monsters are tamed. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "controlled", + "name": [ "Controlled Monster" ], + "desc": [ "AI tag for when monsters are being controlled by another. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "run", + "name": [ "Hit-and-run Running" ], + "desc": [ "AI tag for when hit-and-run monsters run away. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "countdown", + "name": [ "Counting Down" ], + "desc": [ "AI tag for monster's counting down. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "no_ammo", + "name": [ "No ammo" ], + "desc": [ "AI tag used to stop a monster reviving with ammo. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_to_lead", + "name": [ "Asked to Lead" ], + "desc": [ "AI tag for asking to lead NPCs. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_to_follow", + "name": [ "Asked to Follow" ], + "desc": [ "AI tag for asking to NPCs to follow you. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_to_train", + "name": [ "Asked to Train" ], + "desc": [ "AI tag for asking to NPCs to train you. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_to_socialize", + "name": [ "Asked to socialize" ], + "desc": [ "AI tag: for having recently asked an NPC to socialize. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_personal_info", + "name": [ "Asked Info" ], + "desc": [ "AI tag for asking to NPCs for personal information. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "asked_for_item", + "name": [ "Asked for Item" ], + "desc": [ "AI tag for asking NPCs for items. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "currently_busy", + "name": [ "Currently Busy" ], + "desc": [ "AI cooldown tag for items or services. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "gave_quest_item", + "name": [ "Already Gave Quest Item" ], + "desc": [ "AI tag to prevent you from getting multiple quest items. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "catch_up", + "name": [ "Catch Up" ], + "desc": [ "AI tag for telling NPCs to catch up. This is a bug if you have it." ], + "int_add_val": 1, + "max_intensity": 15 + }, + { + "type": "effect_type", + "id": "allow_sleep", + "name": [ "Allow to Sleep" ], + "desc": [ "AI tag for telling NPCs to sleep. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "npc_said", + "name": [ "Said Something Recently" ], + "desc": [ "AI tag to control NPC verbosity. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "infection", + "name": [ "Infection" ], + "desc": [ "AI tag used for the infected NPC quest. This is a bug if you have it." ], + "base_mods": { "speed_mod": [ -80 ] } + }, + { + "type": "effect_type", + "id": "pet", + "name": [ "Pet" ], + "desc": [ "AI tag used for pet critters. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "pacified", + "name": [ "Pacified" ], + "desc": [ "AI tag used for pacified critters. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "has_bag", + "name": [ "Has Bag" ], + "desc": [ "AI tag used for critters holding your bags. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "tied", + "name": [ "Tied Up" ], + "desc": [ "AI tag used for tied up critters. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "shrieking", + "name": [ "Shrieking" ], + "desc": [ "AI tag used for screecher sounds. This is a bug if you have it." ], + "show_in_info": true + }, + { + "type": "effect_type", + "id": "targeted", + "name": [ "Turret is Targeted" ], + "desc": [ "AI tag used for turret targeting sounds. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "bounced", + "name": [ "Bounced" ], + "desc": [ "AI tag used for bouncing ammo targeting. This is a bug if you have it." ] + }, + { + "type": "effect_type", + "id": "pushed", + "name": [ "Pushed" ], + "desc": [ "AI tag used for monsters pushing each other. This is a bug if you have it." ] + }, + { + "//": "ACTUAL PLAYER EFFECTS START HERE", + "type": "effect_type", + "id": "downed", + "name": [ "Downed" ], + "desc": [ "You're knocked to the ground. You have to get up before you can move." ], + "apply_message": "You're knocked to the floor!", + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "winded", + "name": [ "Winded" ], + "desc": [ "You're short of breath. Running and fighting will be difficult until you recover." ], + "apply_message": "Your breath gives out!", + "remove_message": "You catch your breath.", + "rating": "bad", + "base_mods": { + "per_mod": [ -1 ], + "dex_mod": [ -1 ], + "str_mod": [ -4, -1 ], + "speed_mod": [ -20 ], + "pain_min": [ 1 ], + "pain_chance": [ 1, 30 ], + "fatigue_min": [ 1 ], + "fatigue_chance": [ 1, 4 ], + "hunger_min": [ 1 ], + "hunger_chance": [ 1, 6 ], + "thirst_min": [ 1 ], + "thirst_chance": [ 1, 4 ] + } + }, + { + "type": "effect_type", + "id": "darkness", + "apply_message": "Your vision flickers and goes gray!", + "remove_message": "The world flickers back to normality.", + "rating": "bad" + }, + { + "type": "effect_type", + "id": "stunned", + "name": [ "Stunned" ], + "desc": [ "Your movement is randomized." ], + "apply_message": "You're stunned!", + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "dazed", + "name": [ "Dazed" ], + "desc": [ "You're visibly shaken up, and are having a hard time focusing on what's going on around you." ], + "apply_message": "The scream dazes you!", + "rating": "bad", + "max_intensity": 10, + "int_add_val": 2, + "base_mods": { "per_mod": [ -5 ], "dex_mod": [ -2 ] }, + "scaling_mods": { "speed_mod": [ -3 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "onfire", + "name": [ "On Fire" ], + "desc": [ "Loss of health - Entire Body\nYour clothing and other equipment may be consumed by the flames." ], + "remove_memorial_log": "Put out the fire.", + "apply_message": "You're on fire! Wait in place to attempt to put out the fire.", + "apply_memorial_log": "Caught on fire.", + "rating": "bad", + "max_intensity": 3, + "int_dur_factor": 5, + "max_duration": 50, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "bouldering", + "name": [ "Unstable footing" ], + "desc": [ "Your footing is unstable. It's more difficult to fight while standing here." ], + "apply_message": "You try to keep your balance.", + "rating": "bad" + }, + { + "type": "effect_type", + "id": "blind", + "name": [ "Blind" ], + "desc": [ "Range of Sight: 0. You cannot see anything." ], + "removes_effects": [ "glare", "darkness" ], + "apply_message": "You're blinded!", + "remove_message": "Your sight returns!", + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "earphones", + "name": [ "Wearing earphones" ], + "desc": [ "You are wearing earphones and can't hear much from outside world." ], + "rating": "bad" + }, + { + "type": "effect_type", + "id": "deaf", + "name": [ "Impaired hearing", "Ringing ears", "Deaf" ], + "desc": [ + "Your hearing is impaired.", + "You can barely hear anything and your ears hurt.", + "You can't hear anything and your head aches from all the noise. You can't converse with NPCs." + ], + "apply_message": "Your ears ring!", + "remove_message": "You can hear again!", + "rating": "bad", + "max_intensity": 3, + "int_dur_factor": 100, + "base_mods": { "pain_min": [ 1 ], "pain_chance": [ -50 ], "pain_chance_bot": [ 1000 ] }, + "scaling_mods": { "pain_max_val": [ 5 ], "pain_chance": [ 150 ] } + }, + { + "type": "effect_type", + "id": "stung", + "name": [ "Stung" ], + "desc": [ "You have been stung!" ], + "rating": "bad", + "base_mods": { "pain_min": [ 1 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "poison", + "name": [ "Poisoned" ], + "desc": [ "You have been poisoned!" ], + "miss_messages": [ [ "You feel bad inside.", 1 ] ], + "rating": "bad", + "resist_traits": [ "POISRESIST" ], + "pain_sizing": true, + "hurt_sizing": true, + "main_parts_only": true, + "base_mods": { + "per_mod": [ -2, -1 ], + "dex_mod": [ -1, -1 ], + "str_mod": [ -2, 0 ], + "pain_min": [ 1 ], + "pain_chance": [ 150, 900 ], + "hurt_min": [ 1 ], + "hurt_chance": [ 450, 2700 ] + }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "badpoison", + "name": [ "Badly Poisoned" ], + "desc": [ "You have been badly poisoned!" ], + "miss_messages": [ [ "You feel bad inside.", 2 ] ], + "rating": "bad", + "resist_traits": [ "POISRESIST" ], + "pain_sizing": true, + "hurt_sizing": true, + "main_parts_only": true, + "base_mods": { + "per_mod": [ -2 ], + "dex_mod": [ -2 ], + "str_mod": [ -3, -1 ], + "speed_mod": [ -10 ], + "pain_min": [ 2 ], + "pain_chance": [ 100, 500 ], + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ 300, 1800 ] + }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "foodpoison", + "name": [ "Food Poisoning" ], + "desc": [ "Your stomach is extremely upset, and you are quite nauseous." ], + "miss_messages": [ [ "Your stomach bothers you.", 1 ] ], + "rating": "bad", + "resist_traits": [ "POISRESIST" ], + "base_mods": { + "per_mod": [ -1 ], + "dex_mod": [ -1 ], + "str_mod": [ -3, -1 ], + "speed_mod": [ -20 ], + "pain_min": [ 1 ], + "pain_chance": [ 300, 900 ], + "vomit_chance": [ 600, 1200 ] + } + }, + { + "type": "effect_type", + "id": "paralyzepoison", + "name": [ + "Slowed", + "Slowed", + "Slowed", + "Slowed", + "Slowed", + "Sluggish", + "Sluggish", + "Sluggish", + "Sluggish", + "Sluggish", + "Partially Paralyzed", + "Partially Paralyzed", + "Partially Paralyzed", + "Partially Paralyzed", + "Partially Paralyzed", + "Totally Paralyzed", + "Totally Paralyzed", + "Totally Paralyzed", + "Totally Paralyzed", + "Totally Paralyzed" + ], + "desc": [ "You are being slowed by a paralyzing poison!" ], + "miss_messages": [ [ "You feel stiff.", 3 ] ], + "rating": "bad", + "max_intensity": 20, + "resist_traits": [ "POISRESIST" ], + "int_add_val": 1, + "int_decay_tick": 100, + "base_mods": { "dex_mod": [ -0.34, -0.17 ], "speed_mod": [ -5, -3 ] }, + "scaling_mods": { "dex_mod": [ -0.34, -0.17 ], "speed_mod": [ -5, -3 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "nausea", + "name": [ "Nausea" ], + "desc": [ "You feel nauseous. Even a thought of food makes you feel sick." ], + "remove_message": "You no longer feel nauseous.", + "rating": "bad", + "int_dur_factor": 300, + "max_intensity": 3, + "max_duration": 900, + "base_mods": { "vomit_chance": [ 60 ] } + }, + { + "type": "effect_type", + "id": "beartrap", + "name": [ "Stuck in beartrap" ], + "desc": [ "You can't move until you get free!" ], + "apply_message": "You are caught!", + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "glare", + "name": [ "Glare" ], + "desc": [ "The sun is in your eyes." ], + "apply_message": "The sunlight's glare makes it hard to see.", + "rating": "bad", + "base_mods": { "per_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "laserlocked", + "name": [ "Laser-targeted" ], + "desc": [ "A laser sight is targeting you!" ], + "apply_message": "", + "max_duration": 5, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "was_laserlocked", + "name": [ "" ], + "desc": [ "" ], + "apply_message": "", + "max_duration": 5, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "smoke", + "name": [ { "ctxt": "inhaled", "str": "Smoke" } ], + "desc": [ "You've inhaled a lungful of thick smoke." ], + "apply_message": "You inhale a lungful of thick smoke.", + "rating": "bad", + "miss_messages": [ [ "Your lungs burn from the smoke.", 1 ] ], + "harmful_cough": true, + "max_duration": 600, + "base_mods": { "str_mod": [ -1 ], "dex_mod": [ -1 ], "cough_chance": [ 10 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "teargas", + "name": [ "Tear gas" ], + "desc": [ "You've been exposed to tear gas!" ], + "apply_message": "You inhale a lungful of tear gas.", + "rating": "bad", + "miss_messages": [ [ "Your eyes burn from the tear gas.", 2 ] ], + "harmful_cough": true, + "max_duration": 1800, + "base_mods": { "str_mod": [ -2 ], "dex_mod": [ -2 ], "per_mod": [ -5 ], "speed_mod": [ -10 ], "cough_chance": [ 5 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "boomered", + "name": [ "Boomered" ], + "desc": [ "Range of Sight: 1; You are covered in magenta bile!" ], + "apply_message": "You're covered in bile!", + "rating": "bad", + "base_mods": { "per_mod": [ -3 ], "vomit_chance": [ 500 ] } + }, + { + "type": "effect_type", + "id": "glowing", + "name": [ "Glowing" ], + "desc": [ "You are covered in glowing goo!" ], + "apply_message": "You're covered in a glowing goo!", + "rating": "bad", + "base_mods": { "vomit_chance": [ 500 ] } + }, + { + "type": "effect_type", + "id": "took_flumed" + }, + { + "type": "effect_type", + "id": "took_xanax", + "dur_add_perc": 22, + "base_mods": { "stim_tick": [ 25 ], "stim_min": [ -1 ], "stim_min_val": [ -1 ] } + }, + { + "type": "effect_type", + "id": "took_xanax_visible", + "name": [ "Took Xanax" ], + "desc": [ "You took Xanax some time ago and you might still be under its influence." ] + }, + { + "type": "effect_type", + "id": "took_prozac" + }, + { + "type": "effect_type", + "id": "took_prozac_bad" + }, + { + "type": "effect_type", + "id": "took_prozac_visible", + "name": [ "Took Prozac" ], + "desc": [ "You took Prozac some time ago and you might still be under its influence." ] + }, + { + "type": "effect_type", + "id": "in_pit", + "name": [ "Stuck in Pit" ], + "desc": [ "You're stuck in a pit. Sight distance is limited and you have to climb out." ], + "show_in_info": true + }, + { + "type": "effect_type", + "id": "pkill1", + "max_duration": 240, + "base_mods": { "pkill_tick": [ 7 ], "pkill_min": [ 1 ], "pkill_max_val": [ 15 ] } + }, + { + "type": "effect_type", + "id": "pkill2", + "pkill_addict_reduces": true, + "base_mods": { "pkill_tick": [ 7 ], "pkill_min": [ 2 ] } + }, + { + "type": "effect_type", + "id": "pkill3", + "pkill_addict_reduces": true, + "base_mods": { "pkill_tick": [ 2 ], "pkill_min": [ 1 ] } + }, + { + "type": "effect_type", + "id": "pkill_l", + "pkill_addict_reduces": true, + "base_mods": { "pkill_max_val": [ 40 ], "pkill_tick": [ 20 ], "pkill_min": [ 1 ] } + }, + { + "type": "effect_type", + "id": "webbed", + "name": [ "Webbed" ], + "desc": [ "You are covered in webs!" ], + "apply_message": "You're covered in webs!", + "rating": "bad", + "miss_messages": [ [ "The webs constrict your movement.", 4 ] ], + "max_intensity": 3, + "base_mods": { "speed_mod": [ -20 ] }, + "scaling_mods": { "speed_mod": [ -5 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "bite", + "name": [ "Bite", "Painful Bite" ], + "desc": [ "You have a nasty bite wound." ], + "apply_memorial_log": "Received a deep bite wound.", + "remove_memorial_log": "Recovered from a bite wound.", + "apply_message": "The bite wound feels really deep...", + "resist_traits": [ "INFRESIST" ], + "main_parts_only": true, + "rating": "bad", + "int_dur_factor": 1800, + "max_intensity": 2, + "scaling_mods": { + "dex_mod": [ -1, 0 ], + "pain_chance_bot": [ 200 ], + "pain_chance": [ 2, 1 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10, 5 ] + } + }, + { + "type": "effect_type", + "id": "infected", + "name": [ "Infected", "Badly Infected", "Pus Filled" ], + "desc": [ "You have an infected wound." ], + "apply_memorial_log": "Contracted an infection.", + "remove_memorial_log": "Recovered from an infection... this time.", + "apply_message": "Your bite wound feels infected.", + "resist_traits": [ "INFRESIST" ], + "main_parts_only": true, + "rating": "bad", + "int_dur_factor": 4800, + "max_intensity": 3, + "base_mods": { + "pain_chance": [ 2, 1 ], + "pain_chance_bot": [ 200 ], + "pain_min": [ 1 ], + "pain_max_val": [ 30, 20 ], + "str_mod": [ -1 ], + "dex_mod": [ -1 ], + "vomit_chance": [ 1000, 1200 ], + "sleep_min": [ 60, 30 ], + "sleep_chance": [ -102 ] + }, + "scaling_mods": { + "pain_max_val": [ 30, 20 ], + "str_mod": [ -1, -0.5 ], + "dex_mod": [ -1, -0.5 ], + "vomit_chance": [ -400 ], + "sleep_chance": [ 101 ] + } + }, + { + "type": "effect_type", + "id": "recover", + "name": [ "Recovering From Infection" ], + "desc": [ "You are recovering from an infection." ], + "rating": "bad", + "max_intensity": 3, + "int_dur_factor": 19200, + "base_mods": { + "pain_chance": [ 100 ], + "pain_min": [ 1 ], + "pain_max_val": [ 30 ], + "str_mod": [ -1 ], + "dex_mod": [ -1 ], + "vomit_chance": [ 1000 ], + "sleep_min": [ 60 ], + "sleep_chance": [ -102 ] + }, + "scaling_mods": { "pain_max_val": [ 30 ], "str_mod": [ -1 ], "dex_mod": [ -1 ], "vomit_chance": [ -400 ], "sleep_chance": [ 101 ] } + }, + { + "type": "effect_type", + "id": "bandaged", + "name": [ "Bandaged" ], + "desc": [ "Your wounds are bandaged." ], + "main_parts_only": true, + "rating": "good", + "int_dur_factor": 3600, + "max_intensity": 16, + "max_effective_intensity": 8, + "max_duration": 57600, + "base_mods": { "healing_rate": [ 2 ], "healing_head": [ 50 ], "healing_torso": [ 150 ] }, + "scaling_mods": { "healing_rate": [ 2 ] } + }, + { + "type": "effect_type", + "id": "disinfected", + "name": [ "Disinfected" ], + "desc": [ "Your wounds are disinfected." ], + "main_parts_only": true, + "rating": "good", + "int_dur_factor": 3600, + "max_intensity": 16, + "max_effective_intensity": 8, + "max_duration": 57600, + "base_mods": { "healing_rate": [ 2 ], "healing_head": [ 50 ], "healing_torso": [ 150 ] }, + "scaling_mods": { "healing_rate": [ 2 ] } + }, + { + "type": "effect_type", + "id": "spores", + "name": [ "Spore dusted", "Spore covered", "Spore coated" ], + "speed_name": "Spore covered", + "desc": [ "You can feel the tiny spores sinking directly into your flesh." ], + "max_intensity": 3, + "int_decay_tick": 120, + "int_add_val": 1, + "main_parts_only": true, + "base_mods": { "speed_mod": [ -7 ] }, + "scaling_mods": { "speed_mod": [ -3 ] } + }, + { + "type": "effect_type", + "id": "fungus", + "apply_memorial_log": "Contracted a fungal infection.", + "remove_memorial_log": "Cured the fungal infection.", + "miss_messages": [ [ "You feel sick inside.", 1 ] ], + "speed_name": "Fungal infection", + "rating": "bad", + "max_intensity": 3, + "resist_traits": [ "POISRESIST" ], + "base_mods": { "speed_mod": [ -10 ], "str_mod": [ -1 ], "dex_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "visuals", + "name": [ "Hallucinating" ], + "desc": [ "You can't trust everything that you see." ], + "rating": "bad", + "base_mods": { "int_mod": [ -2 ], "dex_mod": [ -1 ], "per_mod": [ -4 ] } + }, + { + "type": "effect_type", + "id": "rat", + "name": [ "Ratting" ], + "desc": [ "You feel nauseous and rat-like." ], + "max_intensity": 100, + "base_mods": { "int_mod": [ -0.5 ], "str_mod": [ -0.2 ], "per_mod": [ -0.4 ] }, + "scaling_mods": { "int_mod": [ -0.5 ], "str_mod": [ -0.2 ], "per_mod": [ -0.4 ] } + }, + { + "type": "effect_type", + "id": "pblue", + "base_mods": { "rad_chance": [ 600 ], "rad_min": [ -1 ] } + }, + { + "type": "effect_type", + "id": "iodine" + }, + { + "type": "effect_type", + "id": "shakes", + "name": [ "Shakes" ], + "desc": [ "Your hands just won't stop shaking." ], + "miss_messages": [ [ "You tremble", 4 ] ], + "base_mods": { "str_mod": [ -1 ], "dex_mod": [ -4 ] } + }, + { + "type": "effect_type", + "id": "bleed", + "name": [ "Bleeding", "Bad Bleeding", "Heavy Bleeding" ], + "desc": [ "You are slowly losing blood.", "You are losing blood.", "You are rapidly losing blood." ], + "main_parts_only": true, + "apply_message": "You're bleeding!", + "rating": "bad", + "max_intensity": 3, + "int_decay_tick": 120, + "int_add_val": 1, + "base_mods": { "str_mod": [ -1 ], "per_mod": [ -1 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "slimed", + "name": [ "Slimed" ], + "desc": [ "You're covered in thick goo!" ], + "apply_message": "You're covered in thick goo!", + "rating": "bad", + "miss_messages": [ [ "This goo makes you slip", 2 ] ], + "base_mods": { "dex_mod": [ -2 ], "speed_mod": [ -25 ], "vomit_chance": [ 2100 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "hallu", + "max_duration": 3600 + }, + { + "type": "effect_type", + "id": "cold", + "name": [ "Chilly", "Cold", "Freezing" ], + "desc": [ "Your %s is exposed to the cold.", "Your %s is very exposed to the cold.", "Your %s is dangerously cold!" ], + "speed_name": "Cold", + "max_intensity": 3, + "part_descs": true, + "base_mods": { "speed_mod": [ -2 ] }, + "scaling_mods": { + "speed_mod": [ -7 ], + "int_mod": [ -0.5 ], + "dex_mod": [ -0.5 ], + "hurt_min": [ 1 ], + "hurt_chance": [ 200 ], + "pkill_tick": [ 10 ], + "pkill_min": [ 1 ], + "pkill_max_val": [ 30 ], + "stamina_chance": [ 2 ], + "stamina_min": [ -2 ] + } + }, + { + "type": "effect_type", + "id": "hot", + "name": [ "Warm", "Hot", "Scorching" ], + "desc": [ "Your %s feels warm.", "Your %s is sweating from the heat.", "Your %s is sweating profusely!" ], + "speed_name": "Hot", + "max_intensity": 3, + "part_descs": true, + "base_mods": { + "speed_mod": [ -2 ], + "thirst_tick": [ 400 ], + "thirst_chance": [ 2 ], + "pain_min": [ 1 ], + "pain_chance": [ 2 ], + "pain_max_val": [ -1 ], + "hurt_min": [ 1 ], + "hurt_chance": [ -300 ], + "stamina_chance": [ 2 ] + }, + "scaling_mods": { + "speed_mod": [ -4 ], + "thirst_min": [ 1 ], + "thirst_tick": [ -100 ], + "pain_max_val": [ 10 ], + "hurt_chance": [ 200 ], + "stamina_min": [ -1 ] + } + }, + { + "type": "effect_type", + "id": "frostbite", + "name": [ "Frostnip", "Frostbite" ], + "desc": [ "Your %s is frostnipped and has gone numb.", "Your %s is frostbitten! Its tissues are frozen from the cold!" ], + "part_descs": true, + "speed_name": "Frostbite", + "dur_add_perc": 0, + "max_intensity": 2, + "scaling_mods": { "speed_mod": [ -5 ] } + }, + { + "type": "effect_type", + "id": "frostbite_recovery", + "name": [ "Defrosting" ], + "desc": [ "Your %s is starting to feel the damage cold has wrought." ], + "part_descs": true, + "base_mods": { "pain_max_val": [ 40 ], "pain_chance": [ 2 ], "pain_min": [ 1 ] } + }, + { + "type": "effect_type", + "id": "blisters", + "name": [ "Blisters" ], + "desc": [ "Your %s is blistering from the intense heat." ], + "main_parts_only": true, + "part_descs": true, + "miss_messages": [ [ "Your blisters distract you", 1 ] ], + "base_mods": { + "dex_mod": [ -1 ], + "str_mod": [ -1 ], + "per_mod": [ -1 ], + "pain_max_val": [ 35 ], + "pain_chance": [ 2 ], + "pain_min": [ 1 ], + "hurt_chance": [ 4 ], + "hurt_min": [ 1 ] + } + }, + { + "type": "effect_type", + "id": "dermatik" + }, + { + "type": "effect_type", + "id": "formication", + "name": [ "Itchy skin", "Writhing skin", "Bugs in skin" ], + "desc": [ "You stop to scratch yourself frequently; high INT helps you resist the urge." ], + "apply_message": "Your skin feels extremely itchy!", + "rating": "bad", + "main_parts_only": true, + "max_intensity": 3, + "base_mods": { "str_mod": [ -0.34 ], "int_mod": [ -1 ] }, + "scaling_mods": { "str_mod": [ -0.34 ], "int_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "sap", + "name": [ "Sap-coated" ], + "desc": [ "You're coated in sap!" ], + "apply_message": "You're coated in sap!", + "rating": "bad", + "miss_messages": [ [ "The sap's too sticky for you to fight effectively.", 3 ] ], + "base_mods": { "speed_mod": [ -25 ], "dex_mod": [ -3 ] } + }, + { + "type": "effect_type", + "id": "common_cold", + "name": [ "Common Cold" ], + "desc": [ "You have contracted the 'Common Cold'. Symptoms can be alleviated by medication (cough syrup)." ], + "apply_memorial_log": "Caught a cold.", + "remove_memorial_log": "Got over the cold.", + "apply_message": "You feel a cold coming on...", + "rating": "bad", + "resist_effects": [ "took_flumed" ], + "miss_messages": [ [ "You're too stuffed up to fight effectively.", 1 ] ], + "base_mods": { + "thirst_tick": [ 300 ], + "thirst_min": [ 1 ], + "fatigue_tick": [ 50 ], + "fatigue_min": [ 1 ], + "str_mod": [ -3, -1 ], + "dex_mod": [ -1, 0 ], + "per_mod": [ -1, 0 ], + "int_mod": [ -2, -1 ], + "cough_chance": [ 300, 0 ] + } + }, + { + "type": "effect_type", + "id": "flu", + "name": [ "Influenza" ], + "desc": [ + "You have contracted flu, or more technically speaking, the 'Influenza'. Symptoms can be alleviated by medication (cough syrup)." + ], + "apply_memorial_log": "Caught the flu.", + "remove_memorial_log": "Got over the flu.", + "apply_message": "You feel a flu coming on...", + "rating": "bad", + "resist_effects": [ "took_flumed" ], + "base_mods": { + "thirst_tick": [ 300 ], + "thirst_min": [ 1 ], + "fatigue_tick": [ 50 ], + "fatigue_min": [ 1 ], + "str_mod": [ -4, -2 ], + "dex_mod": [ -2, 0 ], + "per_mod": [ -1, 0 ], + "int_mod": [ -2, -1 ], + "pain_max_val": [ 15 ], + "pain_min": [ 1, 0 ], + "cough_chance": [ 300, 0 ], + "vomit_chance": [ 3600, 7200 ] + } + }, + { + "type": "effect_type", + "id": "flushot", + "blocks_effects": [ "flu" ] + }, + { + "type": "effect_type", + "id": "cureall", + "//": "This is the royal jelly effect, it should cure pretty much everything.", + "removes_effects": [ + "fungus", + "dermatik", + "bloodworms", + "paincysts", + "brainworms", + "tapeworm", + "blind", + "poison", + "stung", + "badpoison", + "foodpoison", + "paralyzepoison", + "tetanus", + "infected", + "asthma", + "common_cold", + "flu" + ], + "base_mods": { "pkill_min": [ 5 ] } + }, + { + "type": "effect_type", + "id": "evil" + }, + { + "type": "effect_type", + "id": "raising", + "int_add_val": 1, + "max_intensity": 100 + }, + { + "type": "effect_type", + "id": "attention" + }, + { + "type": "effect_type", + "id": "jetinjector", + "name": [ "RX12 Healing Comedown", "RX12 Healing Rush" ], + "desc": [ "You feel completely drained.", "You feel the rush of stimulants in your body!" ], + "apply_message": "You feel a rush as the chemicals flow through your body!", + "decay_messages": [ [ "The jet injector's chemicals wear off. You feel AWFUL!", "bad" ] ], + "rating": "good", + "max_intensity": 2, + "int_dur_factor": 50, + "removes_effects": [ "infected", "bite", "bleed", "fungus", "dermatik", "winded" ], + "base_mods": { "str_mod": [ -1 ], "dex_mod": [ -2 ], "per_mod": [ -2 ], "int_mod": [ -1 ] }, + "scaling_mods": { "str_mod": [ 2 ], "dex_mod": [ 3 ], "per_mod": [ 3 ], "int_mod": [ 1 ] } + }, + { + "type": "effect_type", + "id": "stimpack", + "name": [ "RX11 Stimulant Comedown", "RX11 Stimulant Rush" ], + "desc": [ "You feel sluggish and slow.", "An intense surge of stimulants pulses through your body." ], + "apply_message": "You feel an intense surge of stimulants pulse through your body!", + "decay_messages": [ [ "The stimulant combo is wearing off. You feel sluggish.", "bad" ] ], + "rating": "good", + "max_intensity": 2, + "int_dur_factor": 50, + "removes_effects": [ "winded" ], + "base_mods": { "speed_mod": [ -5 ], "dex_mod": [ -2 ], "per_mod": [ -1 ], "int_mod": [ -2 ] }, + "scaling_mods": { + "speed_mod": [ 15 ], + "str_mod": [ 1 ], + "dex_mod": [ 4 ], + "per_mod": [ 4 ], + "int_mod": [ -1 ], + "stamina_min": [ 4 ], + "stamina_max": [ 8 ] + } + }, + { + "type": "effect_type", + "id": "adrenaline", + "name": [ "Adrenaline Comedown", "Adrenaline Rush" ], + "desc": [ "You feel completely drained.", "You feel the rush of adrenaline in your body!" ], + "apply_message": "You feel a surge of adrenaline!", + "rating": "good", + "decay_messages": [ [ "Your adrenaline rush wears off. You feel AWFUL!", "bad" ] ], + "miss_messages": [ [ "Your comedown throws you off.", 1 ] ], + "max_intensity": 2, + "int_dur_factor": 150, + "removes_effects": [ "winded" ], + "base_mods": { + "speed_mod": [ -10 ], + "str_mod": [ -2 ], + "dex_mod": [ -2 ], + "int_mod": [ -1 ], + "per_mod": [ -1 ], + "stamina_min": [ -2 ] + }, + "scaling_mods": { "speed_mod": [ 30 ], "str_mod": [ 5 ], "dex_mod": [ 4 ], "int_mod": [ -7 ], "per_mod": [ 2 ], "stamina_min": [ 4 ] } + }, + { + "type": "effect_type", + "id": "adrenaline_mycus", + "name": [ "Mycus Respite", "Mycus Wrath" ], + "desc": [ + "Our fibers are stretched near breaking. Local power diverted to regenerate.", + "Our enemies are near, and violent action is imminent. We are turgid." + ], + "apply_message": "Mycal wrath fills our fibers, and we grow turgid.", + "rating": "good", + "decay_messages": [ [ "We require repose; our fibers are nearly spent...", "bad" ] ], + "max_intensity": 2, + "int_dur_factor": 150, + "base_mods": { + "speed_mod": [ -10 ], + "str_mod": [ -2 ], + "dex_mod": [ -2 ], + "int_mod": [ -1 ], + "per_mod": [ -1 ], + "stamina_min": [ -2 ] + }, + "scaling_mods": { "speed_mod": [ 30 ], "str_mod": [ 5 ], "dex_mod": [ 4 ], "int_mod": [ -7 ], "per_mod": [ 2 ], "stamina_min": [ 4 ] } + }, + { + "type": "effect_type", + "id": "meth", + "name": [ "Meth comedown", "High on Meth" ], + "max_intensity": 2, + "int_dur_factor": 200, + "base_mods": { + "speed_mod": [ -20 ], + "str_mod": [ -3 ], + "dex_mod": [ -2 ], + "int_mod": [ -1 ], + "per_mod": [ -2 ], + "vomit_chance": [ 2000 ], + "stamina_min": [ -4 ] + }, + "scaling_mods": { + "speed_mod": [ 30 ], + "str_mod": [ 4 ], + "dex_mod": [ 4 ], + "int_mod": [ 3 ], + "per_mod": [ 5 ], + "fatigue_min": [ 1 ], + "stamina_min": [ 8 ] + } + }, + { + "type": "effect_type", + "id": "cig", + "name": [ "Nicotine" ], + "desc": [ "You had a puff or two.", "You smoked too much." ], + "max_intensity": 2, + "int_dur_factor": 600, + "base_mods": { "int_mod": [ 1 ], "per_mod": [ 1 ] }, + "scaling_mods": { "str_mod": [ -1 ], "dex_mod": [ -1 ], "int_mod": [ -1 ], "per_mod": [ -1 ], "vomit_chance": [ 500 ] } + }, + { + "type": "effect_type", + "id": "teleglow" + }, + { + "type": "effect_type", + "id": "high", + "name": [ "High" ], + "desc": [ "You are high as a kite." ], + "apply_message": "You feel lightheaded.", + "base_mods": { "int_mod": [ -1 ], "per_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "weed_high", + "apply_message": "You feel lightheaded.", + "miss_messages": [ [ "That critter's jumping around like a jitterbug! It needs to mellow out.", 1 ] ], + "base_mods": { "str_mod": [ -1 ], "dex_mod": [ -1 ], "per_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "contacts", + "name": [ "Contact Lenses" ], + "desc": [ "You are wearing contact lenses." ], + "apply_message": "You can see more clearly.", + "remove_message": "Your vision starts to blur.", + "rating": "good" + }, + { + "type": "effect_type", + "id": "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?" + ], + "max_intensity": 4, + "apply_message": "You feel lightheaded.", + "int_dur_factor": 1000, + "miss_messages": [ [ "You feel woozy.", 1 ] ], + "base_mods": { "str_mod": [ 1 ], "vomit_chance": [ -43 ], "sleep_chance": [ -1003 ], "sleep_min": [ 2500 ], "sleep_max": [ 3500 ] }, + "scaling_mods": { + "str_mod": [ -0.67 ], + "per_mod": [ -1 ], + "dex_mod": [ -1 ], + "int_mod": [ -1.42 ], + "vomit_chance": [ 21 ], + "sleep_chance": [ 501 ] + } + }, + { + "type": "effect_type", + "id": "amigara", + "apply_message": "You can't look away from the faultline...", + "rating": "bad" + }, + { + "type": "effect_type", + "id": "fearparalyze", + "name": [ "Feared" ], + "desc": [ "You have been paralyzed by the fear." ], + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "asthma", + "name": [ "Asthma", "Asthma", "Asthma", "Asthma", "Heavy Asthma", "Heavy Asthma" ], + "desc": [ + "You suffer from a respiratory disorder that makes breathing difficult.\nAn asthma attack can occur from time to time, so have your inhaler nearby." + ], + "apply_message": "You can't breathe... asthma attack!", + "rating": "bad", + "max_intensity": 6, + "int_dur_factor": 200, + "miss_messages": [ [ "You're winded.", 3 ] ], + "base_mods": { "str_mod": [ -2 ], "dex_mod": [ -3 ], "speed_mod": [ -20 ] }, + "scaling_mods": { "speed_mod": [ -40 ] } + }, + { + "type": "effect_type", + "id": "crushed", + "apply_message": "The ceiling collapses on you!", + "rating": "bad" + }, + { + "type": "effect_type", + "id": "valium", + "removes_effects": [ "shakes" ], + "base_mods": { "stim_tick": [ 25 ], "stim_chance": [ 2 ], "stim_min": [ 1 ], "stim_min_val": [ -1 ] } + }, + { + "type": "effect_type", + "id": "took_anticonvulsant_visible", + "name": [ "Took anticonvulsant drugs" ], + "desc": [ + "You took anticonvulsant drugs some time ago and you might still be under its influence.\nPrescription note says its effect duration may vary, so your estimate may be inaccurate." + ] + }, + { + "type": "effect_type", + "id": "music" + }, + { + "type": "effect_type", + "id": "relax_gas", + "name": [ "Relaxation gas" ], + "desc": [ "You are thoroughly relaxed and don't feel like moving. Fighting? Too much effort." ], + "apply_message": "You inhale sweetish gas.", + "remove_message": "The slackness leaves your muscles.", + "rating": "bad", + "base_mods": { "str_mod": [ -3 ], "dex_mod": [ -3 ], "int_mod": [ -2 ], "per_mod": [ -4 ] } + }, + { + "type": "effect_type", + "id": "tapeworm", + "rating": "bad", + "base_mods": { "hunger_chance": [ 50 ], "hunger_min": [ 1 ] } + }, + { + "type": "effect_type", + "id": "bloodworms", + "rating": "bad", + "base_mods": { + "thirst_tick": [ 100 ], + "thirst_min": [ 1 ], + "h_mod_chance": [ 512 ], + "h_mod_min": [ -10 ], + "cough_chance": [ 300, 0 ] } + }, + { + "type": "effect_type", + "id": "brainworms", + "rating": "bad", + "base_mods": { "pain_chance": [ 512 ], "pain_min": [ 2 ], "pain_max": [ 8 ], "h_mod_chance": [ 512 ], "h_mod_min": [ -10 ] } + }, + { + "type": "effect_type", + "id": "paincysts", + "rating": "bad", + "base_mods": { "pain_chance": [ 256 ], "pain_min": [ 1 ], "pain_max": [ 4 ], "fatigue_chance": [ 256 ], "fatigue_min": [ 1 ] } + }, + { + "type": "effect_type", + "id": "tetanus", + "rating": "bad", + "resist_effects": [ "valium" ], + "base_mods": { "dex_mod": [ -4, 0 ] } + }, + { + "type": "effect_type", + "id": "datura", + "name": [ "Experiencing Datura" ], + "desc": [ "Buy the ticket, take the ride. The datura has you now." ], + "rating": "bad", + "base_mods": { "per_mod": [ -6 ], "dex_mod": [ -3 ], "thirst_chance": [ 8 ], "thirst_min": [ 1 ], "thirst_max_val": [ 20 ] } + }, + { + "type": "effect_type", + "id": "grabbed", + "name": [ "Grabbed" ], + "desc": [ "You have been grabbed by an attack.\nYou are being held in place and cannot dodge, and blocking is very difficult." ], + "rating": "bad", + "max_duration": 2, + "max_intensity": 15, + "base_mods": { "speed_mod": [ -15 ] }, + "scaling_mods": { "speed_mod": [ -5 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "lack_sleep", + "name": [ "Lacking Sleep" ], + "desc": [ "You haven't slept in a while, and it shows." ], + "apply_message": "You are too physically tired to function well.", + "rating": "bad", + "miss_messages": [ [ "You don't have energy to fight.", 1 ] ], + "base_mods": { "speed_mod": [ -5 ], "str_mod": [ -1 ], "dex_mod": [ -1 ], "int_mod": [ -2 ], "per_mod": [ -2 ] } + }, + { + "type": "effect_type", + "id": "lying_down", + "apply_message": "You lie down to go to sleep...", + "rating": "neutral", + "max_duration": 3000 + }, + { + "type": "effect_type", + "id": "sleep", + "apply_message": "You fall asleep.", + "remove_message": "You wake up.", + "rating": "neutral", + "max_intensity": 24 + }, + { + "type": "effect_type", + "id": "narcosis" + }, + { + "type": "effect_type", + "id": "alarm_clock" + }, + { + "type": "effect_type", + "id": "slept_through_alarm" + }, + { + "type": "effect_type", + "name": [ "Playing an instrument" ], + "desc": [ "You're playing an instrument.\nFocusing on playing music distracts you, slowing you down." ], + "id": "playing_instrument", + "rating": "neutral", + "max_duration": 2, + "max_intensity": 100, + "base_mods": { "speed_mod": [ -1 ] }, + "scaling_mods": { "speed_mod": [ -1 ] } + }, + { + "//": "On roof of a vehicle, aiming a turret", + "type": "effect_type", + "id": "on_roof" + }, + { + "type": "effect_type", + "id": "corroding", + "name": [ "Corroding" ], + "desc": [ "You're covered in acid!" ], + "apply_message": "You're covered in acid!", + "rating": "bad", + "max_duration": 30, + "max_intensity": 5, + "int_dur_factor": 5, + "base_mods": { "hurt_min": [ 1 ], "hurt_chance": [ 1 ], "hurt_chance_bot": [ 10 ] }, + "scaling_mods": { "hurt_chance": [ 1 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "zapped", + "name": [ "Zapped" ], + "desc": [ "You've been zapped with electricity and are barely able to move!" ], + "apply_message": "You're zapped!", + "rating": "bad", + "max_duration": 2, + "dur_add_perc": 20, + "base_mods": { "speed_mod": [ -1000 ], "dex_mod": [ -100 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "hypocalcemia", + "name": [ "Hypocalcemia", "Weak bones", "Brittle bones" ], + "desc": [ "A lack of calcium in your diet will make your bones progressively weaker." ], + "apply_message": "Your bones are becoming more brittle.", + "remove_message": "Your bones regain their usual strength.", + "decay_messages": [ + [ "Your calcium deficiency is nearly resolved.", "good" ], + [ "Your bones become stronger as your calcium deficiency improves.", "good" ] + ], + "max_intensity": 3, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "anemia", + "name": [ "Iron deficiency", "Early anemia", "Anemia" ], + "desc": [ "A lack of iron in your diet will result in progressively worsening anemia." ], + "apply_message": "You begin feeling increasingly tired and listless.", + "remove_message": "You no longer feel anemic.", + "decay_messages": [ + [ "Your iron deficiency is nearly resolved.", "good" ], + [ "Your feel stronger as your anemia starts to improve.", "good" ] + ], + "max_intensity": 3, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "hypovitA", + "name": [ "VitA deficiency", "Poor vision", "Night blindness" ], + "desc": [ "A lack of vitamin A in your diet will progressively worsen your vision." ], + "apply_message": "You start struggling to make out the finer details.", + "remove_message": "Your normal visual acuity returns.", + "decay_messages": [ + [ "Your vitamin A deficiency is nearly resolved.", "good" ], + [ "Your vision improves as your Vitamin A deficiency improves.", "good" ] + ], + "max_intensity": 3, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "hypovitB", + "name": [ "B12 deficiency", "Slow healing", "No healing" ], + "desc": [ "A lack of vitamin B12 in your diet will affect your ability to heal." ], + "apply_message": "Simple wounds are starting to concern you more than usual.", + "remove_message": "Your wounds now heal normally.", + "decay_messages": [ + [ "Your vitamin B12 deficiency is starting to resolve.", "good" ], + [ "Your ability to heal returns as your Vitamin B12 deficiency improves.", "good" ] + ], + "max_intensity": 3, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "scurvy", + "name": [ "Early scurvy", "Scurvy", "Bad Scurvy" ], + "desc": [ "A lack of vitamin C in your diet will result in progressively worse symptoms of scurvy." ], + "apply_message": "You start to develop symptoms of scurvy.", + "remove_message": "Your scurvy has resolved.", + "decay_messages": [ + [ "Your vitamin C deficiency is starting to resolve.", "good" ], + [ "Your scurvy lessens as your Vitamin C deficiency improves.", "good" ] + ], + "max_intensity": 3, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "hypervitaminosis", + "name": [ "Hypervitaminosis" ], + "desc": [ "An excess of vitamins has badly affected your metabolism." ], + "apply_message": "Your metabolism becomes unstable.", + "remove_message": "Your metabolism becomes more stable.", + "rating": "bad" + }, + { + "type": "effect_type", + "id": "cough_suppress" + }, + { + "type": "effect_type", + "id": "haslight", + "name": [ "Lit up" ], + "desc": [ "You are carrying a light and can't hide well." ], + "max_duration": 1, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "mending", + "name": [ "Started recovery", "Recovering", "Mostly recovered" ], + "desc": [ "This damaged limb is slowly regaining its functions." ], + "//": "Duration is 10 days, but the actual time taken is probabilistic.", + "max_duration": 144000, + "int_dur_factor": 36000, + "max_intensity": 3, + "rating": "good" + }, + { + "type": "effect_type", + "id": "disabled", + "name": [ { "ctxt": "physically", "str": "Disabled" } ], + "desc": [ "This limb is damaged beyond use and may require a splint to recover." ], + "//": "This sounds weird. We need tag or something", + "apply_message": "Your limb breaks!", + "remove_message": "The broken limb has mended.", + "max_duration": 2, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "milked", + "name": [ "Milked" ], + "desc": [ "The creature has been partially or fully milked." ], + "max_duration": 14400 + }, + { + "type": "effect_type", + "id": "pkill", + "name": [ "Painkillers" ], + "desc": [ "You are under the influence of analgesic substances to relieve pain, but they may numb you a bit." ], + "max_intensity": 30, + "int_dur_factor": 10, + "scaling_mods": { "speed_mod": [ -1 ] } + }, + { + "type": "effect_type", + "id": "happy", + "name": [ "Happy", "Happy", "Happy", "Happy", "Happy", "Joyful", "Joyful", "Joyful", "Joyful", "Joyful", "Elated" ], + "desc": [ + "Life is good.", + "Life is good.", + "Life is good.", + "Life is good.", + "Life is good.", + "Oh what a day! What a lovely day!", + "Oh what a day! What a lovely day!", + "Oh what a day! What a lovely day!", + "Oh what a day! What a lovely day!", + "Oh what a day! What a lovely day!", + "I'm on top of the world, baby!" + ], + "max_intensity": 25, + "int_dur_factor": 10, + "scaling_mods": { "speed_mod": [ 0.42 ], "str_mod": [ 0.06 ], "dex_mod": [ 0.05 ], "int_mod": [ 0.084 ], "per_mod": [ 0.1 ] } + }, + { + "type": "effect_type", + "id": "sad", + "name": [ "Unhappy", "Unhappy", "Unhappy", "Unhappy", "Unhappy", "Sad", "Sad", "Sad", "Sad", "Sad", "Depressed" ], + "desc": [ + "You are not content with your life.", + "You are not content with your life.", + "You are not content with your life.", + "You are not content with your life.", + "You are not content with your life.", + "This is not what you planned for your life.", + "This is not what you planned for your life.", + "This is not what you planned for your life.", + "This is not what you planned for your life.", + "This is not what you planned for your life.", + "When will all your suffering end?" + ], + "max_intensity": 1000, + "int_dur_factor": 10, + "scaling_mods": { "speed_mod": [ -0.42 ], "str_mod": [ -0.06 ], "dex_mod": [ -0.05 ], "int_mod": [ -0.084 ], "per_mod": [ -0.1 ] }, + "miss_messages": [ [ "What's the point of fighting?", 1 ] ] + }, + { + "type": "effect_type", + "id": "irradiated", + "name": [ "Irradiated" ], + "desc": [ "You suffer symptoms of a radiation sickness that weakens your body." ], + "max_intensity": 2000, + "int_dur_factor": 10, + "scaling_mods": { "speed_mod": [ -0.2 ], "str_mod": [ -0.125 ], "dex_mod": [ -0.09 ], "int_mod": [ -0.1 ], "per_mod": [ -0.083 ] }, + "miss_messages": [ [ "Radiation weakens you.", 1 ] ] + }, + { + "type": "effect_type", + "id": "stim", + "name": [ "Stimulants" ], + "desc": [ "You're very jittery and pumped up, probably from some stimulants." ], + "max_intensity": 1000, + "int_dur_factor": 1, + "scaling_mods": { "speed_mod": [ 0.33 ], "dex_mod": [ 0.1 ], "int_mod": [ 0.16 ], "per_mod": [ 0.14 ] } + }, + { + "type": "effect_type", + "id": "depressants", + "name": [ "Depressants" ], + "desc": [ "You are under the influence of depressants, and in a bit of a daze." ], + "max_intensity": 1000, + "int_dur_factor": 1, + "scaling_mods": { "speed_mod": [ -0.25 ], "dex_mod": [ -0.1 ], "int_mod": [ -0.16 ], "per_mod": [ -0.14 ] }, + "miss_messages": [ [ "You feel woozy.", 1 ] ] + }, + { + "type": "effect_type", + "id": "stim_overdose", + "name": [ "Stimulant Overdose" ], + "desc": [ "You can't sit still as you feel your heart pounding out of your chest. You probably overdosed on those stims." ], + "max_intensity": 1000, + "int_dur_factor": 1, + "base_mods": { "dex_mod": [ -1.88 ], "int_mod": [ -1.1 ], "per_mod": [ -1.25 ] }, + "scaling_mods": { "speed_mod": [ -0.25 ], "dex_mod": [ -0.125 ], "int_mod": [ -0.0833 ], "per_mod": [ -0.071 ] }, + "miss_messages": [ [ "You shake with the excess stimulation.", 1 ] ] + }, + { + "type": "effect_type", + "id": "weak_antibiotic_visible", + "name": [ "Took weak antibiotic" ], + "desc": [ + "You consumed mild antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." + ] + }, + { + "type": "effect_type", + "id": "antibiotic_visible", + "name": [ "Took antibiotic" ], + "desc": [ + "You consumed antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." + ] + }, + { + "type": "effect_type", + "id": "strong_antibiotic_visible", + "name": [ "Took strong antibiotic" ], + "desc": [ + "You consumed prescription-grade antibiotic some time ago to fight off infection.\nIf you don't recover you may want to take another dose, but beware overdosage." + ] + }, + { + "type": "effect_type", + "id": "weak_antibiotic" + }, + { + "type": "effect_type", + "id": "antibiotic" + }, + { + "type": "effect_type", + "id": "strong_antibiotic" + }, + { + "type": "effect_type", + "id": "panacea", + "name": [ "Panacea" ], + "desc": [ "You feel incredible! You could take on the world!" ], + "max_duration": 10, + "base_mods": { "speed_mod": [ 20 ], "str_mod": [ 2 ], "dex_mod": [ 2 ], "int_mod": [ 2 ], "per_mod": [ 2 ] } + }, + { + "type": "effect_type", + "id": "tummy_tablet", + "name": [ "Soothed stomach" ], + "desc": [ "You are under the effects of a stomach soother." ], + "int_add_val": 1, + "max_intensity": 3, + "base_mods": { "vomit_tick": [ 10 ], "health_chance": [ 1500 ], "health_min": [ 1 ] }, + "scaling_mods": { "health_min": [ -1.5 ], "health_min_val": [ -2 ], "vomit_tick": [ 20 ] } + }, + { + "//": "This effect is a dummy effect for disabling certain things for a few turns after an electromagnetic pulse and does nothing on its own", + "type": "effect_type", + "id": "emp", + "name": [ "Discharge" ], + "desc": [ "You've been recently affected by an electromagnetic pulse." ], + "max_duration": 30 + }, + { + "type": "effect_type", + "id": "supercharged", + "//": "not given to players by default", + "name": [ "Supercharged" ], + "desc": [ "You've been struck by lightning, and feel... different." ], + "base_mods": { "speed_mod": [ 50 ] } + }, + { + "type": "effect_type", + "id": "has_og_comm_freq" + }, + { + "type": "effect_type", + "id": "has_prospectus" + } ] diff --git a/data/json/flags.json b/data/json/flags.json index cd75697cfa924..cd6e583980875 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -240,6 +240,12 @@ "description": "Prevents repairing of this item even if otherwise suitable tools exist.", "inherit": false }, + { + "id": "NUTRIENT_OVERRIDE", + "type": "json_flag", + "context": [ "COMESTIBLE" ], + "description": "forces calories and vitamins to be the ones defined in the json, instead of inheriting from ingredients" + }, { "id": "MELTS", "type": "json_flag", diff --git a/data/json/furniture.json b/data/json/furniture.json index 23ad9c3b0868c..fee0e9beaf4f9 100644 --- a/data/json/furniture.json +++ b/data/json/furniture.json @@ -1335,9 +1335,9 @@ "description": "Stores your trash.", "symbol": "{", "color": "green", - "move_cost_mod": -1, + "move_cost_mod": 3, "required_str": 16, - "flags": [ "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR" ], + "flags": [ "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR", "HIDE_PLACE" ], "bash": { "str_min": 8, "str_max": 45, @@ -3363,7 +3363,16 @@ "required_str": -1, "deconstruct": { "items": [ { "item": "pillow", "count": 19 }, { "item": "blanket", "count": 3 } ] }, "max_volume": 4000, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "REDUCE_SCENT", "EASY_DECONSTRUCT", "BASHABLE" ], + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "PLACE_ITEM", + "ORGANIC", + "REDUCE_SCENT", + "EASY_DECONSTRUCT", + "BASHABLE", + "HIDE_PLACE" + ], "bash": { "str_min": 1, "str_max": 1, diff --git a/data/json/game_balance.json b/data/json/game_balance.json index ecffadc6060ad..afad375190251 100644 --- a/data/json/game_balance.json +++ b/data/json/game_balance.json @@ -138,5 +138,12 @@ "info": "Enables sleep deprivation mechanics. If true, stimulants will only help you so far, and you might have to enforce proper sleep hygiene for a while.", "stype": "bool", "value": false + }, + { + "type": "EXTERNAL_OPTION", + "name": "CBM_SLOTS_ENABLED", + "info": "Enables CBM slots mechanics. If true CBM slots are enabled.", + "stype": "bool", + "value": false } ] diff --git a/data/json/gates.json b/data/json/gates.json index 5e58e20453309..68eb1e0e8c649 100644 --- a/data/json/gates.json +++ b/data/json/gates.json @@ -1,76 +1,79 @@ [ - { - "type" : "gate", - "handle" : "t_gates_mech_control", - "other_handles" : [ - "t_gates_control_concrete", - "t_gates_control_brick" - ], - "door" : "t_door_metal_locked", - "floor" : "t_floor", - "walls" : [ - "t_wall", - "t_wall_r", - "t_wall_w", - "t_wall_b", - "t_wall_g", - "t_wall_y", - "t_wall_p", - "t_concrete_wall", - "t_brick_wall" - ], - "messages" : { - "pull" : "You turn the handle...", - "open" : "The gate is opened!", - "close" : "The gate is closed!", - "fail" : "The gate can't be closed!" - }, - "moves" : 1800, - "bashing_damage" : 40 + { + "type": "gate", + "handle": "t_gates_mech_control", + "other_handles": [ "t_gates_control_concrete", "t_gates_control_brick" ], + "door": "t_door_metal_locked", + "floor": "t_floor", + "walls": [ "t_wall", "t_wall_r", "t_wall_w", "t_wall_b", "t_wall_g", "t_wall_y", "t_wall_p", "t_concrete_wall", "t_brick_wall" ], + "messages": { + "pull": "You turn the handle...", + "open": "The gate is opened!", + "close": "The gate is closed!", + "fail": "The gate can't be closed!" }, - { - "type" : "gate", - "handle" : "t_barndoor", - "door" : "t_door_metal_locked", - "floor" : "t_dirtfloor", - "walls" : "t_wall_wood", - "messages" : { - "pull" : "You pull the rope...", - "open" : "The barn doors opened!", - "close" : "The barn doors closed!", - "fail" : "The barn doors can't be closed!" - }, - "moves" : 1800, - "bashing_damage" : 40 + "moves": 1800, + "bashing_damage": 40 + }, + { + "type": "gate", + "handle": "t_gates_mech_control_lab", + "other_handles": [ "t_gates_control_concrete_lab", "t_gates_control_brick_lab" ], + "door": "t_door_metal_locked", + "floor": "t_thconc_floor", + "walls": [ "t_wall", "t_wall_r", "t_wall_w", "t_wall_b", "t_wall_g", "t_wall_y", "t_wall_p", "t_concrete_wall", "t_brick_wall" ], + "messages": { + "pull": "You turn the handle...", + "open": "The gate is opened!", + "close": "The gate is closed!", + "fail": "The gate can't be closed!" }, - { - "type" : "gate", - "handle" : "t_palisade_pulley", - "door" : "t_palisade_gate", - "floor" : "t_palisade_gate_o", - "walls" : "t_palisade", - "messages" : { - "pull" : "You pull the rope...", - "open" : "The palisade gate swings open!", - "close" : "The palisade gate swings closed with a crash!", - "fail" : "The palisade gate can't be closed!" - }, - "moves" : 1800, - "bashing_damage" : 30 + "moves": 1800, + "bashing_damage": 40 + }, + { + "type": "gate", + "handle": "t_barndoor", + "door": "t_door_metal_locked", + "floor": "t_dirtfloor", + "walls": "t_wall_wood", + "messages": { + "pull": "You pull the rope...", + "open": "The barn doors opened!", + "close": "The barn doors closed!", + "fail": "The barn doors can't be closed!" }, - { - "type" : "gate", - "handle" : "t_gates_control_metal", - "door" : "t_door_metal_locked", - "floor" : "t_metal_floor", - "walls" : "t_wall_metal", - "messages" : { - "pull" : "You throw the lever...", - "open" : "The door rises!", - "close" : "The door slams shut!", - "fail" : "The door can't be closed!" - }, - "moves" : 1200, - "bashing_damage" : 60 - } + "moves": 1800, + "bashing_damage": 40 + }, + { + "type": "gate", + "handle": "t_palisade_pulley", + "door": "t_palisade_gate", + "floor": "t_palisade_gate_o", + "walls": "t_palisade", + "messages": { + "pull": "You pull the rope...", + "open": "The palisade gate swings open!", + "close": "The palisade gate swings closed with a crash!", + "fail": "The palisade gate can't be closed!" + }, + "moves": 1800, + "bashing_damage": 30 + }, + { + "type": "gate", + "handle": "t_gates_control_metal", + "door": "t_door_metal_locked", + "floor": "t_metal_floor", + "walls": "t_wall_metal", + "messages": { + "pull": "You throw the lever...", + "open": "The door rises!", + "close": "The door slams shut!", + "fail": "The door can't be closed!" + }, + "moves": 1200, + "bashing_damage": 60 + } ] diff --git a/data/json/health_msgs.json b/data/json/health_msgs.json index 818374da030fa..48ae87518a32c 100644 --- a/data/json/health_msgs.json +++ b/data/json/health_msgs.json @@ -1,123 +1,152 @@ [ - { - "type" : "snippet", - "category" : "health_great", - "text" : "You feel great! It doesn't seem like wounds could even slow you down for more than a day." - },{ - "type" : "snippet", - "category" : "health_great", - "text" : "Within moments you're ready and up. You don't feel like anything could stop you today!" - },{ - "type" : "snippet", - "category" : "health_great", - "text" : "Your eyes open and your entire body feels like it is just bursting with energy to burn!" - },{ - "type" : "snippet", - "category" : "health_great", - "text" : "You feel like a rubber ball; whatever hits you, you'll just bounce back!" - },{ - "type" : "snippet", - "category" : "health_great", - "text" : "You're up and you feel fantastic. No sickness is going to keep you down today!" - },{ - "type" : "snippet", - "category" : "health_very_good", - "text" : "You're up and going rather quickly, and all the little aches from yesterday are gone." - },{ - "type" : "snippet", - "category" : "health_very_good", - "text" : "You get up feeling pretty good, as if all your little aches were fading faster." - },{ - "type" : "snippet", - "category" : "health_very_good", - "text" : "Getting up comes easy to you, your muscles revitalized after your rest." - },{ - "type" : "snippet", - "category" : "health_very_good", - "text" : "You're up and your little pains from before seem to have faded away rather quickly." - },{ - "type" : "snippet", - "category" : "health_very_good", - "text" : "Awareness comes fast, your body coming quickly to attention after your rest." - },{ - "type" : "snippet", - "category" : "health_good", - "text" : "You feel good. Healthy living does seem to have some rewards." - },{ - "type" : "snippet", - "category" : "health_good", - "text" : "Getting out of bed doesn't seem too hard today. You could get used to this!" - },{ - "type" : "snippet", - "category" : "health_good", - "text" : "Alertness comes somewhat fast, and your muscles stretch easier than before you went to bed." - },{ - "type" : "snippet", - "category" : "health_good", - "text" : "You feel extra alert, and your body feels ready to go." - },{ - "type" : "snippet", - "category" : "health_good", - "text" : "Your body stretches with ease, and you feel ready to take on the world." - },{ - "type" : "snippet", - "category" : "health_bad", - "text" : "You feel cruddy. Maybe you should consider eating a bit healthier." - },{ - "type" : "snippet", - "category" : "health_bad", - "text" : "You get up with a bit of a scratch in your throat." - },{ - "type" : "snippet", - "category" : "health_bad", - "text" : "You stretch, but your muscles don't seem to be doing so good today." - },{ - "type" : "snippet", - "category" : "health_bad", - "text" : "Your stomach gurgles. It's probably nothing, but maybe you should look into eating something healthy." - },{ - "type" : "snippet", - "category" : "health_bad", - "text" : "You struggle to awareness. Being awake seems somewhat harder to reach today." - },{ - "type" : "snippet", - "category" : "health_very_bad", - "text" : "Getting out of bed only comes with great difficulty, and your muscles resist the movement." - },{ - "type" : "snippet", - "category" : "health_very_bad", - "text" : "Getting up seems like it should be easy, but all you want to do is go back to bed." - },{ - "type" : "snippet", - "category" : "health_very_bad", - "text" : "Tired hands rub at your eyes, the little aches of yesterday protesting your stretches." - },{ - "type" : "snippet", - "category" : "health_very_bad", - "text" : "Alertness seems flighty today, and your body argues when you move towards it." - },{ - "type" : "snippet", - "category" : "health_very_bad", - "text" : "You're up, but your body seems like it would rather stay in bed." - },{ - "type" : "snippet", - "category" : "health_horrible", - "text" : "You get up feeling horrible, as if something was messing with your body." - },{ - "type" : "snippet", - "category" : "health_horrible", - "text" : "You feel awful, and every ache from yesterday is still there." - },{ - "type" : "snippet", - "category" : "health_horrible", - "text" : "Your eyes struggle to open, and your muscles ache like you didn't sleep at all." - },{ - "type" : "snippet", - "category" : "health_horrible", - "text" : "Bleary-eyed and half-asleep, you consider why you are doing this to yourself." - },{ - "type" : "snippet", - "category" : "health_horrible", - "text" : "Awareness seems to only come with a battle... and your body seem to be on its side." - } + { + "type": "snippet", + "category": "health_great", + "text": "You feel great! It doesn't seem like wounds could even slow you down for more than a day." + }, + { + "type": "snippet", + "category": "health_great", + "text": "Within moments you're ready and up. You don't feel like anything could stop you today!" + }, + { + "type": "snippet", + "category": "health_great", + "text": "Your eyes open and your entire body feels like it is just bursting with energy to burn!" + }, + { + "type": "snippet", + "category": "health_great", + "text": "You feel like a rubber ball; whatever hits you, you'll just bounce back!" + }, + { + "type": "snippet", + "category": "health_great", + "text": "You're up and you feel fantastic. No sickness is going to keep you down today!" + }, + { + "type": "snippet", + "category": "health_very_good", + "text": "You're up and going rather quickly, and all the little aches from yesterday are gone." + }, + { + "type": "snippet", + "category": "health_very_good", + "text": "You get up feeling pretty good, as if all your little aches were fading faster." + }, + { + "type": "snippet", + "category": "health_very_good", + "text": "Getting up comes easy to you, your muscles revitalized after your rest." + }, + { + "type": "snippet", + "category": "health_very_good", + "text": "You're up and your little pains from before seem to have faded away rather quickly." + }, + { + "type": "snippet", + "category": "health_very_good", + "text": "Awareness comes fast, your body coming quickly to attention after your rest." + }, + { + "type": "snippet", + "category": "health_good", + "text": "You feel good. Healthy living does seem to have some rewards." + }, + { + "type": "snippet", + "category": "health_good", + "text": "Getting out of bed doesn't seem too hard today. You could get used to this!" + }, + { + "type": "snippet", + "category": "health_good", + "text": "Alertness comes somewhat fast, and your muscles stretch easier than before you went to bed." + }, + { + "type": "snippet", + "category": "health_good", + "text": "You feel extra alert, and your body feels ready to go." + }, + { + "type": "snippet", + "category": "health_good", + "text": "Your body stretches with ease, and you feel ready to take on the world." + }, + { + "type": "snippet", + "category": "health_bad", + "text": "You feel cruddy. Maybe you should consider eating a bit healthier." + }, + { + "type": "snippet", + "category": "health_bad", + "text": "You get up with a bit of a scratch in your throat." + }, + { + "type": "snippet", + "category": "health_bad", + "text": "You stretch, but your muscles don't seem to be doing so good today." + }, + { + "type": "snippet", + "category": "health_bad", + "text": "Your stomach gurgles. It's probably nothing, but maybe you should look into eating something healthy." + }, + { + "type": "snippet", + "category": "health_bad", + "text": "You struggle to awareness. Being awake seems somewhat harder to reach today." + }, + { + "type": "snippet", + "category": "health_very_bad", + "text": "Getting out of bed only comes with great difficulty, and your muscles resist the movement." + }, + { + "type": "snippet", + "category": "health_very_bad", + "text": "Getting up seems like it should be easy, but all you want to do is go back to bed." + }, + { + "type": "snippet", + "category": "health_very_bad", + "text": "Tired hands rub at your eyes, the little aches of yesterday protesting your stretches." + }, + { + "type": "snippet", + "category": "health_very_bad", + "text": "Alertness seems flighty today, and your body argues when you move towards it." + }, + { + "type": "snippet", + "category": "health_very_bad", + "text": "You're up, but your body seems like it would rather stay in bed." + }, + { + "type": "snippet", + "category": "health_horrible", + "text": "You get up feeling horrible, as if something was messing with your body." + }, + { + "type": "snippet", + "category": "health_horrible", + "text": "You feel awful, and every ache from yesterday is still there." + }, + { + "type": "snippet", + "category": "health_horrible", + "text": "Your eyes struggle to open, and your muscles ache like you didn't sleep at all." + }, + { + "type": "snippet", + "category": "health_horrible", + "text": "Bleary-eyed and half-asleep, you consider why you are doing this to yourself." + }, + { + "type": "snippet", + "category": "health_horrible", + "text": "Awareness seems to only come with a battle... and your body seem to be on its side." + } ] diff --git a/data/json/item_actions.json b/data/json/item_actions.json index 755514b2cdfd4..767c1dcfac8a3 100644 --- a/data/json/item_actions.json +++ b/data/json/item_actions.json @@ -1,837 +1,1032 @@ [ - { - "type" : "item_action", - "id" : "repair_fabric", - "name" : "Repair cotton/leather/wool/Nomex/fur" - },{ - "type" : "item_action", - "id" : "repair_metal", - "name" : "Repair metal/plastic/kevlar" - },{ - "type" : "item_action", - "id" : "SEW_ADVANCED", - "name" : "Modify Clothing" - },{ - "type" : "item_action", - "id" : "firestarter", - "name" : "Start a fire quickly" - },{ - "type" : "item_action", - "id" : "HAMMER", - "name" : "Pull out nails" - },{ - "type" : "item_action", - "id" : "picklock", - "name" : "Pick a lock" - },{ - "type" : "item_action", - "id" : "deploy_furn", - "name" : "Deploy item" - },{ - "type" : "item_action", - "id" : "CROWBAR", - "name" : "Pry crate, window or door" - },{ - "type" : "item_action", - "id" : "MAKEMOUND", - "name" : "Upturn earth" - },{ - "type" : "item_action", - "id" : "PICKAXE", - "name" : "Dig through rock" - },{ - "type" : "item_action", - "id" : "GEIGER", - "name" : "Use geiger counter" - },{ - "type" : "item_action", - "id" : "HACKSAW", - "name" : "Cut metal" - },{ - "type" : "item_action", - "id" : "BOLTCUTTERS", - "name" : "Cut bolts or wires" - },{ - "type" : "item_action", - "id" : "HOTPLATE", - "name" : "Heat up food (with it)" - },{ - "type" : "item_action", - "id" : "MISC_REPAIR", - "name" : "Repair wood/paper/bone/chitin" - },{ - "type" : "item_action", - "id" : "TOOLMOD_ATTACH", - "name" : "Attach as toolmod" - },{ - "type" : "item_action", - "id" : "GUNMOD_ATTACH", - "name" : "Attach as gunmod" - },{ - "type" : "item_action", - "id" : "GUN_REPAIR", - "name" : "Repair a gun" - },{ - "type" : "item_action", - "id" : "DIRECTIONAL_HOLOGRAM", - "name" : "Create a moving hologram" - },{ - "type" : "item_action", - "id" : "ROBOTCONTROL", - "name" : "Hack a robot" - },{ - "type" : "item_action", - "id" : "METH", - "name" : "Smoke/snort meth" - },{ - "type" : "item_action", - "id" : "TAZER", - "name" : "Taze something" - },{ - "type" : "item_action", - "id" : "ANTICONVULSANT", - "name" : "Take anticonvulsant" - },{ - "type" : "item_action", - "id" : "LUMBER", - "name" : "Cut a log into planks" - },{ - "type" : "item_action", - "id" : "REMOVE_ALL_MODS", - "name" : "Remove tool mods" - },{ - "type" : "item_action", - "id" : "salvage", - "name" : "Cut up an item" - },{ - "type" : "item_action", - "id" : "inscribe", - "name" : "Write on an item" - },{ - "type" : "item_action", - "id" : "cauterize", - "name" : "Cauterize a wound" - },{ - "type" : "item_action", - "id" : "enzlave", - "name" : "Create a zombie slave" - },{ - "type" : "item_action", - "id" : "fireweapon_off", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "fireweapon_on", - "name" : "Turn off" - }, { - "type" : "item_action", - "id" : "CARVER_ON", - "name" : "Turn off" - }, { - "type" : "item_action", - "id" : "TRIMMER_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "CIRCSAW_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "CHAINSAW_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "ELEC_CHAINSAW_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "transform", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "countdown", - "name" : "Start countdown" - },{ - "type" : "item_action", - "id" : "holster", - "name" : "Use holster" - },{ - "type" : "item_action", - "id" : "saw_barrel", - "name" : "Saw down barrel" - },{ - "type" : "item_action", - "id" : "ACIDBOMB_ACT", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "ADRENALINE_INJECTOR", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "ALCOHOL", - "name" : "Drink" - },{ - "type" : "item_action", - "id" : "ALCOHOL_STRONG", - "name" : "Drink" - },{ - "type" : "item_action", - "id" : "ALCOHOL_WEAK", - "name" : "Drink" - },{ - "type" : "item_action", - "id" : "ANTIBIOTIC", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "ANTIFUNGAL", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "ANTIPARASITIC", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "ARROW_FLAMABLE", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "ARTIFACT", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "ATOMIC_CAFF", - "name" : "Drink" - },{ - "type" : "item_action", - "id" : "BATTLETORCH_LIT", - "name" : "Extinguish" - },{ - "type" : "item_action", - "id" : "BELL", - "name" : "Ring" - },{ - "type" : "item_action", - "id" : "BLECH", - "name" : "Drink" - },{ - "type" : "item_action", - "id" : "C4", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "CABLE_ATTACH", - "name" : "Attach" - },{ - "type" : "item_action", - "id" : "CAFF", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "CAMERA", - "name" : "Use camera" - },{ - "type" : "item_action", - "id" : "CAN_GOO", - "name" : "Pour out" - },{ - "type" : "item_action", - "id" : "CAPTURE_MONSTER_ACT", - "name" : "Capture/place" - },{ - "type" : "item_action", - "id" : "CAPTURE_MONSTER_VEH", - "name" : "Capture/place" - },{ - "type" : "item_action", - "id" : "CARVER_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "CATFOOD", - "name" : "Place" - },{ - "type" : "item_action", - "id" : "CHAINSAW_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "CHEW", - "name" : "Chew" - },{ - "type" : "item_action", - "id" : "CLEAR_RUBBLE", - "name" : "Clear rubble" - },{ - "type" : "item_action", - "id" : "COIN_FLIP", - "name" : "Flip" - },{ - "type" : "item_action", - "id" : "COKE", - "name" : "Snort coke" - },{ - "type" : "item_action", - "id" : "COMBATSAW_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "COMBATSAW_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "E_COMBATSAW_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "E_COMBATSAW_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "CONTACTS", - "name" : "Apply" - },{ - "type" : "item_action", - "id" : "CS_LAJATANG_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "CS_LAJATANG_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "ECS_LAJATANG_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "ECS_LAJATANG_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "DATURA", - "name" : "Eat" - },{ - "type" : "item_action", - "id" : "DIG", - "name" : "Dig pit" - },{ - "type" : "item_action", - "id" : "DIRECTIONAL_ANTENNA", - "name" : "Find direction" - },{ - "type" : "item_action", - "id" : "DOGFOOD", - "name" : "Place" - },{ - "type" : "item_action", - "id" : "DOG_WHISTLE", - "name" : "Blow" - },{ - "type" : "item_action", - "id" : "DOLLCHAT", - "name" : "Make it talk" - },{ - "type" : "item_action", - "id" : "ECIG", - "name" : { "ctxt": "ECIG", "str": "Smoke" } - },{ - "type" : "item_action", - "id" : "EHANDCUFFS", - "name" : "Take off" - },{ - "type" : "item_action", - "id" : "EINKTABLETPC", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "ELEC_CHAINSAW_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "EXTINGUISHER", - "name" : "Spray" - },{ - "type" : "item_action", - "id" : "EYEDROPS", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "FILL_PIT", - "name" : "Fill pit / tamp ground" - },{ - "type" : "item_action", - "id" : "FIRECRACKER", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "FIRECRACKER_ACT", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "FIRECRACKER_PACK", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "FIRECRACKER_PACK_ACT", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "FISH_ROD", - "name" : "Fish" - },{ - "type" : "item_action", - "id" : "FISH_TRAP", - "name" : "Set" - },{ - "type" : "item_action", - "id" : "FLUMED", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "FLUSLEEP", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "FLU_VACCINE", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "FUNGICIDE", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "GRANADE", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "GRANADE_ACT", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "GRENADE_INC_ACT", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "detach_gunmods", - "name" : "Detach gunmods" - },{ - "type" : "item_action", - "id" : "HAIRKIT", - "name" : "Trim the hair" - },{ - "type" : "item_action", - "id" : "HEATPACK", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "HEAT_FOOD", - "name" : "Heat up food (in it)" - },{ - "type" : "item_action", - "id" : "HONEYCOMB", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "INHALER", - "name" : "Inhale" - },{ - "type" : "item_action", - "id" : "JACKHAMMER", - "name" : "Drill" - },{ - "type" : "item_action", - "id" : "JET_INJECTOR", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "LADDER", - "name" : "Place" - },{ - "type" : "item_action", - "id" : "MAGIC_8_BALL", - "name" : "Ask" - },{ - "type" : "item_action", - "id" : "MARLOSS", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "MARLOSS_GEL", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "MARLOSS_SEED", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "MA_MANUAL", - "name" : "Read" - },{ - "type" : "item_action", - "id" : "MEDITATE", - "name" : "Meditate" - },{ - "type" : "item_action", - "id" : "MININUKE", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "MOLOTOV_LIT", - "name" : "Light up" - },{ - "type" : "item_action", - "id" : "MOP", - "name" : "Mop" - },{ - "type" : "item_action", - "id" : "MP3", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "MP3_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "GASMASK", - "name" : "Prepare to use" - },{ - "type" : "item_action", - "id" : "SOLARPACK", - "name" : "Unfold" - },{ - "type" : "item_action", - "id" : "SOLARPACK_OFF", - "name" : "Fold" - },{ - "type" : "item_action", - "id" : "MULTICOOKER", - "name" : "Cook" - },{ - "type" : "item_action", - "id" : "mutagen", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "mutagen_iv", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "MYCUS", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "NOISE_EMITTER_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "NOISE_EMITTER_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "OXYGEN_BOTTLE", - "name" : "Inhale" - },{ - "type" : "item_action", - "id" : "OXYTORCH", - "name" : "Cut up metal" - },{ - "type" : "item_action", - "id" : "PACK_ITEM", - "name" : "Pack an item" - },{ - "type" : "item_action", - "id" : "PHEROMONE", - "name" : "Squeeze" - },{ - "type" : "item_action", - "id" : "PLANTBLECH", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "POISON", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "PORTABLE_GAME", - "name" : { "ctxt": "PORTABLE_GAME", "str": "Play" } - },{ - "type" : "item_action", - "id" : "deploy_tent", - "name" : "Put up" - },{ - "type" : "item_action", - "id" : "PORTAL", - "name" : "Place" - },{ - "type" : "item_action", - "id" : "PROZAC", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "PURIFIER", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "PURIFY_IV", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "PURIFY_SMART", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "RADGLOVE", - "name" : "Measure radiation" - },{ - "type" : "item_action", - "id" : "RADIOCAR", - "name" : "..." - },{ - "type" : "item_action", - "id" : "RADIOCARON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "RADIOCONTROL", - "name" : "Control an RC car" - },{ - "type" : "item_action", - "id" : "RADIO_MOD", - "name" : "Modify an item" - },{ - "type" : "item_action", - "id" : "RADIO_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "RADIO_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "REMOTEVEH", - "name" : "Control a vehicle" - },{ - "type" : "item_action", - "id" : "RM13ARMOR_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "RM13ARMOR_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "ROYAL_JELLY", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "SEED", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "SEWAGE", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "SHAVEKIT", - "name" : "Shave" - },{ - "type" : "item_action", - "id" : "SHOCKTONFA_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "SHOCKTONFA_ON", - "name" : "Turn off" - },{ - "type" : "item_action", - "id" : "SIPHON", - "name" : "Siphon" - },{ - "type" : "item_action", - "id" : "SLEEP", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "SMOKING", - "name" : { "ctxt": "SMOKING", "str": "Smoke" } - },{ - "type" : "item_action", - "id" : "SPRAY_CAN", - "name" : "Write something" - },{ - "type" : "item_action", - "id" : "STIMPACK", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "TELEPORT", - "name" : "Teleport yourself" - },{ - "type" : "item_action", - "id" : "THORAZINE", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "THROWABLE_EXTINGUISHER_ACT", - "name" : "Extinguish a fire" - },{ - "type" : "item_action", - "id" : "TORCH_LIT", - "name" : "..." - },{ - "type" : "item_action", - "id" : "TOWEL", - "name" : "Dry/clean yourself" - },{ - "type" : "item_action", - "id" : "TRIMMER_OFF", - "name" : "Turn on" - },{ - "type" : "item_action", - "id" : "UNFOLD_GENERIC", - "name" : "Unfold" - },{ - "type" : "item_action", - "id" : "UNPACK_ITEM", - "name" : "Unpack" - },{ - "type" : "item_action", - "id" : "VACCINE", - "name" : "Inject" - },{ - "type" : "item_action", - "id" : "BLOOD_DRAW", - "name" : "Draw some blood" - },{ - "type" : "item_action", - "id" : "VIBE", - "name" : "Well, you know" - },{ - "type" : "item_action", - "id" : "VORTEX", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "WASHCLOTHES", - "name" : "Wash clothes" - },{ - "type" : "item_action", - "id" : "WATER_PURIFIER", - "name" : "Purify some water" - },{ - "type" : "item_action", - "id" : "WEATHER_TOOL", - "name" : "Check weather information" - },{ - "type" : "item_action", - "id" : "WEED_BROWNIE", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "XANAX", - "name" : "Take" - },{ - "type" : "item_action", - "id" : "ammobelt", - "name" : "Reload" - },{ - "type" : "item_action", - "id" : "bandolier", - "name" : "Store/unload ammo" - },{ - "type" : "item_action", - "id" : "consume_drug", - "name" : "Consume" - },{ - "type" : "item_action", - "id" : "delayed_transform", - "name" : "Use" - },{ - "type" : "item_action", - "id" : "explosion", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "heal", - "name" : "Apply" - },{ - "type" : "item_action", - "id" : "manualnoise", - "name" : "Make some noise" - },{ - "type" : "item_action", - "id" : "musical_instrument", - "name" : { "ctxt": "musical_instrument", "str": "Play" } - },{ - "type" : "item_action", - "id" : "place_monster", - "name" : "Activate" - },{ - "type" : "item_action", - "id" : "place_trap", - "name" : "Place" - },{ - "type" : "item_action", - "id" : "reveal_map", - "name" : "Read" - },{ - "type" : "item_action", - "id" : "unfold_vehicle", - "name" : "Unfold" - },{ - "type" : "item_action", - "id" : "ups_based_armor", - "name" : "Activate/deactivate" - }, - { - "type" : "item_action", - "id" : "CATTLEFODDER", - "name" : "Place" - }, - { - "type" : "item_action", - "id" : "BIRDFOOD", - "name" : "Place" - }, - { - "type" : "item_action", - "id" : "install_bionic", - "name" : "Install bionic" - }, - { - "type" : "item_action", - "id" : "CHOP_TREE", - "name" : "Chop down a tree" - }, - { - "type" : "item_action", - "id" : "CHOP_LOGS", - "name" : "Chop a Tree Trunk into logs" - }, - { - "type" : "item_action", - "id" : "BREAK_STICK", - "name" : "Break stick" - }, - { - "type" : "item_action", - "id" : "WEAK_ANTIBIOTIC", - "name" : "Take" - }, - { - "type" : "item_action", - "id" : "DISASSEMBLE", - "name" : "Get content" - }, - { - "type" : "item_action", - "id" : "STRONG_ANTIBIOTIC", - "name" : "Take" - }, - { - "type" : "item_action", - "id" : "PANACEA", - "name" : "Take" - } + { + "type": "item_action", + "id": "repair_fabric", + "name": "Repair cotton/leather/wool/Nomex/fur" + }, + { + "type": "item_action", + "id": "repair_metal", + "name": "Repair metal/plastic/kevlar" + }, + { + "type": "item_action", + "id": "SEW_ADVANCED", + "name": "Modify Clothing" + }, + { + "type": "item_action", + "id": "firestarter", + "name": "Start a fire quickly" + }, + { + "type": "item_action", + "id": "HAMMER", + "name": "Pull out nails" + }, + { + "type": "item_action", + "id": "picklock", + "name": "Pick a lock" + }, + { + "type": "item_action", + "id": "deploy_furn", + "name": "Deploy item" + }, + { + "type": "item_action", + "id": "CROWBAR", + "name": "Pry crate, window or door" + }, + { + "type": "item_action", + "id": "MAKEMOUND", + "name": "Upturn earth" + }, + { + "type": "item_action", + "id": "PICKAXE", + "name": "Dig through rock" + }, + { + "type": "item_action", + "id": "GEIGER", + "name": "Use geiger counter" + }, + { + "type": "item_action", + "id": "HACKSAW", + "name": "Cut metal" + }, + { + "type": "item_action", + "id": "BOLTCUTTERS", + "name": "Cut bolts or wires" + }, + { + "type": "item_action", + "id": "HOTPLATE", + "name": "Heat up food (with it)" + }, + { + "type": "item_action", + "id": "MISC_REPAIR", + "name": "Repair wood/paper/bone/chitin" + }, + { + "type": "item_action", + "id": "TOOLMOD_ATTACH", + "name": "Attach as toolmod" + }, + { + "type": "item_action", + "id": "GUNMOD_ATTACH", + "name": "Attach as gunmod" + }, + { + "type": "item_action", + "id": "GUN_REPAIR", + "name": "Repair a gun" + }, + { + "type": "item_action", + "id": "DIRECTIONAL_HOLOGRAM", + "name": "Create a moving hologram" + }, + { + "type": "item_action", + "id": "ROBOTCONTROL", + "name": "Hack a robot" + }, + { + "type": "item_action", + "id": "METH", + "name": "Smoke/snort meth" + }, + { + "type": "item_action", + "id": "TAZER", + "name": "Taze something" + }, + { + "type": "item_action", + "id": "ANTICONVULSANT", + "name": "Take anticonvulsant" + }, + { + "type": "item_action", + "id": "LUMBER", + "name": "Cut a log into planks" + }, + { + "type": "item_action", + "id": "REMOVE_ALL_MODS", + "name": "Remove tool mods" + }, + { + "type": "item_action", + "id": "salvage", + "name": "Cut up an item" + }, + { + "type": "item_action", + "id": "inscribe", + "name": "Write on an item" + }, + { + "type": "item_action", + "id": "cauterize", + "name": "Cauterize a wound" + }, + { + "type": "item_action", + "id": "enzlave", + "name": "Create a zombie slave" + }, + { + "type": "item_action", + "id": "fireweapon_off", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "fireweapon_on", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "CARVER_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "TRIMMER_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "CIRCSAW_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "CHAINSAW_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "ELEC_CHAINSAW_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "transform", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "countdown", + "name": "Start countdown" + }, + { + "type": "item_action", + "id": "holster", + "name": "Use holster" + }, + { + "type": "item_action", + "id": "saw_barrel", + "name": "Saw down barrel" + }, + { + "type": "item_action", + "id": "ACIDBOMB_ACT", + "name": "Activate" + }, + { + "type": "item_action", + "id": "ADRENALINE_INJECTOR", + "name": "Inject" + }, + { + "type": "item_action", + "id": "ALCOHOL", + "name": "Drink" + }, + { + "type": "item_action", + "id": "ALCOHOL_STRONG", + "name": "Drink" + }, + { + "type": "item_action", + "id": "ALCOHOL_WEAK", + "name": "Drink" + }, + { + "type": "item_action", + "id": "ANTIBIOTIC", + "name": "Take" + }, + { + "type": "item_action", + "id": "ANTIFUNGAL", + "name": "Take" + }, + { + "type": "item_action", + "id": "ANTIPARASITIC", + "name": "Take" + }, + { + "type": "item_action", + "id": "ARROW_FLAMABLE", + "name": "Light up" + }, + { + "type": "item_action", + "id": "ARTIFACT", + "name": "Use" + }, + { + "type": "item_action", + "id": "ATOMIC_CAFF", + "name": "Drink" + }, + { + "type": "item_action", + "id": "BATTLETORCH_LIT", + "name": "Extinguish" + }, + { + "type": "item_action", + "id": "BELL", + "name": "Ring" + }, + { + "type": "item_action", + "id": "BLECH", + "name": "Drink" + }, + { + "type": "item_action", + "id": "C4", + "name": "Activate" + }, + { + "type": "item_action", + "id": "CABLE_ATTACH", + "name": "Attach" + }, + { + "type": "item_action", + "id": "CAFF", + "name": "Consume" + }, + { + "type": "item_action", + "id": "CAMERA", + "name": "Use camera" + }, + { + "type": "item_action", + "id": "CAN_GOO", + "name": "Pour out" + }, + { + "type": "item_action", + "id": "CAPTURE_MONSTER_ACT", + "name": "Capture/place" + }, + { + "type": "item_action", + "id": "CAPTURE_MONSTER_VEH", + "name": "Capture/place" + }, + { + "type": "item_action", + "id": "CARVER_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "CATFOOD", + "name": "Place" + }, + { + "type": "item_action", + "id": "CHAINSAW_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "CHEW", + "name": "Chew" + }, + { + "type": "item_action", + "id": "CLEAR_RUBBLE", + "name": "Clear rubble" + }, + { + "type": "item_action", + "id": "COIN_FLIP", + "name": "Flip" + }, + { + "type": "item_action", + "id": "COKE", + "name": "Snort coke" + }, + { + "type": "item_action", + "id": "COMBATSAW_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "COMBATSAW_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "E_COMBATSAW_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "E_COMBATSAW_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "CONTACTS", + "name": "Apply" + }, + { + "type": "item_action", + "id": "CS_LAJATANG_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "CS_LAJATANG_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "ECS_LAJATANG_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "ECS_LAJATANG_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "DATURA", + "name": "Eat" + }, + { + "type": "item_action", + "id": "DIG", + "name": "Dig pit" + }, + { + "type": "item_action", + "id": "DIRECTIONAL_ANTENNA", + "name": "Find direction" + }, + { + "type": "item_action", + "id": "DOGFOOD", + "name": "Place" + }, + { + "type": "item_action", + "id": "DOG_WHISTLE", + "name": "Blow" + }, + { + "type": "item_action", + "id": "DOLLCHAT", + "name": "Make it talk" + }, + { + "type": "item_action", + "id": "ECIG", + "name": { "ctxt": "ECIG", "str": "Smoke" } + }, + { + "type": "item_action", + "id": "EHANDCUFFS", + "name": "Take off" + }, + { + "type": "item_action", + "id": "EINKTABLETPC", + "name": "Use" + }, + { + "type": "item_action", + "id": "ELEC_CHAINSAW_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "EXTINGUISHER", + "name": "Spray" + }, + { + "type": "item_action", + "id": "EYEDROPS", + "name": "Use" + }, + { + "type": "item_action", + "id": "FILL_PIT", + "name": "Fill pit / tamp ground" + }, + { + "type": "item_action", + "id": "FIRECRACKER", + "name": "Light up" + }, + { + "type": "item_action", + "id": "FIRECRACKER_ACT", + "name": "Light up" + }, + { + "type": "item_action", + "id": "FIRECRACKER_PACK", + "name": "Light up" + }, + { + "type": "item_action", + "id": "FIRECRACKER_PACK_ACT", + "name": "Light up" + }, + { + "type": "item_action", + "id": "FISH_ROD", + "name": "Fish" + }, + { + "type": "item_action", + "id": "FISH_TRAP", + "name": "Set" + }, + { + "type": "item_action", + "id": "FLUMED", + "name": "Take" + }, + { + "type": "item_action", + "id": "FLUSLEEP", + "name": "Take" + }, + { + "type": "item_action", + "id": "FLU_VACCINE", + "name": "Inject" + }, + { + "type": "item_action", + "id": "FUNGICIDE", + "name": "Take" + }, + { + "type": "item_action", + "id": "GRANADE", + "name": "Activate" + }, + { + "type": "item_action", + "id": "GRANADE_ACT", + "name": "Activate" + }, + { + "type": "item_action", + "id": "GRENADE_INC_ACT", + "name": "Activate" + }, + { + "type": "item_action", + "id": "detach_gunmods", + "name": "Detach gunmods" + }, + { + "type": "item_action", + "id": "HAIRKIT", + "name": "Trim the hair" + }, + { + "type": "item_action", + "id": "HEATPACK", + "name": "Use" + }, + { + "type": "item_action", + "id": "HEAT_FOOD", + "name": "Heat up food (in it)" + }, + { + "type": "item_action", + "id": "HONEYCOMB", + "name": "Consume" + }, + { + "type": "item_action", + "id": "INHALER", + "name": "Inhale" + }, + { + "type": "item_action", + "id": "JACKHAMMER", + "name": "Drill" + }, + { + "type": "item_action", + "id": "JET_INJECTOR", + "name": "Inject" + }, + { + "type": "item_action", + "id": "LADDER", + "name": "Place" + }, + { + "type": "item_action", + "id": "MAGIC_8_BALL", + "name": "Ask" + }, + { + "type": "item_action", + "id": "MARLOSS", + "name": "Consume" + }, + { + "type": "item_action", + "id": "MARLOSS_GEL", + "name": "Consume" + }, + { + "type": "item_action", + "id": "MARLOSS_SEED", + "name": "Consume" + }, + { + "type": "item_action", + "id": "MA_MANUAL", + "name": "Read" + }, + { + "type": "item_action", + "id": "MEDITATE", + "name": "Meditate" + }, + { + "type": "item_action", + "id": "MININUKE", + "name": "Activate" + }, + { + "type": "item_action", + "id": "MOLOTOV_LIT", + "name": "Light up" + }, + { + "type": "item_action", + "id": "MOP", + "name": "Mop" + }, + { + "type": "item_action", + "id": "MP3", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "MP3_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "GASMASK", + "name": "Prepare to use" + }, + { + "type": "item_action", + "id": "SOLARPACK", + "name": "Unfold" + }, + { + "type": "item_action", + "id": "SOLARPACK_OFF", + "name": "Fold" + }, + { + "type": "item_action", + "id": "MULTICOOKER", + "name": "Cook" + }, + { + "type": "item_action", + "id": "mutagen", + "name": "Consume" + }, + { + "type": "item_action", + "id": "mutagen_iv", + "name": "Inject" + }, + { + "type": "item_action", + "id": "MYCUS", + "name": "Consume" + }, + { + "type": "item_action", + "id": "NOISE_EMITTER_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "NOISE_EMITTER_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "OXYGEN_BOTTLE", + "name": "Inhale" + }, + { + "type": "item_action", + "id": "OXYTORCH", + "name": "Cut up metal" + }, + { + "type": "item_action", + "id": "PACK_ITEM", + "name": "Pack an item" + }, + { + "type": "item_action", + "id": "PHEROMONE", + "name": "Squeeze" + }, + { + "type": "item_action", + "id": "PLANTBLECH", + "name": "Consume" + }, + { + "type": "item_action", + "id": "POISON", + "name": "Consume" + }, + { + "type": "item_action", + "id": "PORTABLE_GAME", + "name": { "ctxt": "PORTABLE_GAME", "str": "Play" } + }, + { + "type": "item_action", + "id": "deploy_tent", + "name": "Put up" + }, + { + "type": "item_action", + "id": "PORTAL", + "name": "Place" + }, + { + "type": "item_action", + "id": "PROZAC", + "name": "Take" + }, + { + "type": "item_action", + "id": "PURIFIER", + "name": "Consume" + }, + { + "type": "item_action", + "id": "PURIFY_IV", + "name": "Inject" + }, + { + "type": "item_action", + "id": "PURIFY_SMART", + "name": "Inject" + }, + { + "type": "item_action", + "id": "RADGLOVE", + "name": "Measure radiation" + }, + { + "type": "item_action", + "id": "RADIOCAR", + "name": "..." + }, + { + "type": "item_action", + "id": "RADIOCARON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "RADIOCONTROL", + "name": "Control an RC car" + }, + { + "type": "item_action", + "id": "RADIO_MOD", + "name": "Modify an item" + }, + { + "type": "item_action", + "id": "RADIO_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "RADIO_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "REMOTEVEH", + "name": "Control a vehicle" + }, + { + "type": "item_action", + "id": "RM13ARMOR_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "RM13ARMOR_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "ROYAL_JELLY", + "name": "Consume" + }, + { + "type": "item_action", + "id": "SEED", + "name": "Consume" + }, + { + "type": "item_action", + "id": "SEWAGE", + "name": "Consume" + }, + { + "type": "item_action", + "id": "SHAVEKIT", + "name": "Shave" + }, + { + "type": "item_action", + "id": "SHOCKTONFA_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "SHOCKTONFA_ON", + "name": "Turn off" + }, + { + "type": "item_action", + "id": "SIPHON", + "name": "Siphon" + }, + { + "type": "item_action", + "id": "SLEEP", + "name": "Take" + }, + { + "type": "item_action", + "id": "SMOKING", + "name": { "ctxt": "SMOKING", "str": "Smoke" } + }, + { + "type": "item_action", + "id": "SPRAY_CAN", + "name": "Write something" + }, + { + "type": "item_action", + "id": "STIMPACK", + "name": "Inject" + }, + { + "type": "item_action", + "id": "TELEPORT", + "name": "Teleport yourself" + }, + { + "type": "item_action", + "id": "THORAZINE", + "name": "Take" + }, + { + "type": "item_action", + "id": "THROWABLE_EXTINGUISHER_ACT", + "name": "Extinguish a fire" + }, + { + "type": "item_action", + "id": "TORCH_LIT", + "name": "..." + }, + { + "type": "item_action", + "id": "TOWEL", + "name": "Dry/clean yourself" + }, + { + "type": "item_action", + "id": "TRIMMER_OFF", + "name": "Turn on" + }, + { + "type": "item_action", + "id": "UNFOLD_GENERIC", + "name": "Unfold" + }, + { + "type": "item_action", + "id": "UNPACK_ITEM", + "name": "Unpack" + }, + { + "type": "item_action", + "id": "VACCINE", + "name": "Inject" + }, + { + "type": "item_action", + "id": "BLOOD_DRAW", + "name": "Draw some blood" + }, + { + "type": "item_action", + "id": "VIBE", + "name": "Well, you know" + }, + { + "type": "item_action", + "id": "VORTEX", + "name": "Use" + }, + { + "type": "item_action", + "id": "WASHCLOTHES", + "name": "Wash clothes" + }, + { + "type": "item_action", + "id": "WATER_PURIFIER", + "name": "Purify some water" + }, + { + "type": "item_action", + "id": "WEATHER_TOOL", + "name": "Check weather information" + }, + { + "type": "item_action", + "id": "WEED_BROWNIE", + "name": "Consume" + }, + { + "type": "item_action", + "id": "XANAX", + "name": "Take" + }, + { + "type": "item_action", + "id": "ammobelt", + "name": "Reload" + }, + { + "type": "item_action", + "id": "bandolier", + "name": "Store/unload ammo" + }, + { + "type": "item_action", + "id": "consume_drug", + "name": "Consume" + }, + { + "type": "item_action", + "id": "delayed_transform", + "name": "Use" + }, + { + "type": "item_action", + "id": "explosion", + "name": "Activate" + }, + { + "type": "item_action", + "id": "heal", + "name": "Apply" + }, + { + "type": "item_action", + "id": "manualnoise", + "name": "Make some noise" + }, + { + "type": "item_action", + "id": "musical_instrument", + "name": { "ctxt": "musical_instrument", "str": "Play" } + }, + { + "type": "item_action", + "id": "place_monster", + "name": "Activate" + }, + { + "type": "item_action", + "id": "place_trap", + "name": "Place" + }, + { + "type": "item_action", + "id": "reveal_map", + "name": "Read" + }, + { + "type": "item_action", + "id": "unfold_vehicle", + "name": "Unfold" + }, + { + "type": "item_action", + "id": "ups_based_armor", + "name": "Activate/deactivate" + }, + { + "type": "item_action", + "id": "CATTLEFODDER", + "name": "Place" + }, + { + "type": "item_action", + "id": "BIRDFOOD", + "name": "Place" + }, + { + "type": "item_action", + "id": "install_bionic", + "name": "Install bionic" + }, + { + "type": "item_action", + "id": "CHOP_TREE", + "name": "Chop down a tree" + }, + { + "type": "item_action", + "id": "CHOP_LOGS", + "name": "Chop a Tree Trunk into logs" + }, + { + "type": "item_action", + "id": "BREAK_STICK", + "name": "Break stick" + }, + { + "type": "item_action", + "id": "WEAK_ANTIBIOTIC", + "name": "Take" + }, + { + "type": "item_action", + "id": "DISASSEMBLE", + "name": "Get content" + }, + { + "type": "item_action", + "id": "STRONG_ANTIBIOTIC", + "name": "Take" + }, + { + "type": "item_action", + "id": "PANACEA", + "name": "Take" + } ] diff --git a/data/json/item_groups.json b/data/json/item_groups.json index da7f5995cd7e8..98076fbb8e5a3 100644 --- a/data/json/item_groups.json +++ b/data/json/item_groups.json @@ -150,6 +150,10 @@ ["wheel_bicycle", 10], ["wheel_motorbike", 10], ["wheel_small", 10], + ["wheel_wide_or", 5], + ["wheel_bicycle_or", 5], + ["wheel_motorbike_or", 5], + ["wheel_slick", 5], ["1cyl_combustion", 10], ["v2_combustion", 10], ["i4_combustion", 10], @@ -340,7 +344,6 @@ ["gum", 30], ["caff_gum", 3], ["flask_hip", 5], - ["sm_extinguisher", 10], ["atomic_light", 1], ["atomic_lamp", 1], ["dog_whistle", 5], @@ -380,7 +383,8 @@ ["robe", 3], ["thawb", 1], ["kimono", 1], - ["eclipse_glasses", 1] + ["eclipse_glasses", 1], + ["reading_light", 9] ] },{ "type" : "item_group", @@ -1079,7 +1083,8 @@ ["holy_symbol", 5], ["pet_carrier", 3], ["eclipse_glasses", 1], - ["bodypillow", 2] + ["bodypillow", 2], + ["reading_light", 8] ] },{ "type" : "item_group", @@ -2134,7 +2139,8 @@ ["radiocontrol", 15], ["magnifying_glass", 4], ["omnicamera", 2], - ["l-stick", 1] + ["l-stick", 1], + ["reading_light", 6] ] },{ "type" : "item_group", @@ -2613,6 +2619,48 @@ ["single_malt_whiskey", 2], ["survnote", 1] ] + },{ + "type" : "item_group", + "id" : "alcohol_bottled_canned", + "items":[ + ["whiskey", 16], + ["vodka", 20], + ["gin", 20], + ["rum", 14], + ["tequila", 12], + ["triple_sec", 12], + ["brandy", 12], + ["drink_rumcola", 12], + ["drink_screwdriver", 12], + ["drink_wild_apple", 8], + ["drink_strawberry_surprise", 6], + ["drink_boozeberry", 6], + ["drink_hobo", 10], + ["drink_kalimotxo", 10], + ["drink_beeknees", 8], + ["drink_wsour", 8], + ["wine_riesling", 6], + ["wine_chardonnay", 10], + ["wine_cabernet", 10], + ["wine_noir", 5], + ["dandelion_wine", 8], + ["pine_wine", 6], + ["bum_wine", 20], + ["fruit_wine", 12], + ["beer", 35], + ["european_pilsner", 25], + ["pale_ale", 25], + ["india_pale_ale", 25], + ["stout", 15], + ["belgian_ale", 10], + ["imperial_stout", 5], + ["hb_beer", 8], + ["long_island", 6], + ["mead", 10], + ["moonshine", 8], + ["eggnog_spiked", 5], + ["chem_ethanol", 5] + ] },{ "type" : "item_group", "id" : "wines_worthy", @@ -2733,7 +2781,8 @@ ["clogs", 1], ["leathersandals", 10], ["rollerskates", 1], - ["roller_blades", 5] + ["roller_blades", 5], + ["mocassins", 20] ] },{ "type" : "item_group", @@ -2781,7 +2830,8 @@ ["postman_shirt", 5], ["halter_top", 50], ["linuxtshirt", 10], - ["sleeveless_tunic", 5] + ["sleeveless_tunic", 5], + ["poncho", 20] ] },{ "type" : "item_group", @@ -2978,20 +3028,26 @@ "type" : "item_group", "id" : "female_underwear_top", "items":[ - ["bra", 90] + ["bra", 70], + ["sports_bra", 50], + ["bikini_top", 10] ] },{ "type" : "item_group", "id" : "female_underwear_bottom", "items":[ ["panties", 70], - ["boy_shorts", 50] + ["boy_shorts", 50], + ["bikini_bottom", 10] ] },{ "type" : "item_group", "id" : "male_underwear_top", "items":[ - ["undershirt", 30] + ["undershirt", 50], + ["long_undertop", 20], + ["under_armor", 20], + ["tank_top", 50] ] },{ "type" : "item_group", @@ -2999,7 +3055,9 @@ "items":[ ["boxer_shorts", 70], ["briefs", 30], - ["boxer_briefs", 50] + ["boxer_briefs", 50], + ["long_underpants", 20], + ["under_armor_shorts", 20] ] },{ "type" : "item_group", @@ -3492,6 +3550,7 @@ [ "novel_swash", 30 ], [ "manual_fencing", 9 ], [ "manual_niten", 9 ], + [ "manual_sojutsu", 9 ], [ "novel_samurai", 30 ], [ "plays_book", 30 ], [ "poetry_book", 30 ], @@ -5113,6 +5172,10 @@ ["wheel_bicycle", 10], ["wheel_motorbike", 10], ["wheel_small", 10], + ["wheel_wide_or", 5], + ["wheel_bicycle_or", 5], + ["wheel_motorbike_or", 5], + ["wheel_slick", 5], ["1cyl_combustion", 10], ["v2_combustion", 10], ["i4_combustion", 10], @@ -8607,6 +8670,25 @@ ["diamond", 75] ] },{ + "type" : "item_group", + "id" : "jewelry_accessories", + "items":[ + ["ring", 30], + ["gold_ear", 30], + ["gold_bracelet", 30], + ["gold_dental_grill", 10], + ["silver_ear", 40], + ["necklace", 40], + ["silver_bracelet", 40], + ["diamond_ring", 10], + ["diamond_dental_grill", 5], + ["brooch", 30], + ["copper_ear", 50], + ["tieclip", 35], + ["pearl_collar", 30], + ["holy_symbol", 20] + ] + },{ "type" : "item_group", "id" : "antique", "items" : [ @@ -9241,6 +9323,7 @@ ["glasses_reading", 50], ["string_6", 25], ["candle", 20], + ["reading_light", 25], ["survnote", 1] ] },{ @@ -9415,7 +9498,8 @@ { "item": "cell_phone", "prob": 35, "charges-min": 0, "charges-max": 15 }, { "item": "cell_phone_flashlight", "prob": 25, "charges-min": 0, "charges-max": 15 }, [ "e_scrap", 55 ], - [ "amplifier", 25 ] + [ "amplifier", 25 ], + [ "reading_light", 10 ] ] }, { @@ -9587,6 +9671,10 @@ [ "wheel_small", 35 ], [ "wheel_motorbike", 25 ], [ "wheel_bicycle", 40 ], + [ "wheel_wide_or", 25], + [ "wheel_bicycle_or", 25], + [ "wheel_motorbike_or", 25], + [ "wheel_slick", 25], [ "wheel", 50 ] ] }, @@ -9898,5 +9986,29 @@ { "item": "ceramic_shard", "prob": 65, "count-min": 2, "count-max": 5 }, { "item": "plastic_chunk", "prob": 100, "count-min": 2, "count-max": 5 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "phones", + "items": [ + { "item": "cell_phone", "prob": 50, "charges-min": 0, "charges-max": 15 }, + { "item": "smart_phone", "prob": 50, "charges-min": 0, "charges-max": 15 } + ] + }, + { + "type": "item_group", + "id": "common_gloves", + "items": [ + { "item": "gloves_light", "prob": 15 }, + { "item": "gloves_leather", "prob": 15 }, + { "item": "gloves_golf", "prob": 15 }, + { "item": "gloves_wool", "prob": 15 }, + { "item": "gloves_winter", "prob": 10 }, + { "item": "gloves_fingerless", "prob": 15 }, + { "item": "gloves_liner", "prob": 15 }, + { "item": "mittens", "prob": 5 }, + { "item": "thermal_gloves", "prob": 2 } + ] } ] diff --git a/data/json/itemgroups/ammo.json b/data/json/itemgroups/ammo.json index cd8216ce0896e..c0922af619127 100644 --- a/data/json/itemgroups/ammo.json +++ b/data/json/itemgroups/ammo.json @@ -22,26 +22,23 @@ "id": "ammo_pistol_rare", "//": "Less common pistol ammo including that only used by police/paramilitary forces.", "items": [ - [ "10mm", 15 ], - [ "38_super", 20 ], - [ "44fmj", 15 ], - [ "44magnum", 35 ], - [ "45_super", 30 ], - [ "57mm", 50 ], - [ "9mmP", 30 ], - [ "9mmP2", 20 ] + [ "10mm", 15 ], + [ "38_super", 20 ], + [ "44fmj", 15 ], + [ "44magnum", 35 ], + [ "45_super", 30 ], + [ "460_rowland", 15 ], + [ "460_fmj", 10 ], + [ "57mm", 50 ], + [ "9mmP", 30 ], + [ "9mmP2", 20 ] ] }, { "type": "item_group", "id": "ammo_pistol_milspec", "//": "Military specification pistol ammo found at military sites.", - "items": [ - [ "46mm", 70 ], - [ "5x50dart", 30 ], - [ "5x50heavy", 20 ], - [ "9mmfmj", 100 ] - ] + "items": [ [ "46mm", 70 ], [ "5x50dart", 30 ], [ "5x50heavy", 20 ], [ "9mmfmj", 100 ] ] }, { "type": "item_group", @@ -63,73 +60,65 @@ "id": "ammo_pistol_reloaded", "//": "Reloaded pistol ammo balanced according to rarity.", "items": [ - [ "reloaded_10mm", 10 ], - [ "reloaded_32_acp", 50 ], - [ "reloaded_38_fmj", 30 ], - [ "reloaded_38_special", 80 ], - [ "reloaded_38_super", 40 ], - [ "reloaded_357sig_fmj", 70 ], - [ "reloaded_357sig_jhp", 70 ], - [ "reloaded_40fmj", 20 ], - [ "reloaded_40sw", 50 ], - [ "reloaded_44magnum", 60], - [ "reloaded_44fmj", 30 ], - [ "reloaded_45_acp", 80 ], - [ "reloaded_45_jhp", 100 ], - [ "reloaded_45_super", 40 ], - [ "reloaded_46mm", 20 ], - [ "reloaded_454_Casull", 5 ], - [ "reloaded_500_Magnum", 5 ], - [ "reloaded_57mm", 50 ], - [ "reloaded_9mm", 160 ], - [ "reloaded_9mmfmj", 80 ], - [ "reloaded_9mmP", 80 ], - [ "reloaded_9mmP2", 40 ], - [ "reloaded_9x18mm", 20 ], - [ "reloaded_9x18mmfmj", 10 ], - [ "reloaded_9x18mmP2", 5 ], - [ "reloaded_762_25", 10 ] + [ "reloaded_10mm", 10 ], + [ "reloaded_32_acp", 50 ], + [ "reloaded_38_fmj", 30 ], + [ "reloaded_38_special", 80 ], + [ "reloaded_38_super", 40 ], + [ "reloaded_357sig_fmj", 70 ], + [ "reloaded_357sig_jhp", 70 ], + [ "reloaded_40fmj", 20 ], + [ "reloaded_40sw", 50 ], + [ "reloaded_44magnum", 60 ], + [ "reloaded_44fmj", 30 ], + [ "reloaded_45_acp", 80 ], + [ "reloaded_45_jhp", 100 ], + [ "reloaded_45_super", 40 ], + [ "reloaded_46mm", 20 ], + [ "reloaded_454_Casull", 5 ], + [ "reloaded_460_fmj", 5 ], + [ "reloaded_460_rowland", 5 ], + [ "reloaded_500_Magnum", 5 ], + [ "reloaded_57mm", 50 ], + [ "reloaded_9mm", 160 ], + [ "reloaded_9mmfmj", 80 ], + [ "reloaded_9mmP", 80 ], + [ "reloaded_9mmP2", 40 ], + [ "reloaded_9x18mm", 20 ], + [ "reloaded_9x18mmfmj", 10 ], + [ "reloaded_9x18mmP2", 5 ], + [ "reloaded_762_25", 10 ] ] }, { "type": "item_group", "id": "ammo_smg_common", "//": "SMG ammo commonly owned by citizens and found in many locations.", - "items": [ - { "group": "ammo_pistol_common", "prob": 100 } - ] + "items": [ { "group": "ammo_pistol_common", "prob": 100 } ] }, { "type": "item_group", "id": "ammo_smg_rare", "//": "Less common SMGs including that only used by police/paramilitary forces.", - "items": [ - { "group": "ammo_pistol_rare", "prob": 100 } - ] + "items": [ { "group": "ammo_pistol_rare", "prob": 100 } ] }, { "type": "item_group", "id": "ammo_smg_milspec", "//": "Military specification SMG ammo found at military sites.", - "items": [ - { "group": "ammo_pistol_milspec", "prob": 100 } - ] + "items": [ { "group": "ammo_pistol_milspec", "prob": 100 } ] }, { "type": "item_group", "id": "ammo_smg_obscure", "//": "Imported or otherwise very obscure SMG ammo.", - "items": [ - { "group": "ammo_pistol_obscure", "prob": 100 } - ] + "items": [ { "group": "ammo_pistol_obscure", "prob": 100 } ] }, { "type": "item_group", "id": "ammo_smg_reloaded", "//": "Reloaded SMG ammo balanced according to rarity.", - "items": [ - { "group": "ammo_pistol_reloaded", "prob": 100 } - ] + "items": [ { "group": "ammo_pistol_reloaded", "prob": 100 } ] }, { "type": "item_group", @@ -152,14 +141,7 @@ "type": "item_group", "id": "ammo_rifle_rare", "//": "Less common rifle ammo including that only used by police/paramilitary forces.", - "items": [ - [ "300_winmag", 40 ], - [ "3006fmj", 50 ], - [ "556", 100 ], - [ "762_51", 50 ], - [ "762_m87", 25 ], - [ "8mm_civilian", 15 ] - ] + "items": [ [ "300_winmag", 40 ], [ "3006fmj", 50 ], [ "556", 100 ], [ "762_51", 50 ], [ "762_m87", 25 ], [ "8mm_civilian", 15 ] ] }, { "type": "item_group", @@ -187,11 +169,7 @@ "type": "item_group", "id": "ammo_rifle_obscure", "//": "Imported or otherwise very obscure rifle ammo.", - "items": [ - [ "545", 150 ], - [ "545_ap", 100 ], - [ "700nx", 70 ] - ] + "items": [ [ "545", 150 ], [ "545_ap", 100 ], [ "700nx", 70 ] ] }, { "type": "item_group", @@ -219,10 +197,7 @@ "type": "item_group", "id": "ammo_shotgun_common", "//": "Shotgun ammo commonly owned by citizens and found in many locations.", - "items": [ - [ "shot_00", 100 ], - [ "shot_bird", 70 ] - ] + "items": [ [ "shot_00", 100 ], [ "shot_bird", 70 ] ] }, { "type": "item_group", @@ -241,20 +216,13 @@ "type": "item_group", "id": "ammo_shotgun_milspec", "//": "Military specification shotgun ammo found at military sites.", - "items": [ - [ "20x66_exp", 10 ], - [ "20x66_flechette", 60 ], - [ "20x66_inc", 20 ], - [ "shot_flechette", 100 ], - [ "shot_he", 10 ] - ] + "items": [ [ "20x66_exp", 10 ], [ "20x66_flechette", 60 ], [ "20x66_inc", 20 ], [ "shot_flechette", 100 ], [ "shot_he", 10 ] ] }, { "type": "item_group", "id": "ammo_shotgun_obscure", "//": "Imported or otherwise very obscure shotgun ammo.", - "items": [ - ] + "items": [ ] }, { "type": "item_group", diff --git a/data/json/itemgroups/guns.json b/data/json/itemgroups/guns.json index 09ec0b7d9955e..a6b82217c354e 100644 --- a/data/json/itemgroups/guns.json +++ b/data/json/itemgroups/guns.json @@ -45,7 +45,6 @@ "//": "Military specification pistols only ever found at military sites.", "items": [ [ "hk_ucp", 100 ], - [ "l_bak_223", 60 ], [ "l_mp_45", 70 ], [ "l_mp_9mm", 100 ], [ "needlepistol", 45 ], @@ -63,6 +62,7 @@ [ "moss_brownie", 100 ], [ "pistol_flintlock", 150 ], [ "raging_bull", 100 ], + [ "l_bak_223", 80 ], [ "rm99_pistol", 150 ], [ "tokarev", 100 ], [ "walther_ppk", 100 ] @@ -112,7 +112,8 @@ "items": [ [ "hk_mp7", 100 ], [ "needlegun", 30 ], - [ "rm2000_smg", 50 ] + [ "rm2000_smg", 50 ], + [ "hk_mp5sd", 75 ] ] }, { diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json index 322e2c6dc6df6..3277437ba6db3 100644 --- a/data/json/items/ammo.json +++ b/data/json/items/ammo.json @@ -1,975 +1,1010 @@ [ - { - "type" : "AMMO", - "id" : "battery", - "category" : "spare_parts", - "price" : 12000, - "name" : "battery", - "name_plural" : "batteries", - "symbol" : "=", - "color" : "yellow", - "description" : "A set of universal batteries. Used to charge almost any electronic device.", - "material" : "iron", - "volume" : 1, - "weight" : 1, - "ammo_type" : "battery", - "count" : 100, - "//": "1 battery is 1 kJ of energy. 40 batteries is an alkaline C-cell.", - "fuel": { - "energy": 1 - } - }, - { - "type" : "AMMO", - "id" : "aluminum_foil", - "category" : "spare_parts", - "price" : 648, - "name" : "aluminum foil", - "symbol" : "=", - "color" : "light_gray", - "description" : "A thin foil made of aluminum. Sometimes called 'tin foil' due to being made of tin in the past.", - "material" : "aluminum", - "volume" : 0, - "weight" : 4, - "ammo_type" : "components", - "count" : 200 - }, - { "type" : "AMMO", - "id" : "money", - "price" : 1, "//": "= one cent, gives correct prices for cash cards", - "name" : "cent", - "symbol" : "=", - "color" : "light_gray", - "description" : "IF YOU ARE SEEING THIS IT IS A BUG.", - "flags" : "TRADER_AVOID", - "volume" : 0, - "ammo_type" : "money" - },{ - "type" : "AMMO", - "id" : "thread", - "category" : "spare_parts", - "price" : 5000, - "name" : "thread", - "symbol" : "=", - "color" : "light_gray", - "description" : "A small quantity of thread that could be used to refill a sewing kit.", - "material" : "cotton", - "flags" : ["NO_SALVAGE"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "thread", - "count" : 50, - "stack_size" : 200 - },{ - "type" : "AMMO", - "id" : "sinew", - "category" : "spare_parts", - "price" : 0, - "name" : "sinew", - "symbol" : "=", - "color" : "light_red", - "description" : "A tough sinew cut from a corpse, usable as thread.", - "material" : "flesh", - "volume" : 1, - "weight" : 1, - "ammo_type" : "thread", - "count" : 10, - "stack_size" : 200 - }, - { "type" : "AMMO", - "id" : "plant_fibre", - "category" : "spare_parts", - "price" : 0, - "name" : "plant fiber", - "symbol" : "=", - "color" : "light_green", - "description" : "Tough thin fiber, taken from a plant. Can be used as thread.", - "material" : "veggy", - "volume" : 1, - "weight" : 1, - "ammo_type" : "thread", - "count" : 10, - "stack_size" : 200 - }, - { "type" : "AMMO", - "id" : "yarn", - "category" : "spare_parts", - "price" : 0, - "name" : "yarn", - "symbol" : "=", - "color" : "white", - "description" : "Wool yarn, could be used to knit wool clothing.", - "material" : "wool", - "volume" : 1, - "weight" : 1, - "ammo_type" : "thread", - "count" : 10, - "stack_size" : 200 - }, - { "type" : "AMMO", - "id" : "soap", - "category" : "chems", - "price" : 300, - "name" : "soap bar", - "symbol" : "=", - "color" : "white", - "description" : "A cleansing agent made into bars.", - "volume" : 1, - "weight" : 90, - "ammo_type" : "soap", - "count" : 10, - "stack_size" : 10 - }, - { "type" : "AMMO", - "id" : "duct_tape", - "category" : "spare_parts", - "price" : 2000, - "name" : "duct tape", - "symbol" : "=", - "color" : "light_gray", - "description" : "A roll of incredibly strong tape. Its uses are innumerable.", - "material" : "plastic", - "volume" : 1, - "weight" : 4, - "ammo_type" : "tape", - "count" : 200, - "flags" : ["UNRECOVERABLE"] - }, - { - "type": "AMMO", - "category": "other", - "id": "rolling_paper", - "symbol": ",", - "color": "white", - "name": "rolling paper", - "description": "These are thin paper strips intended for the rolling of cigarettes.", - "price": 150, - "material": "paper", - "weight": 1, - "volume": "100ml", - "ammo_type" : "components", - "stack_size" : 200, - "count" : 30, - "flags" : ["UNRECOVERABLE"] - }, - { "type" : "AMMO", - "id" : "cable", - "category" : "spare_parts", - "price" : 2000, - "name" : "copper wire", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Plastic jacketed copper cable of the type used in small electronics.", - "material" : ["plastic", "copper"], - "volume" : 3, - "weight" : 2, - "ammo_type" : "components", - "count" : 200 - }, - { "type" : "AMMO", - "id" : "plut_cell", - "category" : "spare_parts", - "price" : 150000, - "name" : "plutonium cell", - "symbol" : "=", - "color" : "green", - "description" : "A nuclear-powered battery. Used to charge advanced and rare electronics.", - "material" : ["steel", "plastic"], - "flags": ["LEAK_DAM", "RADIOACTIVE"], - "volume" : 1, - "weight" : 80, - "ammo_type" : "plutonium", - "count" : 5, - "effects" : ["COOKOFF", "NEVER_MISFIRES"], - "fuel": { - "energy": 10 - } - }, - { - "type" : "AMMO", - "id" : "plut_slurry_dense", - "category" : "spare_parts", - "price" : 250, - "name" : "plutonium slurry", - "symbol" : "=", - "color" : "green", - "description" : "Highly radioactive slurry. It is probably best to get far away from this.", - "flags": ["LEAK_ALWAYS", "RADIOACTIVE"], - "volume" : 1, - "weight" : 26, - "ammo_type" : "reactor_slurry", - "phase" : "liquid", - "container" : "metal_tank_little", - "count" : 10 - }, - { - "type" : "AMMO", - "id" : "plut_slurry", - "category" : "spare_parts", - "price" : 250, - "name" : "watery plutonium slurry", - "symbol" : "=", - "color" : "green", - "description" : "Highly radioactive slurry. It is probably best to get far away from this.", - "flags": ["LEAK_ALWAYS", "RADIOACTIVE"], - "volume" : 1, - "weight" : 25.5, - "ammo_type" : "reactor_slurry", - "phase" : "liquid", - "container" : "metal_tank_little", - "count" : 10 - }, - { "type" : "AMMO", - "id" : "pebble", - "price" : 100, - "name" : "pebble", - "symbol" : "=", - "color" : "light_gray", - "description" : "A handful of pebbles, useful as ammunition for slings or slingshots.", - "material" : "stone", - "volume" : 1, - "weight" : 5, - "ammo_type" : "pebble", - "damage" : 2, - "range" : 10, - "dispersion" : 14, - "loudness" : 0, - "count" : 10, - "effects" : ["NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "marble", - "price" : 200, - "name" : "marble", - "symbol" : "=", - "color" : "light_gray", - "description" : "A handful of glass marbles, useful as ammunition for slings or slingshots.", - "material" : "glass", - "volume" : 1, - "weight" : 3, - "ammo_type" : "pebble", - "damage" : 3, - "range" : 18, - "dispersion" : 12, - "loudness" : 0, - "count" : 20, - "effects" : ["NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "bearing", - "price" : 100, - "name" : "bearings", - "symbol" : "=", - "color" : "dark_gray", - "description" : "A box of ball bearings, useful as ammunition for slings or slingshots.", - "material" : "steel", - "volume" : 1, - "weight" : 10, - "ammo_type" : "pebble", - "damage" : 6, - "pierce" : 1, - "range" : 15, - "dispersion" : 14, - "loudness" : 0, - "count" : 50, - "effects" : ["NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "bb", - "price" : 500, - "name" : "BB", - "symbol" : "=", - "color" : "light_gray", - "description" : "A box of small steel balls. They deal virtually no damage.", - "material" : "steel", - "volume" : "200ml", - "weight" : 1, - "ammo_type" : "BB", - "damage" : 2, - "dispersion" : 100, - "count" : 500, - "stack_size": 200, - "loudness": 9, - "effects" : ["NOGIB","NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "feather", - "category" : "spare_parts", - "price" : 3000, - "name" : "feather", - "symbol" : "=", - "color" : "brown", - "description" : "Feathers from a bird. Useful for fletching arrows.", - "material" : "cotton", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "stack_size" : 100, - "count" : 20 - }, - { - "type" : "AMMO", - "id" : "down_feather", - "category" : "spare_parts", - "price" : 3000, - "name" : "down feather", - "symbol" : "=", - "color" : "brown", - "description" : "Fluffy down feathers from a bird. Useful for making cozy bedclothes.", - "material" : "cotton", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "stack_size" : 100, - "count" : 20 - }, - { "type" : "AMMO", - "id" : "laser_pack", - "price" : 80000, - "name" : "fusion pack", - "symbol" : "=", - "color" : "light_green", - "description" : "In the middle of the 21st Century, military powers began to look towards energy based weapons. The result was the standard fusion pack, capable of delivering bolts of superheated gas at near light speed with no recoil.", - "material" : "plastic", - "volume" : 1, - "weight" : 68, - "ammo_type" : "fusion", - "damage" : 12, - "pierce" : 15, - "range" : 30, - "stack_size" : 40, - "count" : 20, - "effects" : ["NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "66mm_HEAT", - "price" : 0, - "name" : "66mm HEAT", - "symbol" : "=", - "color" : "dark_gray", - "description" : "A 60mm high-explosive anti-tank round. It could blow through up to two feet of concrete.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1803, - "ammo_type" : "66mm", - "damage" : 2500, - "pierce" : 400, - "range" : 80, - "dispersion" : 30, - "recoil" : 225, - "effects" : ["COOKOFF", "EXPLOSIVE", "TRAIL"] - }, - { - "type" : "AMMO", - "id" : "120mm_HEAT", - "price" : 999999, - "name" : "120mm HEAT", - "symbol" : "=", - "color" : "dark_gray", - "description" : "A 120mm high-explosive anti-tank round. It could ruin anyone's whole day.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1803, - "ammo_type" : "120mm", - "damage" : 40, - "pierce" : 10, - "range" : 80, - "dispersion" : 5, - "recoil" : 30, - "effects" : ["CUSTOM_EXPLOSION", "TRAIL"], - "explosion" : { - "power": 16000, - "distance_factor": 0.5 - } - }, - { "type" : "AMMO", - "id" : "plasma", - "price" : 80000, - "name" : "hydrogen canister", - "symbol" : "=", - "color" : "light_gray", - "description" : "A canister of pressurized hydrogen so heavily compressed it has turned solid. With proper equipment, it could be heated to plasma.", - "material" : ["steel", "powder"], - "volume" : 10, - "weight" : 183, - "ammo_type" : "plasma", - "damage" : 35, - "pierce" : 14, - "range" : 12, - "count" : 25, - "effects" : ["INCENDIARY"], - "flags" : ["UNRECOVERABLE"], - "fuel": { - "//": "Compressed gaseous hydrogen has 9.2 MJ/L. This stuff has a very high energy density but is also bulky and explosive.", - "energy": 4000, - "explosion_data": { "chance_hot": 2, "chance_cold": 2, "factor": 1, "fiery": true, "size_factor": 0.15 } - } - }, - { "type" : "AMMO", - "id" : "22_casing_new", - "category" : "spare_parts", - "price" : 100, - "name" : "unused .22 casing", - "symbol" : "=", - "color" : "yellow", - "description" : "An unfired, like-new .22 round casing, with the primer still intact.", - "material" : [ "powder", "brass" ], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "gunpowder", - "category" : "chems", - "price" : 3000, - "name" : "gunpowder", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Firearm-quality gunpowder.", - "container" : "bottle_plastic_small", - "material" : "powder", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "oxy_powder", - "category" : "chems", - "price" : 3000, - "name" : "oxidizer powder", - "symbol" : "=", - "color" : "white", - "description" : "Volatile powdered chemical oxidizer.", - "container" : "bottle_plastic_small", - "material" : "powder", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "lye_powder", - "category" : "chems", - "price" : 3000, - "name" : "lye powder", - "symbol" : "=", - "color" : "white", - "description" : "Powdered caustic soda.", - "container" : "bottle_plastic_small", - "material" : "powder", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200 - }, - { "type" : "AMMO", - "id" : "shotgun_primer", - "category" : "spare_parts", - "price" : 3000, - "name" : "shotgun primer", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Primer from a shotgun shell.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "smpistol_primer", - "category" : "spare_parts", - "price" : 4000, - "name" : "small pistol primer", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Primer from a small caliber pistol round.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "lgpistol_primer", - "category" : "spare_parts", - "price" : 6000, - "name" : "large pistol primer", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Primer from a large caliber pistol round.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "smrifle_primer", - "category" : "spare_parts", - "price" : 6000, - "name" : "small rifle primer", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Primer from a small caliber rifle round.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "lgrifle_primer", - "category" : "spare_parts", - "price" : 8000, - "name" : "large rifle primer", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Primer from a large caliber rifle round.", - "material" : ["steel", "powder"], - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 200, - "effects" : ["COOKOFF"] - }, - { "type" : "AMMO", - "id" : "rubber_slug", - "category" : "spare_parts", - "price" : 1000, - "name" : "rubber slug", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Rubber slugs from a shotgun beanbag round. You could use them to make new beanbag rounds.", - "material" : "plastic", - "volume" : 1, - "weight" : 2, - "ammo_type" : "components", - "count" : 25 - }, - { "type" : "AMMO", - "id" : "copper", - "category" : "spare_parts", - "price" : 1000, - "name" : "copper", - "symbol" : "=", - "color" : "yellow", - "description" : "Copper scraps. Could be used to craft something, for example makeshift shotgun shells.", - "material" : "copper", - "volume" : 1, - "weight" : 2, - "ammo_type" : "components", - "count" : 200 - }, - { "type" : "AMMO", - "id" : "solder_wire", - "category" : "spare_parts", - "price" : 5000, - "name" : "solder", - "symbol" : "=", - "color" : "light_gray", - "description" : "A small spool of solder, able to be used in ammunition and electronics.", - "material" : "steel", - "volume" : 0, - "weight" : 3, - "ammo_type" : "components", - "count" : 200 - }, - { "type" : "AMMO", - "id" : "tin", - "category" : "spare_parts", - "price" : 750, - "name" : "tin", - "symbol" : "=", - "color" : "light_gray", - "description" : "Tin and pewter scraps. Usable in making ammo.", - "material" : "steel", - "volume" : 0, - "weight" : 3, - "ammo_type" : "components", - "count" : 10, - "charges" : 200 - }, - { "type" : "AMMO", - "id" : "medical_tape", - "category" : "spare_parts", - "price" : 2000, - "name" : "medical tape", - "symbol" : "=", - "color" : "white", - "description" : "A roll of medical tape, similar to duct tape.", - "material" : "plastic", - "volume" : 1, - "weight" : 3, - "ammo_type" : "components", - "count" : 35 - }, - { - "type" : "AMMO", - "id" : "RPG-7_ammo", - "price" : 10000, - "name" : "PG-7VL 93mm rocket", - "symbol" : "=", - "color" : "dark_gray", - "description" : "93mm single-stage high-explosive ammunition for the RPG-7.", - "material" : ["steel", "powder"], - "volume" : 7, - "weight" : 2600, - "ammo_type" : "RPG-7", - "damage" : 3000, - "pierce" : 750, - "range" : 60, - "dispersion" : 75, - "recoil" : 450, - "effects" : ["COOKOFF", "EXPLOSIVE", "TRAIL", "NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "m235tpa", - "price" : 200000, "//" : "$500 per. Cheap!", - "name" : "M235 66mm TPA rocket", - "symbol" : "=", - "color" : "dark_gray", - "description" : "66mm incendiary rockets used in the M202 FLASH rocket launcher. Their warheads are filled with a thickened pyrophoric agent, which burns at 2200 degrees Fahrenheit.", - "material" : ["steel", "powder"], - "volume" : 8, - "weight" : 1140, - "ammo_type" : "m235", - "damage" : 60, - "pierce" : 10, - "range" : 70, - "dispersion" : 150, - "recoil" : 150, - "count" : 4, - "effects" : ["COOKOFF", "NAPALM_BIG", "TRAIL", "NEVER_MISFIRES"] - }, - { - "type" : "AMMO", - "id" : "generic_no_ammo", - "price" : 0, - "name" : "placeholder ammunition", - "symbol" : "=", - "color" : "red", - "description" : "IF YOU ARE SEEING THIS IT IS A BUG.", - "volume" : 0, - "ammo_type" : "NULL", - "flags" : ["UNRECOVERABLE"] - }, - { - "type" : "AMMO", - "id" : "charcoal", - "category" : "spare_parts", - "price" : 200, - "name" : "charcoal", - "symbol" : "=", - "color" : "dark_gray", - "description" : "A flammable carbon-based material produced by slowly burning wood. Utilized in recipes requiring a pure, hot flame. Can also be used in filters to remove contaminants out of air and water.", - "material" : "wood", - "phase": "solid", - "volume" : 1, - "weight" : 44, - "ammo_type" : "charcoal", - "count" : 50, - "stack_size" : 10, - "fuel": { - "//": "Multiply the usual energy density of 1.6 MJ/L by 25, to account for 10 units/250mL instead of 250 units/250 mL", - "energy": 40 - } - }, - { - "type" : "AMMO", - "id" : "coal_lump", - "category" : "spare_parts", - "price" : 200, - "name" : "coal", - "symbol" : "=", - "color" : "dark_gray", - "description" : "Flammable black chunks of carbon-based material commonly used for cooking and heating.", - "material" : "wood", - "phase": "solid", - "volume" : 1, - "weight" : 44, - "ammo_type" : "charcoal", - "count" : 250, - "stack_size" : 10, - "fuel": { - "//": "Multiply the usual energy density of 30 MJ/L by 25, to account for 10 units/250mL instead of 250 units/250 mL", - "energy": 750 - } - }, - { "type" : "AMMO", - "id" : "mininuke_mod", - "price" : 180000, "//" : "Never marketed pre-Cataclysm.", - "name" : "modified mininuke", - "symbol" : "*", - "color" : "green", - "description" : "A heavily modified handheld nuclear device on a rocket. Intended to be fired from a specialized launcher, it has been rigged to explode on impact instead of on a timer. It can fly further than the explosion will reach, probably.", - "material" : "plastic", - "volume" : 388, - "weight" : 34500, - "bashing" : 8, - "ammo_type" : "mininuke_mod", - "damage" : 14, - "stack_size" : 2, - "effects" : ["MININUKE_MOD", "NEVER_MISFIRES"] - }, - { "type" : "AMMO", - "id" : "ampoule", - "category" : "drugs", - "price" : 50000, - "name" : "RA21E medical ampoule", - "symbol" : "=", - "color" : "cyan", - "description" : "A tiny glass vial filled with advanced fast-healing chemicals which can only be activated by a Rivtech jet injector device. A label on the side warns against using more than two doses per hour.", - "material" : "glass", - "volume" : 1, - "weight" : 1, - "ammo_type" : "ampoule", - "count" : 2, - "stack_size" : 20 - }, - { "type" : "AMMO", - "id" : "stimpack_ammo", - "category" : "drugs", - "price" : 30000, - "name" : "RA10K stimulant module", - "symbol" : "=", - "color" : "cyan", - "description" : "A pressurized multi-chamber glass vial filled with powerful chemical stimulants which can only be activated by a Rivtech stimulant delivery system.", - "material" : "glass", - "volume" : 1, - "weight" : 1, - "ammo_type" : "stimpack_ammo", - "count" : 5, - "stack_size" : 10 - }, - { "type" : "AMMO", - "id" : "rebreather_filter", - "category" : "spare_parts", - "price" : 2500, - "name" : "rebreather filter cartridge", - "symbol" : "=", - "color" : "light_gray", - "description" : "A replacement filter cartridge for a rebreather.", - "material" : "aluminum", - "volume" : 1, - "weight" : 12, - "ammo_type" : "rebreather_filter", - "count" : 30 - }, - { - "type": "AMMO", - "id": "gasfilter_s", - "category": "spare_parts", - "price": 2500, - "name": "filter mask cartridge", - "symbol": "=", - "color": "light_gray", - "description": "Small replacement filter cartridge for air filtration masks.", - "volume": 1, - "weight": 1, - "ammo_type": "gasfilter_s", - "count": 100 - }, - { - "type": "AMMO", - "id": "gasfilter_m", - "category": "spare_parts", - "price": 2500, - "name": "gas mask cartridge", - "symbol": "=", - "color": "light_gray", - "description": "Medium replacement filter cartridge for air filtration masks.", - "volume": 1, - "weight": 2, - "ammo_type": "gasfilter_m", - "count": 100 - }, - { - "type": "AMMO", - "id": "gasfilter_l", - "category": "spare_parts", - "price": 2500, - "name": "chemical mask cartridge", - "symbol": "=", - "color": "light_gray", - "description": "Heavy replacement filter cartridge for air filtration masks.", - "volume": 1, - "weight": 3, - "ammo_type": "gasfilter_l", - "count": 100 - }, - { "type" : "AMMO", - "id" : "nicotine_liquid", - "category" : "spare_parts", - "price" : 1000, - "name" : "nicotine liquid", - "symbol" : "=", - "color" : "yellow", - "description" : "A liquid that is made up of propylene glycol, vegetable glycerin, flavorings and nicotine.", - "container" : "bottle_plastic_small", - "phase" : "liquid", - "volume" : 1, - "weight" : 2, - "ammo_type" : "components", - "count" : 50 - }, - { - "id" : "fish_bait", - "type" : "AMMO", - "category" : "spare_parts", - "name" : "fish bait", - "description" : "A bait used in traps to lure fish.", - "weight" : 1, - "volume" : 1, - "symbol" : "=", - "color" : "light_red", - "count" : 20, - "stack_size" : 50, - "ammo_type" : "fish_bait" - }, - { "type" : "AMMO", - "id" : "oxygen", - "category" : "spare_parts", - "price" : 12000, "//" : "This seems like the larger medical tank, not an instant-use model with mask attached", - "name" : "oxygen", - "symbol" : "=", - "color" : "light_gray", - "description" : "A canister of oxygen.", - "material" : "steel", - "volume" : 10, - "weight" : 1183, - "ammo_type" : "components", - "count" : 10 - }, - { - "type" : "AMMO", - "id" : "spiked_rocket", - "price" : 1000, - "name" : "spiked home-made rocket", - "symbol" : ",", - "color" : "dark_gray", - "description" : "A hand-built rocket, consisting of a spike welded onto a pipe that was filled with improvised rocket fuel. Horribly inaccurate, as can be expected of this grade of weapon, but packs a fierce punch... if it hits.", - "material" : ["steel", "powder"], - "volume" : 6, - "weight" : 1510, - "ammo_type" : "homebrew_rocket", - "damage" : 80, - "pierce" : 80, - "range" : 18, - "dispersion" : 180, - "recoil" : 130, - "effects" : ["COOKOFF", "TRAIL"] - }, - { - "type" : "AMMO", - "id" : "explosive_hm_rocket", - "price" : 2000, - "name" : "explosive home-made rocket", - "symbol" : ",", - "color" : "dark_gray", - "description" : "A hand-built rocket, consisting of a simple explosive warhead attached onto a pipe, filled with improvised rocket fuel. Not very powerful, but can be made from scratch.", - "material" : ["steel", "powder"], - "volume" : 5, - "weight" : 990, - "ammo_type" : "homebrew_rocket", - "damage" : 500, - "pierce" : 125, - "range" : 23, - "dispersion" : 170, - "recoil" : 130, - "effects" : ["COOKOFF", "TRAIL", "EXPLOSIVE"] - }, - { - "type" : "AMMO", - "id" : "incendiary_hm_rocket", - "price" : 1300, - "name" : "incendiary home-made rocket", - "symbol" : ",", - "color" : "red", - "description" : "A hand-built rocket, consisting of a container of flammable gel attached onto a pipe, filled with improvised rocket fuel. Short-range incendiary - handle with care!", - "material" : ["steel", "powder"], - "volume" : 6, - "weight" : 1190, - "ammo_type" : "homebrew_rocket", - "damage" : 50, - "pierce" : 15, - "range" : 13, - "dispersion" : 200, - "recoil" : 130, - "effects" : ["COOKOFF", "TRAIL", "NAPALM"] - }, - { - "type" : "AMMO", - "id" : "unfinished_charcoal", - "category" : "spare_parts", - "price" : 0, - "name" : "unfinished charcoal", - "symbol" : "=", - "color" : "brown", - "description" : "The result of an interrupted charcoal making process. Useless, except as fuel in a charcoal kiln.", - "material" : "wood", - "volume" : 1, - "weight" : 300, - "ammo_type" : "unfinished_char" - }, - { - "type" : "AMMO", - "id" : "gas_fungicidal", - "category" : "chems", - "price" : 3500, - "name" : "sprayable fungicide", - "symbol" : "=", - "color" : "yellow", - "container" : "bottle_plastic", - "description" : "Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the chemical thrower. Best be used with some kind of mask or mouth protection.", - "volume" : 1, - "weight" : 1, - "phase" : "liquid", - "ammo_type" : "chemical_spray", - "range" : 4, - "count" : 100, - "effects" : [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "NEVER_MISFIRES" , "JET"] - }, - { - "type" : "AMMO", - "id" : "gas_chloramine", - "category" : "chems", - "price" : 3500, - "name" : "sprayable toxic gas", - "symbol" : "=", - "color" : "green", - "container" : "bottle_plastic", - "description" : "A hazardous mixture made from household cleaners, improvised for use in a chemical thrower. Best be used with some kind of mask or mouth protection.", - "volume" : 1, - "weight" : 1, - "phase" : "liquid", - "ammo_type" : "chemical_spray", - "range" : 4, - "count" : 100, - "effects" : [ "TOXICGAS", "NEVER_MISFIRES" , "JET"] - }, - { - "type" : "AMMO", - "id" : "chain_link", - "category" : "spare_parts", - "price" : 150, - "name" : "chain link", - "symbol" : "=", - "color" : "light_gray", - "description" : "Small metal rings, suitable for constructing chainmail.", - "material" : "iron", - "volume" : 1, - "weight" : 1, - "ammo_type" : "components", - "count" : 150 + { + "type": "AMMO", + "id": "battery", + "category": "spare_parts", + "price": 12000, + "name": "battery", + "name_plural": "batteries", + "symbol": "=", + "color": "yellow", + "description": "A set of universal batteries. Used to charge almost any electronic device.", + "material": "iron", + "volume": 1, + "weight": 1, + "ammo_type": "battery", + "count": 100, + "//": "1 battery is 1 kJ of energy. 40 batteries is an alkaline C-cell.", + "fuel": { "energy": 1 } + }, + { + "type": "AMMO", + "id": "aluminum_foil", + "category": "spare_parts", + "price": 648, + "name": "aluminum foil", + "symbol": "=", + "color": "light_gray", + "description": "A thin foil made of aluminum. Sometimes called 'tin foil' due to being made of tin in the past.", + "material": "aluminum", + "volume": 0, + "weight": 4, + "ammo_type": "components", + "count": 200 + }, + { + "type": "AMMO", + "id": "money", + "price": 1, + "//": "= one cent, gives correct prices for cash cards", + "name": "cent", + "symbol": "=", + "color": "light_gray", + "description": "IF YOU ARE SEEING THIS IT IS A BUG.", + "flags": "TRADER_AVOID", + "volume": 0, + "ammo_type": "money" + }, + { + "type": "AMMO", + "id": "thread", + "category": "spare_parts", + "price": 5000, + "name": "thread", + "symbol": "=", + "color": "light_gray", + "description": "A small quantity of thread that could be used to refill a sewing kit.", + "material": "cotton", + "flags": [ "NO_SALVAGE" ], + "volume": 1, + "weight": 1, + "ammo_type": "thread", + "count": 50, + "stack_size": 200 + }, + { + "type": "AMMO", + "id": "sinew", + "category": "spare_parts", + "price": 0, + "name": "sinew", + "symbol": "=", + "color": "light_red", + "description": "A tough sinew cut from a corpse, usable as thread.", + "material": "flesh", + "volume": 1, + "weight": 1, + "ammo_type": "thread", + "count": 10, + "stack_size": 200 + }, + { + "type": "AMMO", + "id": "plant_fibre", + "category": "spare_parts", + "price": 0, + "name": "plant fiber", + "symbol": "=", + "color": "light_green", + "description": "Tough thin fiber, taken from a plant. Can be used as thread.", + "material": "veggy", + "volume": 1, + "weight": 1, + "ammo_type": "thread", + "count": 10, + "stack_size": 200 + }, + { + "type": "AMMO", + "id": "yarn", + "category": "spare_parts", + "price": 0, + "name": "yarn", + "symbol": "=", + "color": "white", + "description": "Wool yarn, could be used to knit wool clothing.", + "material": "wool", + "volume": 1, + "weight": 1, + "ammo_type": "thread", + "count": 10, + "stack_size": 200 + }, + { + "type": "AMMO", + "id": "soap", + "category": "chems", + "price": 300, + "name": "soap bar", + "symbol": "=", + "color": "white", + "description": "A cleansing agent made into bars.", + "volume": 1, + "weight": 90, + "ammo_type": "soap", + "count": 10, + "stack_size": 10 + }, + { + "type": "AMMO", + "id": "duct_tape", + "category": "spare_parts", + "price": 2000, + "name": "duct tape", + "symbol": "=", + "color": "light_gray", + "description": "A roll of incredibly strong tape. Its uses are innumerable.", + "material": "plastic", + "volume": 1, + "weight": 4, + "ammo_type": "tape", + "count": 200, + "flags": [ "UNRECOVERABLE" ] + }, + { + "type": "AMMO", + "category": "other", + "id": "rolling_paper", + "symbol": ",", + "color": "white", + "name": "rolling paper", + "description": "These are thin paper strips intended for the rolling of cigarettes.", + "price": 150, + "material": "paper", + "weight": 1, + "volume": "100ml", + "ammo_type": "components", + "stack_size": 200, + "count": 30, + "flags": [ "UNRECOVERABLE" ] + }, + { + "type": "AMMO", + "id": "cable", + "category": "spare_parts", + "price": 2000, + "name": "copper wire", + "symbol": "=", + "color": "dark_gray", + "description": "Plastic jacketed copper cable of the type used in small electronics.", + "material": [ "plastic", "copper" ], + "volume": 3, + "weight": 2, + "ammo_type": "components", + "count": 200 + }, + { + "type": "AMMO", + "id": "plut_cell", + "category": "spare_parts", + "price": 150000, + "name": "plutonium cell", + "symbol": "=", + "color": "green", + "description": "A nuclear-powered battery. Used to charge advanced and rare electronics.", + "material": [ "steel", "plastic" ], + "flags": [ "LEAK_DAM", "RADIOACTIVE" ], + "volume": 1, + "weight": 80, + "ammo_type": "plutonium", + "count": 5, + "effects": [ "COOKOFF", "NEVER_MISFIRES" ], + "fuel": { "energy": 10 } + }, + { + "type": "AMMO", + "id": "plut_slurry_dense", + "category": "spare_parts", + "price": 250, + "name": "plutonium slurry", + "symbol": "=", + "color": "green", + "description": "Highly radioactive slurry. It is probably best to get far away from this.", + "flags": [ "LEAK_ALWAYS", "RADIOACTIVE" ], + "volume": 1, + "weight": 26, + "ammo_type": "reactor_slurry", + "phase": "liquid", + "container": "metal_tank_little", + "count": 10 + }, + { + "type": "AMMO", + "id": "plut_slurry", + "category": "spare_parts", + "price": 250, + "name": "watery plutonium slurry", + "symbol": "=", + "color": "green", + "description": "Highly radioactive slurry. It is probably best to get far away from this.", + "flags": [ "LEAK_ALWAYS", "RADIOACTIVE" ], + "volume": 1, + "weight": 25.5, + "ammo_type": "reactor_slurry", + "phase": "liquid", + "container": "metal_tank_little", + "count": 10 + }, + { + "type": "AMMO", + "id": "pebble", + "price": 100, + "name": "pebble", + "symbol": "=", + "color": "light_gray", + "description": "A handful of pebbles, useful as ammunition for slings or slingshots.", + "material": "stone", + "volume": 1, + "weight": 5, + "ammo_type": "pebble", + "damage": 2, + "range": 10, + "dispersion": 14, + "loudness": 0, + "count": 10, + "effects": [ "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "marble", + "price": 200, + "name": "marble", + "symbol": "=", + "color": "light_gray", + "description": "A handful of glass marbles, useful as ammunition for slings or slingshots.", + "material": "glass", + "volume": 1, + "weight": 3, + "ammo_type": "pebble", + "damage": 3, + "range": 18, + "dispersion": 12, + "loudness": 0, + "count": 20, + "effects": [ "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "bearing", + "price": 100, + "name": "bearings", + "symbol": "=", + "color": "dark_gray", + "description": "A box of ball bearings, useful as ammunition for slings or slingshots.", + "material": "steel", + "volume": 1, + "weight": 10, + "ammo_type": "pebble", + "damage": 6, + "pierce": 1, + "range": 15, + "dispersion": 14, + "loudness": 0, + "count": 50, + "effects": [ "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "bb", + "price": 500, + "name": "BB", + "symbol": "=", + "color": "light_gray", + "description": "A box of small steel balls. They deal virtually no damage.", + "material": "steel", + "volume": "200ml", + "weight": 1, + "ammo_type": "BB", + "damage": 2, + "dispersion": 100, + "count": 500, + "stack_size": 200, + "loudness": 9, + "effects": [ "NOGIB", "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "feather", + "category": "spare_parts", + "price": 3000, + "name": "feather", + "symbol": "=", + "color": "brown", + "description": "Feathers from a bird. Useful for fletching arrows.", + "material": "cotton", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "stack_size": 100, + "count": 20 + }, + { + "type": "AMMO", + "id": "down_feather", + "category": "spare_parts", + "price": 3000, + "name": "down feather", + "symbol": "=", + "color": "brown", + "description": "Fluffy down feathers from a bird. Useful for making cozy bedclothes.", + "material": "cotton", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "stack_size": 100, + "count": 20 + }, + { + "type": "AMMO", + "id": "laser_pack", + "price": 80000, + "name": "fusion pack", + "symbol": "=", + "color": "light_green", + "description": "In the middle of the 21st Century, military powers began to look towards energy based weapons. The result was the standard fusion pack, capable of delivering bolts of superheated gas at near light speed with no recoil.", + "material": "plastic", + "volume": 1, + "weight": 68, + "ammo_type": "fusion", + "damage": 12, + "pierce": 15, + "range": 30, + "stack_size": 40, + "count": 20, + "effects": [ "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "66mm_HEAT", + "price": 0, + "name": "66mm HEAT", + "symbol": "=", + "color": "dark_gray", + "description": "A 60mm high-explosive anti-tank round. It could blow through up to two feet of concrete.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1803, + "ammo_type": "66mm", + "damage": 2500, + "pierce": 400, + "range": 80, + "dispersion": 30, + "recoil": 225, + "effects": [ "COOKOFF", "EXPLOSIVE", "TRAIL" ] + }, + { + "type": "AMMO", + "id": "120mm_HEAT", + "price": 999999, + "name": "120mm HEAT", + "symbol": "=", + "color": "dark_gray", + "description": "A 120mm high-explosive anti-tank round. It could ruin anyone's whole day.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1803, + "ammo_type": "120mm", + "damage": 40, + "pierce": 10, + "range": 80, + "dispersion": 5, + "recoil": 30, + "effects": [ "CUSTOM_EXPLOSION", "TRAIL" ], + "explosion": { "power": 16000, "distance_factor": 0.5 } + }, + { + "type": "AMMO", + "id": "plasma", + "price": 80000, + "name": "hydrogen canister", + "symbol": "=", + "color": "light_gray", + "description": "A canister of pressurized hydrogen so heavily compressed it has turned solid. With proper equipment, it could be heated to plasma.", + "material": [ "steel", "powder" ], + "volume": 10, + "weight": 183, + "ammo_type": "plasma", + "damage": 35, + "pierce": 14, + "range": 12, + "count": 25, + "effects": [ "INCENDIARY" ], + "flags": [ "UNRECOVERABLE" ], + "fuel": { + "//": "Compressed gaseous hydrogen has 9.2 MJ/L. This stuff has a very high energy density but is also bulky and explosive.", + "energy": 4000, + "explosion_data": { "chance_hot": 2, "chance_cold": 2, "factor": 1, "fiery": true, "size_factor": 0.15 } } + }, + { + "type": "AMMO", + "id": "22_casing_new", + "category": "spare_parts", + "price": 100, + "name": "unused .22 casing", + "symbol": "=", + "color": "yellow", + "description": "An unfired, like-new .22 round casing, with the primer still intact.", + "material": [ "powder", "brass" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "gunpowder", + "category": "chems", + "price": 3000, + "name": "gunpowder", + "symbol": "=", + "color": "dark_gray", + "description": "Firearm-quality gunpowder.", + "container": "bottle_plastic_small", + "material": "powder", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "oxy_powder", + "category": "chems", + "price": 3000, + "name": "oxidizer powder", + "symbol": "=", + "color": "white", + "description": "Volatile powdered chemical oxidizer.", + "container": "bottle_plastic_small", + "material": "powder", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "lye_powder", + "category": "chems", + "price": 3000, + "name": "lye powder", + "symbol": "=", + "color": "white", + "description": "Powdered caustic soda.", + "container": "bottle_plastic_small", + "material": "powder", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200 + }, + { + "type": "AMMO", + "id": "shotgun_primer", + "category": "spare_parts", + "price": 3000, + "name": "shotgun primer", + "symbol": "=", + "color": "dark_gray", + "description": "Primer from a shotgun shell.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "smpistol_primer", + "category": "spare_parts", + "price": 4000, + "name": "small pistol primer", + "symbol": "=", + "color": "dark_gray", + "description": "Primer from a small caliber pistol round.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "lgpistol_primer", + "category": "spare_parts", + "price": 6000, + "name": "large pistol primer", + "symbol": "=", + "color": "dark_gray", + "description": "Primer from a large caliber pistol round.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "smrifle_primer", + "category": "spare_parts", + "price": 6000, + "name": "small rifle primer", + "symbol": "=", + "color": "dark_gray", + "description": "Primer from a small caliber rifle round.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "lgrifle_primer", + "category": "spare_parts", + "price": 8000, + "name": "large rifle primer", + "symbol": "=", + "color": "dark_gray", + "description": "Primer from a large caliber rifle round.", + "material": [ "steel", "powder" ], + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 200, + "effects": [ "COOKOFF" ] + }, + { + "type": "AMMO", + "id": "rubber_slug", + "category": "spare_parts", + "price": 1000, + "name": "rubber slug", + "symbol": "=", + "color": "dark_gray", + "description": "Rubber slugs from a shotgun beanbag round. You could use them to make new beanbag rounds.", + "material": "plastic", + "volume": 1, + "weight": 2, + "ammo_type": "components", + "count": 25 + }, + { + "type": "AMMO", + "id": "copper", + "category": "spare_parts", + "price": 1000, + "name": "copper", + "symbol": "=", + "color": "yellow", + "description": "Copper scraps. Could be used to craft something, for example makeshift shotgun shells.", + "material": "copper", + "volume": 1, + "weight": 2, + "ammo_type": "components", + "count": 200 + }, + { + "type": "AMMO", + "id": "solder_wire", + "category": "spare_parts", + "price": 5000, + "name": "solder", + "symbol": "=", + "color": "light_gray", + "description": "A small spool of solder, able to be used in ammunition and electronics.", + "material": "steel", + "volume": 0, + "weight": 3, + "ammo_type": "components", + "count": 200 + }, + { + "type": "AMMO", + "id": "tin", + "category": "spare_parts", + "price": 750, + "name": "tin", + "symbol": "=", + "color": "light_gray", + "description": "Tin and pewter scraps. Usable in making ammo.", + "material": "steel", + "volume": 0, + "weight": 3, + "ammo_type": "components", + "count": 10, + "charges": 200 + }, + { + "type": "AMMO", + "id": "medical_tape", + "category": "spare_parts", + "price": 2000, + "name": "medical tape", + "symbol": "=", + "color": "white", + "description": "A roll of medical tape, similar to duct tape.", + "material": "plastic", + "volume": 1, + "weight": 3, + "ammo_type": "components", + "count": 35 + }, + { + "type": "AMMO", + "id": "RPG-7_ammo", + "price": 10000, + "name": "PG-7VL 93mm rocket", + "symbol": "=", + "color": "dark_gray", + "description": "93mm single-stage high-explosive ammunition for the RPG-7.", + "material": [ "steel", "powder" ], + "volume": 7, + "weight": 2600, + "ammo_type": "RPG-7", + "damage": 3000, + "pierce": 750, + "range": 60, + "dispersion": 75, + "recoil": 450, + "effects": [ "COOKOFF", "EXPLOSIVE", "TRAIL", "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "m235tpa", + "price": 200000, + "//": "$500 per. Cheap!", + "name": "M235 66mm TPA rocket", + "symbol": "=", + "color": "dark_gray", + "description": "66mm incendiary rockets used in the M202 FLASH rocket launcher. Their warheads are filled with a thickened pyrophoric agent, which burns at 2200 degrees Fahrenheit.", + "material": [ "steel", "powder" ], + "volume": 8, + "weight": 1140, + "ammo_type": "m235", + "damage": 60, + "pierce": 10, + "range": 70, + "dispersion": 150, + "recoil": 150, + "count": 4, + "effects": [ "COOKOFF", "NAPALM_BIG", "TRAIL", "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "generic_no_ammo", + "price": 0, + "name": "placeholder ammunition", + "symbol": "=", + "color": "red", + "description": "IF YOU ARE SEEING THIS IT IS A BUG.", + "volume": 0, + "ammo_type": "NULL", + "flags": [ "UNRECOVERABLE" ] + }, + { + "type": "AMMO", + "id": "charcoal", + "category": "spare_parts", + "price": 200, + "name": "charcoal", + "symbol": "=", + "color": "dark_gray", + "description": "A flammable carbon-based material produced by slowly burning wood. Utilized in recipes requiring a pure, hot flame. Can also be used in filters to remove contaminants out of air and water.", + "material": "wood", + "phase": "solid", + "volume": 1, + "weight": 11, + "ammo_type": "charcoal", + "count": 50, + "stack_size": 10, + "fuel": { + "//": "Multiply the usual energy density of 1.6 MJ/L by 25, to account for 10 units/250mL instead of 250 units/250 mL", + "energy": 40 + } + }, + { + "type": "AMMO", + "id": "coal_lump", + "category": "spare_parts", + "price": 200, + "name": "coal", + "symbol": "=", + "color": "dark_gray", + "description": "Flammable black chunks of carbon-based material commonly used for cooking and heating.", + "material": "wood", + "phase": "solid", + "volume": 1, + "weight": 44, + "ammo_type": "charcoal", + "count": 250, + "stack_size": 10, + "fuel": { + "//": "Multiply the usual energy density of 30 MJ/L by 25, to account for 10 units/250mL instead of 250 units/250 mL", + "energy": 750 + } + }, + { + "type": "AMMO", + "id": "mininuke_mod", + "price": 180000, + "//": "Never marketed pre-Cataclysm.", + "name": "modified mininuke", + "symbol": "*", + "color": "green", + "description": "A heavily modified handheld nuclear device on a rocket. Intended to be fired from a specialized launcher, it has been rigged to explode on impact instead of on a timer. It can fly further than the explosion will reach, probably.", + "material": "plastic", + "volume": 388, + "weight": 34500, + "bashing": 8, + "ammo_type": "mininuke_mod", + "damage": 14, + "stack_size": 2, + "effects": [ "MININUKE_MOD", "NEVER_MISFIRES" ] + }, + { + "type": "AMMO", + "id": "ampoule", + "category": "drugs", + "price": 50000, + "name": "RA21E medical ampoule", + "symbol": "=", + "color": "cyan", + "description": "A tiny glass vial filled with advanced fast-healing chemicals which can only be activated by a Rivtech jet injector device. A label on the side warns against using more than two doses per hour.", + "material": "glass", + "volume": 1, + "weight": 1, + "ammo_type": "ampoule", + "count": 2, + "stack_size": 20 + }, + { + "type": "AMMO", + "id": "stimpack_ammo", + "category": "drugs", + "price": 30000, + "name": "RA10K stimulant module", + "symbol": "=", + "color": "cyan", + "description": "A pressurized multi-chamber glass vial filled with powerful chemical stimulants which can only be activated by a Rivtech stimulant delivery system.", + "material": "glass", + "volume": 1, + "weight": 1, + "ammo_type": "stimpack_ammo", + "count": 5, + "stack_size": 10 + }, + { + "type": "AMMO", + "id": "rebreather_filter", + "category": "spare_parts", + "price": 2500, + "name": "rebreather filter cartridge", + "symbol": "=", + "color": "light_gray", + "description": "A replacement filter cartridge for a rebreather.", + "material": "aluminum", + "volume": 1, + "weight": 12, + "ammo_type": "rebreather_filter", + "count": 30 + }, + { + "type": "AMMO", + "id": "gasfilter_s", + "category": "spare_parts", + "price": 2500, + "name": "filter mask cartridge", + "symbol": "=", + "color": "light_gray", + "description": "Small replacement filter cartridge for air filtration masks.", + "volume": 1, + "weight": 1, + "ammo_type": "gasfilter_s", + "count": 100 + }, + { + "type": "AMMO", + "id": "gasfilter_m", + "category": "spare_parts", + "price": 2500, + "name": "gas mask cartridge", + "symbol": "=", + "color": "light_gray", + "description": "Medium replacement filter cartridge for air filtration masks.", + "volume": 1, + "weight": 2, + "ammo_type": "gasfilter_m", + "count": 100 + }, + { + "type": "AMMO", + "id": "gasfilter_l", + "category": "spare_parts", + "price": 2500, + "name": "chemical mask cartridge", + "symbol": "=", + "color": "light_gray", + "description": "Heavy replacement filter cartridge for air filtration masks.", + "volume": 1, + "weight": 3, + "ammo_type": "gasfilter_l", + "count": 100 + }, + { + "type": "AMMO", + "id": "nicotine_liquid", + "category": "spare_parts", + "price": 1000, + "name": "nicotine liquid", + "symbol": "=", + "color": "yellow", + "description": "A liquid that is made up of propylene glycol, vegetable glycerin, flavorings and nicotine.", + "container": "bottle_plastic_small", + "phase": "liquid", + "volume": 1, + "weight": 2, + "ammo_type": "components", + "count": 50 + }, + { + "id": "fish_bait", + "type": "AMMO", + "category": "spare_parts", + "name": "fish bait", + "description": "A bait used in traps to lure fish.", + "weight": 1, + "volume": 1, + "symbol": "=", + "color": "light_red", + "count": 20, + "stack_size": 50, + "ammo_type": "fish_bait" + }, + { + "type": "AMMO", + "id": "oxygen", + "category": "spare_parts", + "price": 12000, + "//": "This seems like the larger medical tank, not an instant-use model with mask attached", + "name": "oxygen", + "symbol": "=", + "color": "light_gray", + "description": "A canister of oxygen.", + "material": "steel", + "volume": 10, + "weight": 1183, + "ammo_type": "components", + "count": 10 + }, + { + "type": "AMMO", + "id": "spiked_rocket", + "price": 1000, + "name": "spiked home-made rocket", + "symbol": ",", + "color": "dark_gray", + "description": "A hand-built rocket, consisting of a spike welded onto a pipe that was filled with improvised rocket fuel. Horribly inaccurate, as can be expected of this grade of weapon, but packs a fierce punch... if it hits.", + "material": [ "steel", "powder" ], + "volume": 6, + "weight": 1510, + "ammo_type": "homebrew_rocket", + "damage": 80, + "pierce": 80, + "range": 18, + "dispersion": 180, + "recoil": 130, + "effects": [ "COOKOFF", "TRAIL" ] + }, + { + "type": "AMMO", + "id": "explosive_hm_rocket", + "price": 2000, + "name": "explosive home-made rocket", + "symbol": ",", + "color": "dark_gray", + "description": "A hand-built rocket, consisting of a simple explosive warhead attached onto a pipe, filled with improvised rocket fuel. Not very powerful, but can be made from scratch.", + "material": [ "steel", "powder" ], + "volume": 5, + "weight": 990, + "ammo_type": "homebrew_rocket", + "damage": 500, + "pierce": 125, + "range": 23, + "dispersion": 170, + "recoil": 130, + "effects": [ "COOKOFF", "TRAIL", "EXPLOSIVE" ] + }, + { + "type": "AMMO", + "id": "incendiary_hm_rocket", + "price": 1300, + "name": "incendiary home-made rocket", + "symbol": ",", + "color": "red", + "description": "A hand-built rocket, consisting of a container of flammable gel attached onto a pipe, filled with improvised rocket fuel. Short-range incendiary - handle with care!", + "material": [ "steel", "powder" ], + "volume": 6, + "weight": 1190, + "ammo_type": "homebrew_rocket", + "damage": 50, + "pierce": 15, + "range": 13, + "dispersion": 200, + "recoil": 130, + "effects": [ "COOKOFF", "TRAIL", "NAPALM" ] + }, + { + "type": "AMMO", + "id": "unfinished_charcoal", + "category": "spare_parts", + "price": 0, + "name": "unfinished charcoal", + "symbol": "=", + "color": "brown", + "description": "The result of an interrupted charcoal making process. Useless, except as fuel in a charcoal kiln.", + "material": "wood", + "volume": 1, + "weight": 300, + "ammo_type": "unfinished_char" + }, + { + "type": "AMMO", + "id": "gas_fungicidal", + "category": "chems", + "price": 3500, + "name": "sprayable fungicide", + "symbol": "=", + "color": "yellow", + "container": "bottle_plastic", + "description": "Fungicide enhanced with sulfur to create sprayable anti-fungal ammo for the chemical thrower. Best be used with some kind of mask or mouth protection.", + "volume": 1, + "weight": 1, + "phase": "liquid", + "ammo_type": "chemical_spray", + "range": 4, + "count": 100, + "effects": [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "NEVER_MISFIRES", "JET" ] + }, + { + "type": "AMMO", + "id": "gas_chloramine", + "category": "chems", + "price": 3500, + "name": "sprayable toxic gas", + "symbol": "=", + "color": "green", + "container": "bottle_plastic", + "description": "A hazardous mixture made from household cleaners, improvised for use in a chemical thrower. Best be used with some kind of mask or mouth protection.", + "volume": 1, + "weight": 1, + "phase": "liquid", + "ammo_type": "chemical_spray", + "range": 4, + "count": 100, + "effects": [ "TOXICGAS", "NEVER_MISFIRES", "JET" ] + }, + { + "type": "AMMO", + "id": "chain_link", + "category": "spare_parts", + "price": 150, + "name": "chain link", + "symbol": "=", + "color": "light_gray", + "description": "Small metal rings, suitable for constructing chainmail.", + "material": "iron", + "volume": 1, + "weight": 1, + "ammo_type": "components", + "count": 150 + } ] diff --git a/data/json/items/ammo/45.json b/data/json/items/ammo/45.json index 82f0746544f55..57c38fada23ed 100644 --- a/data/json/items/ammo/45.json +++ b/data/json/items/ammo/45.json @@ -20,7 +20,7 @@ "color": "yellow", "count": 30, "stack_size": 30, - "ammo_type": "45", + "ammo_type": [ "45", "460" ], "casing": "45_casing", "range": 16, "damage": 30, diff --git a/data/json/items/ammo/460.json b/data/json/items/ammo/460.json new file mode 100644 index 0000000000000..61d4ae0d5f67b --- /dev/null +++ b/data/json/items/ammo/460.json @@ -0,0 +1,39 @@ +[ + { + "id": "460_fmj", + "copy-from": "460_rowland", + "type": "AMMO", + "name": ".460 Rowland HCFN", + "description": "A plated, hard cast flat nosed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", + "relative": { "damage": -4, "pierce": 8 } + }, + { + "id": "460_rowland", + "copy-from": "44magnum", + "type": "AMMO", + "name": ".460 Rowland", + "description": ".460 Rowland ammunition with 185gr JHP bullets. The .460 Rowland round is designed to emulate hard-hitting .44 magnum in common autoloading pistols. Like the .44, .460 Rowland has exceptional power - and recoil. It is almost dimensionally identical to .45ACP, save for having a longer case and deeper seated bullets to prevent ammunition mix-ups.", + "ammo_type": "460", + "casing": "460_casing", + "proportional": { "range": 0.95, "damage": 0.95, "pierce": 0.95, "recoil": 0.95 } + }, + { + "id": "reloaded_460_fmj", + "copy-from": "460_fmj", + "type": "AMMO", + "name": "reloaded .460 Rowland FMJ", + "description": "A brass-jacketed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", + "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ] } + }, + { + "id": "reloaded_460_rowland", + "copy-from": "460_rowland", + "type": "AMMO", + "name": "reloaded .460 Rowland", + "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ] } + } +] diff --git a/data/json/items/ammo_types.json b/data/json/items/ammo_types.json index 71119eb0e797d..a55378e251f61 100644 --- a/data/json/items/ammo_types.json +++ b/data/json/items/ammo_types.json @@ -1,476 +1,482 @@ [ - { - "type" : "ammunition_type", - "id" : "NULL", - "name" : "none", - "default" : "null" - }, - { - "type" : "ammunition_type", - "id" : "700nx", - "name" : ".700 Nitro Express", - "default" : "700nx" - }, - { - "type" : "ammunition_type", - "id" : "50", - "name" : ".50 BMG", - "default" : "50bmg" - }, - { - "type" : "ammunition_type", - "id" : "nail", - "name" : "nails", - "default" : "nail" - }, - { - "type" : "ammunition_type", - "id" : "BB", - "name" : "BBs", - "default" : "bb" - }, - { - "type" : "ammunition_type", - "id" : "bolt", - "name" : "bolts", - "default" : "bolt_wood" - }, - { - "type" : "ammunition_type", - "id" : "arrow", - "name" : "arrows", - "default" : "arrow_wood" - }, - { - "type" : "ammunition_type", - "id" : "pebble", - "name" : "pebbles", - "default" : "pebble" - }, - { - "type" : "ammunition_type", - "id" : "shot", - "name" : "shot", - "default" : "shot_00" - }, - { - "type" : "ammunition_type", - "id" : "blunderbuss", - "name" : "blunderbuss", - "default" : "blun_shot" - }, - { - "type" : "ammunition_type", - "id" : "22", - "name" : ".22", - "default" : "22_lr" - }, - { - "type" : "ammunition_type", - "id" : "9mm", - "name" : "9x19mm", - "default" : "9mm" - }, - { - "type": "ammunition_type", - "id": "357sig", - "name": ".357 SIG", - "default": "357sig_jhp" - }, - { - "type" : "ammunition_type", - "id" : "9x18", - "name" : "9x18mm", - "default" : "9x18mm" - }, - { - "type" : "ammunition_type", - "id" : "38", - "name" : ".38", - "default" : "38_special" - }, - { - "type" : "ammunition_type", - "id" : "40", - "name" : ".40", - "default" : "40sw" - }, - { - "type" : "ammunition_type", - "id" : "44", - "name" : ".44", - "default" : "44magnum" - }, - { - "type" : "ammunition_type", - "id" : "45", - "name" : ".45", - "default" : "45_acp" - }, - { - "type" : "ammunition_type", - "id" : "454", - "name" : ".454", - "default" : "454_Casull" - }, - { - "type" : "ammunition_type", - "id" : "500", - "name" : ".500", - "default" : "500_Magnum" - }, - { - "type" : "ammunition_type", - "id" : "57", - "name" : "5.7mm", - "default" : "57mm" - }, - { - "type" : "ammunition_type", - "id" : "46", - "name" : "4.6mm", - "default" : "46mm" - }, - { - "type" : "ammunition_type", - "id" : "762", - "name" : "7.62x39mm", - "default" : "762_m43" - }, - { - "type" : "ammunition_type", - "id" : "545x39", - "name" : "5.45x39mm", - "default" : "545" - }, - { - "type" : "ammunition_type", - "id" : "223", - "name" : ".223", - "default" : "223" - }, - { - "type" : "ammunition_type", - "id" : "3006", - "name" : ".30-06", - "default" : "270" - }, - { - "type" : "ammunition_type", - "id" : "308", - "name" : ".308", - "default" : "308" - }, - { - "type" : "ammunition_type", - "id" : "40mm", - "name" : "40mm grenade", - "default" : "40mm_frag" - }, - { - "type" : "ammunition_type", - "id" : "66mm", - "name" : "high-explosive anti-tank warhead", - "default" : "66mm_HEAT" - }, - { - "type" : "ammunition_type", - "id" : "120mm", - "name" : "high-explosive anti-tank warhead", - "default" : "120mm_HEAT" - }, - { - "type" : "ammunition_type", - "id" : "84x246mm", - "name" : "84mm recoilless projectile", - "default" : "84x246mm_he" - }, - { - "type" : "ammunition_type", - "id" : "m235", - "name" : "M235 66mm Incendiary TPA", - "default" : "m235tpa" - }, - { - "type" : "ammunition_type", - "id" : "gasoline", - "name" : "gasoline", - "default" : "gasoline" - }, - { - "type" : "ammunition_type", - "id" : "diesel", - "name" : "diesel", - "default" : "diesel" - }, - { - "type" : "ammunition_type", - "id" : "lamp_oil", - "name" : "lamp oil", - "default" : "lamp_oil" - }, - { - "type" : "ammunition_type", - "id" : "thread", - "name" : "thread", - "default" : "thread" - }, - { - "type" : "ammunition_type", - "id" : "soap", - "name" : "soap", - "default" : "soap" - }, - { - "type" : "ammunition_type", - "id" : "tape", - "name" : "duct tape", - "default" : "duct_tape" - }, - { - "type" : "ammunition_type", - "id" : "battery", - "name" : "batteries", - "default" : "battery" - }, - { - "type" : "ammunition_type", - "id" : "money", - "name" : "cents", - "default" : "money" - }, - { - "type" : "ammunition_type", - "id" : "plutonium", - "name" : "plutonium", - "default" : "plut_cell" - }, - { - "type" : "ammunition_type", - "id" : "reactor_slurry", - "name" : "plutonium slurry", - "default" : "plut_slurry" - }, - { - "type" : "ammunition_type", - "id" : "fusion", - "name" : "fusion cell", - "default" : "laser_pack" - }, - { - "type" : "ammunition_type", - "id" : "12mm", - "name" : "12mm slugs", - "default" : "12mm" - }, - { - "type" : "ammunition_type", - "id" : "plasma", - "name" : "solid hydrogen", - "default" : "plasma" - }, - { - "type" : "ammunition_type", - "id" : "flammable", - "name" : "flammable liquid", - "default" : "napalm" - }, - { - "type" : "ammunition_type", - "id" : "weldgas", - "name" : "welding gas", - "default" : "oxyacetylene" - }, - { - "type" : "ammunition_type", - "id" : "conc_alcohol", - "name" : "concentrated alcohol", - "default" : "denat_alcohol" - }, - { - "type" : "ammunition_type", - "id" : "8x40mm", - "name" : "8x40mm caseless", - "default" : "8mm_caseless" - }, - { - "type" : "ammunition_type", - "id" : "20x66mm", - "name" : "20x66mm caseless shotgun", - "default" : "20x66_shot" - }, - { - "type" : "ammunition_type", - "id" : "5x50", - "name" : "5x50mm flechette", - "default" : "5x50dart" - }, - { - "type" : "ammunition_type", - "id" : "signal_flare", - "name" : "signal flare", - "default" : "signal_flare" - }, - { - "type" : "ammunition_type", - "id" : "mininuke_mod", - "name" : "modified mininuke", - "default" : "mininuke_mod" - }, - { - "type" : "ammunition_type", - "id" : "charcoal", - "name" : "charcoal", - "default" : "charcoal" - }, - { - "type" : "ammunition_type", - "id" : "metal_rail", - "name" : "ferrous rail projectile", - "default" : "rebar_rail" - }, - { - "type" : "ammunition_type", - "id" : "UPS", - "name" : "UPS", - "default" : "UPS" - }, - { - "type" : "ammunition_type", - "id" : "thrown", - "name" : "throwing weapon", - "default" : "thrown" - }, - { - "type" : "ammunition_type", - "id" : "ampoule", - "name" : "chemical ampoule", - "default" : "ampoule" - }, - { - "type" : "ammunition_type", - "id" : "stimpack_ammo", - "name" : "stimulant module", - "default" : "stimpack_ammo" - }, - { - "type" : "ammunition_type", - "id" : "components", - "name" : "components", - "default" : "components" - }, - { - "type" : "ammunition_type", - "id" : "RPG-7", - "name" : "93mm RPG-7", - "default" : "RPG-7_ammo" - }, - { - "type" : "ammunition_type", - "id" : "rebreather_filter", - "name" : "rebreather filter", - "default" : "rebreather_filter" - }, - { - "type": "ammunition_type", - "id": "gasfilter_s", - "name": "filter mask cartridge", - "default": "gasfilter_s" - }, - { - "type": "ammunition_type", - "id": "gasfilter_m", - "name": "gas mask cartridge", - "default": "gasfilter_m" - }, - { - "type": "ammunition_type", - "id": "gasfilter_l", - "name": "hazmat mask cartridge", - "default": "gasfilter_l" - }, - { - "type" : "ammunition_type", - "id" : "300", - "name" : ".300", - "default" : "300_winmag" - }, - { - "type" : "ammunition_type", - "id" : "32", - "name" : ".32", - "default" : "32_acp" - }, - { - "type" : "ammunition_type", - "id" : "762x25", - "name" : "7.62x25mm", - "default" : "762_25" - }, - { - "type" : "ammunition_type", - "id" : "flintlock", - "name" : "paper cartridge", - "default" : "flintlock_ammo" - }, - { - "type" : "ammunition_type", - "id" : "36paper", - "name" : ".36 cap & ball", - "default" : "36navy" - }, - { - "type" : "ammunition_type", - "id" : "44paper", - "name" : ".44 cap & ball", - "default" : "44army" - }, - { - "type" : "ammunition_type", - "id" : "762R", - "name": "7.62x54mm", - "default": "762_54R" - }, - { - "type" : "ammunition_type", - "id" : "fishspear", - "name" : "speargun spear", - "default" : "fishspear" - }, - { - "type" : "ammunition_type", - "id" : "fish_bait", - "name" : "fish bait", - "default" : "fish_bait" - }, - { - "type" : "ammunition_type", - "id" : "homebrew_rocket", - "name" : "homebrew rocket", - "default" : "spiked_rocket" - }, - { - "type" : "ammunition_type", - "id" : "unfinished_char", - "name" : "semi-charred fuel", - "default" : "unfinished_charcoal" - }, - { - "type" : "ammunition_type", - "id" : "chemical_spray", - "name" : "sprayable chemical", - "default" : "gas_fungicidal" - }, - { - "type" : "ammunition_type", - "id" : "milk", - "name" : "milk", - "default" : "milk" - }, - { - "type": "ammunition_type", - "id": "paintball", - "name": "paintball", - "default": "paintball" - } + { + "type": "ammunition_type", + "id": "NULL", + "name": "none", + "default": "null" + }, + { + "type": "ammunition_type", + "id": "700nx", + "name": ".700 Nitro Express", + "default": "700nx" + }, + { + "type": "ammunition_type", + "id": "50", + "name": ".50 BMG", + "default": "50bmg" + }, + { + "type": "ammunition_type", + "id": "nail", + "name": "nails", + "default": "nail" + }, + { + "type": "ammunition_type", + "id": "BB", + "name": "BBs", + "default": "bb" + }, + { + "type": "ammunition_type", + "id": "bolt", + "name": "bolts", + "default": "bolt_wood" + }, + { + "type": "ammunition_type", + "id": "arrow", + "name": "arrows", + "default": "arrow_wood" + }, + { + "type": "ammunition_type", + "id": "pebble", + "name": "pebbles", + "default": "pebble" + }, + { + "type": "ammunition_type", + "id": "shot", + "name": "shot", + "default": "shot_00" + }, + { + "type": "ammunition_type", + "id": "blunderbuss", + "name": "blunderbuss", + "default": "blun_shot" + }, + { + "type": "ammunition_type", + "id": "22", + "name": ".22", + "default": "22_lr" + }, + { + "type": "ammunition_type", + "id": "9mm", + "name": "9x19mm", + "default": "9mm" + }, + { + "type": "ammunition_type", + "id": "357sig", + "name": ".357 SIG", + "default": "357sig_jhp" + }, + { + "type": "ammunition_type", + "id": "9x18", + "name": "9x18mm", + "default": "9x18mm" + }, + { + "type": "ammunition_type", + "id": "38", + "name": ".38", + "default": "38_special" + }, + { + "type": "ammunition_type", + "id": "40", + "name": ".40", + "default": "40sw" + }, + { + "type": "ammunition_type", + "id": "44", + "name": ".44", + "default": "44magnum" + }, + { + "type": "ammunition_type", + "id": "45", + "name": ".45", + "default": "45_acp" + }, + { + "type": "ammunition_type", + "id": "460", + "name": ".460", + "default": "45_acp" + }, + { + "type": "ammunition_type", + "id": "454", + "name": ".454", + "default": "454_Casull" + }, + { + "type": "ammunition_type", + "id": "500", + "name": ".500", + "default": "500_Magnum" + }, + { + "type": "ammunition_type", + "id": "57", + "name": "5.7mm", + "default": "57mm" + }, + { + "type": "ammunition_type", + "id": "46", + "name": "4.6mm", + "default": "46mm" + }, + { + "type": "ammunition_type", + "id": "762", + "name": "7.62x39mm", + "default": "762_m43" + }, + { + "type": "ammunition_type", + "id": "545x39", + "name": "5.45x39mm", + "default": "545" + }, + { + "type": "ammunition_type", + "id": "223", + "name": ".223", + "default": "223" + }, + { + "type": "ammunition_type", + "id": "3006", + "name": ".30-06", + "default": "270" + }, + { + "type": "ammunition_type", + "id": "308", + "name": ".308", + "default": "308" + }, + { + "type": "ammunition_type", + "id": "40mm", + "name": "40mm grenade", + "default": "40mm_frag" + }, + { + "type": "ammunition_type", + "id": "66mm", + "name": "high-explosive anti-tank warhead", + "default": "66mm_HEAT" + }, + { + "type": "ammunition_type", + "id": "120mm", + "name": "high-explosive anti-tank warhead", + "default": "120mm_HEAT" + }, + { + "type": "ammunition_type", + "id": "84x246mm", + "name": "84mm recoilless projectile", + "default": "84x246mm_he" + }, + { + "type": "ammunition_type", + "id": "m235", + "name": "M235 66mm Incendiary TPA", + "default": "m235tpa" + }, + { + "type": "ammunition_type", + "id": "gasoline", + "name": "gasoline", + "default": "gasoline" + }, + { + "type": "ammunition_type", + "id": "diesel", + "name": "diesel", + "default": "diesel" + }, + { + "type": "ammunition_type", + "id": "lamp_oil", + "name": "lamp oil", + "default": "lamp_oil" + }, + { + "type": "ammunition_type", + "id": "thread", + "name": "thread", + "default": "thread" + }, + { + "type": "ammunition_type", + "id": "soap", + "name": "soap", + "default": "soap" + }, + { + "type": "ammunition_type", + "id": "tape", + "name": "duct tape", + "default": "duct_tape" + }, + { + "type": "ammunition_type", + "id": "battery", + "name": "batteries", + "default": "battery" + }, + { + "type": "ammunition_type", + "id": "money", + "name": "cents", + "default": "money" + }, + { + "type": "ammunition_type", + "id": "plutonium", + "name": "plutonium", + "default": "plut_cell" + }, + { + "type": "ammunition_type", + "id": "reactor_slurry", + "name": "plutonium slurry", + "default": "plut_slurry" + }, + { + "type": "ammunition_type", + "id": "fusion", + "name": "fusion cell", + "default": "laser_pack" + }, + { + "type": "ammunition_type", + "id": "12mm", + "name": "12mm slugs", + "default": "12mm" + }, + { + "type": "ammunition_type", + "id": "plasma", + "name": "solid hydrogen", + "default": "plasma" + }, + { + "type": "ammunition_type", + "id": "flammable", + "name": "flammable liquid", + "default": "napalm" + }, + { + "type": "ammunition_type", + "id": "weldgas", + "name": "welding gas", + "default": "oxyacetylene" + }, + { + "type": "ammunition_type", + "id": "conc_alcohol", + "name": "concentrated alcohol", + "default": "denat_alcohol" + }, + { + "type": "ammunition_type", + "id": "8x40mm", + "name": "8x40mm caseless", + "default": "8mm_caseless" + }, + { + "type": "ammunition_type", + "id": "20x66mm", + "name": "20x66mm caseless shotgun", + "default": "20x66_shot" + }, + { + "type": "ammunition_type", + "id": "5x50", + "name": "5x50mm flechette", + "default": "5x50dart" + }, + { + "type": "ammunition_type", + "id": "signal_flare", + "name": "signal flare", + "default": "signal_flare" + }, + { + "type": "ammunition_type", + "id": "mininuke_mod", + "name": "modified mininuke", + "default": "mininuke_mod" + }, + { + "type": "ammunition_type", + "id": "charcoal", + "name": "charcoal", + "default": "charcoal" + }, + { + "type": "ammunition_type", + "id": "metal_rail", + "name": "ferrous rail projectile", + "default": "rebar_rail" + }, + { + "type": "ammunition_type", + "id": "UPS", + "name": "UPS", + "default": "UPS" + }, + { + "type": "ammunition_type", + "id": "thrown", + "name": "throwing weapon", + "default": "thrown" + }, + { + "type": "ammunition_type", + "id": "ampoule", + "name": "chemical ampoule", + "default": "ampoule" + }, + { + "type": "ammunition_type", + "id": "stimpack_ammo", + "name": "stimulant module", + "default": "stimpack_ammo" + }, + { + "type": "ammunition_type", + "id": "components", + "name": "components", + "default": "components" + }, + { + "type": "ammunition_type", + "id": "RPG-7", + "name": "93mm RPG-7", + "default": "RPG-7_ammo" + }, + { + "type": "ammunition_type", + "id": "rebreather_filter", + "name": "rebreather filter", + "default": "rebreather_filter" + }, + { + "type": "ammunition_type", + "id": "gasfilter_s", + "name": "filter mask cartridge", + "default": "gasfilter_s" + }, + { + "type": "ammunition_type", + "id": "gasfilter_m", + "name": "gas mask cartridge", + "default": "gasfilter_m" + }, + { + "type": "ammunition_type", + "id": "gasfilter_l", + "name": "hazmat mask cartridge", + "default": "gasfilter_l" + }, + { + "type": "ammunition_type", + "id": "300", + "name": ".300", + "default": "300_winmag" + }, + { + "type": "ammunition_type", + "id": "32", + "name": ".32", + "default": "32_acp" + }, + { + "type": "ammunition_type", + "id": "762x25", + "name": "7.62x25mm", + "default": "762_25" + }, + { + "type": "ammunition_type", + "id": "flintlock", + "name": "paper cartridge", + "default": "flintlock_ammo" + }, + { + "type": "ammunition_type", + "id": "36paper", + "name": ".36 cap & ball", + "default": "36navy" + }, + { + "type": "ammunition_type", + "id": "44paper", + "name": ".44 cap & ball", + "default": "44army" + }, + { + "type": "ammunition_type", + "id": "762R", + "name": "7.62x54mm", + "default": "762_54R" + }, + { + "type": "ammunition_type", + "id": "fishspear", + "name": "speargun spear", + "default": "fishspear" + }, + { + "type": "ammunition_type", + "id": "fish_bait", + "name": "fish bait", + "default": "fish_bait" + }, + { + "type": "ammunition_type", + "id": "homebrew_rocket", + "name": "homebrew rocket", + "default": "spiked_rocket" + }, + { + "type": "ammunition_type", + "id": "unfinished_char", + "name": "semi-charred fuel", + "default": "unfinished_charcoal" + }, + { + "type": "ammunition_type", + "id": "chemical_spray", + "name": "sprayable chemical", + "default": "gas_fungicidal" + }, + { + "type": "ammunition_type", + "id": "milk", + "name": "milk", + "default": "milk" + }, + { + "type": "ammunition_type", + "id": "paintball", + "name": "paintball", + "default": "paintball" + } ] diff --git a/data/json/items/armor.json b/data/json/items/armor.json index 58146d0d1fa05..3eef4d66fa9e4 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -888,7 +888,7 @@ "encumbrance": 50, "storage": 100, "material_thickness": 2, - "flags": [ "OVERSIZE", "RESTRICT_HANDS" ] + "flags": [ "OVERSIZE", "RESTRICT_HANDS", "NOSALVAGE" ] }, { "id": "beekeeping_gloves", @@ -1242,7 +1242,7 @@ "id": "spearsling", "type": "ARMOR", "name": "spear strap", - "description": "A cloth strap tied around the torso for toting spears while keeping your hands free. You have to duck to get through doors while one's in it, though. Activate to holster/draw a weapon.", + "description": "A leather strap tied around the torso for toting spears while keeping your hands free. You have to duck to get through doors while one's in it, though. Activate to holster/draw a weapon.", "weight": 160, "volume": 2, "price": 5200, @@ -1957,6 +1957,25 @@ "environmental_protection": 3, "flags": [ "VARSIZE", "POCKETS", "WATERPROOF", "RAINPROOF", "HOOD", "OUTER" ] }, + { + "id": "coat_gut", + "type": "ARMOR", + "name": "gutskin parka", + "description": "An intricately sewn coat of treated and split intestines, prized for its light weight and waterproofness among the indigenous peoples of the arctic.", + "weight": 200, + "volume": 5, + "price": 13000, + "material": [ "flesh" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "TORSO", "ARMS" ], + "coverage": 95, + "encumbrance": 12, + "warmth": 10, + "material_thickness": 1, + "environmental_protection": 3, + "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF", "HOOD", "OUTER" ] + }, { "id": "coat_winter", "type": "ARMOR", @@ -5056,7 +5075,7 @@ "storage": 2, "warmth": 25, "material_thickness": 1, - "flags": [ "POCKETS", "HOOD", "OUTER" ] + "flags": [ "POCKETS", "HOOD", "OUTER", "WATERPROOF", "RAINPROOF" ] }, { "id": "jacket_flannel", @@ -7311,9 +7330,9 @@ "material": [ "leather" ], "symbol": "[", "color": "brown", - "covers": [ "TORSO" ], - "coverage": 5, - "encumbrance": 2, + "covers": [ "LEG_EITHER" ], + "coverage": 10, + "encumbrance": 3, "material_thickness": 1, "use_action": { "type": "bandolier", "capacity": 20, "ammo": [ "arrow", "bolt" ], "draw_cost": 20 }, "flags": [ "WAIST", "OVERSIZE", "WATER_FRIENDLY" ] @@ -7330,8 +7349,8 @@ "material": [ "wood" ], "symbol": "[", "color": "light_gray", - "covers": [ "TORSO" ], - "coverage": 5, + "covers": [ "LEG_EITHER" ], + "coverage": 10, "encumbrance": 10, "material_thickness": 1, "use_action": { "type": "bandolier", "capacity": 20, "ammo": [ "arrow", "bolt" ], "draw_cost": 20 }, diff --git a/data/json/items/bionics.json b/data/json/items/bionics.json index 32a9000190f59..4408d79b8d9ba 100644 --- a/data/json/items/bionics.json +++ b/data/json/items/bionics.json @@ -794,7 +794,7 @@ "copy-from": "bionic_general", "type": "BIONIC_ITEM", "name": "Integrated Toolset CBM", - "description": "Implanted in your hands and fingers is a complete tool set - screwdriver, hammer, wrench, and heating elements. You can use this in place of many tools when crafting.", + "description": "Surgically implanted in your hands and fingers is a complete tool set - screwdriver, hammer, wrench, hacksaw, wood saw, boltcutters, drill and heating elements. You can use this in place of many tools when crafting.", "price": 800000, "difficulty": 6 }, diff --git a/data/json/items/book/martial.json b/data/json/items/book/martial.json index 9dd368a36dfb5..dfdb7ca47defb 100644 --- a/data/json/items/book/martial.json +++ b/data/json/items/book/martial.json @@ -198,5 +198,13 @@ "name": "Zui Quan and You", "name_plural": "Zui Quan and You", "description": "A complete guide to Zui Quan." + }, + { + "id": "manual_sojutsu", + "copy-from": "book_martial", + "type": "GENERIC", + "name": "The Way of the Spear", + "name_plural": "The Way of the Spear", + "description": "A complete guide to Sōjutsu." } ] diff --git a/data/json/items/chemicals_and_resources.json b/data/json/items/chemicals_and_resources.json index 414ac787dcb2b..f174e17b02e99 100644 --- a/data/json/items/chemicals_and_resources.json +++ b/data/json/items/chemicals_and_resources.json @@ -200,7 +200,7 @@ "name_plural" : "liquid fertilizer", "weight" : 67, "color" : "yellow", - "flags" : ["FERTILIZER"], + "flags" : ["FERTILIZER", "NUTRIENT_OVERRIDE"], "use_action" : "PLANTBLECH", "container" : "jug_plastic", "comestible_type" : "DRINK", diff --git a/data/json/items/classes/comestible.json b/data/json/items/classes/comestible.json index ac2090dd3a80c..d24feddf6292e 100644 --- a/data/json/items/classes/comestible.json +++ b/data/json/items/classes/comestible.json @@ -5,6 +5,7 @@ "comestible_type": "FOOD", "name": "Spice", "//": "Spices are inedible in their base form but useful in crafting", + "flags": "NUTRIENT_OVERRIDE", "weight": 5, "volume": 1, "price": 250, diff --git a/data/json/items/comestibles/alcohol.json b/data/json/items/comestibles/alcohol.json index e7215b7e20089..e8e69e0c26648 100644 --- a/data/json/items/comestibles/alcohol.json +++ b/data/json/items/comestibles/alcohol.json @@ -2,8 +2,8 @@ { "type": "COMESTIBLE", "id": "wine_riesling", - "name": "riesling", - "name_plural": "riesling", + "name": "Riesling", + "name_plural": "Riesling", "weight": 50, "color": "white", "addiction_type": "alcohol", @@ -14,7 +14,7 @@ "symbol": "~", "quench": 4, "addiction_potential": 5, - "calories": 35, + "calories": 40, "description": "Sparkling white wine, made from the world's noblest grape.", "price": 1100, "//": "Booze uses nonstandard charge counts: 15 shots of wine to the 750mL bottle. Priced at 1100 translates to $33 per, because it's still priced per 250 mL charge.", @@ -29,8 +29,8 @@ { "type": "COMESTIBLE", "id": "wine_chardonnay", - "name": "chardonnay", - "name_plural": "chardonnay", + "name": "Chardonnay", + "name_plural": "Chardonnay", "weight": 50, "color": "white", "addiction_type": "alcohol", @@ -41,7 +41,7 @@ "symbol": "~", "quench": 4, "addiction_potential": 5, - "calories": 35, + "calories": 41, "description": "America's most popular wine, and for good reason.", "price": 1200, "//": "The PLCB can get you some for around $10 per 750mL, but I imagine you want to pay for better ~fermentation~.", @@ -56,8 +56,8 @@ { "type": "COMESTIBLE", "id": "wine_cabernet", - "name": "cabernet sauvignon", - "name_plural": "cabernet sauvignon", + "name": "Cabernet Sauvignon", + "name_plural": "Cabernet Sauvignon", "weight": 50, "color": "red", "addiction_type": "alcohol", @@ -68,7 +68,7 @@ "symbol": "~", "quench": 4, "addiction_potential": 5, - "calories": 35, + "calories": 41, "description": "The heavily disputed king of red wines. Pairs well with red meats and pasta.", "price": 1650, "material": [ "alcohol", "water" ], @@ -93,7 +93,7 @@ "symbol": "~", "quench": 4, "addiction_potential": 5, - "calories": 35, + "calories": 41, "description": "Prized by collectors and adored by critics, it is one of the rarer and more elegant wines.", "price": 2600, "material": [ "alcohol", "water" ], @@ -120,8 +120,8 @@ "quench": -12, "healthy": -2, "addiction_potential": 5, - "calories": 35, - "description": "Made from, by, and for real Southern colonels!", + "description": "A distilled grain alcohol, made from, by, and for real Southern colonels!", + "calories": 79, "price": 2100, "//": "Given the comment, presuming we're taking bourbon here.", "material": "alcohol", @@ -148,14 +148,14 @@ "quench": -10, "healthy": -2, "addiction_potential": 5, - "calories": 17, - "description": "In Soviet Russia, vodka drinks you!", + "calories": 79, + "description": "A beverage of alcohol, water, and not much else. In America, men make vodka, but in Soviet Russia, vodka makes the man.", "price": 1900, "material": "alcohol", "volume": 1, "phase": "liquid", "charges": 7, - "flags": [ "EATEN_COLD" ], + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE" ], "freezing_point": -22, "fun": 15 }, @@ -175,8 +175,8 @@ "quench": -10, "healthy": -2, "addiction_potential": 5, - "calories": 17, - "description": "Smells faintly of elderberries, but mostly booze.", + "calories": 79, + "description": "An alcoholic beverage flavored with juniper berries. It smells faintly of berries, but mostly booze.", "price": 1900, "material": "alcohol", "volume": 1, @@ -202,8 +202,8 @@ "quench": -12, "healthy": -2, "addiction_potential": 5, - "calories": 17, - "description": "Drinking this might make you feel like a pirate. Or not.", + "calories": 79, + "description": "An distilled alcoholic beverage made from fermenting molasses. Drinking it might make you feel like a pirate. Or not.", "price": 2300, "material": "alcohol", "volume": 1, @@ -218,7 +218,7 @@ "id": "tequila", "name": "tequila", "name_plural": "tequila", - "weight": 38, + "weight": 34, "color": "yellow", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -229,8 +229,8 @@ "quench": -12, "healthy": -2, "addiction_potential": 6, - "calories": 17, - "description": "Don't eat the worm! Wait, there's no worm in this bottle.", + "calories": 79, + "description": "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.", "price": 2600, "material": "alcohol", "volume": 1, @@ -245,7 +245,7 @@ "id": "triple_sec", "name": "triple sec", "name_plural": "triple sec", - "weight": 33, + "weight": 30, "color": "light_cyan", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -256,7 +256,7 @@ "quench": -8, "healthy": -2, "addiction_potential": 4, - "calories": 17, + "calories": 83, "description": "An orange flavored liquor used in many mixed drinks.", "price": 950, "material": "alcohol", @@ -272,7 +272,7 @@ "id": "bum_wine", "name": "cheap wine", "name_plural": "cheap wine", - "weight": 46, + "weight": 35, "color": "red", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -283,7 +283,7 @@ "quench": 6, "healthy": -4, "addiction_potential": 7, - "calories": 17, + "calories": 28, "description": "Really cheap fortified wine.", "price": 158, "material": [ "alcohol", "water" ], @@ -299,7 +299,7 @@ "id": "mixed_alcohol_strong", "name": "strong mixed alcohol", "name_plural": "strong mixed alcohol", - "weight": 46, + "weight": 34, "color": "red", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -310,13 +310,13 @@ "quench": -12, "healthy": -4, "addiction_potential": 7, - "calories": 17, + "calories": 79, "description": "Strong alcoholic drinks, mixed with no regard for taste.", "price": 50, "material": "alcohol", "volume": 1, "phase": "liquid", - "stack_size": 7, + "charges": 7, "flags": [ "EATEN_COLD" ], "freezing_point": -22, "fun": 5 @@ -326,7 +326,7 @@ "id": "mixed_alcohol_weak", "name": "weak mixed alcohol", "name_plural": "weak mixed alcohol", - "weight": 249, + "weight": 248, "color": "light_red", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -337,13 +337,13 @@ "quench": 16, "healthy": -2, "addiction_potential": 4, - "calories": 35, + "calories": 203, "description": "Weak alcoholic drinks, mixed with no regard for taste.", "price": 70, "material": [ "alcohol", "water" ], "volume": 1, "phase": "liquid", - "flags": [ "EATEN_COLD" ], + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE" ], "freezing_point": -22, "fun": 4 }, @@ -352,7 +352,7 @@ "id": "fruit_wine", "name": "fruit wine", "name_plural": "fruit wine", - "weight": 46, + "weight": 36, "color": "light_red", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -363,7 +363,7 @@ "quench": 10, "healthy": -2, "addiction_potential": 3, - "calories": 17, + "calories": 49, "description": "Cheap booze made from fermented fruit juice. Tastes just like it sounds.", "price": 550, "material": [ "alcohol", "water" ], @@ -379,7 +379,7 @@ "id": "brandy", "name": "brandy", "name_plural": "brandy", - "weight": 46, + "weight": 34, "color": "light_red", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -390,7 +390,7 @@ "quench": -5, "healthy": -2, "addiction_potential": 5, - "calories": 17, + "calories": 79, "description": "Wine that has been distilled to a higher proof. Great as an after-dinner drink, but packs a punch.", "price": 1300, "material": "alcohol", @@ -406,7 +406,7 @@ "id": "irish_coffee", "name": "Irish coffee", "name_plural": "Irish coffee", - "weight": 231, + "weight": 260, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -417,7 +417,7 @@ "quench": 20, "healthy": -2, "addiction_potential": 5, - "calories": 130, + "calories": 297, "description": "Sweetened coffee and whiskey topped with milk. Start your day the closeted alcoholic way!", "price": 500, "material": [ "alcohol", "water", "milk" ], @@ -431,7 +431,7 @@ "id": "long_island", "name": "Long Island iced tea", "name_plural": "Long Island iced tea", - "weight": 42, + "weight": 51, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -442,8 +442,8 @@ "quench": -10, "healthy": -2, "addiction_potential": 5, - "calories": 17, - "description": "A blend of incredibly strong-flavored liquors that somehow tastes like none of them.", + "calories": 328, + "description": "A blend of incredibly strong-flavored liquors that somehow tastes like none of them. It contains no tea, but the inclusion of cola gives it a tea-like color.", "price": 600, "material": [ "alcohol", "water" ], "volume": 1, @@ -456,7 +456,7 @@ "type": "COMESTIBLE", "id": "drink_screwdriver", "name": "screwdriver cocktail", - "weight": 250, + "weight": 258, "color": "yellow", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -467,14 +467,15 @@ "quench": 25, "healthy": 1, "addiction_potential": 4, - "calories": 52, - "description": "The surreptitious drunkard mechanic's drink of choice.", + "calories": 213, + "description": "A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's drink of choice.", "price": 600, "material": [ "alcohol", "fruit" ], "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], "freezing_point": -29, + "vitamins": [ [ "vitC", 4 ] ], "fun": 20 }, { @@ -482,7 +483,7 @@ "id": "drink_wild_apple", "name": "wild apple", "name_plural": "wild apple", - "weight": 248, + "weight": 258, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -493,7 +494,7 @@ "quench": 25, "healthy": 1, "addiction_potential": 4, - "calories": 52, + "calories": 212, "description": "Like apple cider, only with vodka.", "price": 500, "material": [ "alcohol", "fruit" ], @@ -501,6 +502,7 @@ "phase": "liquid", "flags": [ "EATEN_COLD" ], "freezing_point": -29, + "vitamins": [ [ "vitC", 4 ] ], "fun": 20 }, { @@ -508,7 +510,7 @@ "id": "drink_rumcola", "name": "rum & cola", "name_plural": "rum & cola", - "weight": 250, + "weight": 251, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -519,7 +521,7 @@ "quench": 25, "healthy": -2, "addiction_potential": 4, - "calories": 43, + "calories": 253, "description": "Suitable for tropical retreats and Canadian artists alike.", "price": 600, "material": [ "alcohol", "junk" ], @@ -534,7 +536,7 @@ "id": "beer", "name": "beer", "name_plural": "beer", - "weight": 249, + "weight": 251, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -544,8 +546,8 @@ "symbol": "~", "quench": 18, "addiction_potential": 2, - "calories": 35, - "description": "Best served cold, in a glass, and with a lime - but you're not that lucky.", + "calories": 108, + "description": "A grain alcohol flavored with hops. It's best served cold, in a glass, and with a lime - but you're not that lucky.", "price": 110, "material": [ "alcohol", "water" ], "volume": 1, @@ -559,7 +561,7 @@ "id": "mead", "name": "spiced mead", "name_plural": "spiced mead", - "weight": 46, + "weight": 36, "color": "yellow", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -569,7 +571,7 @@ "symbol": "~", "quench": 14, "addiction_potential": 2, - "calories": 35, + "calories": 53, "description": "Well-aged honey wine, spiced with a hint of hops. Goes down bittersweet.", "price": 1100, "material": [ "alcohol", "honey" ], @@ -585,7 +587,7 @@ "id": "dandelion_wine", "name": "dandelion wine", "name_plural": "dandelion wine", - "weight": 46, + "weight": 35, "color": "yellow", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -595,7 +597,7 @@ "symbol": "~", "quench": 10, "addiction_potential": 1, - "calories": 17, + "calories": 68, "description": "A light and delicious wine made from dandelion flowers. Slightly effervescent, it is smooth and crisp.", "price": 1400, "//": "Nope, homebrew is not more expensive than pinot noir, sorry.", @@ -612,7 +614,7 @@ "id": "pine_wine", "name": "pine wine", "name_plural": "pine wine", - "weight": 49, + "weight": 35, "color": "light_green", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -623,7 +625,7 @@ "quench": 2, "healthy": 1, "addiction_potential": 1, - "calories": 17, + "calories": 53, "description": "A potent wine flavored with pine resin. Bold and pungent, its biting taste and strong aroma takes some getting used to.", "price": 1000, "material": [ "alcohol", "water" ], @@ -649,7 +651,7 @@ "symbol": "~", "quench": 18, "addiction_potential": 2, - "calories": 35, + "calories": 108, "description": "Not the finest drink you've had, but hey, it's alcohol by the gallon.", "price": 500, "material": [ "alcohol", "water" ], @@ -675,8 +677,8 @@ "quench": -16, "healthy": -6, "addiction_potential": 7, - "calories": 17, - "description": "Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make you forget about the whole cataclysm thing, or you get your vision back.", + "calories": 101, + "description": "Only the strongest, purest, good ol' fashioned hooch, distilled from corn and sugar. Guaranteed to make you forget about the whole cataclysm thing, or you get your vision back.", "price": 850, "material": "alcohol", "volume": 1, @@ -702,8 +704,8 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 35, - "description": "A pilsner imported from Europe. Best served cold, in a glass - but you're not that lucky.", + "calories": 108, + "description": "A lager beer imported from Europe. Best served cold, in a glass - but you're not that lucky.", "price": 260, "material": [ "alcohol", "water" ], "volume": 1, @@ -728,7 +730,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 35, + "calories": 108, "description": "A tasty craft beer. Best served cold, in a glass - but you're not that lucky.", "price": 150, "material": [ "alcohol", "water" ], @@ -754,7 +756,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 35, + "calories": 108, "description": "A very flavorful microbrewed beer. Best served cold, in a glass - but you're not that lucky.", "price": 150, "material": [ "alcohol", "water" ], @@ -769,7 +771,7 @@ "id": "stout", "name": "stout", "name_plural": "stout", - "weight": 249, + "weight": 205, "color": "brown", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -780,7 +782,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 35, + "calories": 87, "description": "A tasty craft beer, as dark in color as the days ahead.", "price": 160, "material": [ "alcohol", "water" ], @@ -806,8 +808,8 @@ "quench": 16, "healthy": -1, "addiction_potential": 2, - "calories": 69, - "description": "A flavorful and filling ale brewed by monks in Belgium. Best served in a goblet.", + "calories": 108, + "description": "A flavorful and filling beer brewed by monks in Belgium. Best served in a goblet.", "price": 130, "material": [ "alcohol", "water" ], "volume": 1, @@ -832,7 +834,7 @@ "quench": 8, "healthy": -1, "addiction_potential": 4, - "calories": 52, + "calories": 181, "description": "A very flavorful beer that has been aged in bourbon barrels. It is as black 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.", "price": 450, "material": [ "alcohol", "water" ], @@ -846,7 +848,7 @@ "type": "COMESTIBLE", "id": "drink_strawberry_surprise", "name": "strawberry surprise", - "weight": 36, + "weight": 43, "color": "pink", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -857,7 +859,7 @@ "quench": 15, "healthy": 3, "addiction_potential": 6, - "calories": 69, + "calories": 35, "description": "Strawberries left to ferment with a few other choice ingredients offer up a surprisingly palatable mixture; you barely even have to force yourself to drink it after the first few gulps.", "price": 1600, "material": [ "alcohol", "water", "fruit" ], @@ -873,7 +875,7 @@ "id": "drink_boozeberry", "name": "boozeberry", "name_plural": "boozeberries", - "weight": 36, + "weight": 43, "color": "cyan", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -884,7 +886,7 @@ "quench": 15, "healthy": 1, "addiction_potential": 18, - "calories": 260, + "calories": 36, "description": "This fermented blueberry mixture is surprisingly hearty, though the soup-like consistency is slightly unsettling no matter how much you drink.", "price": 1400, "material": [ "alcohol", "water", "fruit" ], @@ -911,7 +913,7 @@ "quench": -12, "healthy": -2, "addiction_potential": 5, - "calories": 35, + "calories": 79, "description": "Only the finest whiskey straight from the bung.", "price": 300, "price_note": "Priced by the 100 liter barrel, this is multiplied by 400 to achieve the final cost.", @@ -964,7 +966,7 @@ "healthy": -1, "addiction_potential": 5, "calories": 35, - "description": "Not as bad as some might imagine, this drink is pretty popular among young and/or poor people in some countries.", + "description": "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.", "price": 800, "material": [ "alcohol", "junk" ], "volume": 2, @@ -1013,7 +1015,7 @@ "quench": 25, "healthy": -1, "addiction_potential": 4, - "calories": 52, + "calories": 385, "description": "A mixed drink made of whiskey and lemon juice.", "price": 800, "material": "alcohol", @@ -1050,7 +1052,7 @@ "type": "COMESTIBLE", "id": "honey_ant", "name": "honey ball", - "weight": 31, + "weight": 178, "color": "yellow", "addiction_type": "alcohol", "use_action": "ALCOHOL_WEAK", @@ -1060,11 +1062,12 @@ "quench": 8, "healthy": 1, "addiction_potential": 1, - "calories": 130, + "calories": 541, "description": "Droplet shaped ant food. It's like a thick balloon the size of a baseball, filled with sticky liquid. Unlike bee honey, this has mostly a sour taste, probably because ants feed upon a variety of things.", "price": 1000, "material": [ "junk", "honey" ], "volume": 1, + "charges": 2, "stack_size": 20, "fun": -1 }, @@ -1072,7 +1075,7 @@ "type": "COMESTIBLE", "id": "eggnog_spiked", "name": "spiked eggnog", - "weight": 258, + "weight": 132, "color": "white", "addiction_type": "alcohol", "use_action": "ALCOHOL", @@ -1083,7 +1086,7 @@ "quench": 25, "healthy": -1, "addiction_potential": 5, - "calories": 391, + "calories": 117, "description": "Smooth and rich, this spoon-coating mixture of milk, cream, eggs, and booze is a popular traditional holiday drink. Having been fortified with alcohol, it will keep for a long time.", "price": 45, "//": "A 12-charge gallon currently goes for around US$4, and eggnog is a bit more expensive than that.", diff --git a/data/json/items/comestibles/bread.json b/data/json/items/comestibles/bread.json index 8b9d53c087017..c543b9d1c4b45 100644 --- a/data/json/items/comestibles/bread.json +++ b/data/json/items/comestibles/bread.json @@ -86,18 +86,17 @@ "type": "COMESTIBLE", "id": "flatbread", "name": "flatbread", - "weight": 56, + "weight": 85, "color": "brown", "spoils_in": "11 days 16 hours", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 174, + "calories": 234, "description": "Simple unleavened bread.", - "price": 140, + "price": 23, "material": "wheat", - "volume": 2, - "charges": 6, + "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -105,81 +104,84 @@ "type": "COMESTIBLE", "id": "bread", "name": "bread", - "weight": 56, + "weight": 60, "color": "brown", "spoils_in": "10 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 84, "description": "Healthy and filling.", - "price": 190, + "price": 47, "material": "wheat", - "volume": 3, - "charges": 8, + "volume": 1, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 1, + "vitamins": [ [ "calcium", 4 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "cornbread", "name": "cornbread", - "weight": 64, + "weight": 60, "color": "yellow", "spoils_in": "30 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 156, + "calories": 198, "description": "Healthy and filling cornbread.", - "price": 150, + "price": 75, "material": "veggy", "volume": 1, - "charges": 4, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 2, + "vitamins": [ [ "calcium", 2 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "johnnycake", "name": "johnnycake", - "weight": 46, + "weight": 49, "color": "yellow", "spoils_in": "20 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 143, "description": "A tasty and nutritious fried bread treat.", - "price": 550, + "price": 275, "material": [ "wheat", "junk" ], "volume": 1, - "charges": 4, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 2, + "vitamins": [ [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "tortilla_corn", "name": "corn tortilla", - "weight": 56, + "weight": 24, "color": "brown", "spoils_in": "20 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 156, + "calories": 52, "description": "A round, thin flatbread made from finely ground corn flour.", - "price": 150, + "price": 50, "material": "veggy", - "volume": 3, - "charges": 6, + "volume": 1, + "charges": 2, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1, "rot_spawn": "GROUP_ROTTING_PLANT" @@ -188,19 +190,20 @@ "type": "COMESTIBLE", "id": "hardtack", "name": "hardtack", - "weight": 28, + "weight": 80, "color": "white", "spoils_in": "360 days", "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 156, + "calories": 280, "description": "A dry and virtually tasteless bread product capable of remaining edible without spoilage for vast lengths of time.", - "price": 500, + "price": 125, "material": "wheat", "volume": 1, - "charges": 8, + "charges": 2, "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "iron", 3 ] ], "stack_size": 20, "fun": -1 }, @@ -208,44 +211,46 @@ "type": "COMESTIBLE", "id": "biscuit", "name": "biscuit", - "weight": 136, + "weight": 60, "color": "brown", "spoils_in": "7 days 12 hours", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 208, + "calories": 212, "description": "Delicious and filling, this home made biscuit is good, and good for you!", - "price": 230, + "price": 57, "material": "wheat", - "volume": 4, - "charges": 8, + "volume": 1, + "charges": 2, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1, + "vitamins": [ [ "calcium", 3 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "wastebread", "name": "wastebread", - "weight": 31, + "weight": 60, "color": "white", "spoils_in": 990, "comestible_type": "FOOD", "symbol": "%", "quench": -3, "healthy": -1, - "calories": 148, + "calories": 80, "description": "Flour is a commodity these days and to deal with that, most survivors resort to mix it with leftovers of other ingredients and bake it all into bread. It's filling, and that's what matters.", - "price": 2000, + "price": 400, "material": [ "junk", "wheat" ], "volume": 1, - "charges": 10, + "charges": 2, "stack_size": 20, "flags": [ "EATEN_HOT" ], "fun": -1, - "vitamins": [ [ "calcium", 1 ] ], + "vitamins": [ [ "calcium", 3 ] ], + "//": "this item will generally inherit its values, so it is essentially a copy of bread", "rot_spawn": "GROUP_ROTTING_PLANT" } ] diff --git a/data/json/items/comestibles/brewing.json b/data/json/items/comestibles/brewing.json index 29b25d587a7c8..d6ee1eaf6aaf5 100644 --- a/data/json/items/comestibles/brewing.json +++ b/data/json/items/comestibles/brewing.json @@ -7,7 +7,7 @@ "weight": 33, "color": "brown", "container": "bottle_glass", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 17, "quench": 4, @@ -41,6 +41,7 @@ "volume": 1, "charges": 7, "phase": "liquid", + "flags": [ "NUTRIENT_OVERRIDE" ], "comestible_type": "DRINK" }, { @@ -60,6 +61,7 @@ "charges": 7, "phase": "liquid", "comestible_type": "DRINK", + "flags": [ "NUTRIENT_OVERRIDE" ], "brewable": { "time": "6 hours", "results": [ "wash_vodka", "yeast" ] } }, { @@ -84,6 +86,7 @@ "volume": 1, "charges": 7, "phase": "liquid", + "flags": [ "NUTRIENT_OVERRIDE" ], "comestible_type": "DRINK" }, { @@ -94,7 +97,7 @@ "weight": 33, "color": "light_cyan", "container": "bottle_glass", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 17, "quench": 4, @@ -128,6 +131,7 @@ "volume": 1, "charges": 7, "phase": "liquid", + "flags": [ "NUTRIENT_OVERRIDE" ], "comestible_type": "DRINK" }, { @@ -138,7 +142,7 @@ "weight": 46, "color": "light_red", "container": "bottle_glass", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 17, "quench": 6, @@ -159,7 +163,7 @@ "weight": 38, "color": "yellow", "container": "bottle_glass", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 35, "quench": 6, @@ -189,6 +193,7 @@ "charges": 7, "phase": "liquid", "comestible_type": "DRINK", + "flags": [ "NUTRIENT_OVERRIDE" ], "brewable": { "time": "1 day 12 hours 40 minutes", "results": [ "dandelion_wine", "yeast" ] } }, { @@ -208,6 +213,7 @@ "charges": 7, "phase": "liquid", "comestible_type": "DRINK", + "flags": [ "NUTRIENT_OVERRIDE" ], "brewable": { "time": "1 day 16 hours 50 minutes", "results": [ "pine_wine", "yeast" ] } }, { @@ -218,7 +224,7 @@ "weight": 249, "color": "brown", "container": "jug_plastic", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 35, "quench": 4, @@ -238,7 +244,7 @@ "weight": 50, "color": "brown", "container": "jug_plastic", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "symbol": "~", "calories": 104, "quench": 2, @@ -272,6 +278,7 @@ "volume": 1, "charges": 7, "phase": "liquid", + "flags": [ "NUTRIENT_OVERRIDE" ], "comestible_type": "DRINK" }, { @@ -292,6 +299,7 @@ "volume": 1, "phase": "liquid", "fun": -12, + "flags": [ "NUTRIENT_OVERRIDE" ], "brewable": { "time": "4 hours", "results": [ "milk_curdled" ] } }, { @@ -311,6 +319,7 @@ "charges": 2, "phase": "liquid", "comestible_type": "DRINK", + "flags": [ "NUTRIENT_OVERRIDE" ], "brewable": { "time": "7 hours", "results": [ "vinegar" ] } } ] diff --git a/data/json/items/comestibles/carnivore.json b/data/json/items/comestibles/carnivore.json index ae41cf83f73c0..7f47ebf4fdb3d 100644 --- a/data/json/items/comestibles/carnivore.json +++ b/data/json/items/comestibles/carnivore.json @@ -8,7 +8,7 @@ "symbol": "%", "color": "red", "parasites": 32, - "vitamins": [ [ "calcium", 1 ], [ "iron", 20 ], [ "vitB", 10 ] ], + "vitamins": [ ], "rot_spawn": "GROUP_CARRION" }, { @@ -18,12 +18,14 @@ "name": "fillet of fish", "name_plural": "fillets of fish", "description": "Freshly caught fish. Makes a passable meal raw.", - "weight": 200, + "//": "Nutrition information based on cod", + "weight": 148, "volume": 1, "price": 500, "spoils_in": "12 hours", "flags": [ "SMOKABLE" ], - "calories": 231 + "vitamins": [ [ "vitB", 9 ] ], + "calories": 121 }, { "id": "fish_cooked", @@ -82,13 +84,15 @@ "name": "chunk of meat", "name_plural": "chunks of meat", "description": "Freshly butchered meat. You could eat it raw, but cooking it is better.", - "weight": 226, - "volume": 1, + "weight": 296, + "volume": 2, "price": 500, "spoils_in": "1 day", - "calories": 449, + "calories": 302, "healthy": -1, "fun": -10, + "cooks_like": "meat_cooked", + "vitamins": [ [ "vitC", 4 ], [ "iron", 17 ], [ "vitB", 187 ], [ "calcium", 0 ] ], "flags": [ "SMOKABLE" ] }, { @@ -98,10 +102,9 @@ "name": "scrap of meat", "name_plural": "scraps of meat", "description": "This is a tiny scrap of edible meat. It's not much, but it'll do in a pinch.", - "weight": 10, - "volume": "12 ml", - "price": 24, - "calories": 12 + "cooks_like": "meat_scrap_cooked", + "proportional": { "weight": 0.1, "volume": 0.1, "price": 0.1, "calories": 0.1 }, + "vitamins": [ [ "vitB", 18 ], [ "vitC", 0 ], [ "iron", 0 ] ] }, { "type": "COMESTIBLE", @@ -119,6 +122,9 @@ "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", + "health": -25, + "fun": -25, + "use_action": "POISON", "vitamins": [ ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 101 @@ -134,7 +140,7 @@ "calories": 402, "healthy": 0, "fun": 0, - "flags": [ "EATEN_HOT" ] + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ] }, { "id": "meat_scrap_cooked", @@ -145,6 +151,7 @@ "parasites": 0, "fun": 0, "healthy": 0, + "flags": [ "NUTRIENT_OVERRIDE" ], "calories": 51 }, { @@ -232,18 +239,20 @@ "name": "meat jerky", "name_plural": "meat jerky", "description": "Salty dried meat that lasts for a long time, but will make you thirsty.", - "weight": 40, + "weight": 85, "container": "bag_plastic", "color": "brown", "spoils_in": "24 days", - "charges": 3, - "stack_size": 3, + "volume": 1, + "charges": 2, "parasites": 0, "healthy": 0, "quench": -5, "fun": 4, + "calories": 348, + "vitamins": [ [ "vitC", 0 ], [ "iron", 6 ], [ "vitB", 8 ] ], "delete": { "flags": [ "SMOKABLE" ] }, - "proportional": { "price": 0.64, "calories": 0.34 } + "proportional": { "price": 0.64 } }, { "id": "salted_fish", @@ -251,18 +260,16 @@ "type": "COMESTIBLE", "name": "salted fish", "name_plural": "salted fish", - "//": "Two fillets of fish needed here.", "description": "Salty dried fish that lasts for a long time, but will make you thirsty.", - "weight": 84, "container": "bag_plastic", "color": "light_gray", "spoils_in": "24 days", - "charges": 4, "stack_size": 4, "parasites": 0, "quench": -5, "fun": 4, - "proportional": { "price": 2, "calories": 0.45 } + "vitamins": [ [ "vitA", 0 ], [ "vitC", 0 ], [ "calcium", 2 ], [ "iron", 1 ], [ "vitB", 42 ] ], + "proportional": { "price": 2, "volume": 0.28, "weight": 0.28 } }, { "id": "jerky_human", @@ -271,70 +278,53 @@ "name": "jerk jerky", "name_plural": "jerk jerky", "description": "Salty dried human flesh that lasts for a long time, but will make you thirsty.", - "weight": 56, "color": "brown", "spoils_in": "24 days", "healthy": 0, - "charges": 3, - "stack_size": 3, + "volume": 1, + "charges": 2, "parasites": 0, "quench": -5, "fun": 4, - "proportional": { "price": 0.44, "calories": 0.34 } + "calories": 348, + "weight": 85, + "vitamins": [ [ "vitA", 0 ], [ "vitC", 0 ], [ "calcium", 2 ], [ "iron", 1 ], [ "vitB", 8 ] ], + "proportional": { "price": 0.44 } }, { "id": "meat_smoked", - "copy-from": "meat", + "copy-from": "meat_cooked", "type": "COMESTIBLE", "name": "smoked meat", - "//": "3 chunks of meat.", "description": "Tasty meat that has been heavily smoked for preservation. It could be further smoked to dehydrate it completely.", - "weight": 162, - "volume": 3, "color": "brown", - "charges": 3, - "parasites": 0, "spoils_in": "24 days", - "healthy": 0, "quench": -1, "fun": 5, - "proportional": { "price": 6, "calories": 0.95 }, "flags": [ "EATEN_HOT", "SMOKED", "SMOKABLE" ] }, { "id": "fish_smoked", - "copy-from": "fish", + "copy-from": "fish_cooked", "type": "COMESTIBLE", "name": "smoked fish", "name_plural": "smoked fish", - "//": "Condenses 6 fillets.", "description": "Tasty fish that has been heavily smoked for long term preservation. It could be further smoked to dehydrate it completely.", - "weight": 84, "color": "brown", - "charges": 6, - "stack_size": 6, - "parasites": 0, "spoils_in": "24 days", "fun": 6, - "proportional": { "price": 2, "calories": 0.95 }, "flags": [ "EATEN_HOT", "SMOKED", "SMOKABLE" ] }, { "id": "human_smoked", - "copy-from": "human_flesh", + "copy-from": "human_cooked", "type": "COMESTIBLE", "name": "smoked sucker", "description": "A heavily smoked portion of human flesh. Lasts for a long time and tastes pretty good, if you like that sort of thing.", - "weight": 162, "color": "brown", - "charges": 3, - "stack_size": 1, - "parasites": 0, "spoils_in": "24 days", - "healthy": 0, "quench": -1, "fun": 5, - "proportional": { "price": 20, "calories": 0.95 }, "flags": [ "EATEN_HOT", "SMOKED", "SMOKABLE" ] }, { @@ -522,14 +512,14 @@ "type": "COMESTIBLE", "id": "tallow", "name": "tallow", - "weight": 128, + "weight": 110, "color": "white", "spoils_in": "60 days", "comestible_type": "FOOD", "symbol": "%", "quench": -10, "healthy": -5, - "calories": 538, + "calories": 992, "description": "A smooth white block of cleaned and rendered animal fat. It will remain edible for a very long time, and can be used as an ingredient in many foods and projects.", "price": 500, "//": "*May* have been commercially traded.", @@ -537,6 +527,7 @@ "volume": 1, "charges": 2, "stack_size": 4, + "vitamins": [ ], "fun": -18 }, { diff --git a/data/json/items/comestibles/dairy.json b/data/json/items/comestibles/dairy.json index 1b6ab5ca7e2fb..0376ec6d5f535 100644 --- a/data/json/items/comestibles/dairy.json +++ b/data/json/items/comestibles/dairy.json @@ -3,13 +3,13 @@ "type": "COMESTIBLE", "id": "yoghurt", "name": "yogurt", - "weight": 200, + "weight": 238, "color": "magenta", "spoils_in": "20 hours", "container": "cup_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 130, + "calories": 150, "description": "Delicious fermented dairy. It tastes of vanilla.", "price": 190, "material": [ "milk" ], @@ -17,19 +17,20 @@ "phase": "liquid", "flags": [ "FREEZERBURN" ], "fun": 15, + "vitamins": [ [ "calcium", 8 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "pudding", "name": "pudding", - "weight": 200, + "weight": 232, "color": "light_gray", "spoils_in": "7 days 12 hours", "container": "cup_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 87, + "calories": 302, "description": "Sugary, fermented dairy. A wonderful treat.", "price": 210, "material": [ "milk", "junk" ], @@ -37,6 +38,7 @@ "phase": "liquid", "fun": 20, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "calcium", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -63,7 +65,7 @@ "id": "cheese_hard", "name": "hard cheese", "name_plural": "hard cheese", - "weight": 120, + "weight": 34, "color": "yellow", "spoils_in": "180 days", "stim": 1, @@ -71,12 +73,13 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -5, - "calories": 260, + "calories": 135, "description": "Hard, dry cheese made to last, unlike modern processed cheese. Will make you thirsty though.", - "price": 900, + "price": 385, "material": [ "milk" ], "volume": 1, - "charges": 3, + "charges": 7, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 7 ] ], "fun": 5 }, { @@ -84,20 +87,21 @@ "id": "cheese", "name": "cheese", "name_plural": "cheese", - "weight": 120, + "weight": 30, "color": "yellow", "spoils_in": "28 days", "stim": 1, "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 260, + "calories": 120, "description": "A block of yellow processed cheese.", - "price": 900, + "price": 450, "material": [ "milk" ], "volume": 1, - "charges": 4, + "charges": 8, "fun": 7, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 3 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -111,7 +115,7 @@ "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 286, + "calories": 357, "description": "A tortilla filled with cheese and lightly grilled.", "price": 500, "material": [ "milk" ], @@ -119,6 +123,7 @@ "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 2 ], [ "calcium", 7 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -126,19 +131,21 @@ "id": "milk_powder", "name": "powdered milk", "name_plural": "powdered milk", - "weight": 162, + "weight": 7, "color": "white", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 9, + "calories": 26, "description": "Dehydrated milk powder. Mix with water to make drinkable milk.", "price": 1100, "material": [ "powder", "milk" ], "volume": 1, + "cooks_like": "milk", "flags": [ "EDIBLE_FROZEN" ], "charges": 10, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 2 ] ], "fun": -5 } ] diff --git a/data/json/items/comestibles/drink.json b/data/json/items/comestibles/drink.json index 23f7628a4aa81..3c6cc3cf70c05 100644 --- a/data/json/items/comestibles/drink.json +++ b/data/json/items/comestibles/drink.json @@ -12,13 +12,14 @@ "symbol": "~", "quench": 35, "healthy": 3, - "calories": 35, + "calories": 120, "description": "Pressed from fresh apples. Tasty and nutritious.", "price": 85, "material": "fruit", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 40 ] ], "fun": 2 }, { @@ -26,24 +27,17 @@ "id": "atomic_coffee", "name": "atomic coffee", "name_plural": "atomic coffee", - "weight": 257, - "color": "brown", + "copy-from": "coffee", "addiction_type": "caffeine", "use_action": "ATOMIC_CAFF", "stim": 25, "container": "bottle_plastic", - "comestible_type": "DRINK", - "symbol": "~", - "quench": 40, "healthy": -5, "addiction_potential": 8, "calories": 35, "description": "This serving of coffee has been created using an atomic coffee pot's FULL NUCLEAR brewing cycle. Every possible microgram of caffeine and flavor has been carefully extracted for your enjoyment, using the power of the atom.", "price": 300, - "material": "water", - "volume": 1, - "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 10 }, { @@ -51,23 +45,15 @@ "id": "bee_balm_tea", "name": "bee balm tea", "name_plural": "bee balm tea", - "weight": 256, + "copy-from": "tea", "color": "green", "use_action": "FLUMED", "spoils_in": "10 days", "stim": 1, - "container": "bottle_plastic", - "comestible_type": "DRINK", - "symbol": "~", "quench": 34, "healthy": 1, - "calories": 17, "description": "A healthy beverage made from bee balm steeped in boiling water. Can be used to reduce negative effects of common cold or flu.", "price": 100, - "volume": 1, - "material": [ "water" ], - "phase": "liquid", - "flags": [ "EATEN_HOT" ], "fun": 1 }, { @@ -81,12 +67,13 @@ "comestible_type": "FOOD", "symbol": "%", "quench": 5, - "calories": 260, + "calories": 470, "description": "A dense, sweet creamy sauce, often used in curries.", "price": 350, "material": "fruit", "volume": 1, "phase": "liquid", + "vitamins": [ [ "vitC", 1 ], [ "iron", 10 ] ], "fun": 1 }, { @@ -104,33 +91,34 @@ "symbol": "~", "quench": 40, "healthy": 1, - "calories": 69, + "calories": 120, "description": "A traditional south Asian mixed-spice tea with milk.", "price": 475, "material": [ "milk", "water" ], "volume": 1, "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 14 }, { "type": "COMESTIBLE", "id": "choc_drink", "name": "chocolate drink", - "weight": 264, + "weight": 236, "color": "brown", "stim": 2, "container": "can_drink", "comestible_type": "DRINK", "symbol": "~", "quench": 36, - "calories": 35, + "calories": 116, "description": "A chocolate flavored beverage made of artificial flavoring and milk byproducts. Shelf stable and vaguely appetizing even when lukewarm.", "price": 100, "material": [ "junk", "milk" ], "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitA", 2 ], [ "vitC", 2 ], [ "calcium", 4 ], [ "iron", 1 ] ], "fun": 7 }, { @@ -138,7 +126,7 @@ "id": "coffee", "name": "coffee", "name_plural": "coffee", - "weight": 254, + "weight": 250, "color": "brown", "addiction_type": "caffeine", "use_action": "CAFF", @@ -148,20 +136,20 @@ "symbol": "~", "quench": 40, "addiction_potential": 2, - "calories": 26, - "description": "Coffee. The morning ritual of the pre-apocalyptic world.", + "calories": 2, + "description": "The morning ritual of the pre-apocalyptic world, created from coffee cherries through a complex process of seed removal, roasting, grinding, and brewing. Coffee is substantially richer in caffeine than its rival tea.", "price": 100, "material": "water", "volume": 1, "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 6 }, { "type": "COMESTIBLE", "id": "cola", "name": "dark cola", - "weight": 260, + "weight": 248, "color": "brown", "addiction_type": "caffeine", "use_action": "CAFF", @@ -172,7 +160,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 26, + "calories": 98, "description": "Things go better with cola. Sugar water with caffeine added.", "price": 95, "material": "junk", @@ -185,7 +173,7 @@ "type": "COMESTIBLE", "id": "colamdew", "name": "energy cola", - "weight": 260, + "weight": 234, "color": "light_green", "addiction_type": "caffeine", "use_action": "CAFF", @@ -196,7 +184,7 @@ "quench": 14, "healthy": -2, "addiction_potential": 2, - "calories": 26, + "calories": 115, "description": "It tastes and looks like windshield wiper fluid, but it's loaded to the brim with sugar and caffeine.", "price": 100, "material": "junk", @@ -218,7 +206,7 @@ "symbol": "~", "quench": 12, "calories": 103, - "description": "Baby cow food, appropriated for adult humans. This milk has been sweetened and thickened, making it a sweet addition to any food.", + "description": "Cow's milk that has been partly dehydrated to vastly increase its shelf life, and also sweetened.", "price": 70, "material": [ "milk", "junk" ], "volume": 1, @@ -231,7 +219,7 @@ "type": "COMESTIBLE", "id": "creamsoda", "name": "cream soda", - "weight": 260, + "weight": 247, "color": "light_gray", "addiction_type": "caffeine", "use_action": "CAFF", @@ -242,7 +230,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 26, + "calories": 126, "description": "A caffeinated, carbonated drink, flavored with vanilla.", "price": 95, "material": "junk", @@ -255,7 +243,7 @@ "type": "COMESTIBLE", "id": "cranberry_juice", "name": "cranberry juice", - "weight": 263, + "weight": 250, "color": "magenta", "spoils_in": "20 d", "container": "bottle_plastic", @@ -263,13 +251,14 @@ "symbol": "~", "quench": 37, "healthy": 2, - "calories": 26, + "calories": 112, "description": "Made from real Massachusetts cranberries. Delicious and nutritious.", "price": 80, "material": "fruit", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 31 ] ], "fun": 3 }, { @@ -277,20 +266,21 @@ "id": "crispycran", "name": "crispy cranberry", "name_plural": "crispy cranberries", - "weight": 260, + "weight": 250, "color": "pink", "stim": 1, "container": "can_drink", "comestible_type": "DRINK", "symbol": "~", "quench": 27, - "calories": 26, + "calories": 105, "description": "Mixing cranberry juice and lemon-lime soda works out quite well.", "price": 110, "material": [ "junk", "fruit" ], "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 15 ] ], "fun": 6 }, { @@ -313,21 +303,21 @@ "volume": 1, "material": [ "water" ], "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 2 }, { "type": "COMESTIBLE", "id": "eggnog", "name": "eggnog", - "weight": 258, + "weight": 134, "color": "white", "spoils_in": "8 hours", "container": "bottle_glass", "comestible_type": "DRINK", "symbol": "~", "quench": 25, - "calories": 391, + "calories": 118, "description": "Smooth and rich, this spoon-coating mix of milk, cream, and eggs is a popular traditional holiday drink. While often spiked, it is still delicious on its own. Meant to be stored cold, it will spoil rapidly.", "price": 40, "material": [ "milk", "egg" ], @@ -335,13 +325,14 @@ "phase": "liquid", "charges": 2, "flags": [ "EATEN_COLD", "FREEZERBURN" ], + "vitamins": [ [ "vitA", 2 ], [ "vitC", 1 ], [ "calcium", 6 ] ], "fun": 15 }, { "type": "COMESTIBLE", "id": "energy_drink", "name": "energy drink", - "weight": 262, + "weight": 253, "color": "magenta", "addiction_type": "caffeine", "use_action": "CAFF", @@ -352,38 +343,30 @@ "quench": 15, "healthy": -1, "addiction_potential": 2, - "calories": 9, - "description": "Popular among those who need to stay up late working.", + "calories": 157, + "description": "A heavily caffeinated soft drink. Energy drinks are popular among those who need to stay up late working.", "price": 170, "material": "junk", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 25 ] ], "fun": 5 }, { "type": "COMESTIBLE", "id": "energy_drink_atomic", "name": "atomic energy drink", - "weight": 267, + "copy-from": "energy_drink", "color": "light_green", - "addiction_type": "caffeine", "use_action": "ATOMIC_CAFF", "stim": 27, - "container": "can_drink", - "comestible_type": "DRINK", - "symbol": "~", "quench": 45, "healthy": -6, "addiction_potential": 9, - "calories": 17, "description": "According to the label, this loathsome-tasting beverage is called ATOMIC POWER THIRST. Alongside the lengthy health warning, it promises to make the consumer UNCOMFORTABLY ENERGETIC using ELECTROLYTES and THE POWER OF THE ATOM.", "price": 1500, "//": "Check whether Rivtech-Expensive applies to their energy drinks", - "material": "junk", - "volume": 1, - "phase": "liquid", - "flags": [ "EATEN_COLD" ], "fun": -1 }, { @@ -391,7 +374,7 @@ "id": "herbal_tea", "name": "herbal tea", "name_plural": "herbal tea", - "weight": 256, + "weight": 250, "color": "green", "addiction_type": "caffeine", "use_action": "CAFF", @@ -401,13 +384,13 @@ "symbol": "~", "quench": 44, "healthy": 1, - "calories": 26, + "calories": 2, "description": "A healthy beverage made from herbs steeped in boiling water.", "price": 100, "volume": 1, "material": [ "water" ], "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 4 }, { @@ -417,7 +400,7 @@ "name": "hot chocolate", "name_plural": "hot chocolate", "description": "Also known as hot cocoa, this heated chocolate beverage is perfect for a cold winter day.", - "weight": 263, + "weight": 289, "volume": 1, "price": 285, "phase": "liquid", @@ -426,17 +409,18 @@ "symbol": "~", "color": "brown", "comestible_type": "DRINK", - "calories": 78, + "calories": 160, "quench": 35, "fun": 8, "spoils_in": "1 day", + "vitamins": [ [ "calcium", 1 ] ], "flags": [ "EATEN_HOT" ] }, { "type": "COMESTIBLE", "id": "juice", "name": "fruit juice", - "weight": 263, + "weight": 125, "color": "light_red", "spoils_in": "5 days", "container": "bottle_plastic", @@ -444,7 +428,7 @@ "symbol": "~", "quench": 20, "healthy": 2, - "calories": 35, + "calories": 68, "description": "Freshly-squeezed from real fruit! Tasty and nutritious.", "price": 80, "material": "fruit", @@ -452,13 +436,14 @@ "phase": "liquid", "charges": 2, "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 13 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "kompot", "name": "kompot", - "weight": 21, + "weight": 250, "color": "red", "spoils_in": "7 days 12 hours", "container": "jar_3l_glass", @@ -466,13 +451,14 @@ "symbol": "~", "quench": 50, "healthy": 1, - "calories": 100, + "calories": 135, "description": "Clear juice obtained by cooking fruit in a large volume of water.", "price": 62, "material": "fruit", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 25 ] ], "fun": 8 }, { @@ -480,27 +466,28 @@ "id": "lemonade", "name": "lemonade", "name_plural": "lemonade", - "weight": 263, + "weight": 260, "color": "yellow", "container": "bottle_plastic", "comestible_type": "DRINK", "symbol": "~", "quench": 35, "healthy": 1, - "calories": 35, + "calories": 104, "description": "Lemon juice mixed with water and sugar to dull the sourness. Delicious and refreshing.", "price": 80, "material": "fruit", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 4 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "lemonlime", "name": "lemon-lime soda", - "weight": 260, + "weight": 258, "color": "yellow", "stim": 2, "container": "can_drink", @@ -508,7 +495,7 @@ "symbol": "~", "quench": 18, "healthy": -1, - "calories": 26, + "calories": 105, "description": "Unlike cola this is caffeine free, however it is still carbonated and has plenty of sugar. Not to mention a lemon-lime taste.", "price": 95, "material": "junk", @@ -520,24 +507,13 @@ { "id": "mex_chocolate", "type": "COMESTIBLE", - "category": "food", "name": "Mexican hot chocolate", "name_plural": "Mexican hot chocolate", + "copy-from": "hot_chocolate", "description": "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.", - "weight": 263, - "volume": 1, "price": 335, - "phase": "liquid", - "container": "bottle_plastic", "material": [ "milk", "junk" ], - "symbol": "~", - "color": "brown", - "comestible_type": "DRINK", - "calories": 78, - "quench": 35, - "fun": 10, - "spoils_in": "1 day", - "flags": [ "EATEN_HOT" ] + "fun": 10 }, { "type": "COMESTIBLE", @@ -552,7 +528,7 @@ "symbol": "~", "quench": 25, "healthy": 1, - "calories": 69, + "calories": 132, "description": "Baby cow food, appropriated for adult humans. Spoils rapidly.", "price": 38, "//": "A 12-charge gallon currently goes for around US$4.", @@ -560,6 +536,7 @@ "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitA", 2 ], [ "vitC", 1 ], [ "calcium", 6 ] ], "fun": 1 }, { @@ -578,12 +555,13 @@ "quench": 40, "addiction_potential": 2, "calories": 69, - "description": "Coffee milk is pretty much the official morning drink among many countries.", + "description": "Coffee syrup mixed into milk. It's been the state drink of Rhode Island since 1993.", "price": 480, "material": [ "milk", "water" ], "volume": 2, "phase": "liquid", "charges": 2, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 3 ] ], "fun": 10 }, { @@ -601,12 +579,13 @@ "quench": 40, "healthy": 1, "calories": 69, - "description": "Usually consumed in the mornings, milk tea is common among many countries.", + "description": "Hot tea with cold milk.", "price": 450, "material": [ "milk", "water" ], "volume": 2, "phase": "liquid", "charges": 2, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 3 ] ], "fun": 10 }, { @@ -621,20 +600,22 @@ "symbol": "~", "quench": 35, "healthy": 2, - "calories": 35, + "calories": 123, "description": "Freshly-squeezed from real oranges! Tasty and nutritious.", "price": 90, "material": "fruit", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "//": "most store-bought oj is fortified with calcium.", + "vitamins": [ [ "vitC", 35 ], [ "calcium", 7 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "orangesoda", "name": "orange soda", - "weight": 260, + "weight": 248, "color": "yellow", "stim": 2, "container": "can_drink", @@ -642,7 +623,7 @@ "symbol": "~", "quench": 18, "healthy": -1, - "calories": 26, + "calories": 119, "description": "Unlike cola this is caffeine free, however it is still carbonated, sweet, and tastes vaguely orange-like.", "price": 95, "material": "junk", @@ -667,7 +648,7 @@ "volume": 1, "material": [ "water" ], "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 1, "vitamins": [ [ "vitC", 10 ] ] }, @@ -683,13 +664,14 @@ "symbol": "~", "quench": 18, "healthy": -1, - "calories": 35, + "calories": 63, "description": "A mass-produced grape flavored beverage of artificial origin. Good for when you want something that tastes like fruit, but still don't care about your health.", "price": 85, "material": "junk", "volume": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], + "vitamins": [ [ "vitC", 8 ] ], "fun": 3 }, { @@ -705,7 +687,7 @@ "symbol": "~", "quench": 18, "healthy": -1, - "calories": 26, + "calories": 106, "description": "Like cola, but without caffeine. Still not that healthy.", "price": 95, "material": "junk", @@ -718,7 +700,7 @@ "type": "COMESTIBLE", "id": "spezi", "name": "spezi", - "weight": 260, + "weight": 250, "color": "brown", "addiction_type": "caffeine", "stim": 4, @@ -728,7 +710,7 @@ "quench": 18, "healthy": -1, "addiction_potential": 2, - "calories": 26, + "calories": 100, "description": "Originating in Germany almost a century ago, this mix of cola and orange soda tastes great.", "price": 100, "material": "junk", @@ -741,13 +723,13 @@ "type": "COMESTIBLE", "id": "sports_drink", "name": "sports drink", - "weight": 260, + "weight": 257, "color": "light_red", "container": "bottle_plastic", "comestible_type": "DRINK", "symbol": "~", "quench": 60, - "calories": 17, + "calories": 66, "description": "Consisting of a special blend of electrolytes and simple sugars, this beverage tastes like bottled sweat but rehydrates the body faster than water.", "price": 55, "volume": 1, @@ -787,13 +769,13 @@ "comestible_type": "DRINK", "symbol": "~", "quench": 40, - "calories": 26, - "description": "Tea, the beverage of gentlemen everywhere.", + "calories": 2, + "description": "The beverage of gentlemen everywhere, made from applying hot water to leaves of the tea plant /Camellia sinensis/.", "price": 90, "volume": 1, "material": [ "water" ], "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 6 }, { @@ -812,14 +794,14 @@ "volume": 2, "material": [ "water" ], "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": -5 }, { "type": "COMESTIBLE", "id": "V8", "name": "V8", - "weight": 175, + "weight": 250, "color": "red", "spoils_in": "10 days", "container": "can_drink", @@ -827,7 +809,7 @@ "symbol": "~", "quench": 6, "healthy": 2, - "calories": 590, + "calories": 51, "description": "Contains up to eight vegetables! Nutritious and tasty.", "price": 40, "material": "veggy", diff --git a/data/json/items/comestibles/drink_other.json b/data/json/items/comestibles/drink_other.json index bea8e7426b6f8..cf336043d7f49 100644 --- a/data/json/items/comestibles/drink_other.json +++ b/data/json/items/comestibles/drink_other.json @@ -3,19 +3,20 @@ "type": "COMESTIBLE", "id": "sauce_red", "name": "red sauce", - "weight": 259, + "weight": 32, "color": "red", "spoils_in": "3 days", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, - "description": "Tomato sauce, yum yum.", - "price": 320, + "calories": 21, + "description": "A minimally seasoned sauce of cooked tomatoes.", + "price": 4, "//": "Small cans--needs upsized after the string freeze.", "material": "tomato", "volume": 1, + "charges": 8, "phase": "liquid", "flags": [ "EATEN_HOT" ], "fun": 1, @@ -28,6 +29,7 @@ "color": "light_cyan", "name": "maple sap", "name_plural": "maple sap", + "copy-from": "syrup", "description": "A water and sugar solution that has been extracted from a maple tree.", "price": 50, "weight": 250, @@ -35,10 +37,12 @@ "comestible_type": "DRINK", "container": "bucket", "quench": 45, - "calories": 9, + "//": "need 40 parts maple sap to make 1 part maple syrup", + "proportional": { "calories": 0.025 }, "fun": 1, "flags": [ "EATEN_COLD" ], "phase": "liquid", + "vitamins": [ ], "freezing_point": 30 }, { @@ -48,16 +52,16 @@ "color": "white", "name": "mayonnaise", "name_plural": "mayonnaise", - "description": "Good old mayo, tastes great on sandwiches.", - "price": 600, + "description": "A gloppy mix of egg, oil, and salt that is traditionally used to moisten sandwiches.", + "price": 187, "material": [ "junk", "egg" ], - "weight": 84, + "weight": 15, "volume": 1, "comestible_type": "DRINK", "container": "bottle_plastic", - "calories": 26, + "calories": 106, "spoils_in": "6 days 16 hours", - "charges": 5, + "charges": 16, "fun": -1, "flags": [ "FREEZERBURN" ], "phase": "liquid", @@ -69,16 +73,16 @@ "symbol": "~", "color": "red", "name": "ketchup", - "description": "Good old ketchup, tastes great on hot dogs.", - "price": 6000, + "description": "A viscous paste of tomato, salt, and vinegar.", + "price": 1875, "material": [ "veggy", "junk" ], - "weight": 51, + "weight": 18, "volume": 1, "comestible_type": "DRINK", "container": "bottle_plastic", - "calories": 26, + "calories": 21, "spoils_in": 600, - "charges": 5, + "charges": 16, "fun": -1, "phase": "liquid" }, @@ -89,16 +93,16 @@ "color": "yellow", "name": "mustard", "name_plural": "mustard", - "description": "Good old mustard, tastes great on hamburgers.", - "price": 500, + "description": "A condiment made from the seeds of a mustard plant (/Brassica/ or /Sinapis/), vinegar, salt, and spices.", + "price": 50, "material": "junk", - "weight": 53, + "weight": 5, "volume": 1, "comestible_type": "DRINK", "container": "bottle_plastic", "fun": -1, - "calories": 26, - "charges": 5, + "calories": 5, + "charges": 48, "phase": "liquid" }, { @@ -109,15 +113,15 @@ "name": "forest honey", "name_plural": "forest honey", "description": "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.", - "price": 800, + "price": 250, "material": "honey", - "weight": 63, + "weight": 22, "volume": 1, "comestible_type": "DRINK", "container": "bottle_plastic", "quench": 2, - "calories": 61, - "charges": 5, + "calories": 67, + "charges": 16, "healthy": 1, "fun": 3, "phase": "liquid" @@ -130,54 +134,43 @@ "spoils_in": "180 days", "name": "peanut butter", "description": "A brown goo that tastes very little like its namesake. It's not bad, but it'll stick to the roof of your mouth.", - "price": 310, - "//": "Two charges per jar.", + "price": 195, + "//": "Two tablespoons per charge.", "weight": 50, "volume": 1, "comestible_type": "DRINK", "container": "jar_glass_sealed", "quench": -2, - "calories": 43, - "charges": 5, + "calories": 190, + "charges": 8, "phase": "liquid", "flags": [ "USE_EAT_VERB" ], + "vitamins": [ [ "iron", 1 ] ], "fun": 2 }, { "id": "peanutbutter_imitation", "type": "COMESTIBLE", - "symbol": "~", - "color": "brown", - "spoils_in": "180 days", "name": "imitation peanutbutter", "description": "A thick, nutty brown paste.", - "price": 250, - "weight": 50, - "volume": 1, - "comestible_type": "DRINK", - "container": "jar_glass", - "quench": -2, - "calories": 43, - "charges": 5, - "phase": "liquid", - "flags": [ "USE_EAT_VERB" ] + "copy-from": "peanutbutter", + "container": "jar_glass" }, { "type": "COMESTIBLE", "id": "vinegar", "name": "vinegar", "name_plural": "vinegar", - "weight": 127, + "weight": 15, "color": "white", "container": "jug_plastic", "comestible_type": "DRINK", "symbol": "~", - "quench": 4, - "description": "Shockingly tart white vinegar.", + "description": "Shockingly tart white vinegar. This is what you get when you let your booze ferment too long.", "price": 500, "volume": 1, "phase": "liquid", - "charges": 2, + "charges": 16, "fun": -4, "freezing_point": 28 }, @@ -186,20 +179,21 @@ "id": "cooking_oil", "name": "cooking oil", "name_plural": "cooking oil", - "weight": 117, + "weight": 15, "color": "yellow", "container": "jug_plastic", "comestible_type": "DRINK", "symbol": "~", "quench": -1, - "calories": 9, + "calories": 127, "description": "Thin yellow vegetable oil used for cooking.", "price": 40, "material": "oil", "volume": 1, - "charges": 2, + "charges": 16, "phase": "liquid", - "fun": -4, + "fun": -25, + "flags": "NUTRIENT_OVERRIDE", "freezing_point": 14 }, { @@ -207,7 +201,7 @@ "id": "molasses", "name": "molasses", "name_plural": "molasses", - "weight": 54, + "weight": 89, "color": "brown", "stim": 3, "container": "jar_glass", @@ -215,8 +209,8 @@ "symbol": "~", "quench": -2, "healthy": 1, - "calories": 52, - "description": "An extremely sugary tar-like syrup, with a slightly bitter aftertaste.", + "calories": 258, + "description": "An extremely sugary tar-like syrup, produced by repeatedly boiling the juice of sugarcane or sugar beets. It has a slightly bitter aftertaste.", "price": 200, "material": "junk", "volume": 1, @@ -224,6 +218,7 @@ "charges": 4, "fun": 2, "flags": [ "USE_EAT_VERB" ], + "vitamins": [ [ "calcium", 4 ], [ "iron", 6 ] ], "freezing_point": -20 }, { @@ -234,15 +229,15 @@ "name": "horseradish", "name_plural": "horseradish", "description": "A spicy grated root vegetable packed in vinegared brine.", - "price": 150, + "price": 75, "material": "veggy", - "weight": 18, + "weight": 6, "volume": 1, "comestible_type": "FOOD", "container": "jar_glass", "quench": -10, - "calories": 17, - "charges": 25, + "calories": 30, + "charges": 48, "healthy": 1, "fun": -20, "stim": 1, @@ -253,7 +248,7 @@ "id": "coffee_syrup", "name": "coffee syrup", "name_plural": "coffee syrup", - "weight": 48, + "weight": 32, "color": "brown", "addiction_type": "caffeine", "use_action": "CAFF", @@ -264,13 +259,12 @@ "quench": 1, "healthy": -1, "addiction_potential": 1, - "calories": 26, "description": "A thick syrup made of water and sugar strained through coffee grounds. Can be used to flavor many foods and beverages.", - "price": 1300, + "price": 800, "material": "junk", "volume": 1, "phase": "liquid", - "charges": 5, + "charges": 8, "fun": 6 } ] diff --git a/data/json/items/comestibles/egg.json b/data/json/items/comestibles/egg.json index fcbda40cca56a..dd85a264436f6 100644 --- a/data/json/items/comestibles/egg.json +++ b/data/json/items/comestibles/egg.json @@ -3,22 +3,23 @@ "type": "COMESTIBLE", "id": "egg_bird", "name": "bird egg", - "weight": 75, + "weight": 50, "color": "brown", "spoils_in": "7 days", "comestible_type": "FOOD", "symbol": "o", "quench": 4, "healthy": 1, - "calories": 113, + "calories": 180, "description": "Nutritious egg laid by a bird.", "price": 250, "material": "egg", - "volume": 1, + "volume": "62 ml", "stack_size": 4, "fun": -8, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_EGG_BIRD_WILD", + "vitamins": [ [ "vitA", 2 ], [ "iron", 1 ], [ "vitB", 5 ] ], "rot_spawn_chance": 50 }, { @@ -48,6 +49,10 @@ "id": "egg_duck", "name": "duck egg", "copy-from": "egg_chicken", + "calories": 130, + "volume": "83 ml", + "weight": 70, + "vitamins": [ [ "vitA", 3 ], [ "calcium", 1 ], [ "iron", 3 ], [ "vitB", 38 ] ], "rot_spawn": "GROUP_EGG_DUCK" }, { @@ -55,6 +60,10 @@ "id": "egg_goose_canadian", "name": "goose egg", "copy-from": "egg_chicken", + "calories": 266, + "volume": "125 ml", + "weight": 144, + "vitamins": [ [ "vitA", 6 ], [ "calcium", 2 ], [ "iron", 7 ], [ "vitB", 73 ] ], "rot_spawn": "GROUP_EGG_GOOSE_CANADIAN" }, { @@ -62,6 +71,10 @@ "id": "egg_turkey", "name": "turkey egg", "copy-from": "egg_chicken", + "volume": "83 ml", + "weight": 79, + "calories": 135, + "vitamins": [ [ "vitA", 3 ], [ "calcium", 2 ], [ "iron", 4 ], [ "vitB", 13 ] ], "rot_spawn": "GROUP_EGG_TURKEY" }, { @@ -103,18 +116,17 @@ "type": "COMESTIBLE", "id": "ant_egg", "name": "ant egg", - "weight": 220, + "copy-from": "egg_chicken", "color": "white", - "comestible_type": "FOOD", "symbol": "%", - "spoils_in": "7 days", "quench": 10, - "calories": 1736, "description": "A large white ant egg, the size of a softball. Extremely nutritious, but incredibly gross.", "price": 80, "material": "egg", "volume": 1, "fun": -10, + "proportional": { "weight": 4.4, "calories": 4.4 }, + "relative": { "vitamins": [ [ "vitA", 6 ], [ "iron", 3 ], [ "vitB", 15 ] ] }, "rot_spawn": "GROUP_EGG_ANT", "rot_spawn_chance": 60 }, @@ -122,37 +134,32 @@ "type": "COMESTIBLE", "id": "spider_egg", "name": "spider egg", - "weight": 220, + "copy-from": "egg_chicken", "color": "white", - "comestible_type": "FOOD", "symbol": "%", "quench": 10, - "calories": 174, "description": "A fist-sized egg from a giant spider. Incredibly gross.", "price": 80, "material": "egg", "volume": 1, + "proportional": { "weight": 4.4, "calories": 4.4 }, + "relative": { "vitamins": [ [ "vitA", 6 ], [ "iron", 3 ], [ "vitB", 15 ] ] }, "fun": -20 }, { "type": "COMESTIBLE", "id": "egg_roach", "name": "roach egg", - "weight": 60, + "copy-from": "spider_egg", "color": "white", - "comestible_type": "FOOD", "symbol": "%", "spoils_in": "4 days 16 hours", "healthy": -1, "quench": 3, - "calories": 69, "description": "A fist-sized egg from a giant roach. Incredibly gross.", "price": 80, "material": "egg", - "volume": 1, - "fun": -20, - "rot_spawn": "GROUP_EGG_ROACH", - "rot_spawn_chance": 70 + "rot_spawn": "GROUP_EGG_ROACH" }, { "type": "COMESTIBLE", @@ -185,37 +192,39 @@ "type": "COMESTIBLE", "id": "razorclaw_roe", "name": "razorclaw roe", - "weight": 220, + "weight": 236, "color": "red", "spoils_in": "1 day", "comestible_type": "FOOD", "symbol": "o", "quench": 10, - "calories": 347, + "calories": 338, "description": "A clump of razorclaw eggs. A post-cataclysm delicacy.", "price": 3000, "material": "flesh", "volume": 1, + "vitamins": [ [ "vitA", 6 ], [ "vitC", 10 ], [ "calcium", 1 ], [ "iron", 2 ], [ "vitB", 236 ] ], "fun": 5 }, { "type": "COMESTIBLE", "id": "egg_fish", "name": "roe", - "weight": 75, + "weight": 24, "color": "red", "spoils_in": "1 day", "comestible_type": "FOOD", "symbol": "o", "quench": 4, "healthy": 1, - "calories": 87, + "calories": 34, "description": "Common roe from an unknown fish.", "price": 50, "material": "egg", - "volume": 1, + "volume": "25 ml", "stack_size": 4, "fun": 1, + "vitamins": [ [ "vitC", 1 ], [ "vitB", 24 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 20 }, @@ -224,19 +233,20 @@ "id": "powder_eggs", "name": "powdered egg", "name_plural": "powdered eggs", - "weight": 2, + "weight": 7, "color": "yellow", "container": "bottle_plastic_small", "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 17, + "calories": 27, "description": "Whole fresh eggs, dehydrated into an easy to store powder.", "price": 1120, "material": [ "powder", "egg" ], "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 100, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "//": "according to USDA website info on powdered egg, you lose most of the vitamins by powderizing them", + "charges": 16, "fun": -4 }, { @@ -244,17 +254,14 @@ "id": "scrambled_eggs", "name": "scrambled eggs", "name_plural": "scrambled eggs", - "weight": 246, + "copy-from": "egg_chicken", "color": "yellow", "spoils_in": "2 days", - "comestible_type": "FOOD", "symbol": "%", - "healthy": 1, - "calories": 330, "description": "Fluffy and delicious scrambled eggs.", "price": 400, "material": "egg", - "volume": 1, + "volume": "125 ml", "charges": 2, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 3, @@ -265,18 +272,13 @@ "id": "boiled_egg", "name": "boiled egg", "name_plural": "boiled eggs", - "weight": 80, + "copy-from": "egg_chicken", "color": "white", - "spoils_in": "7 days", - "comestible_type": "FOOD", "symbol": "o", "quench": -1, - "healthy": 1, - "calories": 330, "description": "A hard boiled egg, still in its shell. Portable and nutritious!", "price": 95, "material": "egg", - "volume": 1, "fun": 2, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_CARRION" @@ -285,17 +287,14 @@ "type": "COMESTIBLE", "id": "pickled_egg", "name": "pickled egg", - "weight": 80, + "copy-from": "egg_chicken", "color": "white", "spoils_in": "30 days", - "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 330, "description": "A pickled egg. Rather salty, but tastes good and lasts for a long time.", "price": 95, "material": "egg", - "volume": 1, "fun": 2, "rot_spawn": "GROUP_CARRION" } diff --git a/data/json/items/comestibles/frozen.json b/data/json/items/comestibles/frozen.json index 2c6fecc91746d..3e8f8070554cb 100644 --- a/data/json/items/comestibles/frozen.json +++ b/data/json/items/comestibles/frozen.json @@ -6,14 +6,14 @@ "name_plural": "milkshakes", "//": "they bring the boys to the yard", "description": "An all-natural cold beverage made with milk and sweeteners. Tastes great when frozen.", - "weight": 270, + "weight": 160, "volume": 1, "container": "styrofoam_cup", "comestible_type": "DRINK", "symbol": "~", "color": "white", "spoils_in": "1 day", - "calories": 174, + "calories": 150, "quench": 30, "fun": 20, "health": -1, @@ -21,6 +21,7 @@ "material": "milk", "phase": "liquid", "charges": 2, + "vitamins": [ [ "calcium", 3 ] ], "flags": [ "MELTS" ] }, { @@ -30,7 +31,7 @@ "name": "fast food milkshake", "name_plural": "fast food milkshakes", "description": "A milkshake made by freezing a premade mix. Tastes better due to how much sugar is in it, but is bad for your health.", - "calories": 156, + "calories": 175, "fun": 23, "health": -3, "price": 275 @@ -42,7 +43,7 @@ "name": "deluxe milkshake", "name_plural": "deluxe milkshakes", "description": "This milkshake has been enhanced with added sweeteners, and even has a cherry on top. Tastes great, but is fairly awful for your health.", - "calories": 217, + "calories": 225, "quench": 40, "fun": 25, "health": -6, @@ -55,21 +56,22 @@ "name": "ice cream", "name_plural": "ice cream scoops", "description": "A sweet, frozen food made of milk with liberal amounts of sugar.", - "weight": 270, - "volume": 4, + "weight": 70, + "volume": 1, "container": "plastic_bucket", "comestible_type": "FOOD", "symbol": "~", "color": "white", "spoils_in": "1 day", - "calories": 130, + "calories": 145, "fun": 15, "healthy": -1, "price": 250, "material": "milk", "phase": "liquid", "//": "not technically a drink, but is quasi-liquid enough that it'd get all over everything if you carried it", - "charges": 4, + "charges": 2, + "vitamins": [ [ "vitA", 2 ], [ "calcium", 2 ], [ "vitB", 3 ] ], "flags": [ "MELTS" ] }, { @@ -93,7 +95,8 @@ "fun": 20, "healthy": -3, "price": 300, - "charges": 1, + "calories": 150, + "vitamins": [ [ "vitA", 2 ], [ "calcium", 2 ], [ "iron", 1 ], [ "vitB", 2 ] ], "material": [ "milk", "junk" ] }, { @@ -104,10 +107,10 @@ "name_plural": "fruity ice cream scoops", "description": "Small bits of sweet fruit have been tossed into this ice cream, making it slightly less terrible for you.", "healthy": 0, - "calories": 156, + "calories": 134, "fun": 17, "price": 300, - "charges": 1, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 1 ], [ "calcium", 2 ], [ "vitB", 2 ] ], "material": [ "milk", "fruit" ] }, { @@ -120,6 +123,7 @@ "spoils_in": "2 days", "calories": 148, "price": 300, + "vitamins": [ [ "calcium", 2 ], [ "vitB", 2 ] ], "material": [ "milk", "egg" ] }, { @@ -129,8 +133,10 @@ "name": "frozen yogurt", "name_plural": "frozen yogurt", "description": "Tarter than ice cream, this is made with yogurt and other dairy products, and is generally low-fat compared to ice cream itself.", - "calories": 122, + "calories": 127, "price": 275, + "weight": 80, + "vitamins": [ [ "vitC", 1 ], [ "calcium", 2 ] ], "material": [ "milk" ] }, { @@ -141,11 +147,12 @@ "name_plural": "sorbet scoops", "description": "A simple frozen dessert food made from water and fruit juice.", "spoils_in": 336, - "calories": 104, + "calories": 116, "quench": 8, "fun": 10, "price": 175, - "charges": 1, + "weight": 106, + "vitamins": [ ], "material": [ "water", "fruit" ] }, { @@ -155,9 +162,10 @@ "name": "gelato", "name_plural": "gelato scoops", "description": "Italian-style ice cream. Less airy, and more dense, giving it a richer flavor and texture.", - "calories": 174, + "calories": 148, "price": 300, - "charges": 2, + "weight": 90, + "vitamins": [ ], "material": [ "milk" ] } ] diff --git a/data/json/items/comestibles/fruit_dishes.json b/data/json/items/comestibles/fruit_dishes.json index e341034371a7c..e3b6fee37949c 100644 --- a/data/json/items/comestibles/fruit_dishes.json +++ b/data/json/items/comestibles/fruit_dishes.json @@ -4,18 +4,16 @@ "id": "strawberries_cooked", "name": "cooked strawberry", "name_plural": "cooked strawberries", - "weight": 200, + "copy-from": "strawberries", "color": "red", "spoils_in": "3 days 18 hours", "container": "jar_3l_glass", "comestible_type": "DRINK", "symbol": "~", - "calories": 156, "description": "It's like strawberry jam, only without sugar.", "price": 50, "//": "Cheap for three liters of spread!", "material": "fruit", - "volume": 1, "phase": "liquid", "fun": 2, "flags": [ "USE_EAT_VERB", "EATEN_COLD" ] @@ -24,19 +22,20 @@ "type": "COMESTIBLE", "id": "fruit_leather", "name": "fruit leather", - "weight": 120, + "weight": 34, "color": "pink", "spoils_in": "360 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 156, + "calories": 122, "description": "Dried strips of sugary fruit paste.", "price": 160, "material": "fruit", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 3, + "charges": 5, + "vitamins": [ [ "vitC", 5 ] ], "fun": 3 }, { @@ -44,17 +43,15 @@ "id": "blueberries_cooked", "name": "cooked blueberry", "name_plural": "cooked blueberries", - "weight": 200, + "copy-from": "blueberries", "color": "blue", "spoils_in": "3 days 18 hours", "container": "jar_3l_glass", "comestible_type": "DRINK", "symbol": "~", - "calories": 156, "description": "It's like blueberry jam, only without sugar.", "price": 50, "material": "fruit", - "volume": 1, "phase": "liquid", "fun": 3, "flags": [ "USE_EAT_VERB", "EATEN_COLD" ] @@ -64,27 +61,27 @@ "id": "can_peach", "name": "peaches in syrup", "name_plural": "peaches in syrup", - "weight": 80, + "weight": 277, "color": "yellow", "spoils_in": "1 day 6 hours", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": 6, - "calories": 104, + "calories": 205, "description": "Yellow cling peach slices packed in light syrup.", "price": 140, "material": "fruit", "volume": 1, - "charges": 2, "fun": 5, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 2 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "can_pineapple", "name": "canned pineapple", - "weight": 474, + "weight": 268, "color": "yellow", "spoils_in": "1 day", "container": "can_food", @@ -92,12 +89,13 @@ "symbol": "%", "quench": 5, "healthy": 1, - "calories": 226, + "calories": 209, "description": "Canned pineapple rings in water. Quite tasty.", "price": 400, "material": "fruit", "volume": 1, "fun": 7, + "vitamins": [ [ "vitC", 5 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -105,57 +103,60 @@ "id": "lemonade_powder", "name": "lemonade drink mix", "name_plural": "servings of lemonade drink mix", - "weight": 6, + "weight": 19, "color": "yellow", "container": "bottle_plastic_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 9, + "calories": 74, "description": "Tangy yellow powder that smells strongly of lemons. Can be mixed with water to make lemonade.", "price": 10, "material": [ "powder", "fruit" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 15, + "charges": 10, + "vitamins": [ [ "vitC", 1 ] ], "fun": 1 }, { "type": "COMESTIBLE", "id": "fruit_cooked", "name": "cooked fruit", - "weight": 200, + "weight": 150, "color": "red", "spoils_in": "3 days 18 hours", "container": "jar_3l_glass", "comestible_type": "DRINK", "symbol": "~", - "calories": 156, + "calories": 100, "description": "It's like fruit jam, only without sugar.", "price": 50, "material": "fruit", "volume": 1, "phase": "liquid", "fun": 2, + "//": "this item is intended to generally be inherited from the fruit that was cooked.", + "vitamins": [ [ "vitC", 5 ] ], "flags": [ "USE_EAT_VERB", "EATEN_COLD" ] }, { "type": "COMESTIBLE", "id": "jam_fruit", "name": "fruit jam", - "weight": 250, + "weight": 15, "color": "red", "spoils_in": "10 days", "container": "jar_3l_glass_sealed", "comestible_type": "DRINK", "symbol": "~", - "calories": 87, + "calories": 40, "description": "Fresh fruit, cooked with sugar to make them last longer.", "price": 80, "material": "fruit", "volume": 1, "phase": "liquid", - "charges": 2, + "charges": 16, "fun": 10, "flags": [ "USE_EAT_VERB" ] }, @@ -164,20 +165,20 @@ "id": "dry_fruit", "name": "dehydrated fruit", "name_plural": "dehydrated fruit", - "weight": 38, + "weight": 75, "color": "magenta", "spoils_in": "360 days", "comestible_type": "FOOD", "symbol": "%", "quench": -2, "healthy": 1, - "calories": 139, + "calories": 100, "description": "Dehydrated fruit flakes. With proper storage, this dried food will remain edible for an incredibly long time. They are useful for several cooking recipes.", "price": 900, "material": "fruit", - "volume": 1, + "//": "most of the water weight and volume is lost", + "volume": "100 ml", "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, "fun": 2 }, { @@ -185,19 +186,18 @@ "id": "rehydrated_fruit", "name": "rehydrated fruit", "name_plural": "rehydrated fruit", - "weight": 138, + "weight": 150, "color": "pink", "spoils_in": "18 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 1, "healthy": 1, - "calories": 156, + "calories": 100, "description": "Reconstituted fruit flakes, which are much more enjoyable to eat now that they have been rehydrated.", "price": 900, "material": "fruit", "volume": 1, - "charges": 2, "fun": 4, "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -205,7 +205,7 @@ "type": "COMESTIBLE", "id": "apple_sugar", "name": "fruit slice", - "weight": 53, + "weight": 42, "color": "red", "spoils_in": "7 days 12 hours", "container": "plastic_bag_vac", @@ -213,13 +213,14 @@ "symbol": "%", "quench": 3, "healthy": 1, - "calories": 139, + "calories": 149, "description": "Fruit slices soaked in a sugar syrup, to preserve freshness and appearance.", "price": 450, "material": "fruit", "volume": 1, "charges": 4, "fun": 3, + "vitamins": [ [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -227,7 +228,7 @@ "id": "apple_canned", "name": "canned fruit", "name_plural": "canned fruit", - "weight": 450, + "weight": 170, "color": "red", "spoils_in": "7 days 12 hours", "container": "can_food", @@ -235,13 +236,14 @@ "symbol": "%", "quench": 3, "healthy": 1, - "calories": 174, + "calories": 595, "description": "This sodden mass of preserved fruit was boiled and canned in an earlier life. Bland, mushy and losing color.", "price": 220, "material": "fruit", "volume": 1, "stack_size": 2, "fun": 1, + "vitamins": [ [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" } ] diff --git a/data/json/items/comestibles/junkfood.json b/data/json/items/comestibles/junkfood.json index 05e2454bb428e..f9877ed1dca24 100644 --- a/data/json/items/comestibles/junkfood.json +++ b/data/json/items/comestibles/junkfood.json @@ -3,60 +3,37 @@ "type": "COMESTIBLE", "id": "toastem", "name": "toast-em", - "weight": 28, + "weight": 50, "color": "red", "spoils_in": "90 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -8, - "calories": 87, + "calories": 200, "description": "Dry toaster pastries usually coated with solid frosting and what luck! These are strawberry flavored!", "price": 400, "material": [ "wheat", "junk" ], - "volume": 1, + "volume": 5, "charges": 8, "flags": [ "EATEN_HOT" ], + "vitamins": [ [ "iron", 2 ] ], "fun": 25 }, { "type": "COMESTIBLE", "id": "toastem2", "name": "toast-em", - "weight": 28, - "color": "red", - "spoils_in": "90 days", - "container": "box_small", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -8, - "calories": 87, + "copy-from": "toastem", "description": "Dry toaster pastries, usually coated with solid frosting, these are blueberry flavored!", - "price": 400, - "material": [ "wheat", "junk" ], - "volume": 1, - "charges": 8, - "flags": [ "EATEN_HOT" ], "fun": 18 }, { "type": "COMESTIBLE", "id": "toastem3", "name": "toast-em", - "weight": 28, - "color": "red", - "spoils_in": "90 days", - "container": "box_small", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -8, - "calories": 87, + "copy-from": "toastem", "description": "Dry toaster pastries, usually coated with solid frosting. Sadly, these are not.", - "price": 400, - "material": [ "wheat", "junk" ], - "volume": 1, - "charges": 8, - "flags": [ "EATEN_HOT" ], "fun": 10 }, { @@ -64,21 +41,22 @@ "id": "toasterpastryfrozen", "name": "toaster pastry (uncooked)", "name_plural": "toaster pastries (uncooked)", - "weight": 28, + "weight": 52, "color": "red", "spoils_in": "2 days 12 hours", "//": "Semi-arbitrary spoilage of 60 hours, as the cooked product.", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 17, + "calories": 200, "description": "A delicious fruit-filled pastry that you can cook in your toaster. It even comes with frosting! Cook it to make it tasty.", "price": 400, "material": [ "wheat", "junk" ], "volume": 1, - "charges": 4, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": -10, + "vitamins": [ [ "vitA", 4 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -86,20 +64,9 @@ "id": "toasterpastry", "name": "toaster pastry", "name_plural": "toaster pastries", - "weight": 28, - "color": "red", - "spoils_in": "2 days 12 hours", - "container": "box_small", - "comestible_type": "FOOD", - "symbol": "%", + "copy-from": "toasterpastryfrozen", "quench": 4, - "calories": 130, "description": "A delicious fruit-filled pastry that you've cooked. It even comes with frosting!", - "price": 400, - "material": [ "wheat", "junk" ], - "volume": 1, - "charges": 2, - "flags": [ "EATEN_HOT" ], "fun": 30, "rot_spawn": "GROUP_CARRION" }, @@ -108,20 +75,8 @@ "id": "chips2", "name": "potato chips", "name_plural": "potato chips", - "weight": 85, - "color": "yellow", - "spoils_in": "30 days", - "container": "bag_plastic", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -2, - "calories": 69, + "copy-from": "chips", "description": "Some plain, salted potato chips.", - "price": 135, - "material": "junk", - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 3, "fun": 3 }, { @@ -129,21 +84,9 @@ "id": "chips3", "name": "potato chips", "name_plural": "potato chips", - "weight": 85, - "color": "yellow", - "spoils_in": "30 days", - "container": "bag_plastic", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -2, - "calories": 69, + "copy-from": "chips", "description": "Oh man, you love these chips! Score!", - "price": 180, "//": "Favorite flavor varies.", - "material": "junk", - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 3, "fun": 12 }, { @@ -169,7 +112,7 @@ "id": "popcorn", "name": "popcorn", "name_plural": "popcorn", - "weight": 85, + "weight": 12, "color": "white", "spoils_in": "360 days", "container": "bag_plastic", @@ -177,12 +120,11 @@ "symbol": "%", "quench": -1, "healthy": 1, - "calories": 87, + "calories": 58, "description": "Plain and unseasoned popcorn. Not as tasty as other kinds, but healthier as a result.", "price": 115, "material": "veggy", "volume": 1, - "charges": 3, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 4 }, @@ -191,21 +133,11 @@ "id": "popcorn2", "name": "salted popcorn", "name_plural": "salted popcorn", - "weight": 85, - "color": "white", - "spoils_in": "360 days", - "container": "bag_plastic", - "comestible_type": "FOOD", - "symbol": "%", + "copy-from": "popcorn", "quench": -3, "healthy": -1, - "calories": 87, "description": "Popcorn with salt added for extra flavor.", - "price": 115, "material": "junk", - "volume": 1, - "charges": 3, - "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 8 }, { @@ -213,21 +145,10 @@ "id": "popcorn3", "name": "buttered popcorn", "name_plural": "buttered popcorn", - "weight": 85, - "color": "white", - "spoils_in": "180 days", - "container": "bag_plastic", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -1, + "copy-from": "popcorn", "healthy": -1, - "calories": 87, "description": "Popcorn with a light covering of butter for extra flavor.", - "price": 115, "material": "junk", - "volume": 1, - "charges": 3, - "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 10 }, { @@ -235,38 +156,39 @@ "id": "pretzels", "name": "pretzels", "name_plural": "pretzels", - "weight": 185, + "weight": 62, "color": "brown", "spoils_in": "90 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -4, - "calories": 78, + "calories": 237, "description": "A salty treat of a snack.", "price": 185, "material": [ "wheat", "junk" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, + "vitamins": [ [ "iron", 4 ] ], "fun": 4 }, { "type": "COMESTIBLE", "id": "chocpretzels", "name": "chocolate-covered pretzel", - "weight": 185, + "weight": 96, "color": "brown", "spoils_in": "90 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 78, + "calories": 377, "description": "A salty treat of a snack, covered in chocolate.", "price": 200, "material": [ "wheat", "junk" ], - "volume": 1, + "volume": 2, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, "fun": 6 @@ -275,18 +197,19 @@ "type": "COMESTIBLE", "id": "chocolate", "name": "chocolate bar", - "weight": 16, + "weight": 34, "color": "brown", "spoils_in": "360 days", "stim": 1, "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 69, + "calories": 140, "description": "Chocolate isn't very healthy, but it does make a delicious treat.", "price": 130, "material": "junk", "volume": 1, + "charges": 3, "flags": [ "EDIBLE_FROZEN" ], "fun": 10 }, @@ -295,19 +218,18 @@ "id": "marshmallow", "name": "marshmallows", "name_plural": "marshmallows", - "weight": 4, + "weight": 53, "color": "white", "spoils_in": "90 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 17, + "calories": 168, "description": "A handful of squishy, fluffy, puffy, delicious marshmallows.", "price": 250, "material": "junk", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 8, "fun": 10 }, { @@ -315,19 +237,20 @@ "id": "smores", "name": "s'mores", "name_plural": "s'mores", - "weight": 76, + "weight": 180, "color": "brown", "spoils_in": "90 days", "stim": 8, "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", - "calories": 208, + "calories": 655, "description": "A pair of graham crackers with some chocolate and a marshmallow between them.", "price": 400, "material": [ "wheat", "junk" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "iron", 1 ], [ "calcium", 1 ] ], "fun": 30 }, { @@ -335,7 +258,7 @@ "id": "candy", "name": "peanut butter candy", "name_plural": "peanut butter candies", - "weight": 46, + "weight": 39, "color": "brown", "spoils_in": "360 days", "stim": 1, @@ -344,11 +267,11 @@ "symbol": "%", "quench": -1, "healthy": -1, - "calories": 17, + "calories": 209, "description": "A handful of peanut butter cups... your favorite!", "price": 180, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, "fun": 4 @@ -358,7 +281,7 @@ "id": "candy2", "name": "chocolate candy", "name_plural": "chocolate candies", - "weight": 46, + "weight": 57, "color": "red", "spoils_in": "360 days", "stim": 2, @@ -366,13 +289,14 @@ "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 17, + "calories": 287, "description": "A handful of colorful chocolate filled candies.", "price": 180, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, + "vitamins": [ [ "iron", 2 ] ], "fun": 3 }, { @@ -388,11 +312,11 @@ "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 17, + "calories": 85, "description": "A handful of colorful fruit-flavored chewy candy.", "price": 180, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, "fun": 3 @@ -410,11 +334,11 @@ "symbol": "%", "quench": -6, "healthy": -1, - "calories": 43, + "calories": 180, "description": "Thin paper tubes of sweet & sour candy powder. Who thinks of this stuff?", "price": 120, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 5, "fun": 6 @@ -433,11 +357,11 @@ "symbol": "%", "quench": -1, "healthy": -1, - "calories": 9, + "calories": 130, "description": "This golden, translucent leaf candy is made with pure maple syrup and melt slowly as you savor the taste of real maple.", "price": 600, "material": "junk", - "volume": 0, + "volume": "100 ml", "flags": [ "EDIBLE_FROZEN" ], "charges": 2, "fun": 10 @@ -446,7 +370,7 @@ "type": "COMESTIBLE", "id": "grahmcrackers", "name": "graham cracker", - "weight": 56, + "weight": 31, "color": "brown", "spoils_in": "90 days", "stim": 2, @@ -454,27 +378,28 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -4, - "calories": 69, + "calories": 110, "description": "Dry and sugary, these crackers will leave you thirsty, but go good with some chocolate and marshmallows.", "price": 110, "material": [ "wheat", "junk" ], "volume": 3, "flags": [ "EDIBLE_FROZEN" ], "charges": 8, + "vitamins": [ [ "iron", 1 ], [ "calcium", 1 ] ], "fun": 2 }, { "type": "COMESTIBLE", "id": "cookies", "name": "cookie", - "weight": 38, + "weight": 33, "color": "brown", "spoils_in": "60 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 104, + "calories": 160, "description": "Sweet and delicious cookies, just like grandma used to bake.", "price": 195, "material": [ "wheat", "junk" ], @@ -482,6 +407,7 @@ "charges": 4, "flags": [ "EDIBLE_FROZEN" ], "stack_size": 20, + "vitamins": [ [ "iron", 1 ] ], "fun": 7 }, { @@ -489,19 +415,19 @@ "id": "syrup", "name": "maple syrup", "name_plural": "maple syrup", - "weight": 67, + "weight": 21, "color": "brown", "container": "bottle_glass", "comestible_type": "FOOD", "symbol": "%", "quench": 1, - "calories": 26, - "description": "Sweet and delicious, real Vermont maple syrup.", - "price": 1900, + "calories": 54, + "description": "Boiling the sap of a maple tree has concentrated it into sweet, delicious maple syrup.", + "price": 600, "material": "junk", "volume": 1, "phase": "liquid", - "charges": 5, + "charges": 16, "fun": 5, "freezing_point": -70 }, @@ -510,33 +436,36 @@ "id": "beet_syrup", "name": "sugar beet syrup", "name_plural": "sugar beet syrup", - "weight": 28, + "weight": 15, "color": "brown", "container": "bottle_glass", "comestible_type": "FOOD", "symbol": "%", "quench": 3, - "calories": 43, + "calories": 45, "description": "A thick syrup produced from shredded sugar beets. Useful in cooking as a sweetener.", "price": 1500, "material": "junk", "volume": 1, "phase": "liquid", - "charges": 7 + "vitamins": [ [ "iron", 8 ] ], + "charges": 16 }, { "type": "COMESTIBLE", "id": "jihelucake", "name": "cake", - "weight": 420, + "weight": 38, "color": "white", "comestible_type": "FOOD", "symbol": "%", - "calories": 217, + "calories": 110, "description": "Delicious sponge cake with buttercream icing, it says happy birthday on it.", - "price": 1500, + "price": 120, "material": [ "wheat", "junk" ], - "volume": 1, + "volume": 8, + "charges": 12, + "vitamins": [ [ "iron", 1 ] ], "fun": 20 }, { @@ -545,7 +474,6 @@ "name": "cake", "copy-from": "jihelucake", "description": "Delicious chocolate cake. It has all the icing. All of it.", - "price": 1800, "stim": 4 }, { @@ -555,17 +483,14 @@ "copy-from": "jihelucake", "stim": 8, "quench": -5, - "calories": 174, "description": "A cake coated in the thickest icing you've ever seen. Someone has written guff in quotation marks on it...", - "price": 2200, - "volume": 3, "fun": 30 }, { "type": "COMESTIBLE", "id": "choco_coffee_beans", "name": "chocolate-covered coffee bean", - "weight": 56, + "weight": 30, "color": "brown", "spoils_in": "360 days", "addiction_type": "caffeine", @@ -576,11 +501,11 @@ "symbol": "%", "quench": -1, "addiction_potential": 2, - "calories": 9, + "calories": 140, "description": "Roasted coffee beans coated with dark chocolate, natural source of concentrated caffeine.", "price": 300, "material": [ "veggy", "junk" ], - "volume": 0, + "volume": 1, "charges": 5, "stack_size": 30, "fun": 2, @@ -591,20 +516,20 @@ "id": "fries", "name": "fast-food French fries", "name_plural": "fast-food French fries", - "weight": 115, + "weight": 71, "color": "yellow", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, "healthy": -1, - "calories": 69, + "calories": 229, "description": "Fast-food fried potatoes. Somehow, they're still edible.", "price": 120, "material": "junk", "volume": 1, - "charges": 3, "fun": 4, + "vitamins": [ [ "vitC", 1 ] ], "flags": [ "EATEN_HOT" ] }, { @@ -612,21 +537,9 @@ "id": "fresh_fries", "name": "French fries", "name_plural": "French fries", - "weight": 115, - "color": "yellow", + "copy-from": "fries", "spoils_in": "3 days", - "container": "box_small", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -1, - "healthy": -1, - "calories": 52, "description": "Deep fried potatoes with a touch of salt. Crunchy and delicious.", - "price": 120, - "material": "junk", - "volume": 1, - "charges": 3, - "flags": [ "EATEN_HOT" ], "fun": 3, "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -635,7 +548,7 @@ "id": "mintpatties", "name": "peppermint patty", "name_plural": "peppermint patties", - "weight": 46, + "weight": 43, "color": "brown", "spoils_in": "180 days", "stim": 1, @@ -643,11 +556,11 @@ "comestible_type": "FOOD", "symbol": "%", "healthy": -2, - "calories": 9, + "calories": 165, "description": "A handful of soft chocolate-covered peppermint patties... yum!", "price": 130, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, "fun": 4 @@ -665,20 +578,19 @@ "symbol": "%", "quench": -1, "healthy": -1, - "calories": 17, + "calories": 220, "description": "A handful of candy wafers, in assorted flavors: orange, lemon, lime, clove, chocolate, wintergreen, cinnamon, and licorice. Yum!", "price": 100, "material": "junk", "volume": 0, "flags": [ "EDIBLE_FROZEN" ], - "charges": 6, "fun": 4 }, { "type": "COMESTIBLE", "id": "candycigarette", "name": "candy cigarette", - "weight": 48, + "weight": 18, "color": "white", "spoils_in": "180 days", "stim": 1, @@ -687,13 +599,13 @@ "symbol": "%", "quench": -1, "healthy": -1, - "calories": 17, + "calories": 130, "description": "Candy sticks. Slightly more healthy than tobacco cigarettes, but with no possibility of addiction.", "price": 130, "material": "junk", - "volume": 0, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 6, + "charges": 3, "fun": 4 }, { @@ -701,7 +613,7 @@ "id": "sugar_fried", "name": "caramel", "name_plural": "caramel", - "weight": 56, + "weight": 67, "color": "white", "stim": 4, "container": "box_small", @@ -709,11 +621,13 @@ "symbol": "%", "quench": -2, "healthy": -2, - "calories": 26, + "calories": 257, "description": "Some caramel. Still bad for your health.", "price": 150, "material": "junk", "volume": 1, + "charges": 5, + "vitamins": [ [ "calcium", 2 ], [ "vitB", 1 ] ], "fun": 2 }, { @@ -721,27 +635,28 @@ "id": "chips", "name": "potato chips", "name_plural": "potato chips", - "weight": 85, + "weight": 28, "color": "yellow", "spoils_in": "30 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 69, + "calories": 149, "description": "Betcha can't eat just one.", "price": 180, "material": "junk", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 3, + "vitamins": [ [ "vitC", 5 ], [ "iron", 1 ] ], "fun": 6 }, { "type": "COMESTIBLE", "id": "cereal", "name": "sugary cereal", - "weight": 42, + "weight": 38, "color": "yellow", "spoils_in": "90 days", "stim": 4, @@ -749,20 +664,20 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 43, + "calories": 145, "description": "Sugary breakfast cereal with marshmallows. It takes you back to your childhood.", "price": 400, "material": "junk", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 12, + "vitamins": [ [ "vitA", 5 ], [ "vitC", 4 ], [ "calcium", 3 ], [ "iron", 12 ] ], "fun": 10 }, { "type": "COMESTIBLE", "id": "cereal3", "name": "corn cereal", - "weight": 85, + "weight": 39, "color": "yellow", "spoils_in": "90 days", "stim": 4, @@ -770,13 +685,13 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 43, + "calories": 155, "description": "Plain cornflake cereal. They're not that good, but it beats nothing.", "price": 300, "material": "junk", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 12, + "vitamins": [ [ "iron", 10 ] ], "fun": 6 }, { @@ -784,20 +699,20 @@ "id": "nachos", "name": "tortilla chips", "name_plural": "tortilla chips", - "weight": 85, + "weight": 80, "color": "yellow", "spoils_in": "30 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -10, - "calories": 35, + "calories": 280, "description": "Salted chips made from corn tortillas, could really use some cheese, maybe some beef.", "price": 170, "material": "junk", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 3, + "vitamins": [ [ "calcium", 1 ] ], "fun": 8 }, { @@ -805,21 +720,21 @@ "id": "nachosc", "name": "nachos with cheese", "name_plural": "nachos with cheese", - "weight": 100, + "weight": 85, "color": "yellow", "spoils_in": "1 day", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -10, - "calories": 104, + "calories": 280, "description": "Salted chips made from corn tortillas, now with cheese. Could stand to have some meat.", "price": 250, "material": [ "junk", "milk" ], "volume": 1, - "charges": 3, "flags": [ "EATEN_HOT" ], "fun": 16, + "vitamins": [ [ "calcium", 3 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -827,21 +742,22 @@ "id": "nachosm", "name": "nachos with meat", "name_plural": "nachos with meat", - "weight": 100, + "weight": 125, "color": "yellow", "spoils_in": "1 day", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -10, - "calories": 104, + "calories": 226, "description": "Salted chips made from corn tortillas, now with meat. Could probably use some cheese, though.", "price": 250, "material": [ "junk", "flesh" ], - "volume": 1, + "volume": 3, "charges": 3, "flags": [ "EATEN_HOT" ], "fun": 16, + "vitamins": [ [ "vitC", 1 ], [ "iron", 6 ], [ "vitB", 62 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -867,21 +783,21 @@ "id": "nachosmc", "name": "nachos with meat and cheese", "name_plural": "nachos with meat and cheese", - "weight": 180, + "weight": 22, "color": "yellow", "spoils_in": "20 hours", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -10, - "calories": 208, + "calories": 495, "description": "Salted chips made from corn tortillas with ground meat and smothered in cheese. Delicious.", "price": 300, "material": [ "flesh", "milk", "junk" ], - "volume": 1, - "charges": 3, + "volume": 2, "flags": [ "EATEN_HOT" ], "fun": 20, + "vitamins": [ [ "iron", 3 ], [ "calcium", 2 ], [ "vitA", 2 ], [ "vitB", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -895,13 +811,14 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 139, + "calories": 180, "description": "Salty dried pork. Tastes good, but it will make you thirsty.", "price": 220, "material": [ "flesh", "junk" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 4, + "vitamins": [ [ "calcium", 2 ], [ "iron", 1 ] ], "fun": 4 }, { @@ -988,21 +905,22 @@ { "type": "COMESTIBLE", "id": "fchicken", - "name": "deep fried chicken", - "weight": 238, + "name": "deep-fried chicken", + "weight": 168, "color": "red", "spoils_in": "1 day", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 130, - "description": "A handful of deep fried chicken. So bad it's good.", + "calories": 460, + "description": "Chicken cooked while submerged in oil. It's greasy and delicious.", "price": 550, "material": [ "flesh", "junk" ], - "volume": 1, + "volume": 4, "charges": 4, "fun": 12, + "vitamins": [ [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 15 }, @@ -1011,22 +929,23 @@ "id": "chilidogs", "name": "chili dogs", "name_plural": "chili dogs", - "weight": 80, + "weight": 318, "color": "red", "spoils_in": "1 day", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 434, + "calories": 353, "description": "A hot dog, served with chili con carne as a topping. Yum!", "price": 900, "material": [ "flesh", "junk", "wheat" ], - "volume": 1, - "charges": 4, + "volume": 2, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 15, "rot_spawn": "GROUP_CARRION", + "vitamins": [ [ "vitA", 1 ], [ "vitC", 11 ], [ "calcium", 3 ], [ "iron", 5 ] ], "rot_spawn_chance": 15 }, { @@ -1043,21 +962,22 @@ "id": "corndogs_frozen", "name": "uncooked corn dogs", "name_plural": "uncooked corn dogs", - "weight": 90, + "weight": 78, "color": "yellow", "spoils_in": "11 days 16 hours", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": -6, - "calories": 35, + "calories": 195, "description": "A heavily processed sausage, dipped in batter and deep fried. It would taste much better prepared.", "price": 900, "material": [ "flesh", "junk" ], "volume": 1, - "charges": 4, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": -18, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 1 ], [ "iron", 2 ], [ "vitB", 3 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 15 }, @@ -1065,81 +985,72 @@ "type": "COMESTIBLE", "id": "corndogs_cooked", "name": "cooked corn dog", - "weight": 90, - "color": "yellow", + "copy-from": "corndogs_frozen", "spoils_in": "1 day", "container": "wrapper", - "comestible_type": "FOOD", - "symbol": "%", "healthy": -2, - "calories": 174, "description": "A heavily processed sausage, dipped in batter and deep fried. Cooked, this corn dog now tastes much better, but will spoil.", - "price": 900, - "material": [ "flesh", "junk" ], - "volume": 1, - "flags": [ "EATEN_HOT" ], - "fun": 18, - "rot_spawn": "GROUP_CARRION", - "rot_spawn_chance": 15 + "fun": 18 }, { "type": "COMESTIBLE", "id": "choc_pancakes", "name": "chocolate pancake", "name_plural": "chocolate pancakes", - "weight": 354, + "weight": 78, "color": "brown", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 217, + "calories": 2193, "description": "Fluffy and delicious pancakes with real maple syrup, with delicious chocolate baked right in.", "price": 700, "material": [ "wheat", "junk", "milk" ], "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 1 ], [ "iron", 4 ], [ "vitB", 8 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "choc_waffles", "name": "chocolate waffle", - "weight": 354, + "weight": 70, "color": "brown", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 347, + "calories": 180, "description": "Crunchy and delicious waffles with real maple syrup, with delicious chocolate baked right in.", "price": 650, "material": [ "wheat", "junk", "milk" ], "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 12, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 6 ], [ "iron", 6 ], [ "vitB", 15 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "can_cheese", "name": "cheese spread", - "weight": 160, + "weight": 118, "color": "yellow", "spoils_in": "4 days", "stim": 1, "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 174, + "calories": 354, "description": "Processed cheese spread.", "price": 650, "material": [ "milk", "junk" ], "volume": 1, - "charges": 3, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 14 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -1147,62 +1058,62 @@ "id": "cheese_fries", "name": "cheese fries", "name_plural": "cheese fries", - "weight": 130, + "weight": 101, "color": "yellow", "spoils_in": "3 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 104, + "calories": 348, "description": "Fried potatoes with delicious cheese smothered on top.", "price": 190, "material": [ "junk", "milk" ], "volume": 1, - "charges": 3, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 1 ], [ "calcium", 4 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "onion_rings", "name": "onion ring", - "weight": 120, + "weight": 166, "color": "brown", "spoils_in": "3 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 69, + "calories": 639, "description": "Battered and fried onions. Crunchy and delicious.", "price": 400, "material": [ "veggy", "junk" ], "volume": 1, - "charges": 3, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN", "FREEZERBURN" ], "fun": 6, + "vitamins": [ [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "hotdogs_frozen", - "name": "uncooked hot dogs", + "name": "uncooked hot dog", "name_plural": "uncooked hot dogs", - "weight": 80, + "weight": 43, "color": "red", "spoils_in": "11 days 16 hours", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": -2, - "calories": 35, + "calories": 130, "description": "A heavily processed sausage, commonplace at baseball games before the cataclysm. It would taste much better prepared.", "price": 800, "material": [ "flesh", "junk" ], - "volume": 1, - "charges": 4, + "volume": 3, + "charges": 10, "flags": [ "EATEN_HOT" ], "fun": -6, "rot_spawn": "GROUP_CARRION", @@ -1211,45 +1122,34 @@ { "id": "hotdogs_campfire", "type": "COMESTIBLE", - "comestible_type": "FOOD", "name": "campfire hot dog", "name_plural": "campfire hot dogs", + "copy-from": "hotdogs_frozen", "description": "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", - "weight": 80, - "volume": 1, - "price": 800, "stack_size": 4, - "material": [ "flesh", "junk" ], - "symbol": "%", - "color": "red", - "calories": 104, "healthy": -1, - "fun": 5, - "spoils_in": "11 days 16 hours", - "flags": [ "EATEN_HOT" ], - "rot_spawn": "GROUP_CARRION", - "rot_spawn_chance": 15 + "fun": 5 }, { "type": "COMESTIBLE", "id": "hotdogs_cooked", - "name": "cooked hot dogs", + "name": "cooked hot dog", "name_plural": "cooked hot dogs", - "weight": 80, + "weight": 383, "color": "red", "spoils_in": "1 day", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 217, + "calories": 407, "description": "Surprisingly, not made from dog. Cooked, this hot dog now tastes much better, but will spoil.", "price": 800, "material": [ "flesh", "junk", "wheat" ], - "volume": 1, - "charges": 4, + "volume": 2, "flags": [ "EATEN_HOT" ], "fun": 12, + "vitamins": [ [ "vitC", 20 ], [ "calcium", 5 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 15 }, @@ -1257,7 +1157,7 @@ "type": "COMESTIBLE", "id": "maltballs", "name": "malted milk ball", - "weight": 36, + "weight": 40, "color": "brown", "spoils_in": "180 days", "stim": 3, @@ -1266,13 +1166,14 @@ "symbol": "%", "quench": -2, "healthy": -2, - "calories": 9, + "calories": 200, "description": "Crunchy sugar in chocolate capsules. Legal and stimmy.", "price": 100, "material": [ "junk", "milk" ], - "volume": 0, + "volume": 2, "flags": [ "EDIBLE_FROZEN" ], "charges": 4, + "vitamins": [ [ "calcium", 1 ] ], "fun": 6 }, { diff --git a/data/json/items/comestibles/meat_dishes.json b/data/json/items/comestibles/meat_dishes.json index b9140d12e672b..c46de64af124d 100644 --- a/data/json/items/comestibles/meat_dishes.json +++ b/data/json/items/comestibles/meat_dishes.json @@ -3,41 +3,32 @@ "type": "COMESTIBLE", "id": "sausage_raw", "name": "raw sausage", - "weight": 220, + "weight": 148, "color": "red", "spoils_in": "1 day", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 278, + "calories": 474, "healthy": -1, "parasites": 32, "description": "A hefty raw sausage, prepared for smoking or cooking.", "price": 1600, "material": "flesh", - "volume": 2, - "charges": 6, - "//": "3 meats here.", + "volume": 1, "flags": [ "SMOKABLE" ], + "vitamins": [ [ "iron", 1 ], [ "vitB", 9 ] ], "fun": -10 }, { "type": "COMESTIBLE", "id": "sausage", "name": "sausage", - "weight": 220, - "color": "red", + "copy-from": "sausage_raw", + "parasites": 0, + "healthy": 0, "spoils_in": "24 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -1, - "calories": 278, "description": "A hefty sausage that has been cured and smoked for long term storage.", - "price": 1600, - "material": "flesh", - "volume": 2, - "charges": 6, - "//": "3 meats here.", "flags": [ "EATEN_HOT", "SMOKED" ], "fun": 5 }, @@ -45,20 +36,13 @@ "type": "COMESTIBLE", "id": "sausage_cooked", "name": "cooked sausage", - "weight": 220, - "color": "red", + "copy-from": "sausage_raw", + "parasites": 0, + "healthy": 0, + "fun": 5, "spoils_in": "2 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -1, - "calories": 278, "description": "A hefty sausage that has been cooked.", - "price": 1600, - "material": "flesh", - "volume": 2, - "charges": 6, - "flags": [ "EATEN_HOT" ], - "fun": 5 + "flags": [ "EATEN_HOT" ] }, { "type": "COMESTIBLE", @@ -74,17 +58,17 @@ "id": "sweet_sausage", "name": "sweet sausage", "name_plural": "sweet sausages", - "weight": 220, + "weight": 148, "color": "brown", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 330, + "calories": 539, "description": "A sweet and delicious sausage. Better eat it fresh.", "price": 2400, "material": "flesh", - "volume": 2, - "charges": 4, + "volume": 1, + "vitamins": [ [ "vitA", 7 ], [ "vitC", 1 ], [ "iron", 5 ], [ "vitB", 9 ] ], "flags": [ "EATEN_HOT" ], "fun": 8 }, @@ -112,19 +96,20 @@ "type": "COMESTIBLE", "id": "royal_beef", "name": "royal beef", - "weight": 110, + "weight": 446, "color": "white", "spoils_in": "3 days 8 hours", "use_action": "ROYAL_JELLY", "comestible_type": "FOOD", "symbol": "%", "healthy": 10, - "calories": 694, + "calories": 637, "description": "A chunk of meat with a coat of royal jelly over it. It's a lot like a honey-baked ham.", "price": 21000, "material": "flesh", - "volume": 1, + "volume": 2, "fun": 7, + "vitamins": [ [ "vitC", 4 ], [ "iron", 17 ], [ "vitB", 187 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 25 }, @@ -133,7 +118,7 @@ "id": "bacon", "name": "bacon", "name_plural": "pieces of bacon", - "weight": 120, + "weight": 85, "color": "pink", "spoils_in": "24 days", "container": "bag_plastic", @@ -141,42 +126,37 @@ "symbol": "%", "quench": -2, "healthy": -1, - "calories": 269, + "calories": 398, "description": "A thick slab of salty cured bacon. Shelf stable, precooked and ready-to-eat, it tastes better when reheated.", "price": 1900, "material": "flesh", "volume": 1, - "charges": 8, + "charges": 2, "flags": [ "EATEN_HOT" ], + "vitamins": [ [ "iron", 1 ], [ "vitB", 9 ] ], "fun": 5 }, { "id": "sausage_wasteland", - "copy-from": "offal", + "copy-from": "sausage_raw", "type": "COMESTIBLE", "name": "wasteland sausage", "description": "Lean sausage made from heavily salt-cured offal, with natural gut casing. Waste not, want not.", - "charges": 6, "parasites": 0, "healthy": 0, "spoils_in": 1176, "quench": -7, "fun": -3, - "proportional": { "calories": 1.6, "vitamins": [ [ "vitA", 0.64 ] ] }, "flags": [ "SMOKED" ] }, { "id": "sausage_wasteland_raw", - "copy-from": "offal", + "copy-from": "sausage_raw", "type": "COMESTIBLE", "name": "raw wasteland sausage", "description": "Lean raw sausage made from heavily salt-cured offal, ready to be smoked.", - "charges": 6, - "parasites": 32, "healthy": 0, "quench": -7, - "fun": -10, - "proportional": { "calories": 1.6, "vitamins": [ [ "vitA", 0.64 ] ] }, "flags": [ "SMOKABLE" ] }, { @@ -184,7 +164,7 @@ "id": "cracklins", "name": "cracklins", "name_plural": "cracklins", - "weight": 40, + "weight": 42, "color": "brown", "spoils_in": "7 days", "container": "bag_plastic", @@ -192,12 +172,12 @@ "symbol": "%", "quench": -2, "healthy": -1, - "calories": 69, + "calories": 270, "description": "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.", "price": 170, "material": "flesh", "volume": 1, - "charges": 2, + "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 4, "rot_spawn": "GROUP_CARRION" @@ -206,61 +186,63 @@ "type": "COMESTIBLE", "id": "glazed_tenderloin", "name": "glazed tenderloins", - "weight": 320, + "weight": 205, "color": "brown", "spoils_in": "2 days 8 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 2, - "calories": 564, + "calories": 560, "description": "A tender piece of meat perfectly seasoned with a thin sweet glaze and its veggie accompaniments. A gourmet dish that is both healthy, sweet and delicious.", "price": 4000, "material": [ "flesh", "veggy" ], - "volume": 4, - "charges": 4, + "volume": 3, + "charges": 3, "flags": [ "EATEN_HOT" ], "fun": 18, "rot_spawn": "GROUP_CARRION", + "vitamins": [ [ "vitA", 1 ], [ "vitC", 4 ], [ "calcium", 2 ], [ "iron", 8 ], [ "vitB", 62 ] ], "rot_spawn_chance": 25 }, { "type": "COMESTIBLE", "id": "currywurst", "name": "currywurst", - "weight": 220, + "weight": 85, "color": "red", "spoils_in": "2 days", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": -3, - "calories": 330, + "calories": 260, "description": "Sausage covered in a curry ketchup sauce. Fairly spicy and impressive at the same time!", "price": 900, "material": "flesh", - "volume": 2, - "charges": 6, + "volume": 1, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 10, + "vitamins": [ [ "calcium", 5 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "meat_aspic", "name": "aspic", - "weight": 175, + "weight": 154, "color": "red", "spoils_in": "3 days 8 hours", "comestible_type": "FOOD", "symbol": "%", - "calories": 217, + "calories": 213, "//": "Same as the meat it's been made from. It's additional ingredient compared to smoking, jerking, and dehydrating, so there's no incentive otherwise.", "description": "A dish in which meat or fish is set into a gelatin made from a meat or vegetable stock.", "price": 2500, "material": "flesh", "volume": 1, - "charges": 2, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 3 ], [ "iron", 2 ] ], "flags": [ "EATEN_COLD", "FREEZERBURN" ] }, { @@ -268,36 +250,25 @@ "id": "dry_fish", "name": "dehydrated fish", "name_plural": "dehydrated fish", - "weight": 32, + "copy-from": "fish_cooked", + "weight": 85, "color": "light_gray", "spoils_in": "360 days", - "comestible_type": "FOOD", - "symbol": "%", "quench": -3, - "calories": 122, "description": "Dehydrated fish flakes. With proper storage, this dried food will remain edible for an incredibly long time.", "price": 500, - "material": "flesh", - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2 + "volume": "125 ml", + "flags": [ "EDIBLE_FROZEN" ] }, { "type": "COMESTIBLE", "id": "rehydrated_fish", "name": "rehydrated fish", "name_plural": "rehydrated fish", - "weight": 92, + "copy-from": "fish_cooked", "color": "white", - "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 139, "description": "Reconstituted fish flakes, which are much more enjoyable to eat now that they have been rehydrated.", "price": 500, - "material": "flesh", - "volume": 1, - "charges": 2, "fun": 2, "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 3 @@ -307,21 +278,14 @@ "id": "fish_pickled", "name": "pickled fish", "name_plural": "pickled fish", - "weight": 405, + "copy-from": "fish_cooked", "color": "white", "spoils_in": "4 days", "container": "jar_glass", - "comestible_type": "FOOD", - "symbol": "%", "quench": -1, "healthy": 1, - "calories": 347, "description": "This is a serving of crisply brined and canned fish. Tasty and nutritious.", - "price": 250, - "//": "Two charges per jar.", "material": "flesh", - "volume": 1, - "stack_size": 2, "fun": 7 }, { @@ -329,19 +293,13 @@ "id": "fish_canned", "name": "canned fish", "name_plural": "canned fish", - "weight": 362, + "copy-from": "fish_cooked", "color": "light_gray", "spoils_in": "1 day 16 hours", "container": "can_food", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 1, - "calories": 226, "description": "Low-sodium preserved fish. It was boiled and canned. Contains most of the nutrition, but little of the savor of cooked fish.", "price": 250, - "material": "flesh", - "volume": 1, - "stack_size": 2, "fun": 2 }, { @@ -349,41 +307,40 @@ "id": "fish_fried", "name": "batter fried fish", "name_plural": "batter fried fish", - "weight": 64, + "weight": 201, "color": "yellow", "spoils_in": "1 day", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 243, + "calories": 470, "description": "A delicious golden brown serving of crispy fried fish.", "price": 500, "material": "flesh", "volume": 1, - "charges": 6, - "//": "3 fillets.", "flags": [ "EATEN_HOT" ], "fun": 10, "rot_spawn": "GROUP_CARRION", + "vitamins": [ [ "iron", 1 ], [ "vitB", 23 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "lunchmeat", "name": "lunch meat", - "weight": 12, + "weight": 56, "color": "red", "spoils_in": "2 days 12 hours", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 104, - "description": "Delicious lunch meat. Can be eaten cold.", - "price": 3, + "calories": 180, + "description": "Meat that has been cooked, preserved, and cut into thin slices for convenient sandwich construction. It tastes fine cold.", + "price": 14, "//": "*Looking for ~$6 per pound here.", "material": "flesh", - "volume": 1, + "volume": "75 ml", "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 3 }, @@ -391,7 +348,7 @@ "type": "COMESTIBLE", "id": "bologna", "name": "bologna", - "weight": 22, + "weight": 56, "//": "Rebalanced: the recipe looks to easily make two pounds.", "color": "red", "spoils_in": "23 days 8 hours", @@ -400,19 +357,20 @@ "symbol": "%", "healthy": -1, "calories": 26, - "description": "A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. Can be eaten cold.", + "description": "Formally known as Bologna sausage, this is a finely ground preserved meat that comes in circular slices. Its first name isn't Oscar. You can eat it cold.", "price": 1000, "material": "flesh", - "volume": 1, + "volume": 3, "charges": 10, "rot_spawn": "GROUP_CARRION", + "vitamins": [ [ "iron", 3 ], [ "vitB", 2 ] ], "rot_spawn_chance": 3 }, { "type": "COMESTIBLE", "id": "lutefisk", "name": "lutefisk", - "weight": 94, + "weight": 175, "color": "light_gray", "spoils_in": "360 days", "container": "bag_plastic", @@ -420,13 +378,11 @@ "symbol": "%", "quench": -2, "healthy": 1, - "calories": 417, + "calories": 49, "description": "Lutefisk is preserved fish that has been dried in a lye solution. Vile and soap-like yet highly nutritious, it is reminiscent of the afterbirth of a dog or the world's largest chunk of phlegm.", "price": 200, "material": "flesh", "volume": 1, - "charges": 4, - "//": "4 fillets.", "flags": [ "EATEN_HOT" ], "fun": -15 }, @@ -434,18 +390,19 @@ "type": "COMESTIBLE", "id": "can_spam", "name": "SPAM", - "weight": 340, + "weight": 84, "color": "pink", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": -3, - "calories": 417, + "calories": 270, "description": "A canned pork product that is unnaturally pink, oddly rubbery, and not very tasty, this SPAM remains quite filling. Completely unappetizing, but quite filling.", "price": 400, "material": "flesh", "volume": 1, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": -8, "rot_spawn": "GROUP_CARRION" @@ -454,20 +411,21 @@ "type": "COMESTIBLE", "id": "can_sardine", "name": "canned sardine", - "weight": 131, + "weight": 200, "color": "light_gray", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": -8, - "calories": 191, + "calories": 340, "description": "Salty little fish. They'll make you thirsty.", "price": 200, "material": "flesh", "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 1, + "vitamins": [ [ "calcium", 10 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -475,19 +433,18 @@ "id": "sausagegravy", "name": "sausage gravy", "name_plural": "sausage gravies", - "weight": 300, + "weight": 60, "color": "light_gray", "spoils_in": "2 days", "//": "Semi-arbitrary spoilage of 48 hours set: pretty confident sausage gravy goes bad.", "comestible_type": "FOOD", "symbol": "%", "quench": 6, - "calories": 330, + "calories": 363, "description": "Biscuits, meat, and delicious mushroom soup all crammed together into a wonderfully greasy and tasteful mush.", "price": 1000, "material": [ "flesh", "wheat", "mushroom" ], - "volume": 3, - "charges": 2, + "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 9, "rot_spawn": "GROUP_CARRION", @@ -497,27 +454,26 @@ "type": "COMESTIBLE", "id": "pemmican", "name": "pemmican", - "weight": 113, + "weight": 106, "color": "brown", "spoils_in": "360 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -2, - "calories": 321, + "calories": 440, "description": "A concentrated mixture of fat and protein used as a nutritious high-energy food. Composed of meat, tallow, and edible plants, it provides excellent nutrition in an easy to carry form.", "price": 600, "material": [ "flesh", "veggy" ], - "volume": 2, - "charges": 8, - "//": "About 4 meats, depending on which gets used.", + "volume": 1, + "vitamins": [ [ "calcium", 6 ], [ "iron", 3 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "macaroni_helper", "name": "hamburger helper", - "weight": 380, + "weight": 170, "color": "red", "spoils_in": "10 hours", "container": "box_small", @@ -525,32 +481,33 @@ "symbol": "%", "quench": 13, "healthy": 1, - "calories": 260, + "calories": 393, "description": "Some mac and cheese with ground meat added, enhancing the flavor and the nutritional value.", "price": 490, "material": [ "wheat", "flesh", "milk" ], - "volume": 4, - "charges": 4, + "volume": 1, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 5, + "vitamins": [ [ "vitA", 3 ], [ "vitC", 1 ], [ "calcium", 8 ], [ "iron", 5 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "ravioli", "name": "ravioli", - "weight": 452, + "weight": 170, "color": "light_red", "spoils_in": "2 days", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 417, + "calories": 393, "description": "Meat encased in little dough satchels. Tastes fine raw.", "price": 250, "material": [ "flesh", "wheat" ], "volume": 1, "flags": [ "EATEN_HOT" ], + "vitamins": [ [ "vitA", 1 ], [ "calcium", 4 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -558,21 +515,21 @@ "id": "chili", "name": "chili con carne", "name_plural": "chilis con carne", - "weight": 300, + "weight": 253, "color": "red", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 417, + "calories": 299, "description": "A spicy stew containing chili peppers, meat, tomatoes and beans.", "price": 290, "material": [ "flesh", "veggy", "bean", "tomato" ], "volume": 1, - "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 5, + "vitamins": [ [ "vitA", 3 ], [ "vitC", 1 ], [ "calcium", 1 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -580,20 +537,21 @@ "id": "pork_beans", "name": "pork and beans", "name_plural": "pork and beans", - "weight": 467, + "weight": 267, "color": "brown", "spoils_in": "1 day 12 hours", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": -8, - "calories": 434, + "calories": 283, "description": "Greasy Prospector improved pork and beans with hickory smoked pig fat chunks.", "price": 200, "material": [ "flesh", "bean" ], "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 5, + "vitamins": [ [ "vitC", 1 ], [ "calcium", 4 ], [ "iron", 6 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -601,73 +559,77 @@ "id": "can_tuna", "name": "canned tuna fish", "name_plural": "canned tuna fish", - "weight": 454, + "weight": 154, "color": "light_gray", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 208, + "calories": 305, "description": "Now with 95 percent fewer dolphins!", "price": 200, "material": "flesh", "volume": 1, "fun": 2, + "vitamins": [ [ "vitA", 1 ], [ "iron", 3 ], [ "vitB", 34 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "can_salmon", "name": "canned salmon", - "weight": 454, + "weight": 200, "color": "pink", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 382, + "calories": 276, "description": "Bright pink fish-paste in a can!", "price": 500, "material": "flesh", "volume": 1, "fun": 1, + "vitamins": [ [ "vitA", 1 ], [ "calcium", 14 ], [ "iron", 2 ], [ "vitB", 99 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "can_chicken", "name": "canned chicken", - "weight": 460, + "weight": 216, "color": "pink", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 399, + "calories": 100, "description": "Bright white chicken-paste.", "price": 400, "material": "flesh", "volume": 1, "fun": 1, + "vitamins": [ [ "vitA", 3 ], [ "iron", 4 ], [ "vitB", 22 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "can_herring", "name": "pickled herring", - "weight": 454, + "weight": 232, "color": "white", "spoils_in": "4 days", "container": "can_food", "//": "Small cans--needs properly Jarred after the string freeze.", "comestible_type": "FOOD", "symbol": "%", - "calories": 330, + "calories": 465, "description": "Fish fillets pickled in some sort of tangy white sauce.", "price": 310, "material": "flesh", "volume": 1, "fun": 3, + "vitamins": [ [ "calcium", 8 ], [ "iron", 8 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -675,40 +637,41 @@ "id": "can_clams", "name": "canned clam", "name_plural": "canned clams", - "weight": 454, + "weight": 169, "color": "light_gray", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": 1, - "calories": 208, + "calories": 240, "description": "Chopped quahog clams in water.", "price": 500, "material": "flesh", "volume": 1, "fun": 2, + "vitamins": [ [ "vitA", 7 ], [ "calcium", 3 ], [ "iron", 6 ], [ "vitB", 315 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "can_chowder", "name": "clam chowder", - "weight": 454, + "weight": 253, "color": "white", "spoils_in": "1 day", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": 2, - "calories": 365, + "calories": 142, "description": "Delicious, lumpy, white soup made of clams and potatoes. A taste of the lost glory of New England.", "price": 400, "material": [ "flesh", "milk" ], "volume": 1, - "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 5 ], [ "vitC", 3 ], [ "calcium", 2 ], [ "iron", 4 ], [ "vitB", 84 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -716,20 +679,21 @@ "id": "deluxe_beans", "name": "baked beans", "name_plural": "baked beans", - "weight": 508, + "weight": 293, "color": "brown", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 382, + "calories": 373, "description": "Slow-cooked beans with meat. Tasty and very filling.", "price": 700, "material": [ "bean", "flesh" ], - "volume": 1, - "charges": 4, + "volume": 4, + "charges": 2, "//": "One beans + one protein/veg = 2 servings", "flags": [ "EATEN_HOT" ], "fun": 4, + "vitamins": [ [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 12 ], [ "vitB", 93 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -737,20 +701,21 @@ "id": "deluxe_rice", "name": "meat fried rice", "name_plural": "meat fried rice", - "weight": 442, + "weight": 187, "color": "yellow", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 356, + "calories": 373, "description": "Delicious fried rice with meat. Tasty and very filling.", "price": 700, "material": [ "veggy", "flesh" ], - "volume": 1, - "charges": 4, + "volume": 4, + "charges": 2, "//": "One rice + one protein/veg = 2 servings", "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 5, + "vitamins": [ [ "vitC", 2 ], [ "iron", 10 ], [ "vitB", 93 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -758,27 +723,27 @@ "id": "deluxe_beansnrice", "name": "deluxe beans and rice", "name_plural": "deluxe beans and rice", - "weight": 512, + "weight": 312, "color": "brown", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 313, + "calories": 540, "description": "Slow-cooked beans and rice with meat and seasonings. Tasty and very filling.", "price": 750, "material": [ "veggy", "bean", "flesh" ], - "volume": 1, - "charges": 6, + "volume": "375 ml", "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "vitC", 1 ], [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "pie_meat", "name": "meat pie", - "weight": 260, + "weight": 189, "color": "brown", "spoils_in": "3 days 8 hours", "container": "box_small", @@ -786,14 +751,15 @@ "symbol": "%", "quench": 5, "healthy": 1, - "calories": 139, + "calories": 400, "description": "A delicious baked pie with a delicious meat filling.", "price": 1350, "material": [ "wheat", "flesh" ], - "volume": 4, - "charges": 6, + "volume": 8, + "charges": 8, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "iron", 3 ] ], "rot_spawn": "GROUP_ROTTING_TRIFFID_FAVOR", "rot_spawn_chance": 20 }, @@ -801,13 +767,13 @@ "type": "COMESTIBLE", "id": "pizza_meat", "name": "meat pizza", - "weight": 175, + "weight": 230, "color": "light_red", "spoils_in": "2 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 434, + "calories": 566, "description": "A meat pizza, for all the carnivores out there. Chock full of minced meat and heavily seasoned.", "price": 1090, "material": [ "wheat", "flesh" ], @@ -815,6 +781,7 @@ "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 10, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 2 ], [ "calcium", 7 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -822,13 +789,13 @@ "id": "deluxe_eggs", "name": "deluxe scrambled eggs", "name_plural": "deluxe scrambled eggs", - "weight": 316, + "weight": 198, "color": "yellow", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 286, + "calories": 279, "description": "Fluffy and delicious scrambled eggs made more delicious with the addition of other tasty ingredients.", "price": 700, "material": [ "egg", "flesh" ], @@ -836,24 +803,19 @@ "charges": 3, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 9 ], [ "vitB", 98 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "meat_canned", "name": "canned meat", - "weight": 417, + "copy-from": "meat_cooked", "color": "red", "spoils_in": "1 day 16 hours", "container": "can_food", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 330, "description": "Low-sodium preserved meat. It was boiled and canned. Contains most of the nutrition, but little of the savor of cooked meat.", "price": 250, - "material": "flesh", - "volume": 1, - "stack_size": 2, "flags": [ "EATEN_HOT" ], "fun": 2, "rot_spawn": "GROUP_CARRION" @@ -862,19 +824,14 @@ "type": "COMESTIBLE", "id": "meat_salted", "name": "salted meat slice", - "weight": 120, + "copy-from": "meat_cooked", "color": "red", "spoils_in": "2 days", "container": "plastic_bag_vac", - "comestible_type": "FOOD", - "symbol": "%", "quench": -5, - "calories": 182, "description": "Meat slices cured in brine. Salty but tasty in a pinch.", "price": 500, "material": "flesh", - "volume": 1, - "charges": 2, "fun": 2, "rot_spawn": "GROUP_CARRION" }, @@ -883,13 +840,13 @@ "id": "spaghetti_bolognese", "name": "spaghetti bolognese", "name_plural": "spaghetti bolognese", - "weight": 350, + "weight": 150, "color": "red", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 217, + "calories": 226, "description": "Spaghetti covered with a thick meat sauce. Yum!", "price": 1000, "material": [ "wheat", "flesh" ], @@ -897,45 +854,41 @@ "charges": 8, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "calcium", 3 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "lasagne", "name": "lasagne", - "weight": 350, + "weight": 255, "color": "red", "spoils_in": 64, "comestible_type": "FOOD", "symbol": "%", "quench": 5, "healthy": 1, - "calories": 330, + "calories": 226, "description": "A very old type of pasta made with several layers of lasagne sheets alternated with cheese, sauces and meats.", "price": 1000, "material": [ "flesh", "wheat", "milk" ], - "volume": 12, + "volume": 8, "charges": 8, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 15, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 5 ], [ "calcium", 5 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "fried_spam", "name": "fried SPAM", - "weight": 160, + "copy-from": "can_spam", "color": "red", - "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", "quench": -6, - "calories": 243, "description": "Having been fried, this SPAM is actually pretty tasty.", "price": 500, "material": "flesh", - "volume": 1, - "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 8, "rot_spawn": "GROUP_CARRION" @@ -944,137 +897,121 @@ "type": "COMESTIBLE", "id": "cheeseburger", "name": "cheeseburger", - "weight": 340, + "weight": 133, "color": "brown", "spoils_in": "1 day 12 hours", "stim": 1, "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 304, + "calories": 380, "description": "A sandwich of minced meat and cheese with condiments. The apex of pre-cataclysm culinary achievement.", "price": 1000, "material": [ "flesh", "wheat", "milk" ], - "volume": 1, - "charges": 4, + "volume": 2, "flags": [ "EATEN_HOT", "ALLERGEN_MILK" ], "fun": 5, + "vitamins": [ [ "calcium", 3 ], [ "iron", 5 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "hamburger", "name": "hamburger", - "weight": 300, + "weight": 99, "color": "brown", "spoils_in": "1 day 12 hours", "stim": 1, "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 260, + "calories": 258, "description": "A sandwich of minced meat with condiments.", "price": 900, "material": [ "flesh", "wheat" ], - "volume": 1, - "charges": 4, + "volume": 2, "flags": [ "EATEN_HOT" ], "fun": 4, + "vitamins": [ [ "calcium", 2 ], [ "iron", 4 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "sloppyjoe", "name": "sloppy joe", - "weight": 300, + "weight": 113, "color": "brown", "spoils_in": "1 day 12 hours", "stim": 1, "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 269, + "calories": 391, "description": "A sandwich, consisting of ground meat and tomato sauce served on a hamburger bun.", "price": 900, "material": [ "flesh", "tomato", "wheat" ], - "volume": 1, - "charges": 4, + "volume": 2, "flags": [ "EATEN_HOT" ], "fun": 4, + "vitamins": [ [ "vitC", 1 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "taco", "name": "taco", - "weight": 85, + "weight": 102, "color": "yellow", "spoils_in": "1 day", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": -5, - "calories": 130, + "calories": 210, "description": "A traditional Mexican dish composed of a corn tortilla folded or rolled around a meat filling.", "price": 210, "material": "flesh", "volume": 1, - "charges": 3, "fun": 8, + "vitamins": [ [ "calcium", 3 ], [ "iron", 2 ], [ "vitB", 9 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "meat_pickled", "name": "pickled meat", - "weight": 459, + "copy-from": "meat_cooked", "color": "pink", "spoils_in": "4 days", "container": "jar_glass", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 1, - "calories": 391, "description": "This is a serving of crisply brined and canned meat. Tasty and nutritious.", "price": 250, - "material": "flesh", - "volume": 1, - "stack_size": 2, "fun": 6 }, { "type": "COMESTIBLE", "id": "dry_meat", "name": "dehydrated meat", - "weight": 56, + "copy-from": "meat_cooked", + "weight": 85, "color": "red", "spoils_in": "360 days", - "comestible_type": "FOOD", - "symbol": "%", "quench": -3, - "calories": 174, "description": "Dehydrated meat flakes. With proper storage, this dried food will remain edible for an incredibly long time.", "price": 900, "material": "flesh", - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2 + "volume": "125 ml", + "flags": [ "EDIBLE_FROZEN" ] }, { "type": "COMESTIBLE", "id": "rehydrated_meat", "name": "rehydrated meat", - "weight": 156, + "copy-from": "meat_cooked", "color": "light_red", - "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 191, "description": "Reconstituted meat flakes, which are much more enjoyable to eat now that they have been rehydrated.", "price": 900, - "material": "flesh", - "volume": 1, - "charges": 2, "fun": 2, "rot_spawn": "GROUP_CARRION" }, @@ -1091,15 +1028,15 @@ "symbol": "%", "quench": 2, "healthy": 1, - "calories": 417, + "calories": 441, "description": "This traditional Scottish savory pudding is made of meat and offal mixed with oatmeal, which is sewn into an animal's stomach and boiled. Surprisingly tasty and quite filling, it is best served with boiled root vegetables and strong whisky.", "//": "That's whisky without an 'e' because we're talking about Scotch whisky.", "price": 750, "material": [ "wheat", "flesh" ], "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 2, + "vitamins": [ [ "vitA", 35 ], [ "vitC", 5 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -1107,19 +1044,20 @@ "id": "sushi_fishroll", "name": "fish makizushi", "name_plural": "fish makizushi", - "weight": 132, + "weight": 159, "color": "green", "spoils_in": "12 hours", "comestible_type": "FOOD", "symbol": "%", "healthy": 2, - "calories": 313, + "calories": 223, "description": "Delicious slivers of thinly sliced raw fish wrapped in tasty sushi rice and rolled up in a healthy green vegetable.", "price": 350, "material": [ "veggy", "flesh" ], - "volume": 1, - "charges": 2, + "volume": 3, + "charges": 3, "fun": 14, + "vitamins": [ [ "vitC", 6 ], [ "vitB", 5 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -1127,19 +1065,20 @@ "id": "sushi_meatroll", "name": "meat temaki", "name_plural": "meat temaki", - "weight": 140, + "weight": 273, "color": "green", "spoils_in": "1 day", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 347, + "calories": 417, "description": "Delicious slivers of raw meat wrapped in tasty sushi rice and rolled up in a healthy green vegetable.", "price": 370, "material": [ "veggy", "flesh" ], - "volume": 1, + "volume": 4, "charges": 2, "fun": 13, + "vitamins": [ [ "vitC", 9 ], [ "calcium", 1 ], [ "vitB", 93 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -1147,60 +1086,52 @@ "id": "sashimi", "name": "sashimi", "name_plural": "sashimi", - "weight": 110, + "copy-from": "fish_cooked", "color": "white", "spoils_in": "12 hours", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 1, - "calories": 269, "description": "Delicious slivers of thinly sliced raw fish and tasty vegetables.", "price": 600, "material": [ "veggy", "flesh" ], - "volume": 1, - "charges": 4, "fun": 7, "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "dry_meat_tainted", - "category": "other", "name": "dehydrated tainted meat", - "weight": 56, + "copy-from": "meat_tainted", + "weight": 85, "color": "red", "spoils_in": "360 days", "use_action": "POISON", - "comestible_type": "FOOD", - "symbol": "%", "quench": -3, - "calories": 174, "description": "Pieces of poisonous meat that have been dried to prevent them from rotting away. It will still poison you if you eat this.", "price": 0, "material": "flesh", - "volume": 1, + "volume": "125 ml", "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, "fun": -4 }, { "type": "COMESTIBLE", "id": "pelmeni", "name": "pelmeni", - "weight": 452, + "weight": 151, "color": "light_red", "spoils_in": "2 days", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", - "calories": 417, + "calories": 300, "description": "Delicious cooked dumplings consisting of a meat filling wrapped in thin dough.", "price": 350, "material": [ "flesh", "wheat" ], - "volume": 1, + "volume": 2, "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION" } ] diff --git a/data/json/items/comestibles/meat_dishes_human.json b/data/json/items/comestibles/meat_dishes_human.json index 984b273c1c93a..6425d80688a03 100644 --- a/data/json/items/comestibles/meat_dishes_human.json +++ b/data/json/items/comestibles/meat_dishes_human.json @@ -31,7 +31,7 @@ "id": "hfleshbologna", "copy-from": "bologna", "name": "brat bologna", - "description": "A type of lunch meat made out of human flesh that comes pre-sliced. Its first name may have been Oscar. Can be eaten cold.", + "description": "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.", "material": "hflesh" }, { @@ -207,7 +207,7 @@ "id": "mann_bratwurst", "copy-from": "bratwurst_sausage", "name": "Mannbrat", - "description": "A type of German sausage made of finely chopped humans and meant to be pan fried or roasted. Better eat it hot and fresh. By the way, use any human available. Germans are not mandatory.", + "description": "A type of German sausage made of finely chopped humans and meant to be pan fried or roasted. Better eat it hot and fresh. By the way, use any human available. Germans are not mandatory.", "material": "hflesh" }, { diff --git a/data/json/items/comestibles/med.json b/data/json/items/comestibles/med.json index 63a3858f325c9..e601c2d2771b7 100644 --- a/data/json/items/comestibles/med.json +++ b/data/json/items/comestibles/med.json @@ -1334,6 +1334,27 @@ "use_action": "WEAK_ANTIBIOTIC", "flags": "NPC_SAFE" }, + { + "id": "pepto", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "heartburn medicine", + "description": "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous urges; with a twist off cap that doubles as a dosage cup.", + "weight": 1, + "volume": 1, + "price": 1000, + "container": "bottle_plastic_small", + "charges": 10, + "symbol": "%", + "phase": "liquid", + "color": "white", + "use_action": { + "type": "consume_drug", + "activation_message": "You take some heartburn medicine.", + "effects": [ { "id": "tummy_tablet", "duration": 6400 } ], + "flags": [ "USE_ON_NPC", "NPC_SAFE" ] + } + }, { "id": "panacea", "type": "COMESTIBLE", diff --git a/data/json/items/comestibles/mushroom.json b/data/json/items/comestibles/mushroom.json index bd1063616918c..1eb2aa91c033b 100644 --- a/data/json/items/comestibles/mushroom.json +++ b/data/json/items/comestibles/mushroom.json @@ -3,17 +3,10 @@ "type": "COMESTIBLE", "id": "mushroom_cooked", "name": "cooked mushroom", - "weight": 121, - "color": "brown", + "copy-from": "mushroom", "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 156, "description": "A tasty cooked wild mushroom.", "price": 150, - "material": "mushroom", - "volume": 1, "fun": 1, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_ROTTING_PLANT" @@ -22,36 +15,31 @@ "type": "COMESTIBLE", "id": "mushroom_morel", "name": "morel mushroom", - "weight": 121, + "weight": 78, "color": "brown", "spoils_in": "2 days", "use_action": "POISON", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 104, + "calories": 24, "description": "Prized by chefs and woodsmen alike, morel mushrooms are delicious but must be cooked before they are safe to eat.", "price": 2000, "material": "mushroom", "volume": 1, "fun": 1, "flags": [ "FREEZERBURN", "SMOKABLE" ], + "vitamins": [ [ "iron", 12 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "morel_cooked", "name": "cooked morel mushroom", - "weight": 121, - "color": "brown", + "copy-from": "mushroom_morel", "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 156, "description": "A tasty cooked morel mushroom.", "price": 1500, - "material": "mushroom", - "volume": 1, "fun": 4, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_ROTTING_PLANT" @@ -60,16 +48,10 @@ "type": "COMESTIBLE", "id": "morel_fried", "name": "fried morel mushroom", - "weight": 121, - "color": "brown", + "copy-from": "mushroom_morel", "spoils_in": "1 day 12 hours", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 139, "description": "A delicious serving of fried morsels of morel mushroom.", "price": 1500, - "material": "mushroom", - "volume": 1, "charges": 2, "fun": 12, "flags": [ "EATEN_HOT", "FREEZERBURN" ], @@ -79,18 +61,18 @@ "type": "COMESTIBLE", "id": "dry_mushroom", "name": "dried mushroom", - "weight": 15, + "weight": 7, "color": "brown", "spoils_in": "360 days", "comestible_type": "FOOD", "symbol": "%", "quench": -1, "healthy": 1, - "calories": 69, + "calories": 22, "description": "Dried mushrooms are a tasty and healthy addition to many meals.", "price": 180, "material": "mushroom", - "volume": 1, + "volume": "25 ml", "flags": [ "EDIBLE_FROZEN" ], "fun": 1 }, @@ -99,38 +81,27 @@ "type": "COMESTIBLE", "id": "dry_mushroom_magic", "name": "dried hallucinogenic mushroom", - "weight": 15, - "color": "brown", - "spoils_in": "360 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -1, - "calories": 69, - "description": "A hallucinogenic mushroom which has been dehydrated for storage. Will still cause hallucinations if eaten.", - "price": 180, - "material": "mushroom", - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 4, - "fun": 1 + "copy-from": "dry_mushroom", + "description": "A hallucinogenic mushroom which has been dehydrated for storage. Will still cause hallucinations if eaten." }, { "type": "COMESTIBLE", "id": "mushroom", "name": "mushroom", - "weight": 159, + "weight": 69, "color": "brown", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 122, + "calories": 15, "description": "Mushrooms are tasty, but be careful. Some can poison you, while others are hallucinogenic.", "price": 140, "material": "mushroom", "volume": 1, "fun": -3, "flags": [ "FREEZERBURN", "SMOKABLE" ], + "vitamins": [ [ "vitC", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -138,38 +109,20 @@ "type": "COMESTIBLE", "id": "mushroom_poison", "name": "mushroom", - "weight": 159, - "color": "brown", - "spoils_in": "2 days", + "copy-from": "mushroom", "use_action": "POISON", - "comestible_type": "FOOD", - "symbol": "%", "healthy": -5, - "calories": 122, "description": "Mushrooms are tasty, but be careful. Some can poison you, while others are hallucinogenic.", - "price": 140, - "material": "mushroom", - "volume": 1, - "flags": [ "HIDDEN_POISON", "TRADER_AVOID", "FREEZERBURN" ], - "fun": -3 + "flags": [ "HIDDEN_POISON", "TRADER_AVOID", "FREEZERBURN" ] }, { "//": "Should be removed after 0.D.", "type": "COMESTIBLE", "id": "mushroom_magic", "name": "mushroom", - "weight": 159, - "color": "brown", - "spoils_in": "2 days", + "copy-from": "mushroom", "stim": -4, - "comestible_type": "FOOD", - "symbol": "%", - "calories": 122, "description": "Mushrooms are tasty, but be careful. Some can poison you, while others are hallucinogenic.", - "price": 140, - "material": "mushroom", - "volume": 1, - "flags": [ "HIDDEN_HALLU", "FREEZERBURN", "SMOKABLE" ], - "fun": -3 + "flags": [ "HIDDEN_HALLU", "FREEZERBURN", "SMOKABLE" ] } ] diff --git a/data/json/items/comestibles/mutagen.json b/data/json/items/comestibles/mutagen.json index 64ed9f09c4845..679f0c06002af 100644 --- a/data/json/items/comestibles/mutagen.json +++ b/data/json/items/comestibles/mutagen.json @@ -17,6 +17,8 @@ "healthy": -2, "addiction_potential": 2, "addiction_type": "mutagen", + "flags": "NUTRIENT_OVERRIDE", + "vitamins": [ ], "freezing_point": 17 }, { @@ -455,7 +457,7 @@ "healthy": -6, "stim": -5, "use_action": "PURIFY_SMART", - "flags": [ "NPC_SAFE", "TRADER_AVOID" ] + "flags": [ "NPC_SAFE", "TRADER_AVOID", "NUTRIENT_OVERRIDE" ] }, { "type": "COMESTIBLE", @@ -467,7 +469,7 @@ "color": "pink", "spoils_in": "2 days", "use_action": { "type": "mutagen", "is_weak": true }, - "flags": [ "TRADER_AVOID" ], + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "comestible_type": "FOOD", "symbol": "%", "healthy": -12, @@ -488,7 +490,7 @@ "color": "brown", "spoils_in": "2 days", "use_action": { "type": "mutagen", "is_weak": true }, - "flags": [ "TRADER_AVOID" ], + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "comestible_type": "FOOD", "symbol": "%", "healthy": -8, @@ -509,7 +511,7 @@ "color": "brown", "spoils_in": "2 days", "use_action": { "type": "mutagen", "is_weak": true }, - "flags": [ "TRADER_AVOID" ], + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], "comestible_type": "FOOD", "symbol": "%", "healthy": -8, @@ -544,7 +546,7 @@ "volume": 1, "phase": "liquid", "charges": 2, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "freezing_point": -22, "fun": -40 }, @@ -570,7 +572,7 @@ "phase": "liquid", "charges": 2, "use_action": { "type": "mutagen", "is_weak": true }, - "flags": [ "EATEN_COLD" ], + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE" ], "freezing_point": -22, "fun": -15 } diff --git a/data/json/items/comestibles/nuts.json b/data/json/items/comestibles/nuts.json index a9a5d7e6bbeb4..1ac2ddba9131b 100644 --- a/data/json/items/comestibles/nuts.json +++ b/data/json/items/comestibles/nuts.json @@ -4,7 +4,7 @@ "id": "pine_nuts", "name": "pine nuts", "name_plural": "pine nuts", - "weight": 28, + "weight": 30, "color": "brown", "spoils_in": 1080, "container": "bag_plastic", @@ -12,13 +12,14 @@ "symbol": "%", "quench": -2, "healthy": 1, - "calories": 43, + "calories": 202, "description": "Tasty crunchy nuts from a pinecone.", - "price": 90, + "price": 136, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "vitamins": [ [ "iron", 2 ] ], "fun": 2 }, { @@ -26,7 +27,7 @@ "id": "pistachio_unshelled", "name": "handful of shelled pistachios", "name_plural": "handful of shelled pistachios", - "weight": 28, + "weight": 30, "color": "green", "spoils_in": "90 days", "container": "bag_plastic", @@ -34,13 +35,14 @@ "symbol": "%", "quench": -3, "healthy": 1, - "calories": 90, + "calories": 168, "description": "A handful of nuts from a pistachio tree, their shells have been removed.", "price": 100, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "vitamins": [ [ "iron", 1 ], [ "calcium", 1 ] ], "fun": 1 }, { @@ -48,18 +50,10 @@ "id": "pistachio_roasted", "name": "handful of roasted pistachios", "name_plural": "handfuls of roasted pistachios", - "weight": 28, - "color": "green", - "spoils_in": "90 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -3, + "copy-from": "pistachio_unshelled", "healthy": 2, - "calories": 90, "description": "A handful of roasted nuts from an pistachio tree.", "price": 150, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 3 }, @@ -68,7 +62,7 @@ "id": "almond_unshelled", "name": "handful of shelled almonds", "name_plural": "handful of shelled almonds", - "weight": 32, + "weight": 30, "color": "brown", "spoils_in": "300 days", "container": "bag_plastic", @@ -76,13 +70,14 @@ "symbol": "%", "quench": -3, "healthy": 1, - "calories": 100, + "calories": 167, "description": "A handful of nuts from an almond tree, their shells have been removed.", "price": 100, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "vitamins": [ [ "iron", 1 ], [ "calcium", 1 ] ], + "charges": 4, "fun": 1 }, { @@ -90,18 +85,10 @@ "id": "almond_roasted", "name": "handful of roasted almonds", "name_plural": "handfuls of roasted almonds", - "weight": 32, - "color": "brown", - "spoils_in": "300 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -3, + "copy-from": "almond_unshelled", "healthy": 2, - "calories": 100, "description": "A handful of roasted nuts from an almond tree.", "price": 150, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 3 }, @@ -110,7 +97,7 @@ "id": "cashews", "name": "cashews", "name_plural": "cashews", - "weight": 35, + "weight": 30, "color": "brown", "spoils_in": "240 days", "container": "bag_plastic", @@ -118,13 +105,14 @@ "symbol": "%", "quench": -3, "healthy": 1, - "calories": 90, + "calories": 166, "description": "A handful of salty cashews.", "price": 110, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "vitamins": [ [ "iron", 2 ] ], "fun": 3 }, { @@ -132,7 +120,7 @@ "id": "pecan_unshelled", "name": "handful of shelled pecans", "name_plural": "handful of shelled pecans", - "weight": 36, + "weight": 30, "color": "brown", "spoils_in": "180 days", "container": "bag_plastic", @@ -140,13 +128,14 @@ "symbol": "%", "quench": -3, "healthy": 1, - "calories": 120, + "calories": 196, "description": "A handful of pecans which are a sub-species of hickory nuts, their shells have been removed.", "price": 100, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "vitamins": [ [ "iron", 1 ] ], "fun": 1 }, { @@ -154,18 +143,9 @@ "id": "pecan_roasted", "name": "handful of roasted pecans", "name_plural": "handfuls of roasted pecans", - "weight": 36, - "color": "brown", - "spoils_in": "180 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -3, - "healthy": 1, - "calories": 120, + "copy-from": "pecan_unshelled", "description": "A handful of roasted nuts from a pecan tree.", "price": 150, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 3 }, @@ -174,7 +154,7 @@ "id": "peanut_unshelled", "name": "handful of shelled peanuts", "name_plural": "handful of shelled peanuts", - "weight": 28, + "weight": 30, "color": "brown", "spoils_in": "240 days", "container": "bag_plastic", @@ -182,13 +162,14 @@ "symbol": "%", "quench": -4, "healthy": 1, - "calories": 90, + "calories": 174, "description": "Salty peanuts with their shells removed.", "price": 100, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "vitamins": [ [ "iron", 1 ] ], "fun": 3 }, { @@ -196,58 +177,53 @@ "id": "beech_nuts", "name": "beech nuts", "name_plural": "beech nuts", - "weight": 32, + "weight": 30, "color": "brown", "spoils_in": "90 days", "comestible_type": "FOOD", "symbol": "%", "quench": -4, "healthy": 1, - "calories": 120, + "calories": 170, "description": "Hard pointy nuts from a beech tree.", "price": 0, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2 + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "vitamins": [ [ "vitC", 1 ], [ "iron", 2 ] ], + "charges": 4 }, { "type": "COMESTIBLE", "id": "walnut_unshelled", "name": "handful of shelled walnuts", "name_plural": "handfuls of shelled walnuts", - "weight": 36, + "weight": 30, "color": "brown", "spoils_in": "180 days", "comestible_type": "FOOD", "symbol": "%", "quench": -5, "healthy": -1, - "calories": 130, + "calories": 192, "description": "A handful of raw hard nuts from a walnut tree, their shells have been removed.", "price": 0, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "material": "nut", "volume": 1, - "fun": -10 + "charges": 4, + "vitamins": [ [ "calcium", 1 ], [ "iron", 1 ] ], + "fun": -1 }, { "type": "COMESTIBLE", "id": "walnut_roasted", "name": "handful of roasted walnuts", "name_plural": "handfuls of roasted walnuts", - "weight": 36, - "color": "brown", - "spoils_in": "180 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "walnut_unshelled", "healthy": 1, - "calories": 130, "description": "A handful of roasted nuts from a walnut tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -256,19 +232,21 @@ "id": "chestnut_unshelled", "name": "handful of shelled chestnuts", "name_plural": "handfuls of shelled chestnuts", - "weight": 36, + "weight": 30, "color": "brown", "spoils_in": "180 days", "comestible_type": "FOOD", "symbol": "%", "quench": -5, "healthy": -1, - "calories": 120, + "calories": 72, "description": "A handful of raw hard nuts from a chestnut tree, their shells have been removed.", "price": 0, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "material": "nut", + "charges": 4, "volume": 1, + "vitamins": [ [ "vitC", 3 ] ], "fun": -10 }, { @@ -276,18 +254,10 @@ "id": "chestnut_roasted", "name": "handful of roasted chestnuts", "name_plural": "handfuls of roasted chestnuts", - "weight": 36, - "color": "brown", - "spoils_in": "180 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "chestnut_unshelled", "healthy": 1, - "calories": 120, "description": "A handful of roasted nuts from a chestnut tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -296,18 +266,10 @@ "id": "acorn_roasted", "name": "handful of roasted acorns", "name_plural": "handfuls of roasted acorns", - "weight": 36, - "color": "brown", - "spoils_in": "240 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "acorns", "healthy": 1, - "calories": 130, "description": "A handful of roasted nuts from a oak tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -316,38 +278,32 @@ "id": "hazelnut_unshelled", "name": "handful of hazelnuts", "name_plural": "handful of shelled hazelnuts", - "weight": 32, + "weight": 30, "color": "brown", "spoils_in": "150 days", "comestible_type": "FOOD", "symbol": "%", "quench": -5, "healthy": -1, - "calories": 120, + "calories": 193, "description": "A handful of raw hard nuts from a hazelnut tree, their shells have been removed.", "price": 0, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "material": "nut", "volume": 1, - "fun": -10 + "charges": 4, + "vitamins": [ [ "calcium", 1 ], [ "iron", 1 ] ], + "fun": -1 }, { "type": "COMESTIBLE", "id": "hazelnut_roasted", "name": "handful of roasted hazelnuts", "name_plural": "handfuls of roasted hazelnuts", - "weight": 32, - "color": "brown", - "spoils_in": "150 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "hazelnut_unshelled", "healthy": 1, - "calories": 120, "description": "A handful of roasted nuts from a hazelnut tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -356,19 +312,21 @@ "id": "hickory_nut_unshelled", "name": "handful of shelled hickory nuts", "name_plural": "handfuls of shelled hickory nuts", - "weight": 36, + "weight": 30, "color": "brown", "spoils_in": "180 days", "comestible_type": "FOOD", "symbol": "%", "quench": -5, "healthy": -1, - "calories": 130, + "calories": 194, "description": "A handful of raw hard nuts from a hickory tree, their shells have been removed.", "price": 0, - "flags": [ "EDIBLE_FROZEN" ], + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "material": "nut", "volume": 1, + "charges": 4, + "vitamins": [ [ "iron", 2 ] ], "fun": -10 }, { @@ -376,18 +334,10 @@ "id": "hickory_nut_roasted", "name": "handful of roasted hickory nuts", "name_plural": "handfuls of roasted hickory nuts", - "weight": 36, - "color": "brown", - "spoils_in": "180 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "hickory_nut_unshelled", "healthy": 1, - "calories": 130, "description": "A handful of roasted nuts from a hickory tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -418,20 +368,22 @@ "id": "acorns", "name": "handful of acorns", "name_plural": "handfuls of acorns", - "weight": 36, + "weight": 30, "color": "brown", "spoils_in": "240 days", "comestible_type": "FOOD", "symbol": "%", "quench": -5, - "healthy": -1, - "calories": 80, + "//": "most acorns contain various amount of tannins, which can make you fairly sick. it also tastes pretty bad.", + "healthy": -5, + "calories": 114, "description": "A handful of acorns, still in their shells. Squirrels like them, but they're not very good for you to eat in this state.", "price": 0, "material": "nut", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "charges": 2, + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "charges": 4, + "//": "no vitamins here", "fun": -20 }, { @@ -439,18 +391,10 @@ "id": "acorn_roasted", "name": "handful of roasted acorns", "name_plural": "handfuls of roasted acorns", - "weight": 36, - "color": "brown", - "spoils_in": "240 days", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -5, + "copy-from": "acorns", "healthy": 1, - "calories": 80, "description": "A handful roasted nuts from an oak tree.", "price": 90, - "material": "nut", - "volume": 1, "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ], "fun": 1 }, @@ -459,16 +403,19 @@ "id": "acorns_cooked", "name": "cooked acorn meal", "name_plural": "cooked acorn meal", - "weight": 212, + "weight": 118, "color": "brown", "spoils_in": "30 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 365, + "calories": 456, "description": "A serving of acorns that have been hulled, chopped, and boiled in water before being thoroughly toasted until dry. Filling and nutritious.", "price": 90, "material": "nut", + "charges": 2, + "vitamins": [ [ "calcium", 1 ], [ "iron", 1 ] ], + "flags": [ "NUTRIENT_OVERRIDE" ], "volume": 1 } ] diff --git a/data/json/items/comestibles/offal_dishes.json b/data/json/items/comestibles/offal_dishes.json index 6b1b89367dce5..271bacd350d67 100644 --- a/data/json/items/comestibles/offal_dishes.json +++ b/data/json/items/comestibles/offal_dishes.json @@ -52,7 +52,7 @@ "description": "Nothing tastier than something that's deep-fried!", "material": [ "flesh", "wheat", "milk" ], "color": "brown", - "weight": 558, + "weight": 58, "volume": 1, "charges": 3, "spoils_in": "3 days", @@ -96,7 +96,9 @@ "description": "Nothing tastier than something that's deep-fried!", "material": [ "flesh", "wheat" ], "color": "brown", + "spoils_in": "1 days", "volume": 1, + "weight": 70, "flag": [ "EATEN_HOT" ], "calories": 310 }, @@ -132,6 +134,7 @@ "material": [ "flesh", "wheat" ], "color": "brown", "volume": 1, + "weight": 250, "flag": [ "EATEN_HOT" ], "calories": 285, "charges": 3, @@ -150,6 +153,7 @@ "material": [ "flesh", "wheat", "veggy" ], "color": "yellow", "volume": 1, + "weight": 180, "charges": 3, "flag": [ "EATEN_HOT" ], "calories": 301, diff --git a/data/json/items/comestibles/other.json b/data/json/items/comestibles/other.json index bbe3b92d86be2..fd839c45014c9 100644 --- a/data/json/items/comestibles/other.json +++ b/data/json/items/comestibles/other.json @@ -34,13 +34,13 @@ "type": "COMESTIBLE", "id": "honeycomb", "name": "honey comb", - "weight": 340, + "weight": 150, "color": "yellow", "use_action": "HONEYCOMB", "comestible_type": "FOOD", "symbol": "%", "quench": 2, - "calories": 174, + "calories": 436, "description": "A large chunk of wax filled with honey. Very tasty.", "price": 3500, "material": "honey", @@ -70,13 +70,13 @@ "name": "royal jelly", "name_plural": "royal jellies", "category": "drugs", - "weight": 110, + "weight": 150, "color": "white", "use_action": "ROYAL_JELLY", "comestible_type": "FOOD", "symbol": "%", "healthy": 10, - "calories": 87, + "calories": 240, "description": "A translucent hexagonal chunk of wax, filled with dense, milky jelly. Delicious, and rich with the most beneficial substances the hive can produce, it is useful for curing all sorts of afflictions.", "price": 20000, "//": "Didn't precisely exist pre-cataclysm, so tough to price.", @@ -244,19 +244,20 @@ "id": "can_beans", "name": "beans", "name_plural": "beans", - "weight": 467, + "weight": 256, "color": "brown", "spoils_in": "2 days", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 347, + "calories": 212, "description": "Canned beans. A staple among canned goods, these are reputedly good for one's coronary health.", "price": 150, "material": "bean", "volume": 1, "flags": [ "EATEN_HOT" ], + "vitamins": [ [ "calcium", 2 ], [ "iron", 6 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -272,13 +273,15 @@ "symbol": "%", "quench": -4, "healthy": -1, - "calories": 9, + "calories": 203, "description": "Dehydrated great northern beans. Tasty and nutritious when cooked, virtually inedible when dry.", "price": 300, "material": "bean", "volume": 1, + "cooks_like": "beans_cooked", "flags": [ "EDIBLE_FROZEN" ], - "charges": 8, + "charges": 6, + "vitamins": [ [ "calcium", 10 ], [ "iron", 4 ] ], "fun": -6 }, { @@ -286,20 +289,21 @@ "id": "beans_cooked", "name": "cooked beans", "name_plural": "cooked beans", - "weight": 292, + "weight": 270, "color": "light_gray", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "quench": 1, "healthy": 1, - "calories": 434, + "calories": 295, "description": "A hearty serving of cooked great northern beans.", "price": 100, "material": "bean", "volume": 1, - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 1, + "vitamins": [ [ "calcium", 2 ], [ "vitB", 8 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -321,6 +325,7 @@ "material": "powder", "volume": 1, "flags": [ "EDIBLE_FROZEN" ], + "calories": 23, "charges": 20, "fun": -5 }, @@ -334,12 +339,12 @@ "description": "Honey, that stuff the bees make. This variant is \"candied honey\", a variant of very thick consistence. This honey won't spoil and is good for your digestion.", "price": 800, "material": "honey", - "weight": 253, + "weight": 51, "volume": 1, "comestible_type": "FOOD", "container": "jar_glass", "quench": 1, - "calories": 69, + "calories": 190, "charges": 5, "healthy": 1, "fun": 2 @@ -349,7 +354,7 @@ "id": "can_tomato", "name": "canned tomato", "name_plural": "canned tomatoes", - "weight": 450, + "weight": 256, "color": "red", "spoils_in": "3 days 18 hours", "container": "can_food", @@ -357,12 +362,13 @@ "symbol": "%", "quench": 3, "healthy": 1, - "calories": 156, + "calories": 82, "description": "Canned tomato. A staple in many pantries, and useful for many recipes.", "price": 350, "material": "tomato", "volume": 1, "stack_size": 2, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 6 ], [ "calcium", 2 ], [ "iron", 4 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { diff --git a/data/json/items/comestibles/protein.json b/data/json/items/comestibles/protein.json index bad7a392ab492..43b3baa9a0e92 100644 --- a/data/json/items/comestibles/protein.json +++ b/data/json/items/comestibles/protein.json @@ -50,7 +50,7 @@ "quench": 40, "healthy": 2, "fun": -1, - "vitamins": [ ], + "vitamins": [ [ "calcium", 7 ] ], "flags": [ "EATEN_COLD" ] }, { @@ -79,11 +79,13 @@ "name": "protein shake", "description": "A thick and tasty beverage made from pure refined protein and nutritious fruit.", "material": "fruit", - "proportional": { "weight": 1.2, "price": 2.0 }, - "relative": { "calories": 50 }, + "calories": 150, "healthy": 4, "fun": 4, - "vitamins": [ [ "vitC", 20 ] ] + "volume": 2, + "charges": 2, + "quench": 20, + "relative": { "vitamins": [ [ "vitC", 20 ] ] } }, { "id": "protein_shake_fortified", diff --git a/data/json/items/comestibles/raw_fruit.json b/data/json/items/comestibles/raw_fruit.json index ee16e699be38e..664e0fbb56037 100644 --- a/data/json/items/comestibles/raw_fruit.json +++ b/data/json/items/comestibles/raw_fruit.json @@ -14,9 +14,10 @@ "description": "An apple a day keeps the doctor away.", "price": 900, "material": "fruit", - "volume": 1, + "volume": "375 ml", "fun": 3, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -33,253 +34,266 @@ "description": "A long, curved yellow fruit in a peel. Some people like using them in desserts. Those people are probably dead.", "price": 120, "material": "fruit", - "volume": 1, + "volume": 2, "fun": 5, + "vitamins": [ [ "vitC", 4 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "orange", "name": "orange", - "weight": 131, + "weight": 140, "color": "light_red", "spoils_in": "21 days", "comestible_type": "FOOD", "symbol": "%", "quench": 8, "healthy": 2, - "calories": 62, + "calories": 69, "description": "Sweet citrus fruit. Also comes in juice form.", "price": 180, "material": "fruit", - "volume": 1, + "volume": "375 ml", "fun": 3, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitA", 2 ], [ "vitC", 33 ], [ "calcium", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "lemon", "name": "lemon", - "weight": 58, + "weight": 84, "color": "yellow", "spoils_in": "21 days", "comestible_type": "FOOD", "symbol": "%", "quench": 5, "healthy": 2, - "calories": 17, + "calories": 24, "description": "Very sour citrus. Can be eaten if you really want.", "price": 120, "material": "fruit", "volume": 1, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 18 ] ], "fun": -4 }, { "type": "COMESTIBLE", "id": "blueberries", - "name": "blueberry", - "name_plural": "blueberries", - "weight": 200, + "name": "handful of blueberries", + "name_plural": "handful of blueberries", + "weight": 156, "color": "blue", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 1, - "calories": 139, + "calories": 89, "description": "They're blue, but that doesn't mean they're sad.", "price": 400, "material": "fruit", "volume": 1, "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitC", 6 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "strawberries", - "name": "strawberry", - "name_plural": "strawberries", - "weight": 200, + "name": "handful of strawberries", + "name_plural": "handful of strawberries", + "weight": 144, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 1, - "calories": 156, + "calories": 46, "description": "Tasty, juicy berry. Often found growing wild in fields.", "price": 400, "material": "fruit", "volume": 1, "fun": 5, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitC", 34 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "cranberries", - "name": "cranberry", - "name_plural": "cranberries", - "weight": 340, + "name": "handful of cranberries", + "name_plural": "handful of cranberries", + "weight": 116, "color": "red", "spoils_in": 640, "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 4, - "calories": 43, + "calories": 54, "description": "Sour red berries. Good for your health.", "price": 150, "material": "fruit", "volume": 1, "charges": 3, + "vitamins": [ [ "vitC", 6 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "raspberries", - "name": "raspberry", - "name_plural": "raspberries", - "weight": 226, + "name": "handful of raspberries", + "name_plural": "handful of raspberries", + "weight": 148, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 2, - "calories": 130, + "calories": 74, "description": "A sweet red berry.", "price": 400, "material": "fruit", "volume": 1, "fun": 4, + "vitamins": [ [ "vitC", 15 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "huckleberries", - "name": "huckleberry", - "name_plural": "huckleberries", - "weight": 200, + "name": "handful of huckleberries", + "name_plural": "handful of huckleberries", + "weight": 150, "color": "blue", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 1, - "calories": 139, + "calories": 56, "description": "Huckleberries, often times confused for blueberries.", "price": 400, "material": "fruit", "volume": 1, "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitC", 1 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "mulberries", - "name": "mulberry", - "name_plural": "mulberries", - "weight": 200, + "name": "handful of mulberries", + "name_plural": "handful of mulberries", + "weight": 148, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 1, - "calories": 139, + "calories": 64, "description": "Mulberries, this red variety is unique to east North America and is described to have the strongest flavor of any variety in the world.", "price": 400, "material": "fruit", "volume": 1, "fun": 4, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitC", 14 ], [ "calcium", 1 ], [ "iron", 3 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "elderberries", - "name": "elderberry", - "name_plural": "elderberries", - "weight": 200, + "name": "handful of elderberries", + "name_plural": "handful of elderberries", + "weight": 153, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": -1, - "calories": 139, + "calories": 112, "description": "Elderberries, toxic when eaten raw but great when cooked.", "price": 400, "material": "fruit", "volume": 1, "fun": -2, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitA", 1 ], [ "vitC", 15 ], [ "calcium", 1 ], [ "iron", 3 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "rose_hips", - "name": "rose hip", - "name_plural": "rose hips", - "weight": 200, + "name": "handful of rose hips", + "name_plural": "handful of rose hips", + "weight": 134, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 1, "healthy": 1, - "calories": 139, + "calories": 217, "description": "The fruit of a pollinated rose flower.", "price": 400, "material": "fruit", "volume": 1, "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitA", 8 ], [ "vitC", 152 ], [ "calcium", 6 ], [ "iron", 2 ] ], "rot_spawn_chance": 5 }, { "type": "COMESTIBLE", "id": "juice_pulp", "name": "juice pulp", - "weight": 100, + "weight": 62, "color": "light_red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": -1, "healthy": 1, - "calories": 130, + "calories": 50, "description": "Left-over from juicing the fruit. Not very tasty, but contains a lot of healthy fiber.", - "price": 50, + "price": 25, "material": "fruit", - "volume": 1, - "charges": 2, + "volume": "50 ml", "rot_spawn": "GROUP_ROTTING_PLANT", + "//": "juice pulp is an arbitrary item, but needed some baseline nutrients for byproducts", + "vitamins": [ [ "vitC", 2 ] ], "rot_spawn_chance": 7 }, { "type": "COMESTIBLE", "id": "pear", "name": "pear", - "weight": 178, + "weight": 148, "color": "yellow", "spoils_in": "4 days", "comestible_type": "FOOD", "symbol": "%", "quench": 7, "healthy": 3, - "calories": 102, + "calories": 84, "description": "A juicy, bell-shaped pear. Yum!", "price": 160, "material": "fruit", "volume": 1, "fun": 4, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -299,106 +313,112 @@ "material": "fruit", "volume": 1, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitA", 4 ], [ "vitC", 20 ], [ "calcium", 1 ] ], "fun": 2 }, { "type": "COMESTIBLE", "id": "cherries", - "name": "cherry", - "name_plural": "cherries", - "weight": 200, + "name": "handful of cherries", + "name_plural": "handful of cherries", + "weight": 146, "color": "red", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 1, - "calories": 122, + "calories": 92, "description": "A red, sweet fruit that grows in trees.", "price": 110, "material": "fruit", "volume": 1, "fun": 3, + "vitamins": [ [ "vitC", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "plums", "name": "plum", - "weight": 200, + "weight": 66, "color": "magenta", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 4, "healthy": 2, - "calories": 165, + "calories": 30, "description": "A handful of large, purple plums. Healthy and good for your digestion.", "price": 200, "material": "fruit", - "volume": 1, + "volume": "66 ml", "fun": 3, + "vitamins": [ [ "vitC", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "grapes", - "name": "grape", - "name_plural": "grapes", - "weight": 300, + "name": "handful of grapes", + "name_plural": "handful of grapes", + "weight": 97, "color": "light_green", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "quench": 5, "healthy": 2, - "calories": 156, + "calories": 165, "description": "A cluster of juicy grapes.", - "price": 150, + "price": 75, "material": "fruit", "volume": 1, - "charges": 2, "fun": 4, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pineapple", "name": "pineapple", - "weight": 250, + "weight": 174, "color": "brown", "spoils_in": "3 days", "comestible_type": "FOOD", "symbol": "%", "quench": 9, "healthy": 3, - "calories": 191, + "calories": 87, "description": "A large, spiky pineapple. A bit sour, though.", "price": 450, "material": "fruit", - "volume": 4, - "charges": 4, + "volume": 6, + "charges": 5, "bashing": 1, "fun": 4, + "vitamins": [ [ "vitC", 22 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "coconut", "name": "coconut", - "weight": 1300, + "weight": 84, "color": "brown", "spoils_in": "360 days", "comestible_type": "FOOD", "symbol": "%", "quench": 2, - "calories": 87, + "calories": 299, "description": "A fruit with a hard and hairy shell.", - "price": 500, + "price": 100, "material": "fruit", - "volume": 1, + "volume": 8, "bashing": 2, + "charges": 5, + "vitamins": [ [ "iron", 3 ] ], "fun": 1 }, { @@ -406,178 +426,195 @@ "id": "peach", "name": "peach", "name_plural": "peaches", - "weight": 150, + "weight": 163, "color": "yellow", "spoils_in": "3 days", "comestible_type": "FOOD", "symbol": "%", "quench": 4, "healthy": 1, - "calories": 59, + "calories": 63, "description": "This fruit's large pit is surrounded by its tasty flesh.", "price": 140, "material": "fruit", "volume": 1, "fun": 4, + "vitamins": [ [ "vitC", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "watermelon", "name": "watermelon", - "weight": 600, + "weight": 161, "color": "green", "spoils_in": "7 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 28, + "//": "yes, it really does have that much water in it", "healthy": 1, - "calories": 130, + "calories": 48, "description": "A fruit, bigger than your head. It is very juicy!", - "price": 1000, + "price": 400, "material": "fruit", - "volume": 12, - "charges": 8, + "volume": 20, + "charges": 20, "bashing": 2, "flags": [ "EATEN_COLD", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "melon", "name": "melon", - "weight": 300, + "//": "based on a canteloupe", + "weight": 165, "color": "light_green", "spoils_in": "7 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 4, "healthy": 1, - "calories": 78, + "calories": 54, "description": "A large and very sweet fruit.", - "price": 1000, + "price": 39, "material": "fruit", - "volume": 4, - "charges": 8, + "volume": 5, + "charges": 5, "bashing": 1, "flags": [ "EATEN_COLD", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "vitA", 7 ], [ "vitC", 16 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "blackberries", - "name": "blackberry", - "name_plural": "blackberries", - "weight": 226, + "name": "handful of blackberries", + "name_plural": "handful of blackberries", + "weight": 166, "color": "blue", "spoils_in": "2 days 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 5, - "calories": 130, + "calories": 86, "description": "A darker cousin of raspberry.", "price": 400, "material": "fruit", "volume": 1, "fun": 4, + "vitamins": [ [ "vitC", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "mango", "name": "mango", - "weight": 336, + "weight": 174, "color": "red", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 1, - "calories": 201, + "calories": 105, "description": "A fleshy fruit with large pit.", "price": 180, "material": "fruit", - "volume": 1, + "//": "serving size is 250 ml of edible material, extra volume is the pit.", + "volume": 4, + "charges": 2, "fun": 5, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 17 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pomegranate", "name": "pomegranate", - "weight": 282, + "weight": 184, "color": "red", "spoils_in": 336, "comestible_type": "FOOD", "symbol": "%", "quench": 12, "healthy": 2, - "calories": 233, + "calories": 153, "description": "Under this pomegranate's spongy skin lies hundreds of fleshy seeds.", "price": 190, "material": "fruit", - "volume": 1, + "volume": 2, + "charges": 2, "fun": 7, + "vitamins": [ [ "vitC", 4 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "papaya", "name": "papaya", - "weight": 200, + "weight": 243, "color": "yellow", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "quench": 8, "healthy": 2, - "calories": 182, + "calories": 104, "description": "A very sweet and soft tropical fruit.", "price": 250, "material": "fruit", - "volume": 1, + "volume": 3, + "charges": 3, "fun": 5, + "vitamins": [ [ "vitA", 3 ], [ "vitC", 39 ], [ "calcium", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "kiwi", "name": "kiwi", - "weight": 100, + "weight": 142, "color": "brown", "spoils_in": "7 days", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 2, - "calories": 95, + "calories": 501, "description": "A large, brown and fuzzy-skinned berry. Its delicious insides are green.", "price": 250, "material": "fruit", "volume": 1, "fun": 3, + "vitamins": [ [ "vitC", 1 ], [ "calcium", 2 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "apricot", - "name": "apricot", - "weight": 150, + "name": "handful of apricots", + "name_plural": "handful of apricots", + "//": "a handful of apricots is about 4.6 apricots", + "weight": 164, "color": "yellow", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 1, - "calories": 139, + "calories": 179, "description": "A smooth-skinned fruit, related to the peach.", "price": 140, "material": "fruit", "volume": 1, "fun": 3, + "vitamins": [ [ "vitA", 4 ], [ "vitC", 4 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" } ] diff --git a/data/json/items/comestibles/raw_veggy.json b/data/json/items/comestibles/raw_veggy.json index 8a7a7dc8765ac..f2dac94a1e0c3 100644 --- a/data/json/items/comestibles/raw_veggy.json +++ b/data/json/items/comestibles/raw_veggy.json @@ -3,19 +3,20 @@ "type": "COMESTIBLE", "id": "barley", "name": "barley", - "weight": 132, + "weight": 211, "color": "brown", "comestible_type": "FOOD", "symbol": ",", "quench": -10, "healthy": 1, - "calories": 87, + "calories": 743, "description": "Grainy cereal used for malting. A staple of brewing everywhere. It can also be ground into flour.", "price": 20, "material": "veggy", "volume": 4, "flags": [ "EDIBLE_FROZEN" ], "charges": 4, + "vitamins": [ [ "calcium", 1 ], [ "iron", 7 ] ], "fun": -15 }, { @@ -39,18 +40,19 @@ "id": "broccoli", "name": "broccoli", "name_plural": "broccoli", - "weight": 170, + "weight": 96, "color": "green", "spoils_in": "6 days 16 hours", "comestible_type": "FOOD", "symbol": "%", "healthy": 2, - "calories": 260, + "calories": 66, "description": "It's a bit tough, but quite delicious.", "price": 400, "material": "veggy", "volume": 1, "flags": [ "EATEN_HOT", "SMOKABLE" ], + "vitamins": [ [ "vitA", 1 ], [ "vitC", 23 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -58,39 +60,42 @@ "id": "buckwheat", "name": "buckwheat", "name_plural": "buckwheat", - "weight": 144, + "weight": 180, "color": "brown", "comestible_type": "FOOD", "symbol": ",", "quench": -8, "healthy": 1, - "calories": 191, + "calories": 616, "description": "Seeds from a wild buckwheat plant. Not particularly good to eat in their raw state, they are commonly cooked or ground into flour.", "price": 90, "material": "veggy", "volume": 2, "flags": [ "EDIBLE_FROZEN" ], "charges": 2, + "vitamins": [ [ "iron", 6 ] ], "fun": -10 }, { "type": "COMESTIBLE", "id": "cabbage", "name": "cabbage", - "weight": 235, + "weight": 139, "color": "white", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "quench": 2, "healthy": 1, - "calories": 130, - "description": "A hearty head of crisp white cabbage.", + "calories": 35, + "description": "Crisp white cabbage.", "price": 100, "material": "veggy", - "volume": 1, + "volume": 9, + "charges": 9, "fun": -2, "flags": [ "SMOKABLE" ], + "vitamins": [ [ "vitC", 13 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -98,20 +103,21 @@ "id": "carrot", "name": "carrot", "name_plural": "carrots", - "weight": 80, + "weight": 68, "color": "light_red", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 43, + "calories": 28, "description": "A healthy root vegetable. Rich in vitamin A!", "price": 200, "material": "veggy", - "volume": 1, + "volume": "125 ml", "charges": 6, "fun": -1, "flags": [ "SMOKABLE" ], + "vitamins": [ [ "vitA", 15 ], [ "vitC", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -119,18 +125,19 @@ "id": "cattail_rhizome", "name": "cattail rhizome", "name_plural": "cattail rhizomes", - "weight": 418, + "weight": 209, "color": "brown", "spoils_in": "3 days 8 hours", "comestible_type": "FOOD", "symbol": "%", - "calories": 191, + "calories": 334, "description": "A stout branching rhizome from a cattail plant. Its crisp white flesh is very starchy and fibrous, but you really ought to cook it before you attempt to eat it.", "price": 0, "material": "veggy", - "volume": 2, + "volume": 1, "fun": -12, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "iron", 3 ] ], "rot_spawn_chance": 3 }, { @@ -138,36 +145,38 @@ "id": "cattail_stalk", "name": "cattail stalk", "name_plural": "cattail stalks", - "weight": 146, + "weight": 100, "color": "green", "spoils_in": "3 days 8 hours", "comestible_type": "FOOD", "symbol": "%", - "calories": 43, + "calories": 25, "description": "A stiff green stalk from a cattail plant. It is starchy and fibrous, but it would be much better if you cooked it.", "price": 0, "material": "veggy", "volume": 1, "fun": -8, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn_chance": 3 }, { "type": "COMESTIBLE", "id": "celery", "name": "celery", - "weight": 80, + "weight": 107, "color": "light_green", "spoils_in": "6 days 6 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, - "calories": 43, + "calories": 15, "description": "Neither tasty nor very nutritious, but it goes well with salad.", "price": 200, "material": "veggy", "volume": 1, "flags": [ "FREEZERBURN", "SMOKABLE" ], + "vitamins": [ [ "vitC", 1 ], [ "calcium", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -175,19 +184,20 @@ "id": "corn", "name": "corn", "name_plural": "corn", - "weight": 283, + "weight": 153, "color": "light_green", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 132, "description": "Delicious golden kernels.", "price": 170, "//": "Thinking this is a single ear here.", "material": "veggy", - "volume": 1, + "volume": 3, "flags": [ "EATEN_HOT" ], + "vitamins": [ [ "vitC", 3 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -214,37 +224,40 @@ "type": "COMESTIBLE", "id": "chili_pepper", "name": "chili pepper", - "weight": 114, + "weight": 53, "color": "red", "spoils_in": "30 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 43, + "calories": 21, "description": "Spicy chili pepper.", "price": 50, "material": "veggy", "volume": 1, + "charges": 3, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 20 ] ], "fun": -2 }, { "type": "COMESTIBLE", "id": "cucumber", "name": "cucumber", - "weight": 150, + "weight": 330, "color": "green", "spoils_in": "6 days 6 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 7, "healthy": 1, - "calories": 95, - "description": "Come from the gourd family, not tasty but very juicy.", + "calories": 48, + "description": "Comes from the gourd family. Not tasty but very juicy.", "price": 300, "material": "veggy", - "volume": 1, + "volume": 3, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -256,7 +269,7 @@ "spoils_in": "30 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 87, + "calories": 60, "description": "The starchy root of a dahlia flower. When cooked, it is delicious.", "price": 100, "material": "veggy", @@ -285,20 +298,21 @@ "type": "COMESTIBLE", "id": "garlic", "name": "garlic bulb", - "weight": 120, + "weight": 14, "color": "white", "spoils_in": "360 days", "comestible_type": "FOOD", "symbol": "%", "quench": -18, "healthy": 1, - "calories": 156, + "calories": 21, "description": "A pungent garlic bulb. Popular as a seasoning for its strong flavor. Can be disassembled to cloves.", "price": 600, "material": "garlic", - "volume": 1, + "volume": "25 ml", "fun": -18, - "fun_comment": "Who in their right mind would eat an entire garlic bulb raw?" + "vitamins": [ [ "vitC", 1 ] ], + "//": "Who in their right mind would eat an entire garlic bulb raw?" }, { "type": "COMESTIBLE", @@ -324,18 +338,18 @@ "type": "COMESTIBLE", "id": "lettuce", "name": "lettuce", - "weight": 224, + "weight": 38, "color": "light_green", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "quench": 2, - "calories": 113, + "calories": 6, "description": "A crisp head of iceberg lettuce.", "price": 100, "material": "veggy", - "volume": 3, - "charges": 4, + "volume": 10, + "charges": 10, "flags": [ "FREEZERBURN", "SMOKABLE" ], "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -360,20 +374,21 @@ "type": "COMESTIBLE", "id": "onion", "name": "onion", - "weight": 114, + "weight": 150, "color": "white", "spoils_in": "30 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 43, + "calories": 60, "description": "An aromatic onion used in cooking. Cutting these up can make your eyes sting!", "price": 50, "material": "veggy", "volume": 1, "fun": -1, "flags": [ "FREEZERBURN", "SMOKABLE" ], - "fun_comment": "Raw onions probably aren't all that tasty to most people.", + "//": "Raw onions probably aren't all that tasty to most people.", + "vitamins": [ [ "vitC", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -405,34 +420,36 @@ "comestible_type": "FOOD", "symbol": "%", "healthy": -2, - "calories": 69, + "calories": 162, "description": "Mildly toxic and not very tasty raw. When cooked, it is delicious.", "price": 90, "material": "veggy", - "volume": 1, + "volume": "375 ml", "fun": -3, "flags": [ "FREEZERBURN", "SMOKABLE" ], + "vitamins": [ [ "vitC", 11 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pumpkin", "name": "pumpkin", - "weight": 600, + "weight": 123, "color": "light_red", "spoils_in": "60 days", "comestible_type": "FOOD", "symbol": "%", "quench": 5, "healthy": 2, - "calories": 191, + "calories": 122, "description": "A large vegetable, about the size of your head. Not very tasty raw, but is great for cooking.", - "price": 750, + "price": 250, "material": "veggy", "volume": 12, - "charges": 8, + "charges": 12, "bashing": 2, "fun": -1, + "vitamins": [ [ "vitA", 14 ], [ "vitC", 3 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -440,54 +457,54 @@ "id": "raw_dandelion", "name": "handful of dandelions", "name_plural": "handfuls of dandelions", - "weight": 96, + "weight": 58, "color": "yellow", "spoils_in": "1 day 6 hours", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 35, + "calories": 26, "description": "A collection of freshly picked yellow dandelions. In their current raw state they are quite bitter.", "price": 60, "material": "veggy", "volume": 1, "stack_size": 4, - "charges": 2, "fun": -12, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitA", 8 ], [ "vitC", 6 ], [ "calcium", 2 ], [ "iron", 2 ] ], "rot_spawn_chance": 2 }, { "type": "COMESTIBLE", "id": "rhubarb", "name": "rhubarb", - "weight": 300, + "weight": 129, "color": "red", "spoils_in": "6 days 16 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 3, "healthy": 3, - "calories": 69, + "calories": 27, "description": "Sour stems of the rhubarb plant, often used in baking pies.", "price": 410, "material": "veggy", "volume": 1, - "charges": 4, + "vitamins": [ [ "vitC", 2 ], [ "calcium", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "sugar_beet", "name": "sugar beet", - "weight": 310, + "weight": 143, "color": "brown", "spoils_in": "95 days", "stim": 1, "comestible_type": "FOOD", "symbol": "%", - "calories": 43, + "calories": 62, "description": "This fleshy root is ripe and flowing with sugars; just takes some processing to extract them.", "price": 50, "material": "veggy", @@ -495,6 +512,7 @@ "charges": 4, "fun": -10, "rot_spawn": "GROUP_ROTTING_PLANT", + "vitamins": [ [ "vitC", 2 ], [ "iron", 1 ] ], "rot_spawn_chance": 8 }, { @@ -523,38 +541,41 @@ "id": "tomato", "name": "tomato", "name_plural": "tomatoes", - "weight": 183, + "weight": 212, "color": "red", "spoils_in": "3 days 18 hours", "comestible_type": "FOOD", "symbol": "%", - "quench": 3, + "quench": 28, "healthy": 1, - "calories": 156, + "calories": 32, "description": "Juicy red tomato. It gained popularity in Italy after being brought back from the New World.", "price": 90, "material": "tomato", - "volume": 1, + "volume": "375 ml", "flags": [ "SMOKABLE" ], + "vitamins": [ [ "vitC", 5 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "veggy", "name": "plant marrow", - "weight": 238, + "weight": 119, "color": "green", "spoils_in": "3 days 8 hours", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 34, "description": "A nutrient rich chunk of plant matter, could be eaten raw or cooked.", "price": 600, "material": "veggy", "flags": [ "TRADER_AVOID", "SMOKABLE" ], "volume": 1, "rot_spawn": "GROUP_ROTTING_PLANT", + "//": "average of broccoli, cabbage, carrot, cattail_stalk, celery, chili_pepper, cucumber, lettuce, onion, pumpkin, raw_dandelion, rhubarb, sugar_beet, tomato, zucchini", + "vitamins": [ [ "vitA", 4 ], [ "vitC", 9 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn_chance": 5 }, { @@ -562,59 +583,40 @@ "id": "veggy_tainted", "category": "other", "name": "tainted veggie", - "weight": 238, - "color": "green", + "copy-from": "veggy", "spoils_in": "10 hours", "use_action": "POISON", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 174, "description": "Vegetable that looks poisonous. You could eat it, but it will poison you.", - "price": 0, - "material": "veggy", - "flags": [ "TRADER_AVOID", "SMOKABLE" ], - "volume": 1, - "rot_spawn": "GROUP_ROTTING_PLANT" + "price": 0 }, { "type": "COMESTIBLE", "id": "veggy_wild", "name": "wild vegetables", "name_plural": "wild vegetables", - "weight": 238, - "color": "green", - "spoils_in": "3 days 8 hours", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 217, + "copy-from": "veggy", "description": "An assortment of edible-looking wild plants. Most are quite bitter-tasting. Some are inedible until cooked.", "//": "In real life many root vegetables are mildly toxic until cooked", - "price": 60, - "material": "veggy", - "volume": 1, "fun": -10, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "rot_spawn": "GROUP_ROTTING_PLANT", - "rot_spawn_chance": 5 + "flags": [ "FREEZERBURN", "SMOKABLE" ] }, { "type": "COMESTIBLE", "id": "zucchini", "name": "zucchini", - "weight": 180, + "weight": 196, "color": "light_green", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 33, "description": "A tasty summer squash.", "price": 300, "material": "veggy", "volume": 1, "flags": [ "EATEN_HOT", "SMOKABLE" ], + "vitamins": [ [ "vitC", 9 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { diff --git a/data/json/items/comestibles/sandwich.json b/data/json/items/comestibles/sandwich.json index 9ae61a32df2f3..86de081ae2876 100644 --- a/data/json/items/comestibles/sandwich.json +++ b/data/json/items/comestibles/sandwich.json @@ -4,7 +4,7 @@ "id": "sandwich_cheese_grilled", "name": "grilled cheese sandwich", "name_plural": "grilled cheese sandwiches", - "weight": 188, + "weight": 106, "color": "brown", "spoils_in": "1 day 10 hours", "stim": 1, @@ -12,13 +12,14 @@ "comestible_type": "FOOD", "symbol": "%", "quench": 1, - "calories": 608, + "calories": 366, "description": "A delicious grilled cheese sandwich, because everything is better with melted cheese.", "price": 550, "material": [ "milk", "wheat" ], "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 10, + "vitamins": [ [ "vitA", 4 ], [ "calcium", 12 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -26,7 +27,7 @@ "id": "sandwich_deluxe", "name": "deluxe sandwich", "name_plural": "deluxe sandwiches", - "weight": 340, + "weight": 292, "color": "brown", "spoils_in": "1 day 8 hours", "stim": 1, @@ -35,13 +36,14 @@ "symbol": "%", "quench": 1, "healthy": 1, - "calories": 330, + "calories": 449, "description": "A sandwich of meat, vegetables, and cheese with condiments. Tasty and nutritious!", "price": 1200, "material": [ "flesh", "veggy", "wheat", "milk" ], - "volume": 1, - "charges": 4, + "volume": 6, + "charges": 2, "fun": 12, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 6 ], [ "calcium", 2 ], [ "iron", 12 ], [ "vitB", 93 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -49,7 +51,7 @@ "id": "sandwich_cucumber", "name": "cucumber sandwich", "name_plural": "cucumber sandwiches", - "weight": 187, + "weight": 500, "color": "light_green", "spoils_in": "1 day 12 hours", "container": "wrapper", @@ -57,14 +59,14 @@ "symbol": "%", "quench": 2, "healthy": 1, - "calories": 226, + "calories": 516, "description": "A refreshing cucumber sandwich. Not very filling, but quite tasty.", - "price": 200, - "volume": 1, - "charges": 2, + "price": 400, + "volume": 5, "material": [ "wheat", "veggy" ], "flags": [ "EATEN_COLD" ], "fun": 8, + "vitamins": [ [ "vitC", 2 ], [ "calcium", 4 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -72,19 +74,20 @@ "id": "sandwich_cheese", "name": "cheese sandwich", "name_plural": "cheese sandwiches", - "weight": 187, + "weight": 106, "color": "brown", "spoils_in": "1 day 12 hours", "stim": 1, "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 564, + "calories": 366, "description": "A simple cheese sandwich.", "price": 500, "material": [ "milk", "wheat" ], - "volume": 1, + "volume": 2, "fun": 8, + "vitamins": [ [ "vitA", 4 ], [ "calcium", 12 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -92,18 +95,18 @@ "id": "sandwich_jam", "name": "jam sandwich", "name_plural": "jam sandwiches", - "weight": 189, + "weight": 97, "color": "brown", "spoils_in": "1 day 13 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": 1, - "calories": 434, + "calories": 262, "description": "A delicious jam sandwich.", "price": 200, "material": [ "fruit", "wheat" ], - "volume": 1, + "volume": 2, "fun": 15, "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -112,7 +115,7 @@ "id": "sandwich_honey", "name": "honey sandwich", "name_plural": "honey sandwiches", - "weight": 189, + "weight": 192, "color": "brown", "spoils_in": "10 days", "container": "wrapper", @@ -120,12 +123,13 @@ "symbol": "%", "quench": 1, "healthy": 1, - "calories": 279, + "calories": 535, "description": "A delicious honey sandwich.", "price": 500, "material": [ "honey", "wheat" ], - "volume": 1, + "volume": 2, "fun": 10, + "vitamins": [ [ "calcium", 2 ], [ "iron", 6 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -133,18 +137,14 @@ "id": "sandwich_sauce", "name": "boring sandwich", "name_plural": "boring sandwiches", - "weight": 187, + "copy-from": "bread", + "proprtional": { "weight": 2, "calories": 2, "volume": 2 }, "color": "brown", "spoils_in": "1 day 22 hours", "container": "wrapper", - "comestible_type": "FOOD", - "symbol": "%", "quench": 1, - "calories": 417, "description": "A simple sauce sandwich. Not very filling but beats eating just the bread.", "price": 200, - "material": "wheat", - "volume": 1, "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -153,7 +153,7 @@ "id": "sandwich_veggy", "name": "vegetable sandwich", "name_plural": "vegetable sandwiches", - "weight": 190, + "weight": 289, "color": "light_gray", "spoils_in": "2 days", "container": "wrapper", @@ -161,14 +161,14 @@ "symbol": "%", "quench": 1, "healthy": 1, - "calories": 234, + "calories": 502, "description": "Bread and vegetables, that's it.", "price": 800, "material": [ "veggy", "wheat" ], - "volume": 1, - "charges": 3, + "volume": 3, "flags": [ "EATEN_COLD" ], "fun": 1, + "vitamins": [ [ "vitA", 4 ], [ "vitC", 9 ], [ "calcium", 3 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -176,19 +176,20 @@ "id": "sandwich_t", "name": "meat sandwich", "name_plural": "meat sandwiches", - "weight": 186, + "weight": 233, "color": "light_gray", "spoils_in": "1 day 12 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 260, + "calories": 433, "description": "Bread and meat, that's it.", "price": 900, "material": [ "flesh", "wheat" ], - "volume": 1, - "charges": 3, + "volume": 4, + "charges": 2, "fun": 2, + "vitamins": [ [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 12 ], [ "vitB", 93 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -196,19 +197,20 @@ "id": "sandwich_pb", "name": "peanut butter sandwich", "name_plural": "peanut butter sandwiches", - "weight": 186, + "weight": 204, "color": "brown", "spoils_in": "1 day 12 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": -10, - "calories": 260, + "calories": 658, "description": "Some peanut butter smothered between two pieces of bread. Not very filling and will stick to the roof of your mouth like glue.", "price": 250, "material": "wheat", "volume": 1, "fun": 3, + "vitamins": [ [ "calcium", 2 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -216,19 +218,20 @@ "id": "sandwich_pbj", "name": "PB&J sandwich", "name_plural": "PB&J sandwiches", - "weight": 186, + "weight": 102, "color": "brown", "spoils_in": "1 day 12 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": 8, - "calories": 391, + "calories": 378, "description": "A delicious peanut butter and jelly sandwich. It reminds you of the times your mother would make you lunch.", "price": 175, "material": [ "fruit", "wheat" ], - "volume": 1, + "volume": 2, "fun": 6, + "vitamins": [ [ "calcium", 1 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -236,19 +239,20 @@ "id": "sandwich_pbh", "name": "PB&H sandwich", "name_plural": "PB&H sandwiches", - "weight": 186, + "weight": 97, "color": "brown", "spoils_in": "1 day 12 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": 8, - "calories": 391, + "calories": 365, "description": "Some damned fool put honey on this peanut butter sandwich, who in their right mind- oh wait this is pretty good.", "price": 175, "material": [ "wheat", "honey" ], - "volume": 1, + "volume": 2, "fun": 6, + "vitamins": [ [ "calcium", 2 ], [ "iron", 4 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -256,19 +260,20 @@ "id": "sandwich_pbm", "name": "PB&M sandwich", "name_plural": "PB&M sandwiches", - "weight": 186, + "weight": 225, "color": "brown", "spoils_in": "1 day 12 hours", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", "quench": 8, - "calories": 391, + "calories": 712, "description": "Who knew you could mix maple syrup and peanut butter to create yet another different sandwich?", "price": 175, "material": "wheat", - "volume": 1, + "volume": 2, "fun": 6, + "vitamins": [ [ "calcium", 3 ], [ "iron", 7 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -276,20 +281,19 @@ "id": "fish_sandwich", "name": "fish sandwich", "name_plural": "fish sandwiches", - "weight": 222, + "weight": 201, "color": "yellow", "spoils_in": "1 day", "container": "wrapper", "comestible_type": "FOOD", "symbol": "%", - "calories": 226, + "calories": 561, "description": "A delicious fish sandwich.", "price": 800, "material": [ "flesh", "wheat" ], - "volume": 1, - "charges": 4, - "//": "Four portions seems like a lot, but given the amount of ingredients needed, it's a good perk.", + "volume": 3, "fun": 14, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 1 ], [ "calcium", 5 ], [ "iron", 4 ] ], "rot_spawn": "GROUP_CARRION", "rot_spawn_chance": 5 }, @@ -297,7 +301,7 @@ "type": "COMESTIBLE", "id": "blt", "name": "BLT", - "weight": 250, + "weight": 220, "color": "brown", "spoils_in": "2 days 12 hours", "stim": 1, @@ -305,14 +309,15 @@ "comestible_type": "FOOD", "symbol": "%", "quench": 2, - "calories": 286, + "calories": 447, "description": "A bacon, lettuce, and tomato sandwich on toasted bread.", "price": 400, "material": [ "flesh", "veggy", "wheat", "tomato" ], - "volume": 1, - "charges": 4, + "volume": 4, + "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 5, + "vitamins": [ [ "vitA", 2 ], [ "vitC", 2 ], [ "calcium", 2 ], [ "iron", 4 ], [ "vitB", 5 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" } ] diff --git a/data/json/items/comestibles/seed.json b/data/json/items/comestibles/seed.json index 436808ad3ac86..e41e2ebc0345c 100644 --- a/data/json/items/comestibles/seed.json +++ b/data/json/items/comestibles/seed.json @@ -15,6 +15,7 @@ "symbol": ".", "color": "brown", "rot_spawn": "GROUP_CROPS_GENERAL", + "flags": "NUTRIENT_OVERRIDE", "rot_spawn_chance": 2 }, { @@ -268,13 +269,13 @@ "symbol": "%", "quench": -3, "healthy": 1, - "calories": 26, + "calories": 4, "description": "Cloves of garlic. Useful as a seasoning, or for planting.", "price": 50, "charges": 6, "stack_size": 6, "material": "garlic", - "volume": 1, + "volume": "150 ml", "fun": -3, "seed_data": { "plant_name": "garlic", "fruit": "garlic", "byproducts": [ "withered" ], "grow": "65 days" } }, @@ -391,14 +392,16 @@ "copy-from": "seed", "name": "raw beans", "name_plural": "raw beans", - "weight": 210, + "weight": 194, "symbol": "%", "healthy": -2, - "calories": 122, + "calories": 56, "description": "Raw, uncooked beans. They are mildly toxic in this form, but you could cook them to make them tasty. Alternatively, you could plant them.", "price": 90, "fun": -1, - "flags": [ "SMOKABLE" ], + "cooks_like": "beans_cooked", + "flags": [ "SMOKABLE", "NUTRIENT_OVERRIDE" ], + "vitamins": [ [ "iron", 2 ], [ "vitC", 20 ] ], "seed_data": { "plant_name": "beans", "fruit": "raw_beans", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -565,7 +568,7 @@ "copy-from": "seed_mushroom_base", "name": "mushroom spores", "name_plural": "mushroom spores", - "flags": "HIDDEN_HALLU", + "flags": [ "HIDDEN_HALLU", "NUTRIENT_OVERRIDE" ], "seed_data": { "plant_name": "mushroom", "fruit": "mushroom_magic", "grow": "91 days" } }, { @@ -574,7 +577,7 @@ "copy-from": "seed_mushroom_base", "name": "mushroom spores", "name_plural": "mushroom spores", - "flags": "HIDDEN_POISON", + "flags": [ "HIDDEN_POISON", "NUTRIENT_OVERRIDE" ], "seed_data": { "plant_name": "mushroom", "fruit": "mushroom_poison", "grow": "91 days" } }, { @@ -685,29 +688,23 @@ "comestible_type": "FOOD", "addiction_type": "caffeine", "addiction_potential": 1, + "calories": 549, "volume": 1, + "vitamins": [ [ "calcium", 4 ], [ "iron", 8 ] ], "flags": [ "EDIBLE_FROZEN" ], "stack_size": 40, - "weight": 1 + "weight": 106 }, { "type": "COMESTIBLE", "id": "roasted_coffee_bean", + "copy-from": "coffee_bean", "category": "other", "container": "bag_plastic", - "price": 50, - "material": "veggy", "name": "roasted coffee beans", "name_plural": "roasted coffee beans", - "symbol": ".", - "color": "brown", "description": "Some roasted coffee beans, can be ground into powder.", - "comestible_type": "FOOD", "addiction_type": "caffeine", - "addiction_potential": 1, - "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], - "stack_size": 40, - "weight": 1 + "flags": [ "EDIBLE_FROZEN" ] } ] diff --git a/data/json/items/comestibles/soup.json b/data/json/items/comestibles/soup.json index f70e7e94c6633..1d875fb4d4898 100644 --- a/data/json/items/comestibles/soup.json +++ b/data/json/items/comestibles/soup.json @@ -3,14 +3,14 @@ "type": "COMESTIBLE", "id": "broth", "name": "broth", - "weight": 250, + "weight": 253, "color": "yellow", "spoils_in": "6 days 16 hours", "container": "can_food", "comestible_type": "DRINK", "symbol": "~", "quench": 30, - "calories": 347, + "calories": 90, "description": "Vegetable stock. Tasty and fairly nutritious.", "price": 350, "material": "veggy", @@ -23,20 +23,20 @@ "type": "COMESTIBLE", "id": "broth_bone", "name": "bone broth", - "weight": 250, + "weight": 267, "color": "yellow", "spoils_in": "6 days 16 hours", "container": "can_food", "comestible_type": "DRINK", "symbol": "~", "quench": 30, - "calories": 174, + "calories": 43, "description": "A tasty and nutritious broth made from bones.", "price": 350, "material": "bone", "volume": 1, "phase": "liquid", - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 10 }, { @@ -51,7 +51,7 @@ "type": "COMESTIBLE", "id": "soup_veggy", "name": "vegetable soup", - "weight": 125, + "weight": 254, "color": "red", "spoils_in": "5 days", "container": "can_food", @@ -59,21 +59,21 @@ "symbol": "~", "quench": 8, "healthy": 1, - "calories": 200, + "calories": 84, "description": "A nutritious and delicious hearty vegetable soup.", "price": 400, "material": "veggy", "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 10 ], [ "vitC", 1 ], [ "iron", 1 ] ], "fun": 1 }, { "type": "COMESTIBLE", "id": "soup_meat", "name": "meat soup", - "weight": 125, + "weight": 253, "color": "red", "spoils_in": "5 days", "container": "can_food", @@ -81,21 +81,21 @@ "symbol": "~", "quench": 8, "healthy": 1, - "calories": 347, + "calories": 257, "description": "A nutritious and delicious hearty meat soup.", "price": 400, "material": "flesh", "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 20 ], [ "vitC", 9 ], [ "iron", 3 ], [ "vitB", 5 ] ], "fun": 1 }, { "type": "COMESTIBLE", "id": "soup_fish", "name": "fish soup", - "weight": 125, + "weight": 265, "color": "light_gray", "spoils_in": "5 days", "container": "can_food", @@ -103,14 +103,14 @@ "symbol": "~", "quench": 8, "healthy": 1, - "calories": 330, + "calories": 111, "description": "A nutritious and delicious hearty fish soup.", "price": 400, "material": "flesh", "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 3 ], [ "vitC", 7 ], [ "iron", 1 ], [ "calcium", 1 ], [ "vitB", 5 ] ], "fun": 1 }, { @@ -118,7 +118,7 @@ "id": "curry_veggy", "name": "curry", "name_plural": "curries", - "weight": 288, + "weight": 263, "color": "red", "spoils_in": "5 days", "container": "can_food", @@ -126,14 +126,14 @@ "symbol": "~", "quench": 13, "healthy": 1, - "calories": 304, + "calories": 209, "description": "Spicy, and filled with bits of peppers. It's pretty good.", "price": 750, "material": "veggy", "volume": 1, "phase": "liquid", - "charges": 2, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 42 ], [ "vitC", 8 ], [ "iron", 3 ], [ "calcium", 1 ] ], "fun": 5 }, { @@ -149,7 +149,7 @@ "symbol": "~", "quench": 13, "healthy": 1, - "calories": 434, + "calories": 381, "description": "Spicy, and filled with bits of peppers and meat! It's pretty good.", "price": 750, "material": [ "flesh", "veggy" ], @@ -157,13 +157,14 @@ "phase": "liquid", "charges": 2, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 4 ], [ "vitC", 6 ], [ "iron", 6 ], [ "calcium", 1 ], [ "vitB", 5 ] ], "fun": 8 }, { "type": "COMESTIBLE", "id": "soup_woods", "name": "woods soup", - "weight": 125, + "weight": 250, "color": "red", "spoils_in": "5 days", "container": "can_food", @@ -177,14 +178,15 @@ "material": [ "flesh", "veggy" ], "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 20 ], [ "vitC", 9 ], [ "iron", 3 ], [ "vitB", 5 ] ], "fun": 1 }, { "type": "COMESTIBLE", "id": "soup_human", "copy-from": "soup_meat", + "calories": 550, "name": "sap soup", "description": "A soup made from someone who is a far better meal than person.", "material": "hflesh" @@ -193,7 +195,7 @@ "type": "COMESTIBLE", "id": "soup_chicken", "name": "chicken noodle soup", - "weight": 288, + "weight": 261, "color": "light_gray", "spoils_in": "5 days", "container": "can_food", @@ -201,21 +203,21 @@ "symbol": "~", "quench": 15, "healthy": 2, - "calories": 269, + "calories": 65, "description": "Chicken chunks and noodles swimming in a salty broth. Rumored to help cure colds.", "price": 580, "material": [ "flesh", "wheat" ], "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 2 ], [ "iron", 2 ] ], "fun": 2 }, { "type": "COMESTIBLE", "id": "soup_mushroom", "name": "mushroom soup", - "weight": 288, + "weight": 266, "color": "light_gray", "spoils_in": "5 days", "container": "can_food", @@ -223,7 +225,7 @@ "symbol": "~", "quench": 15, "healthy": 1, - "calories": 174, + "calories": 211, "description": "A mushy, gray semi-liquid soup made from mushrooms.", "price": 450, "material": "mushroom", @@ -237,7 +239,7 @@ "type": "COMESTIBLE", "id": "soup_tomato", "name": "tomato soup", - "weight": 288, + "weight": 257, "color": "red", "spoils_in": "6 days 16 hours", "container": "can_food", @@ -245,13 +247,14 @@ "symbol": "~", "quench": 15, "healthy": 1, - "calories": 87, + "calories": 90, "description": "It smells of tomatoes. Not very filling, but it goes well with grilled cheese.", "price": 400, "material": "tomato", "volume": 1, "phase": "liquid", "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 1 ], [ "vitC", 2 ], [ "iron", 1 ] ], "fun": 2 }, { @@ -259,7 +262,7 @@ "id": "soup_dumplings", "name": "chicken and dumplings", "name_plural": "chicken and dumplings", - "weight": 288, + "weight": 263, "color": "light_gray", "spoils_in": "6 days 16 hours", "container": "can_food", @@ -267,21 +270,21 @@ "symbol": "~", "quench": 10, "healthy": 1, - "calories": 200, + "calories": 358, "description": "A soup with chicken chunks and balls of dough. Not bad.", "price": 500, "material": [ "flesh", "wheat" ], "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 20 ], [ "vitC", 1 ], [ "calcium", 2 ], [ "iron", 3 ], [ "vitB", 5 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "soup_cullenskink", "name": "cullen skink", - "weight": 288, + "weight": 261, "color": "white", "spoils_in": "5 days", "container": "can_food", @@ -289,14 +292,14 @@ "symbol": "~", "quench": 8, "healthy": 1, - "calories": 347, + "calories": 293, "description": "A rich and tasty fish chowder from Scotland, made with preserved fish and creamy milk.", "price": 500, "material": [ "flesh", "milk" ], "volume": 1, "phase": "liquid", - "charges": 4, "flags": [ "EATEN_HOT", "USE_EAT_VERB" ], + "vitamins": [ [ "vitA", 3 ], [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 1 ], [ "vitB", 2 ] ], "fun": 3 } ] diff --git a/data/json/items/comestibles/spice.json b/data/json/items/comestibles/spice.json index 20b412b21c6cf..8d6e393c94182 100644 --- a/data/json/items/comestibles/spice.json +++ b/data/json/items/comestibles/spice.json @@ -73,11 +73,13 @@ "comestible_type": "FOOD", "symbol": "%", "description": "Sweet, sweet sugar. Bad for your teeth and surprisingly not very tasty on its own.", - "price": 550, + "price": 387, "material": [ "powder", "junk" ], "volume": 1, + "calories": 19, "flags": [ "EDIBLE_FROZEN" ], - "charges": 100 + "//": "a tbps is 4.2g of sugar, meaning the volume needed to be adjusted.", + "charges": 71 }, { "type": "COMESTIBLE", @@ -110,6 +112,7 @@ "price": 190, "weight": 24, "volume": 1, + "calories": 17, "comestible_type": "DRINK", "container": "bottle_glass", "quench": -20, diff --git a/data/json/items/comestibles/veggy_dishes.json b/data/json/items/comestibles/veggy_dishes.json index 856c2befdd084..456282ee9c0f9 100644 --- a/data/json/items/comestibles/veggy_dishes.json +++ b/data/json/items/comestibles/veggy_dishes.json @@ -4,17 +4,11 @@ "id": "cooked_cattail_stalk", "name": "cooked cattail stalk", "name_plural": "cooked cattail stalks", - "weight": 112, + "copy-from": "cattail_stalk", "color": "white", "spoils_in": "2 days 12 hours", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 104, "description": "A cooked stalk from a cattail plant. Its fibrous outer leaves have been stripped away and now it is quite delicious.", "price": 0, - "material": "veggy", - "volume": 1, "fun": 1, "rot_spawn": "GROUP_ROTTING_PLANT", "rot_spawn_chance": 5 @@ -24,18 +18,19 @@ "id": "starch", "name": "starch", "name_plural": "starch", - "weight": 418, + "weight": 180, "color": "light_gray", "spoils_in": "1 day 6 hours", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 278, + "calories": 620, "description": "Sticky, gooey carbohydrate paste extracted from plants. Spoils rather quickly if not prepared for storage.", "price": 0, "material": "veggy", "volume": 1, "fun": -14, + "vitamins": [ ], "flags": [ "EDIBLE_FROZEN" ], "rot_spawn": "GROUP_ROTTING_PLANT", "rot_spawn_chance": 5 @@ -45,18 +40,11 @@ "id": "dandelion_cooked", "name": "cooked dandelion greens", "name_plural": "cooked dandelion greens", - "weight": 220, - "color": "green", + "copy-from": "raw_dandelion", "spoils_in": "2 days", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 2, - "calories": 174, "description": "Cooked leaves from wild dandelions. Tasty and nutritious.", "price": 200, - "material": "veggy", - "volume": 1, - "stack_size": 2, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 1, "rot_spawn": "GROUP_ROTTING_PLANT", @@ -67,19 +55,11 @@ "id": "dandelion_fried", "name": "fried dandelions", "name_plural": "fried dandelions", - "weight": 268, + "copy-from": "raw_dandelion", "color": "yellow", "spoils_in": "3 days", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 156, "description": "Wild dandelion flowers that have been battered and deep fried. Very tasty and nutritious.", "price": 250, - "material": "veggy", - "volume": 1, - "charges": 4, - "stack_size": 2, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 5, "rot_spawn": "GROUP_ROTTING_PLANT", @@ -89,17 +69,10 @@ "type": "COMESTIBLE", "id": "veggy_cooked", "name": "cooked plant marrow", - "weight": 240, - "color": "green", + "copy-from": "veggy", "spoils_in": "2 days 2 hours", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 347, "description": "A freshly cooked chunk of plant matter, tasty and nutritious.", "price": 700, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT", "TRADER_AVOID" ], "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -108,17 +81,10 @@ "id": "veggy_wild_cooked", "name": "cooked wild vegetables", "name_plural": "cooked wild vegetables", - "weight": 240, - "color": "green", + "copy-from": "veggy", "spoils_in": "2 days 2 hours", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 347, "description": "Cooked wild edible plants. An interesting mix of flavors.", "price": 700, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT" ], "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -137,6 +103,7 @@ "material": "veggy", "volume": 2, "charges": 2, + "//": "TODO: Confirm nutrition facts for aspic", "flags": [ "EATEN_COLD", "FREEZERBURN" ] }, { @@ -144,17 +111,11 @@ "id": "buckwheat_cooked", "name": "cooked buckwheat", "name_plural": "cooked buckwheat", - "weight": 260, - "color": "brown", + "copy-from": "buckwheat", "spoils_in": "20 days", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 2, - "calories": 434, "description": "A serving of cooked buckwheat groats. Healthy and nutritious but bland.", "price": 120, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT" ], "rot_spawn": "GROUP_ROTTING_PLANT", "rot_spawn_chance": 3 @@ -164,18 +125,13 @@ "id": "can_corn", "name": "corn", "name_plural": "corn", - "weight": 470, - "color": "yellow", + "copy-from": "corn", "spoils_in": "2 days", "container": "can_food", - "comestible_type": "FOOD", - "symbol": "%", "quench": 5, "calories": 260, "description": "Canned corn in water. Eat up!", "price": 200, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT" ], "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -183,20 +139,21 @@ "type": "COMESTIBLE", "id": "cornmeal", "name": "cornmeal", - "weight": 37, + "weight": 19, "color": "yellow", "spoils_in": "360 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 17, + "calories": 47, + "vitamins": [ [ "iron", 6 ] ], "description": "This yellow cornmeal is useful for baking.", "price": 450, "material": [ "veggy", "powder" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 12, + "charges": 10, "fun": -5 }, { @@ -204,19 +161,19 @@ "id": "deluxe_veggy_beans", "name": "vegetarian baked beans", "name_plural": "vegetarian baked beans", - "weight": 508, + "weight": 270, "color": "brown", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 339, + "calories": 295, + "vitamins": [ [ "calcium", 2 ], [ "iron", 8 ] ], "description": "Slow-cooked beans with vegetables. Tasty and very filling.", "price": 700, "material": [ "veggy", "bean" ], - "volume": 1, - "charges": 4, - "//": "One beans + one protein/veg = 2 servings", + "volume": 2, + "//": "one beans + one veggy", "flags": [ "EATEN_HOT" ], "fun": 4, "rot_spawn": "GROUP_CARRION" @@ -226,40 +183,41 @@ "id": "dry_rice", "name": "dried rice", "name_plural": "dried rice", - "weight": 56, + "weight": 40, "color": "white", "spoils_in": "360 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "quench": -6, - "calories": 17, + "calories": 222, "description": "Dehydrated long-grain rice. Tasty and nutritious when cooked, virtually inedible when dry.", "price": 500, "material": "veggy", "volume": 1, + "cooks_like": "rice_cooked", "flags": [ "EDIBLE_FROZEN" ], - "charges": 16, - "fun": -5 + "charges": 3, + "vitamins": [ [ "iron", 3 ] ], + "fun": -15 }, { "type": "COMESTIBLE", "id": "rice_cooked", "name": "cooked rice", "name_plural": "cooked rice", - "weight": 220, + "copy-from": "dry_rice", + "weight": 62, "color": "light_gray", "spoils_in": "10 days", - "comestible_type": "FOOD", - "symbol": "%", + "quench": 0, "healthy": 1, - "calories": 313, "description": "A hearty serving of cooked long-grain white rice.", "price": 100, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 2, + "//": "rice triples in size when cooked", + "charges": 1, "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -267,20 +225,20 @@ "id": "deluxe_veggy_rice", "name": "fried rice", "name_plural": "fried rice", - "weight": 442, + "weight": 135, "color": "yellow", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 313, + "calories": 174, "description": "Delicious fried rice with vegetables. Tasty and very filling.", "price": 700, "material": "veggy", "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 5, + "vitamins": [ [ "vitC", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -288,20 +246,20 @@ "id": "beansnrice", "name": "beans and rice", "name_plural": "beans and rice", - "weight": 508, + "weight": 70, "color": "light_gray", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 226, + "calories": 243, "description": "A serving of beans and rice that has been cooked together. Delicious and healthy!", "price": 500, "material": [ "veggy", "bean" ], "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 2, + "vitamins": [ [ "vitC", 3 ], [ "iron", 4 ], [ "calcium", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -309,20 +267,21 @@ "id": "deluxe_veggy_beansnrice", "name": "deluxe vegetarian beans and rice", "name_plural": "deluxe vegetarian beans and rice", - "weight": 508, + "weight": 140, "color": "brown", "spoils_in": "15 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 286, + "calories": 486, "description": "Slow-cooked beans and rice with vegetables and seasonings. Tasty and very filling.", "price": 750, "material": [ "veggy", "bean" ], - "volume": 1, - "charges": 6, + "volume": 3, + "//": "one bean + one rice + one veggy", "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 4, + "vitamins": [ [ "vitC", 7 ], [ "calcium", 2 ], [ "iron", 8 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -330,45 +289,43 @@ "id": "potato_baked", "name": "baked potato", "name_plural": "baked potatoes", - "weight": 210, + "weight": 241, "color": "brown", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 174, + "calories": 359, "description": "A delicious baked potato. Got any sour cream?", "price": 150, "material": "veggy", "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "vitC", 2 ], [ "calcium", 3 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "cooked_pumpkin", "name": "mashed pumpkin", - "weight": 595, + "copy-from": "pumpkin", "color": "light_red", "spoils_in": "1 day 12 hours", "container": "can_food", - "comestible_type": "FOOD", - "symbol": "%", "quench": 3, - "healthy": 2, - "calories": 208, "description": "This is a simple dish made by cooking the pumpkin pulp and then mashing.", "price": 50, "material": "veggy", "volume": 1, + "charges": 1, "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pie_veggy", "name": "vegetable pie", - "weight": 252, + "weight": 240, "color": "brown", "spoils_in": "3 days", "container": "box_small", @@ -376,53 +333,57 @@ "symbol": "%", "quench": 5, "healthy": 1, - "calories": 139, + "calories": 490, "description": "A delicious baked pie with a delicious vegetable filling.", "price": 1250, "material": [ "wheat", "veggy" ], - "volume": 4, - "charges": 6, + "volume": 8, + "charges": 8, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 1 ], [ "iron", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pizza_veggy", "name": "vegetable pizza", - "weight": 175, + "weight": 230, "color": "light_green", "spoils_in": "2 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 347, + "calories": 391, "description": "A vegetarian pizza, with delicious tomato sauce and a fluffy crust. Its smell brings back great memories.", "price": 990, "material": [ "wheat", "veggy", "tomato" ], - "volume": 8, + "volume": 4, "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 10, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 5 ], [ "calcium", 7 ], [ "iron", 5 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "sauce_pesto", "name": "pesto", - "weight": 258, + "weight": 65, "color": "light_green", "spoils_in": 144, "container": "jar_glass", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 156, + "calories": 244, "description": "Olive oil, basil, garlic, pine nuts. Simple and delicious.", "price": 230, "material": [ "veggy", "nut", "garlic" ], "volume": 1, + "charges": 4, "phase": "liquid", + "vitamins": [ [ "vitA", 2 ], [ "calcium", 3 ], [ "iron", 1 ] ], "fun": 4 }, { @@ -430,26 +391,26 @@ "id": "veggy_canned", "name": "canned veggy", "name_plural": "canned veggies", - "weight": 350, + "weight": 259, "color": "green", "spoils_in": "2 days 12 hours", "container": "can_food", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 243, + "calories": 93, "description": "This mushy pile of vegetable matter was boiled and canned in an earlier life. Better eat it before it oozes through your fingers.", "price": 250, "material": "veggy", "volume": 1, - "stack_size": 2, + "vitamins": [ [ "vitA", 18 ], [ "vitC", 3 ], [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "veggy_salted", "name": "salted veggy chunk", - "weight": 121, + "weight": 192, "color": "green", "spoils_in": "3 days", "container": "plastic_bag_vac", @@ -457,12 +418,12 @@ "symbol": "%", "quench": -5, "healthy": 1, - "calories": 269, + "calories": 115, "description": "Vegetable chunks pickled in a salt bath. Goes well with burgers, if only you can find one.", "price": 500, "material": "veggy", "volume": 1, - "charges": 2, + "vitamins": [ [ "vitA", 11 ], [ "vitC", 2 ], [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -470,33 +431,31 @@ "id": "spaghetti_pesto", "name": "spaghetti al pesto", "name_plural": "spaghetti al pesto", - "weight": 350, + "weight": 80, "color": "green", "spoils_in": "2 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 2, - "calories": 434, + "calories": 310, "description": "Spaghetti, with a generous helping of pesto on top. Yum!", "price": 1000, "material": [ "wheat", "veggy", "nut" ], - "volume": 7, + "volume": 2, "charges": 2, "flags": [ "EATEN_HOT", "FREEZERBURN" ], "fun": 15, + "vitamins": [ [ "vitA", 6 ], [ "vitC", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pickle", "name": "pickle", - "weight": 163, + "copy-from": "cucumber", "color": "green", "spoils_in": "30 days", - "comestible_type": "FOOD", - "symbol": "%", "quench": 5, - "calories": 217, "description": "A pickled cucumber. Rather sour, but tastes good and lasts for a long time.", "price": 250, "material": "veggy", @@ -508,20 +467,22 @@ "id": "sauerkraut_onions", "name": "sauerkraut w/ sautee'd onions", "name_plural": "sauerkraut w/ sautee'd onions", - "weight": 250, + "weight": 424, "color": "light_gray", "spoils_in": "5 days", "comestible_type": "FOOD", "symbol": "%", "quench": 5, "healthy": 1, - "calories": 260, + "calories": 111, "description": "This is a delicious sautee of lovely diced onions and sauerkraut. The smell alone is enough to make your mouth water.", "price": 500, "material": "veggy", + "//": "assumes the saurkraut and onions cook down to half their raw values. vitamins and calories are the two added together", "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 5, + "vitamins": [ [ "vitC", 24 ], [ "calcium", 5 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -529,33 +490,23 @@ "id": "veggy_pickled", "name": "pickled veggy", "name_plural": "pickled veggies", - "weight": 383, + "copy-from": "veggy", "color": "light_green", "spoils_in": "30 days", "container": "jar_glass", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 304, "description": "This is a serving of crisply brined and canned vegetable matter. Tasty and nutritious.", "price": 250, - "material": "veggy", - "volume": 1, - "stack_size": 2, "fun": 7 }, { "type": "COMESTIBLE", "id": "dry_veggy", "name": "dehydrated vegetable", - "weight": 44, + "copy-from": "veggy", + "proportional": { "weight": 0.5 }, "color": "green", "spoils_in": "360 days", - "comestible_type": "FOOD", - "symbol": "%", "quench": -3, - "healthy": 1, - "calories": 174, "description": "Dehydrated vegetable flakes. With proper storage, this dried food will remain edible for an incredibly long time.", "price": 900, "material": "veggy", @@ -567,18 +518,11 @@ "type": "COMESTIBLE", "id": "rehydrated_veggy", "name": "rehydrated vegetable", - "weight": 144, + "copy-from": "veggy", "color": "light_green", "spoils_in": "1 day", - "comestible_type": "FOOD", - "symbol": "%", - "healthy": 1, - "calories": 191, "description": "Reconstituted vegetable flakes, which are much more enjoyable to eat now that they have been rehydrated.", "price": 900, - "material": "veggy", - "volume": 1, - "charges": 2, "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT" }, @@ -586,7 +530,7 @@ "type": "COMESTIBLE", "id": "veggy_salad", "name": "vegetable salad", - "weight": 320, + "weight": 227, "color": "green", "spoils_in": "5 days 20 hours", "container": "bowl_plastic", @@ -594,31 +538,28 @@ "symbol": "%", "quench": 15, "healthy": 2, - "calories": 391, + "calories": 250, "description": "Salad with all kind of vegetables.", "price": 350, "material": "veggy", "volume": 1, "fun": 1, "flags": [ "FREEZERBURN" ], + "vitamins": [ [ "vitC", 7 ], [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "dried_salad", "name": "dried salad", - "weight": 100, - "color": "green", + "copy-from": "veggy_salad", + "weight": 150, "spoils_in": "360 days", "container": "box_small", - "comestible_type": "FOOD", - "symbol": "%", "quench": -2, - "calories": 347, "description": "Dried salad packed in a box with mayonnaise and ketchup. Add water to enjoy.", "price": 220, - "material": "veggy", - "volume": 1, + "volume": "125 ml", "flags": [ "EDIBLE_FROZEN" ], "fun": -2 }, @@ -626,35 +567,21 @@ "type": "COMESTIBLE", "id": "insta_salad", "name": "insta-salad", - "weight": 330, - "color": "green", - "spoils_in": "5 days 20 hours", - "container": "bowl_plastic", - "comestible_type": "FOOD", - "symbol": "%", + "copy-from": "veggy_salad", "quench": 16, - "calories": 347, "description": "Dried salad with water added, not very tasty but still a decent substitution for real salad.", "price": 250, - "material": "veggy", - "volume": 1, "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "dahlia_baked", "name": "baked dahlia root", - "weight": 210, - "color": "brown", + "copy-from": "dahlia_root", "spoils_in": "2 days", - "comestible_type": "FOOD", - "symbol": "%", "healthy": 2, - "calories": 243, "description": "A healthy and delicious baked root bulb from a dahlia plant.", "price": 110, - "material": "veggy", - "volume": 1, "flags": [ "EATEN_HOT" ], "fun": 2, "rot_spawn": "GROUP_ROTTING_PLANT" @@ -664,20 +591,21 @@ "id": "sushi_rice", "name": "sushi rice", "name_plural": "sushi rice", - "weight": 236, + "weight": 55, "color": "white", "spoils_in": "3 days", "comestible_type": "FOOD", "symbol": "%", "quench": -1, "healthy": 1, - "calories": 313, + "calories": 200, "description": "A serving of sticky vinegared rice commonly used in sushi.", "price": 100, "material": "veggy", "volume": 1, - "charges": 2, + "charges": 4, "fun": 3, + "vitamins": [ ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -685,20 +613,21 @@ "id": "onigiri", "name": "onigiri", "name_plural": "onigiri", - "weight": 122, + "weight": 99, "color": "white", "spoils_in": "1 day 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 1, "healthy": 3, - "calories": 243, + "calories": 90, "description": "A triangular block of tasty sushi rice with a healthy green vegetable folded around it.", "price": 210, "material": "veggy", "volume": 1, "charges": 2, "fun": 8, + "vitamins": [ ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -706,20 +635,20 @@ "id": "sushi_veggyroll", "name": "vegetable hosomaki", "name_plural": "vegetable hosomaki", - "weight": 122, + "weight": 312, "color": "green", "spoils_in": "1 day 12 hours", "comestible_type": "FOOD", "symbol": "%", "quench": 1, "healthy": 3, - "calories": 260, + "calories": 209, "description": "Delicious chopped vegetables wrapped in tasty sushi rice and rolled up in a healthy green vegetable.", "price": 290, "material": "veggy", "volume": 1, - "charges": 2, "fun": 12, + "vitamins": [ [ "vitA", 7 ], [ "vitC", 19 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -728,28 +657,18 @@ "category": "other", "name": "dehydrated tainted veggy", "name_plural": "dehydrated tainted veggies", - "weight": 44, - "color": "green", - "spoils_in": "360 days", + "copy-from": "dry_veggy", "use_action": "POISON", - "comestible_type": "FOOD", - "symbol": "%", - "quench": -3, - "healthy": 1, - "calories": 174, "description": "Pieces of poisonous veggy that have been dried to prevent them from rotting away. It will still poison you if you eat this.", "price": 0, - "material": "veggy", - "flags": [ "EDIBLE_FROZEN" ], - "volume": 1, - "charges": 2 + "flags": [ "EDIBLE_FROZEN" ] }, { "type": "COMESTIBLE", "id": "sauerkraut", "name": "sauerkraut", "name_plural": "sauerkraut", - "weight": 400, + "weight": 255, "color": "green", "spoils_in": "30 days", "container": "jar_glass", @@ -757,12 +676,12 @@ "symbol": "%", "quench": 2, "healthy": 1, - "calories": 95, + "calories": 43, "description": "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.", "price": 450, "material": "veggy", "volume": 1, - "charges": 2, + "vitamins": [ [ "vitC", 20 ], [ "calcium", 4 ] ], "fun": -2 } ] diff --git a/data/json/items/comestibles/wheat.json b/data/json/items/comestibles/wheat.json index 24e8bfce3b60f..e8d57d13ee46f 100644 --- a/data/json/items/comestibles/wheat.json +++ b/data/json/items/comestibles/wheat.json @@ -3,7 +3,7 @@ "type": "COMESTIBLE", "id": "cereal2", "name": "wheat cereal", - "weight": 42, + "weight": 52, "color": "yellow", "spoils_in": "90 days", "stim": 4, @@ -12,13 +12,14 @@ "symbol": "%", "quench": -2, "healthy": 1, - "calories": 52, + "calories": 180, "description": "Whole-grain wheat cereal. It's surprisingly good, and allegedly good for your heart.", "price": 300, "material": "wheat", - "volume": 1, + "volume": 4, "flags": [ "EDIBLE_FROZEN" ], "charges": 12, + "vitamins": [ [ "vitC", 1 ], [ "iron", 2 ] ], "fun": 8 }, { @@ -26,19 +27,19 @@ "id": "wheat", "name": "wheat", "name_plural": "wheat", - "weight": 132, + "weight": 203, "color": "brown", "comestible_type": "FOOD", "symbol": ",", "quench": -10, "healthy": 1, - "calories": 174, + "calories": 667, "description": "Raw wheat, not very tasty.", "price": 120, "material": "wheat", - "volume": 4, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 4, + "vitamins": [ [ "calcium", 1 ], [ "iron", 10 ] ], "fun": -10 }, { @@ -46,18 +47,19 @@ "id": "spaghetti_raw", "name": "raw spaghetti", "name_plural": "raw spaghetti", - "weight": 453, + "weight": 60, "color": "yellow", "spoils_in": "360 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 87, + "calories": 222, "description": "It could be eaten raw if you're desperate, but is much better cooked.", "price": 120, "material": "wheat", - "volume": 3, + "volume": "62 ml", "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "iron", 2 ] ], "fun": -8 }, { @@ -65,17 +67,18 @@ "id": "lasagne_raw", "name": "raw lasagne", "spoils_in": "360 days", - "weight": 460, + "weight": 60, "color": "yellow", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 104, + "calories": 222, "description": "It could be eaten raw if you're desperate, but is much better cooked.", "price": 120, "material": "wheat", - "volume": 3, + "volume": "62 ml", "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "iron", 2 ] ], "fun": -8 }, { @@ -83,20 +86,20 @@ "id": "spaghetti_cooked", "name": "boiled noodles", "name_plural": "boiled noodles", - "weight": 681, + "weight": 148, "color": "yellow", "spoils_in": "20 hours", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": 12, - "calories": 260, + "calories": 222, "description": "Fresh wet noodles. Fairly bland, but fills you up.", "price": 20, "material": "wheat", - "volume": 6, - "charges": 2, + "volume": 1, "flags": [ "EATEN_HOT", "TRADER_AVOID" ], + "vitamins": [ [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -104,18 +107,19 @@ "id": "macaroni_raw", "name": "raw macaroni", "name_plural": "raw macaroni", - "weight": 480, + "weight": 60, "color": "yellow", "spoils_in": "360 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 87, + "calories": 222, "description": "It could be eaten raw if you're desperate, but is much better cooked.", "price": 150, "material": "wheat", "flags": [ "EDIBLE_FROZEN" ], - "volume": 3, + "volume": "62 ml", + "vitamins": [ [ "iron", 2 ] ], "fun": -6 }, { @@ -123,21 +127,21 @@ "id": "macaroni_cooked", "name": "mac & cheese", "name_plural": "mac & cheese", - "weight": 323, + "weight": 209, "color": "yellow", "spoils_in": "10 hours", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": 25, - "calories": 434, + "calories": 397, "description": "When the cheese starts flowing, Kraft gets your noodle going.", "price": 380, "material": [ "wheat", "milk" ], - "volume": 4, - "charges": 2, + "volume": 1, "flags": [ "EATEN_HOT", "TRADER_AVOID", "FREEZERBURN" ], "fun": 5, + "vitamins": [ [ "calcium", 2 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -145,39 +149,42 @@ "id": "flour", "name": "flour", "name_plural": "flour", - "weight": 45, + "weight": 13, "color": "white", "spoils_in": "360 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 9, + "calories": 48, "description": "This enriched white flour is useful for baking.", "price": 450, "material": [ "wheat", "powder" ], "volume": 1, "flags": [ "EDIBLE_FROZEN" ], "charges": 10, + "vitamins": [ [ "iron", 8 ] ], "fun": -5 }, { "type": "COMESTIBLE", "id": "oatmeal", "name": "oatmeal", - "weight": 28, + "weight": 25, "color": "light_gray", "spoils_in": "360 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 26, + "calories": 10, "description": "Dry flakes of flattened grain. Tasty and nutritious when cooked, it also doubles as food for horses while dry.", "price": 7500, "material": "wheat", "volume": 1, - "flags": [ "EDIBLE_FROZEN" ], + "cooks_like": "oatmeal_cooked", + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "charges": 16, + "vitamins": [ [ "iron", 2 ] ], "fun": -2 }, { @@ -185,58 +192,60 @@ "id": "oats", "name": "oats", "name_plural": "oats", - "weight": 132, + "weight": 86, "color": "brown", "comestible_type": "FOOD", "symbol": ",", "quench": -10, "healthy": 1, - "calories": 174, + "calories": 323, "description": "Raw oats.", "price": 120, "material": "wheat", - "volume": 4, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 4, + "vitamins": [ [ "iron", 5 ] ], "fun": -10 }, { "type": "COMESTIBLE", "id": "oatmeal_cooked", "name": "cooked oatmeal", - "weight": 246, + "weight": 247, "color": "light_gray", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 417, + "calories": 175, "description": "A filling and nutritious New England classic that has sustained pioneers and captains of industry alike.", "price": 500, "material": "wheat", "volume": 1, - "flags": [ "EATEN_HOT" ], + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], "fun": 2, + "vitamins": [ [ "iron", 3 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "oatmeal_deluxe", "name": "deluxe cooked oatmeal", - "weight": 296, + "weight": 164, "color": "light_gray", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 278, + "calories": 112, "description": "A filling and nutritious New England classic that has been improved with the addition of extra wholesome ingredients.", "price": 550, "material": "wheat", - "volume": 1, + "volume": "375 ml", "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "vitC", 14 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -244,7 +253,7 @@ "id": "pancakes", "name": "pancake", "name_plural": "pancakes", - "weight": 246, + "weight": 40, "color": "brown", "spoils_in": "10 days", "comestible_type": "FOOD", @@ -258,6 +267,7 @@ "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "calcium", 3 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -265,7 +275,7 @@ "id": "fruit_pancakes", "name": "fruit pancake", "name_plural": "fruit pancakes", - "weight": 354, + "weight": 80, "color": "brown", "spoils_in": "10 days", "comestible_type": "FOOD", @@ -279,6 +289,7 @@ "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 3, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 14 ], [ "calcium", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -286,13 +297,13 @@ "id": "frenchtoast", "name": "French toast", "name_plural": "French toasts", - "weight": 246, + "weight": 42, "color": "brown", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 391, + "calories": 110, "description": "Slices of bread dipped in a milk and egg mixture then fried.", "price": 600, "material": [ "wheat", "milk", "egg" ], @@ -300,45 +311,46 @@ "charges": 2, "flags": [ "EATEN_HOT" ], "fun": 8, + "vitamins": [ [ "vitA", 1 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "waffles", "name": "waffle", - "weight": 246, + "weight": 75, "color": "yellow", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", - "calories": 321, + "calories": 318, "description": "Hey it's waffle time, it's waffle time. Won't you have some waffles of mine?", "price": 550, "material": [ "wheat", "milk" ], "volume": 1, - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 5, + "vitamins": [ [ "calcium", 3 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "fruit_waffles", "name": "fruit waffle", - "weight": 354, + "weight": 156, "color": "yellow", "spoils_in": "10 days", "comestible_type": "FOOD", "symbol": "%", "healthy": 1, - "calories": 391, + "calories": 426, "description": "Crunchy and delicious waffles with real maple syrup, made sweeter and healthier with the addition of wholesome fruit.", "price": 600, "material": [ "wheat", "fruit", "milk" ], - "volume": 1, - "charges": 4, + "volume": "375 ml", "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 1 ], [ "vitC", 14 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -352,20 +364,21 @@ "comestible_type": "FOOD", "symbol": "%", "quench": -4, - "calories": 69, + "calories": 280, "description": "Dry and salty, these crackers will leave you quite thirsty.", "price": 110, "material": "wheat", - "volume": 3, + "volume": 4, "flags": [ "EDIBLE_FROZEN" ], "charges": 8, + "vitamins": [ [ "calcium", 1 ], [ "iron", 3 ] ], "fun": 2 }, { "type": "COMESTIBLE", "id": "pie", "name": "fruit pie", - "weight": 252, + "weight": 125, "color": "brown", "spoils_in": "3 days", "stim": 2, @@ -374,28 +387,30 @@ "symbol": "%", "quench": 5, "healthy": 1, - "calories": 139, + "calories": 296, "description": "A delicious baked pie with a sweet fruit filling.", "price": 1250, "material": [ "wheat", "fruit" ], - "volume": 4, - "charges": 6, + "volume": 8, + "charges": 8, "flags": [ "EATEN_HOT" ], "fun": 3, + "//": "these vitamins are only for pies that may spawn. generally they will be inherited from the fruit used.", + "vitamins": [ [ "vitA", 1 ], [ "vitC", 1 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "pizza_cheese", "name": "cheese pizza", - "weight": 175, + "weight": 170, "color": "yellow", "spoils_in": "2 days", "stim": 1, "container": "box_small", "comestible_type": "FOOD", "symbol": "%", - "calories": 347, + "calories": 452, "description": "A delicious pizza with molten cheese on top.", "price": 990, "material": [ "wheat", "milk" ], @@ -403,13 +418,14 @@ "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 10, + "vitamins": [ [ "vitA", 3 ], [ "vitC", 1 ], [ "calcium", 6 ], [ "iron", 6 ] ], "rot_spawn": "GROUP_CARRION" }, { "type": "COMESTIBLE", "id": "granola", "name": "granola", - "weight": 86, + "weight": 32, "color": "brown", "spoils_in": "180 days", "container": "bag_plastic", @@ -417,20 +433,21 @@ "symbol": "%", "quench": -2, "healthy": 1, - "calories": 269, + "calories": 157, "description": "A tasty and nutritious mixture of oats, honey, and other ingredients that has been baked until crisp.", "price": 350, "material": [ "wheat", "fruit" ], - "volume": 2, + "volume": 1, "flags": [ "EDIBLE_FROZEN" ], - "charges": 8, + "charges": 4, + "vitamins": [ [ "iron", 1 ] ], "fun": 3 }, { "type": "COMESTIBLE", "id": "pie_maple", "name": "maple pie", - "weight": 252, + "weight": 74, "color": "brown", "spoils_in": "3 days", "stim": 2, @@ -439,14 +456,15 @@ "symbol": "%", "quench": 4, "healthy": -1, - "calories": 139, + "calories": 300, "description": "A sweet and delicious baked pie with pure maple syrup.", "price": 1850, "material": [ "wheat", "milk" ], "volume": 4, - "charges": 6, + "charges": 8, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { @@ -454,46 +472,47 @@ "id": "noodles_fast", "name": "fast noodles", "name_plural": "fast noodles", - "weight": 30, + "weight": 81, "color": "yellow", "spoils_in": "360 days", "container": "bag_plastic", "comestible_type": "FOOD", "symbol": "%", "healthy": -1, - "calories": 130, + "calories": 356, "description": "So-called ramen noodles. Can be eaten raw.", "price": 200, "material": "wheat", - "volume": 1, + "volume": 2, + "vitamins": [ [ "iron", 4 ] ], "flags": [ "EDIBLE_FROZEN" ] }, { "type": "COMESTIBLE", "id": "cloutie_dumpling", "name": "cloutie dumpling", - "weight": 112, + "weight": 91, "color": "brown", "spoils_in": "2 days", "container": "box_small", "comestible_type": "FOOD", "symbol": "%", "quench": -1, - "calories": 122, + "calories": 330, "description": "This traditional Scottish treat is a sweet and filling little boiled cake studded with dried fruit.", "price": 195, "material": [ "wheat", "fruit" ], "volume": 1, - "charges": 4, "stack_size": 1, "fun": 9, + "vitamins": [ [ "calcium", 1 ], [ "iron", 2 ] ], "rot_spawn": "GROUP_ROTTING_PLANT" }, { "type": "COMESTIBLE", "id": "brioche", "name": "brioche", - "weight": 96, + "weight": 77, "color": "brown", "spoils_in": "10 days", "container": "box_small", @@ -508,6 +527,7 @@ "charges": 6, "flags": [ "EATEN_HOT" ], "fun": 6, + "vitamins": [ [ "vitA", 2 ], [ "iron", 1 ] ], "rot_spawn": "GROUP_CARRION" }, { @@ -516,17 +536,18 @@ "comestible_type": "FOOD", "name": "'special' brownie", "description": "This is definitely not how grandma used to bake them.", - "weight": 56, + "weight": 50, "volume": 3, "price": 5000, "charges": 8, "material": "wheat", "symbol": "%", "color": "brown", - "calories": 174, + "calories": 233, "fun": 15, "spoils_in": 420, "use_action": "WEED_BROWNIE", + "vitamins": [ [ "vitA", 2 ], [ "iron", 1 ] ], "flags": [ "EATEN_HOT" ] }, { diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 3ce32714de89e..1ed0816252b04 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -120,5 +120,12 @@ "description": "A handful of smoldering embers emitting smoke. They are fading away even when you look at them.", "emits": [ "emit_small_smoke_plume" ], "flags": [ "TRADER_AVOID", "FAKE_SMOKE" ] - } + }, + { + "id": "fake_firestarter", + "copy-from": "fake_item", + "type": "TOOL", + "name": "bionic firestarter", + "flags": [ "FIRESTARTER" ] + } ] diff --git a/data/json/items/generic/casing.json b/data/json/items/generic/casing.json index 4c04c87525efb..8d8bf88d1bdb1 100644 --- a/data/json/items/generic/casing.json +++ b/data/json/items/generic/casing.json @@ -139,6 +139,15 @@ "weight": 2, "volume": "3ml" }, + { + "id": "460_casing", + "copy-from": "casing", + "type": "GENERIC", + "name": ".460 Rowland casing", + "description": "An empty casing from a .460 Rowland round. It looks deceptively like a .45ACP casing.", + "weight": 4, + "volume": "6ml" + }, { "id": "5x50_hull", "copy-from": "casing", diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index c16c8b1a31f76..87ed8f76375d5 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -107,7 +107,7 @@ "name": "L2037 Backup", "name_plural": "L2037 Backups", "//": "Most real-life autorevolvers use 6-7.5 inch barrel, but this one's mentioned to be particularly massive.", - "description": "Developed by Leadworks as a companion sidearm to the L523 modular system, this massive autorevolver fires the powerful .223 round, but suffers high recoil as a result. It has a weighted barrel to make recoil more manageable and a 5-chamber cylinder. Holographics and laser sights built in for additional accuracy. Similar to other Leadworks products it doesn't accept third-party modifications.", + "description": "The logical extension of Leadworks' autorevolver series, this massive 'sidearm' fires 5.56 NATO to share ammo with a soldier's rifle. The muzzle flash and report of this 5-shot revolver are incredible, producing ballistics similar to .357 Magnum. Similar to other Leadworks products it doesn't accept third-party modifications.", "weight": 2370, "volume": 3, "price": 267000, @@ -117,10 +117,11 @@ "symbol": "(", "color": "light_gray", "ammo": "223", - "range": -8, - "ranged_damage": -4, + "range": -6, + "ranged_damage": -16, "dispersion": 380, "durability": 8, + "loudness": 30, "clip_size": 5, "built_in_mods": [ "lead_holo_sight", "lead_laser_sight"], "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] diff --git a/data/json/items/gun/45.json b/data/json/items/gun/45.json index 87b44aecd7b1b..b5cbc55956afb 100644 --- a/data/json/items/gun/45.json +++ b/data/json/items/gun/45.json @@ -51,74 +51,6 @@ [ "9mm", [ "mp5mag", "mp5bigmag" ] ] ] }, - { - "id": "l_enforcer_45", - "copy-from": "pistol_revolver", - "type": "GUN", - "name": "L2031 Enforcer", - "name_plural": "L2031 Enforcer", - "//": "Real-life Autorevolvers tended to vary between 6-7.5 inch barrels, so we'll err on the side of a +1 here.", - "description": "An \"autorevolver\", this Leadworks LLC six-shooter combines the ease-of-action of a semi-auto with the ease-of-reloading and style of a revolver. It achieved overnight stardom when it appeared in \"Treasure Trail\", a popular space-Western series. Comes with built in holographic and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", - "weight": 1370, - "volume": 2, - "price": 83000, - "to_hit": -2, - "bashing": 7, - "material": [ "steel", "wood" ], - "symbol": "(", - "color": "light_gray", - "ammo": "45", - "ranged_damage": 1, - "dispersion": 360, - "durability": 8, - "clip_size": 6, - "built_in_mods": [ "lead_holo_sight", "lead_laser_sight"], - "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] - }, - { - "id": "l_long_45", - "type": "GUN", - "reload_noise_volume": 10, - "name": "L1820 Long Ranger", - "name_plural": "L1820 Long Ranger", - "//": "If it's based off the Winchester 94, it's likely got a 20 inch barrel. For sanity's sake though, let's cap it at +4.", - "description": "Numbered to bridge the gap between the USian Frontier and modern Civil Defense needs, the Leadworks Long Ranger was designed to give Enforcer users (or anyone using .45 caliber cartridges) a little extra reach while using the same ammunition. Synthetic furniture cost it some charm points from the legendary Winchester rifles it was based upon, but users agree that the forty-five's punch with the reach of a rifle is worth it. Comes with built in holographic and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", - "weight": 4175, - "volume": 13, - "price": 90000, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "brown", - "ammo": "45", - "skill": "rifle", - "range": 8, - "ranged_damage": 4, - "dispersion": 180, - "durability": 9, - "clip_size": 7, - "barrel_length": 2, - "built_in_mods": [ "lead_holo_sight", "lead_laser_sight"], - "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ], - "flags": [ "RELOAD_ONE" ] - }, - { - "id": "l_mp_45", - "copy-from": "l_mp_9mm", - "type": "GUN", - "name": "L39B-45", - "description": "After the success of the 9x19mm model, Leadworks LLC released an L39B chambered in .45. It soon earned a reputation as one of the most intimidating guns on the market, for firer and target alike. Come with built in red dot and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", - "ammo": "45" - }, - { - "id": "l_sp_45", - "copy-from": "l_sp_9mm", - "type": "GUN", - "name": "L39-45", - "description": "Capitalizing on the L39B-45's reputation as one of the most intimidating pistols on the market, Leadworks LLC manufactured a semiautomatic model as well. Locking it semi-auto reduced cost and improved performance. Comes with built in red dot and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", - "ammo": "45" - }, { "id": "m1911", "copy-from": "pistol_base", diff --git a/data/json/items/gun/460.json b/data/json/items/gun/460.json new file mode 100644 index 0000000000000..c8d0f0d0ce247 --- /dev/null +++ b/data/json/items/gun/460.json @@ -0,0 +1,77 @@ +[ + { + "id": "l_sp_45", + "copy-from": "l_sp_9mm", + "type": "GUN", + "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", + "relative": { "durability": -1 }, + "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + }, + { + "id": "l_mp_45", + "copy-from": "l_mp_9mm", + "type": "GUN", + "name": "L39B-45", + "description": "After the success of their 9x19mm machine pistol, Leadworks LLC developed the L39B-460 from their .460 Rowland semi-autos, intending them to be used 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", + "relative": { "durability": -1 }, + "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + }, + { + "id": "l_enforcer_45", + "copy-from": "pistol_revolver", + "type": "GUN", + "name": "L2031 Enforcer", + "name_plural": "L2031 Enforcer", + "//": "Real-life Autorevolvers tended to vary between 6-7.5 inch barrels, so we'll err on the side of a +1 here.", + "description": "An \"autorevolver\", this Leadworks LLC six-shooter combines the ease-of-action of a semi-auto with the ease-of-reloading and style of a revolver. In addition to ubiquitous .45 ACP, the Enforcer also fires powerful .460 Rowland, offering .44 Magnum performance in a smaller package. It achieved overnight stardom when it appeared in \"Treasure Trail\", a popular space-Western series. Comes with built in holographic and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", + "weight": 1370, + "volume": 2, + "price": 83000, + "to_hit": -2, + "bashing": 7, + "material": [ "steel", "wood" ], + "symbol": "(", + "color": "light_gray", + "ammo": "460", + "ranged_damage": 1, + "dispersion": 360, + "durability": 8, + "clip_size": 6, + "built_in_mods": [ "lead_holo_sight", "lead_laser_sight" ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ] + }, + { + "id": "l_long_45", + "type": "GUN", + "reload_noise_volume": 10, + "name": "L1820 Long Ranger", + "name_plural": "L1820 Long Ranger", + "//": "If it's based off the Winchester 94, it's likely got a 20 inch barrel. For sanity's sake though, let's cap it at +4.", + "description": "The Leadworks Long Ranger was designed to give Enforcer users (or anyone using .460/.45 caliber cartridges) a little extra reach while using the same ammunition. Loaded with powerful .460 Rowland ammunition, this rifle offers a competitive replacement to the AR-15 in politically restrictive climates, but was met with disgust from lever action purists because of its synthetic furniture and built in holographic and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", + "weight": 4175, + "volume": 13, + "price": 90000, + "to_hit": -1, + "bashing": 12, + "material": [ "steel", "plastic" ], + "symbol": "(", + "color": "brown", + "ammo": "460", + "skill": "rifle", + "range": 8, + "ranged_damage": 4, + "dispersion": 180, + "durability": 9, + "clip_size": 12, + "barrel_length": 2, + "built_in_mods": [ "lead_holo_sight", "lead_laser_sight" ], + "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ], + "flags": [ "RELOAD_ONE" ] + } +] diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index ae343199da2cd..bd724986e241e 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -158,6 +158,21 @@ [ "57", [ "fn57mag" ] ] ] }, + { + "id": "hk_mp5sd", + "copy-from": "hk_mp5", + "type": "GUN", + "name": "H&K MP5SD", + "description": "Despite its integrated silencer element, it has the same length and shape as an unsilenced submachine gun. Unlike most conventional silenced submachine guns, it fires standard ammunition types with the same effect. The use of special subsonic ammunition is not necessary. The integrated silencer element suppresses the muzzle flash extremely effectively, as a result of which the weapon is also excellent for night operations using low-light amplifiers. No wonder the MP5SD is one of the most accurate silenced submachine guns of its type.", + "price": 3000000, + "valid_mod_locations": [ [ "accessories", 3 ], [ "barrel", 1 ], [ "bore", 1 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], + "modes": [ + [ "DEFAULT", "semi-auto", 1 ], + [ "BURST", "3 rd.", 3 ], + [ "AUTO", "auto", 12 ] + ], + "built_in_mods": [ "mp5sd_suppressor" ] + }, { "id": "ksub2000", "type": "GUN", @@ -239,7 +254,7 @@ "magazine_well": 1, "magazines": [ [ "9mm", [ "lw21mag" ] ], - [ "45", [ "lw12mag" ] ] + [ "460", [ "lw12mag" ] ] ], "flags": [ "DURABLE_MELEE" ] }, diff --git a/data/json/items/gunmod/magazine.json b/data/json/items/gunmod/magazine.json index 7ea7e2525a4b1..6020c65b3aa29 100644 --- a/data/json/items/gunmod/magazine.json +++ b/data/json/items/gunmod/magazine.json @@ -13,11 +13,11 @@ "color": "green", "location": "magazine", "mod_targets": [ "pistol", "rifle" ], - "acceptable_ammo": [ "9mm", "45", "223" ], + "acceptable_ammo": [ "9mm", "460", "223" ], "install_time": 60000, "magazine_adaptor": [ [ "9mm", [ "lw21mag" ] ], - [ "45", [ "lw12mag" ] ], + [ "460", [ "lw12mag" ] ], [ "223", [ "lw223mag", "lw223bigmag" ] ] ], "min_skills": [ [ "weapon", 4 ], [ "mechanics", 3 ] ], diff --git a/data/json/items/gunmod/mechanism.json b/data/json/items/gunmod/mechanism.json index 4905cc336babb..ac3f507949e48 100644 --- a/data/json/items/gunmod/mechanism.json +++ b/data/json/items/gunmod/mechanism.json @@ -42,7 +42,7 @@ "id": "llink", "type": "GUNMOD", "name": "lightning link", - "description": "Originally designed for the Colt SP-1, this 'reproduction' is intended to convert an AR-15 into a full-auto only rifle. Once the necessary modifications are made and the link is in place, semi-auto is disabled and full-auto is enabled. Reliability and precision suffer greatly due to questionable craftsmanship and lack of unobtainium SP-1 parts.", + "description": "Originally designed for the Colt SP-1, this 'reproduction' is intended to convert an AR-15 into a full-auto only rifle. Once the necessary modifications are made and the link is in place, semi-auto is disabled and full-auto is enabled. Reliability and precision suffer greatly due to questionable craftsmanship and lack of unobtainium SP-1 parts.", "weight": 60, "volume": 1, "integral_volume": 0, diff --git a/data/json/items/gunmod/muzzle.json b/data/json/items/gunmod/muzzle.json index 065d9aca9a039..77d9d45c94907 100644 --- a/data/json/items/gunmod/muzzle.json +++ b/data/json/items/gunmod/muzzle.json @@ -110,6 +110,21 @@ "handling_modifier": 2, "loudness_modifier": -50 }, + { + "id": "mp5sd_suppressor", + "copy-from": "suppressor", + "type": "GUNMOD", + "name": "mp5sd integral suppressor", + "description": "The integrated suppressor for the mp5sd.", + "damage_modifier": -7, + "weight": 250, + "integral_volume": 0, + "loudness_modifier": -100, + "range_modifier": -1, + "dispersion_modifier": 0, + "location": "barrel", + "flags": [ "IRREMOVABLE" ] + }, { "id": "suppressor_compact", "type": "GUNMOD", diff --git a/data/json/items/magazine/45.json b/data/json/items/magazine/45.json index 7017d5985feb5..766ebb9034a6a 100644 --- a/data/json/items/magazine/45.json +++ b/data/json/items/magazine/45.json @@ -1,21 +1,4 @@ [ - { - "id": "lw12mag", - "type": "MAGAZINE", - "name": "LW-12 magazine", - "description": "A 12-round polymer magazine for use with the Leadworks LLC L39-45 and L39B-45 pistols.", - "weight": 60, - "volume": 1, - "price": 5800, - "material": "plastic", - "symbol": "#", - "color": "light_gray", - "ammo_type": "45", - "capacity": 12, - "reliability": 10, - "reload_time": 140, - "flags": [ "MAG_COMPACT" ] - }, { "id": "m1911bigmag", "type": "MAGAZINE", diff --git a/data/json/items/magazine/460.json b/data/json/items/magazine/460.json new file mode 100644 index 0000000000000..0a5668e3dc304 --- /dev/null +++ b/data/json/items/magazine/460.json @@ -0,0 +1,19 @@ +[ + { + "id": "lw12mag", + "type": "MAGAZINE", + "name": "LW-12 magazine", + "description": "A 12-round polymer magazine for use with the Leadworks LLC L39-45 and L39B-45 pistols.", + "weight": 60, + "volume": 1, + "price": 5800, + "material": "plastic", + "symbol": "#", + "color": "light_gray", + "ammo_type": "460", + "capacity": 12, + "reliability": 10, + "reload_time": 140, + "flags": [ "MAG_COMPACT" ] + } +] diff --git a/data/json/items/melee.json b/data/json/items/melee.json index cf626ab05e287..6a16e96a87586 100644 --- a/data/json/items/melee.json +++ b/data/json/items/melee.json @@ -1230,7 +1230,7 @@ "color": "white", "name": "rock in a sock", "name_plural": "rocks in socks", - "description": "A sock with a rock tied into the end of it. A true weapon of desperation.", + "description": "A pair of nested socks filled with a stone. A true weapon of despair.", "price": 1000, "price_postapoc": 300, "material": [ "cotton", "stone" ], diff --git a/data/json/items/tool/science.json b/data/json/items/tool/science.json index bbf58232cfb57..65ebbb3c1f521 100644 --- a/data/json/items/tool/science.json +++ b/data/json/items/tool/science.json @@ -162,7 +162,7 @@ "type": "TOOL", "category": "tools", "name": "small glass tube", - "description": "This is a small glass tube. What more could you possibly want to know about it?", + "description": "This is a small glass tube. What more could you possibly want to know about it?", "weight": 1, "volume": 0.1, "price": 10, diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index c408e2afc54a3..afa7e5504a2e8 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -1450,7 +1450,7 @@ "max_volume": 4, "flags": [ "SHEATH_KNIFE", "SHEATH_SWORD" ] } ], - "qualities": [["HAMMER", 3], ["SAW_M", 2], ["SAW_W", 2], ["WRENCH", 2], ["AXE", 1], + "qualities": [["HAMMER", 3], [ "PRY", 1 ], ["SAW_M", 2], ["SAW_W", 2], ["WRENCH", 2], ["AXE", 1], ["SCREW", 1], ["HAMMER_FINE", 1], ["SAW_M_FINE", 1], ["WRENCH_FINE", 1], ["SCREW_FINE", 1]] }, { diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 58ada1df677c1..73a95448fe972 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -1449,7 +1449,7 @@ "symbol": ";", "color": "light_gray", "ammo": "charcoal", - "max_charges": 200, + "max_charges": 180, "flags": [ "ALLOWS_REMOTE_USE" ] }, { @@ -1509,7 +1509,7 @@ "type": "TOOL", "name": "circular saw (off)", "name_plural": "circular saws (off)", - "description": "A lightweight handheld cordless circular saw. Spins a circular blade fast enough to cut wood, metal, zombies, or in an emergency, pizza. The blade, while effective in combat, is hard to hit with due to its small size.", + "description": "A lightweight handheld cordless circular saw. Spins a circular blade fast 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.", "weight": 2940, "volume": 3, "price": 5000, @@ -1531,6 +1531,7 @@ "type": "TOOL", "name": "circular saw (on)", "name_plural": "circular saws (on)", + "//": "Circular saw would be very fast but imprecise butchering tool - alas the qualities are not separate and so speed is sacrificed.", "description": "A lightweight handheld cordless circular saw. It is currently on and the blade is spinning; use this item to turn it off.", "weight": 2940, "volume": 3, @@ -1545,7 +1546,7 @@ "max_charges": 100, "turns_per_charge": 1, "revert_to": "circsaw_off", - "qualities": [ [ "CUT", 1 ], [ "SAW_W", 2 ], [ "SAW_M", 2 ], [ "BUTCHER", 60 ] ], + "qualities": [ [ "CUT", 1 ], [ "SAW_W", 2 ], [ "BUTCHER", -40 ] ], "use_action": "CIRCSAW_ON", "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ] }, @@ -1932,7 +1933,7 @@ "material": "steel", "symbol": ";", "color": "dark_gray", - "qualities": [ [ "PRY", 2 ], [ "HAMMER", 1 ] ], + "qualities": [ [ "PRY", 3 ], [ "HAMMER", 1 ] ], "use_action": "CROWBAR", "techniques": [ "WBLOCK_1" ], "flags": [ "BELT_CLIP" ] @@ -2570,7 +2571,7 @@ "symbol": "/", "color": "light_gray", "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], - "qualities": [ [ "AXE", 2 ], [ "PRY", 1 ], [ "BUTCHER", -30 ] ], + "qualities": [ [ "AXE", 2 ], [ "PRY", 3 ], [ "BUTCHER", -30 ] ], "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "BELT_CLIP" ] }, { @@ -3490,7 +3491,7 @@ "id": "hammer", "type": "TOOL", "name": "hammer", - "description": "This is a demagnetized steel hammer with a wooden grip. With a hammer, nails, and two by fours in your inventory, you could board up adjacent doors and windows. It has myriad other uses as well.", + "description": "This is a demagnetized steel claw hammer with a wooden grip. With a hammer, nails, and two by fours in your inventory, you could board up adjacent doors and windows. It has myriad other uses as well.", "weight": 566, "volume": 2, "price": 700, @@ -3499,7 +3500,7 @@ "material": [ "steel", "wood" ], "symbol": ";", "color": "brown", - "qualities": [ [ "HAMMER", 3 ], [ "HAMMER_FINE", 1 ] ], + "qualities": [ [ "HAMMER", 3 ], [ "PRY", 1 ], [ "HAMMER_FINE", 1 ] ], "use_action": "HAMMER", "flags": [ "BELT_CLIP", "NONCONDUCTIVE" ] }, @@ -3694,7 +3695,7 @@ "id": "iceaxe", "type": "TOOL", "name": "ice axe", - "description": "This is an ice axe with hammer on its head, a multi-purpose hiking and climbing tool used by mountaineers. It is sturdy enough, so you can use it to pry open closed doors or lift manhole covers.", + "description": "This is an ice axe with hammer on its head, a multi-purpose hiking and climbing tool used by mountaineers. It is sturdy enough to pry open closed doors or lift manhole covers.", "weight": 500, "volume": 3, "price": 5000, @@ -4209,6 +4210,7 @@ "qualities": [ [ "HAMMER_FINE", 1 ], [ "HAMMER", 3 ], + [ "PRY", 1 ], [ "SAW_M_FINE", 1 ], [ "SAW_M", 2 ], [ "WRENCH_FINE", 1 ], @@ -4403,7 +4405,7 @@ "material": "steel", "symbol": ";", "color": "dark_gray", - "qualities": [ [ "PRY", 1 ], [ "HAMMER", 1 ] ], + "qualities": [ [ "PRY", 2 ], [ "HAMMER", 1 ] ], "use_action": "CROWBAR", "techniques": [ "WBLOCK_1" ], "flags": [ "BELT_CLIP" ] @@ -4733,7 +4735,7 @@ "initial_charges": 100, "max_charges": 200, "charges_per_use": 50, - "qualities": [ [ "CHISEL", 3 ], [ "HAMMER_FINE", 1 ], [ "HAMMER", 3 ] ], + "qualities": [ [ "CHISEL", 3 ], [ "HAMMER_FINE", 1 ], [ "HAMMER", 3 ], [ "PRY", 1 ] ], "use_action": "MISC_REPAIR" }, { @@ -5757,6 +5759,43 @@ "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 9 ] ], "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_SWORD" ] }, + { + "id": "reading_light", + "type": "TOOL", + "name": "reading light", + "name_plural": "reading lights", + "description": "A little clip-on LED light, meant for reading books in the dark.", + "weight": 90, + "volume": 0, + "price": 100, + "material": [ "plastic", "aluminum" ], + "symbol": ";", + "color": "white", + "ammo": "battery", + "initial_charges": 100, + "max_charges": 100, + "charges_per_use": 1, + "use_action": { + "target": "reading_light_on", + "msg": "You switch on the reading light.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The reading light winks out.", + "type": "transform" + } + }, + { + "id": "reading_light_on", + "copy-from": "reading_light", + "type": "TOOL", + "name": "reading light (active)", + "name_plural": "reading lights (active)", + "description": "A little clip-on LED light, meant for reading books in the dark. This one is turned on.", + "turns_per_charge": 120, + "revert_to": "reading_light", + "use_action": { "target": "reading_light", "msg": "You switch off the reading light.", "menu_text": "Turn off", "type": "transform" }, + "flags": [ "LIGHT_8", "CHARGEDIM" ] + }, { "id": "ref_lighter", "type": "TOOL", @@ -6414,6 +6453,7 @@ "qualities": [ [ "HAMMER_FINE", 1 ], [ "HAMMER", 3 ], + [ "PRY", 1 ], [ "SAW_M_FINE", 1 ], [ "SAW_M", 2 ], [ "SAW_W", 1 ], @@ -7448,6 +7488,7 @@ [ "AXE", 1 ], [ "WRENCH", 2 ], [ "SCREW", 1 ], + [ "PRY", 1 ], [ "HAMMER_FINE", 1 ], [ "SAW_M_FINE", 1 ], [ "WRENCH_FINE", 1 ], diff --git a/data/json/items/vehicle/wheel.json b/data/json/items/vehicle/wheel.json index 9bcbf030afe09..a8a6f6a51cf7c 100644 --- a/data/json/items/vehicle/wheel.json +++ b/data/json/items/vehicle/wheel.json @@ -16,6 +16,23 @@ "diameter": 17, "width": 9 }, + { + "id": "wheel_slick", + "type": "WHEEL", + "category": "veh_parts", + "name": "racing wheel", + "description": "A wide, smooth wheel intended for racing. The slick surface provides better speed on pavement but penalizes off-road speed.", + "weight": 12600, + "volume": 55, + "price": 24000, + "bashing": 14, + "to_hit": -1, + "material": [ "steel", "plastic" ], + "symbol": "]", + "color": "dark_gray", + "diameter": 16, + "width": 11 + }, { "type": "WHEEL", "id": "wheel_armor", @@ -64,8 +81,25 @@ "material": [ "steel", "plastic" ], "symbol": "]", "color": "dark_gray", - "diameter": 10, - "width": 2 + "diameter": 27, + "width": 3 + }, + { + "id": "wheel_bicycle_or", + "type": "WHEEL", + "category": "veh_parts", + "name": "bicycle wheel", + "description": "A wide, studded, bicycle wheel intended for off-road biking.", + "weight": 1500, + "volume": 28, + "price": 4000, + "bashing": 8, + "to_hit": -1, + "material": [ "steel", "plastic" ], + "symbol": "]", + "color": "dark_gray", + "diameter": 27, + "width": 3 }, { "id": "wheel_caster", @@ -116,7 +150,24 @@ "material": [ "steel", "plastic" ], "symbol": "]", "color": "dark_gray", - "diameter": 11, + "diameter": 16, + "width": 4 + }, + { + "id": "wheel_motorbike_or", + "type": "WHEEL", + "category": "veh_parts", + "name": "motorbike wheel", + "description": "A motorbike wheel, studded for improved off-road performance.", + "weight": 5443, + "volume": 33, + "price": 14000, + "bashing": 10, + "to_hit": -1, + "material": [ "steel", "plastic" ], + "symbol": "]", + "color": "dark_gray", + "diameter": 16, "width": 4 }, { @@ -134,7 +185,7 @@ "symbol": "m", "color": "light_gray", "diameter": 60, - "width": 60 + "width": 30 }, { "id": "wheel_small", @@ -188,6 +239,23 @@ "diameter": 24, "width": 14 }, + { + "id": "wheel_wide_or", + "type": "WHEEL", + "category": "veh_parts", + "name": "off-road wide wheel", + "description": "A wide wheel. \\o/ This wide. It's studded to provide better grip off-road at the cost of some performance on pavement.", + "weight": 22600, + "volume": 70, + "price": 34000, + "bashing": 17, + "to_hit": -1, + "material": [ "steel", "plastic" ], + "symbol": "]", + "color": "dark_gray", + "diameter": 24, + "width": 14 + }, { "id": "wheel_wood", "type": "WHEEL", diff --git a/data/json/items/vehicle_parts.json b/data/json/items/vehicle_parts.json index dfc17833d2b3e..45f3e00c95492 100644 --- a/data/json/items/vehicle_parts.json +++ b/data/json/items/vehicle_parts.json @@ -484,6 +484,21 @@ "category" : "veh_parts", "price" : 90000 }, + { + "type":"GENERIC", + "id" : "wind_turbine", + "name" : "wind turbine", + "description" : "A small turbine that can convert wind into electric power.", + "weight" : 50000, + "to_hit" : -4, + "color" : "yellow", + "symbol" : "T", + "material" : ["steel"], + "volume" : 80, + "bashing" : 1, + "category" : "veh_parts", + "price" : 60000 + }, { "type":"GENERIC", "id" : "reinforced_solar_panel", diff --git a/data/json/mapgen/bank.json b/data/json/mapgen/bank.json index 5e84073796820..a9c12c83d994a 100644 --- a/data/json/mapgen/bank.json +++ b/data/json/mapgen/bank.json @@ -192,6 +192,5 @@ }, "place_monster": [ { "monster": "mon_secubot", "x": [ 7, 18 ], "y": [ 7, 18 ], "chance": 30, "repeat": 4 } ] } - } ] diff --git a/data/json/mapgen/bike_shop.json b/data/json/mapgen/bike_shop.json index b40f39ec16064..a42b286ecba31 100644 --- a/data/json/mapgen/bike_shop.json +++ b/data/json/mapgen/bike_shop.json @@ -110,6 +110,7 @@ "vehicles": [ [ "bicycle", 1000 ], [ "bicycle_electric", 600 ], + [ "dirt_bike", 750 ], [ "unicycle", 50 ], [ "scooter", 100 ], [ "scooter_electric", 50 ], @@ -121,6 +122,7 @@ "id": "bikeshop_tools", "items": [ [ "wheel_bicycle", 100 ], + [ "wheel_bicycle", 80 ], [ "horn_bicycle", 80 ], [ "foot_crank", 80 ], [ "saddle", 80 ], @@ -148,6 +150,7 @@ { "distribution": [ { "item": "wheel_bicycle", "prob": 100 }, + { "item": "wheel_bicycle", "prob": 90 }, { "item": "horn_bicycle", "prob": 80 }, { "item": "foot_crank", "prob": 80 }, { "item": "saddle", "prob": 80 }, diff --git a/data/json/mapgen/evac_center.json b/data/json/mapgen/evac_center.json index bad8dcdac6792..c275b2bdf61b7 100644 --- a/data/json/mapgen/evac_center.json +++ b/data/json/mapgen/evac_center.json @@ -228,21 +228,21 @@ "rows": [ "ss......................", "s.......................", - "s....######..####..#####", + "s....######!!####!!#####", "s...#######11####11#####", "s...### #", "s...## ", "s...## L L L L L ", "s...## @ @ @ @ @ ", "s...## @ @2 @ @ @ ", - "s....1 ", - "s....1 ", + "s...!1 ", + "s...!1 ", "s...## L L L L L ", "s...## @ @ @ @ @ ", "s...## @ @ @ @ @ 2 ", "s...## ", - "s....1 ", - "s....1 L L2 L L #", + "s...!1 ", + "s...!1 L L2 L L #", "s...## @ @ @ @ #", "s...## @ @ @ @ V", "s...## V", @@ -272,7 +272,7 @@ { "item": "allclothes", "x": [ 8, 17 ], "y": [ 16, 16 ], "chance": 60 }, { "item": "trash", "x": [ 13, 14 ], "y": 21, "chance": 60, "repeat": [ 1, 2 ] } ], - "place_npcs": [ { "class": "guard", "x": 19, "y": 21 } ] + "place_npcs": [ { "class": "refugee_JennyForcette", "x": 8, "y": 8 }, { "class": "guard", "x": 19, "y": 21 } ] } }, { @@ -328,21 +328,21 @@ "rows": [ "......................ss", ".......................s", - "#####..####..######....s", + "#####!!####!!######....s", "#####11####11#######...s", "# ###...s", " ##...s", " L L L L L ##...s", " @ @ @ @ @ ##...s", " @ @ @ 2@ @ ##...s", - " 1....s", - " 1....s", + " 1!...s", + " 1!...s", " L L L L L ##...s", " @ @ @ @ @ ##...s", "2 @ @ @ @ @ ##...s", " ##...s", - " 1....s", - " L L 2L L 1....s", + " 1!...s", + " L L 2L L 1!...s", " @ @ @ @ ##...s", " @ @ @ @ ##...s", " ##...s", @@ -472,8 +472,8 @@ "________ss..#####r r# #", "________ss..######+##++#", "________ss..## P ", - "________ss...1 ", - "________ss...1 2 ", + "________ss..!1 ", + "________ss..!1 2 ", "________ss..## ", "_______sss..#####+## ", "__ssssssss..##t+ c# #", @@ -520,7 +520,7 @@ " ###### ###### ", " ##########++########## ", "=### ###=", - " ## bbbb bbb ## ", + " ## bbbb bbbb ## ", " 6V 2 2 V6 " ], "palettes": [ "evac_center" ], @@ -531,9 +531,14 @@ { "item": "pasta", "x": [ 22, 22 ], "y": [ 7, 8 ], "chance": 90 }, { "item": "cannedfood", "x": [ 2, 20 ], "y": [ 1, 1 ], "chance": 90 }, { "item": "cannedfood", "x": [ 3, 19 ], "y": [ 4, 5 ], "chance": 90 }, - { "item": "cannedfood", "x": [ 2, 20 ], "y": [ 8, 8 ], "chance": 90 } + { "item": "cannedfood", "x": [ 2, 20 ], "y": [ 8, 8 ], "chance": 90 }, + { "item": "bed", "x": [15,18], "y": 22, "chance": 100 } ], - "place_npcs": [ { "class": "evac_guard1", "x": 9, "y": 21 }, { "class": "guard", "x": 14, "y": 21 } ] + "place_npcs": [ + { "class": "evac_guard1", "x": 9, "y": 21 }, + { "class": "guard", "x": 14, "y": 21 }, + { "class": "refugee_beggar5", "x": 16, "y": 22 } + ] } }, { @@ -560,8 +565,8 @@ " #r r#####..ss_________", "++##+######..ss_________", " ##..ss_________", - " 1...ss_________", - " 2 1...ss_________", + " 1!..ss_________", + " 2 1!..ss_________", " ##..ss_________", " ##+####..sss________", "# #c +t##..ssssssss___", @@ -671,14 +676,14 @@ "s...## b b b ", "s...## b b cc b b ", "s...## b b2 b b ", - "s....1 b b cc b b ", - "s....1 b b b b ", + "s...!1 b b cc b b ", + "s...!1 b b b b ", "s...## b b cc b b ", "s...## ", "s...## 2 ", "s...## b b cc b b ", - "s....1 b b b b ", - "s....1 b b cc b b ", + "s...!1 b b b b ", + "s...!1 b b cc b b ", "s...## b b2 b b ", "s...## b b cc b b ", "s...## b b b b ", @@ -700,7 +705,6 @@ "x": 8, "y": 5 }, - { "class": "old_guard_rep", "x": 19, @@ -710,7 +714,6 @@ "class": "arsonist", "x": 11, "y": 7 - } ] } @@ -724,17 +727,17 @@ "fill_ter": "t_floor", "rows": [ "hcV bbbb bbbb Vch", - " cV Vc ", + " cV ppp Vc ", " ## bbbb bbbb ## ", "###l ###", " ### ### ", " ####1111#+##+#1111#### ", - " ###....sssUnsss....### ", + " ###!!!!sssUnsss!!!!### ", " ##......ssssss......## ", " ##.......ssss.......## ", " ##.......ssss.......## ", - " 1....%...ssss...%....1 ", - " 1...%%%..ssss..%%%...1 ", + " 1!...%...ssss...%...!1 ", + " 1!..%%%..ssss..%%%..!1 ", " ##...%...ssss...%...## ", " ##.......ssss.......## ", " ##.......ssss.......## ", @@ -744,14 +747,24 @@ " ##...%...ssss...%...## ", "###.......ssss.......###", "###.......ssss.......###", - "##........ssss........##", + "##!!!!!!!!ssss!!!!!!!!##", "..........ssss..........", ".........ssssss........." ], "palettes": [ "evac_center" ], + "place_items": [ + { "item": "bed", "x": [5,8], "y": 0, "chance": 70 }, + { "item": "bed", "x": [15,18], "y": 0, "chance": 50 }, + { "item": "bed", "x": [5,8], "y": 2, "chance": 80 }, + { "item": "bed", "x": [15,18], "y": 2, "chance": 100 } + ], "place_npcs": [ { "class": "evac_merchant", "x": 23, "y": 0 }, - { "class": "science_rep", "x": 0, "y": 0 } + { "class": "science_rep", "x": 0, "y": 0 }, + { "class": "refugee_beggar1", "x": 5, "y": 0 }, + { "class": "refugee_beggar2", "x": 7, "y": 2 }, + { "class": "refugee_beggar3", "x": 16, "y": 0 }, + { "class": "refugee_beggar4", "x": 17, "y": 2 } ] } }, @@ -770,14 +783,14 @@ " rrrrrrrr ##...s", " rr rrrrrrrr ##...s", " rr 2 ##...s", - " rr 1....s", - " rrrrrrrr 1....s", + " rr 1!...s", + " rrrrrrrr 1!...s", " rrrrrrrr ##...s", " rr ##...s", " rr2 ##...s", " rr rrrrrrrr ##...s", - " rrrrrrrr 1....s", - " 1....s", + " rrrrrrrr 1!...s", + " 1!...s", " rr 2 ##...s", " rr rrrrrrrr ##...s", " rr rrrrrrrr ##...s", diff --git a/data/json/mapgen/hospital.json b/data/json/mapgen/hospital.json index 1792ed6132c2a..d3574172e23a7 100644 --- a/data/json/mapgen/hospital.json +++ b/data/json/mapgen/hospital.json @@ -93,8 +93,8 @@ "failures": [ { "action": "destroy_blood" } ] }, "7": { - "name": "Mr. Stem Cell", - "options": [ { "name": "Stem Cell Treatment", "action": "stemcell_treatment" } ], + "name": "Bonesetting Treatment", + "options": [ { "name": "Bonesetting Treatment", "action": "bonesetting" } ], "failures": [ { "action": "alarm" } ] } }, diff --git a/data/json/mapgen/lab/lab_common.json b/data/json/mapgen/lab/lab_common.json index c5a7c88b95461..e5bd478ec07f7 100644 --- a/data/json/mapgen/lab/lab_common.json +++ b/data/json/mapgen/lab/lab_common.json @@ -22,14 +22,14 @@ "6": "t_console", "x": "t_console_broken", "g": "t_reinforced_glass", - "G": "t_reinforced_door_glass_c", + "G": "t_reinforced_door_glass_lab_c", ".": "t_thconc_floor", ",": "t_strconc_floor", "-": "t_concrete_wall", "|": "t_concrete_wall", - "+": "t_door_glass_frosted_c", - "W": "t_door_c", - "M": "t_door_metal_c", + "+": "t_door_glass_frosted_lab_c", + "W": "t_door_lab_c", + "M": "t_door_metal_lab_c", "L": "t_door_metal_locked", "#": "t_rock" }, diff --git a/data/json/mapgen/lab/lab_escape.json b/data/json/mapgen/lab/lab_escape.json index bfaf02df2bc18..82aafe152d4e3 100644 --- a/data/json/mapgen/lab/lab_escape.json +++ b/data/json/mapgen/lab/lab_escape.json @@ -87,7 +87,7 @@ ], "palettes": [ "lab_palette", "lab_loot_research" ], "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "monster": { "Z": { "monster": "mon_zombie_brute" } @@ -138,7 +138,7 @@ ], "palettes": [ "lab_palette", "lab_loot_research" ], "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "monster": { "Z": { "monster": "mon_zombie_brute" } @@ -189,7 +189,7 @@ ], "palettes": [ "lab_palette", "lab_loot_research" ], "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "monster": { "Z": { "monster": "mon_zombie_brute" } diff --git a/data/json/mapgen/lab/lab_floorplan_cross.json b/data/json/mapgen/lab/lab_floorplan_cross.json index 25ae15086b53d..7df9fe2dec393 100644 --- a/data/json/mapgen/lab/lab_floorplan_cross.json +++ b/data/json/mapgen/lab/lab_floorplan_cross.json @@ -34,7 +34,7 @@ "-----------MM----------|" ], "palettes": [ "lab_palette" ], - "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c"] }, + "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c"] }, "place_nested": [ { "chunks": [ ["null", 100], ["lab_cross_windows", 25] ], "x": 0, "y": 0 }, { "chunks": [ "lab_spawn_9x9" ], "x": [0, 1], "y": [0, 1], "neighbors": { "north": ["lab", "open_air"], "west": ["lab", "open_air"] } }, @@ -80,7 +80,7 @@ "-----------MM----------|" ], "palettes": [ "lab_palette" ], - "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c"] }, + "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c"] }, "place_nested": [ { "chunks": [ ["null", 100], ["lab_cross_windows", 25] ], "x": 0, "y": 0 }, { "chunks": [ "lab_spawn_9x9" ], "x": [0, 1], "y": [0, 1], "neighbors": { "north": ["lab", "open_air"], "west": ["lab", "open_air"] } }, @@ -127,7 +127,7 @@ ], "palettes": [ "lab_palette", "lab_loot_research" ], "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ], "!": [ "t_thconc_floor", "t_thconc_floor", "t_thconc_floor", "t_thconc_floor", "t_console_broken", "t_generator_broken", "t_centrifuge" ] }, "place_nested": [ @@ -189,7 +189,7 @@ ] } }, - "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c"] }, + "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c"] }, "place_nested": [ { "chunks": [ "lab_spawn_7x7_crossdoors" ], "x": 3, "y": 3, "neighbors": { "north": ["lab", "open_air"], "west": ["lab", "open_air"] } }, { "chunks": [ "lab_spawn_9x9" ], "x": [0,1], "y": 14, "neighbors": { "south": ["lab", "open_air"], "west": ["lab", "open_air"] } }, @@ -496,7 +496,7 @@ "id": "lab_loot_bionic_vault", "mapping": { "r": { "items": [ { "item": "bionics_common", "chance": 50 }, { "item": "bionics", "chance": 10 } ] } }, - "terrain": { "r": "t_strconc_floor" }, + "terrain": { "r": "t_thconc_floor" }, "computers": { "6": { "name": "Bionic Vault", "security": 3, @@ -513,7 +513,7 @@ "id": "lab_loot_serum_vault", "mapping": { "r": { "items": [ { "item": "mut_iv", "chance": 50 } ] } }, - "terrain": { "r": "t_strconc_floor" }, + "terrain": { "r": "t_thconc_floor" }, "computers": { "6": { "name": "Advanced PE012 Samples", "security": 3, diff --git a/data/json/mapgen/lab/lab_floorplans.json b/data/json/mapgen/lab/lab_floorplans.json index 3ade48e810790..362eda5f4291c 100644 --- a/data/json/mapgen/lab/lab_floorplans.json +++ b/data/json/mapgen/lab/lab_floorplans.json @@ -33,7 +33,7 @@ "-----------MM----------|" ], "palettes": [ "lab_palette" ], - "terrain": { "?": [ "t_concrete_wall", "t_door_glass_frosted_c", "t_door_glass_c"] }, + "terrain": { "?": [ "t_concrete_wall", "t_door_glass_frosted_lab_c", "t_door_glass_lab_c"] }, "place_nested": [ { "chunks": [ "lab_spawn_7x7_crossdoors" ], "x": 0, "y": 0 }, { "chunks": [ "lab_spawn_7x7" ], "x": 0, "y": 8 }, @@ -88,9 +88,9 @@ "palettes": [ "lab_palette", "lab_loot_research" ], "furniture": { "H": [ "f_armchair" ] }, "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ], "g": [ "t_wall_glass"], - "G": [ "t_door_glass_c"] + "G": [ "t_door_glass_lab_c"] }, "mapping": { "f": { "items": [ { "item": "fridge", "chance": 30 }, { "item": "alcohol", "chance": 60 } ] }, @@ -115,9 +115,9 @@ "rotation": [ 0, 1 ], "//": "Only allows 0,1 orientation so the right-side rooms stay against a north or east wall", "rows": [ - ",,,|,,,|r......|X.ccc.X|", - ",,,|,,,|r......|X.....X|", - ",,,|,,,|.......|---W---|", + "...|...|r......|X.ccc.X|", + "...|...|r......|X.....X|", + "...|...|.......|---W---|", "LLL|LLL|.......| |", "...C..........l| |", "..............l| |", @@ -143,12 +143,12 @@ "palettes": [ "lab_palette", "lab_loot_research" ], "furniture": { "f": "f_null" }, "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ], "P": "t_generator_broken", "F": "t_chainfence_h", "f": "t_chainfence_v", "H": "t_chaingate_c", - "C": "t_gates_control_concrete" + "C": "t_gates_control_concrete_lab" }, "mapping": { "r": { "items": [ { "item": "hardware", "chance": 10 }, { "item": "robots", "chance": 10 } ] } }, "place_nested": [ @@ -210,7 +210,7 @@ ], "palettes": [ "lab_palette", "lab_loot_research" ], "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ], "=": "t_conveyor", "%": "t_machinery_heavy" }, @@ -261,7 +261,7 @@ "palettes": [ "lab_palette", "lab_loot_research" ], "furniture": { "f": "f_null" }, "terrain": { - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ], "!": [ "t_thconc_floor", "t_thconc_floor", "t_console_broken", "t_generator_broken"], "C": "t_centrifuge" }, @@ -360,7 +360,7 @@ "-----------..-----------" ], "palettes": [ "lab_palette", "lab_loot_home_office" ], - "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] }, + "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "mapping": { "t": { "items": [ { "item": "vending_food_items", "chance": 20 } ] } }, "place_nested": [ { "chunks": [ "lab_spawn_7x7_wall_nw" ], "x": 3, "y": 2 }, @@ -406,7 +406,7 @@ "-----------..-----------" ], "palettes": [ "lab_palette", "lab_loot_home_office" ], - "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] }, + "terrain": { "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "furniture": { "^": "f_indoor_plant", "C": "f_cupboard" @@ -432,13 +432,13 @@ "rotation": [ 0, 3 ], "fill_ter": "t_thconc_floor", "rows": [ - ",,,,,,,L...............l", - ",,,,,,,L...............l", - ",,,,,,,L....----?----..l", + ".......L...............l", + ".......L...............l", + ".......L....----?----..l", "-------|C...| |..l", - ",,,,,,,L....| |..l", - ",,,,,,,L....| |..l", - ",,,,,,,L....+ |..l", + ".......L....| |..l", + ".......L....| |..l", + ".......L....+ |..l", "-------|....| |..l", "............| |-+-", "............| |...", @@ -467,8 +467,8 @@ "F": "t_chainfence_h", "f": "t_chainfence_v", "H": "t_chaingate_c", - "C": "t_gates_control_concrete", - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c" ] + "C": "t_gates_control_concrete_lab", + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c" ] }, "mapping": { "X": { @@ -583,7 +583,7 @@ } }, { - "//": "medical wing, stemcell + centrifuge, monster in stemcell room", + "//": "medical wing, bonesetting + centrifuge, monster in bonesetting room", "type": "mapgen", "method": "json", "om_terrain": [ "lab_4side" ], @@ -620,7 +620,7 @@ "palettes": [ "lab_palette" ], "terrain": { "C": "t_centrifuge", - "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_c"], + "?": [ "t_concrete_wall", "t_concrete_wall", "t_door_glass_frosted_lab_c"], "7": "t_console" }, "items": { @@ -635,8 +635,8 @@ "failures": [ { "action": "destroy_blood" } ] }, "7": { - "name": "Mr. Stem Cell", - "options": [ { "name": "Stem Cell Treatment", "action": "stemcell_treatment" } ], + "name": "Bonesetting Treatment", + "options": [ { "name": "Bonesetting Treatment", "action": "bonesetting" } ], "failures": [ { "action": "alarm" } ] } }, @@ -743,14 +743,14 @@ ".......................x", "x................|-g-g--", "-------|.........|^.....", - ",,,,,,,L.........G......", - ",,,,,,,L.........|..ddd.", - ",,,,,,,L.........g..dh..", + ".......L.........G......", + ".......L.........|..ddd.", + ".......L.........g..dh..", "-------|C........g......", - ",,,,,,,L.........g......", - ",,,,,,,L.........|dh....", - ",,,,,,,L.........|dxd.^.", - ",,,,,,,|.........|......" + ".......L.........g......", + ".......L.........|dh....", + ".......L.........|dxd.^.", + ".......|.........|......" ], "palettes": [ "lab_palette" ], "furniture": { "S": "f_null", "^": "f_indoor_plant", "f": "f_null" }, @@ -762,9 +762,9 @@ "P": "t_generator_broken", "S": "t_sewage_pump", "p": "t_sewage_pipe", - "C": "t_gates_control_concrete", + "C": "t_gates_control_concrete_lab", "g": "t_wall_glass", - "G": "t_door_glass_c" + "G": "t_door_glass_lab_c" }, "mapping": { "X": { @@ -839,7 +839,7 @@ "e": "t_elevator_control_off", "w": "t_water_sh", "W": "t_water_dp", - "=": "t_door_c", + "=": "t_door_lab_c", "C": "t_centrifuge" }, "mapping": { "t": { "items": [ { "item": "vending_food_items", "chance": 20 } ] } }, @@ -893,7 +893,7 @@ ",": "t_floor_blue", "&": "t_radio_tower", "g": "t_wall_glass", - "G": "t_door_glass_c", + "G": "t_door_glass_lab_c", "r": "t_railing_h" }, "computers": { @@ -953,7 +953,7 @@ "O": "f_oven", "V": "f_table" }, - "terrain": { "w": "t_window_domestic", "`": "t_grass", "+": "t_door_c" }, + "terrain": { "w": "t_window_domestic", "`": "t_grass", "+": "t_door_lab_c" }, "mapping": { "t": { "items": [ { "item": "livingroom", "chance": 20 } ] }, "F": { "items": [ { "item": "livingroom", "chance": 5 } ] }, diff --git a/data/json/mapgen/lab/lab_floorplans_1side.json b/data/json/mapgen/lab/lab_floorplans_1side.json index f7cd600d44f60..fb14109ee7e29 100644 --- a/data/json/mapgen/lab/lab_floorplans_1side.json +++ b/data/json/mapgen/lab/lab_floorplans_1side.json @@ -50,7 +50,7 @@ "om_terrain": [ "lab_1side" ], "weight": 100, "object": { - "fill_ter": "t_strconc_floor", + "fill_ter": "t_thconc_floor", "rows": [ "|----------..----------|", "|.........|..|.........|", @@ -321,7 +321,7 @@ "nested_mapgen_id": "lab_north_doors", "object": { "mapgensize": [ 2, 2 ], - "place_terrain": [ { "ter": "t_door_metal_c", "x": 0, "y": 0 }, { "ter": "t_door_metal_c", "x": 1, "y": 0 } ] + "place_terrain": [ { "ter": "t_door_metal_lab_c", "x": 0, "y": 0 }, { "ter": "t_door_metal_lab_c", "x": 1, "y": 0 } ] } } ] diff --git a/data/json/mapgen/lab/lab_rooms.json b/data/json/mapgen/lab/lab_rooms.json index d67a371b2e36d..14b6e88868968 100644 --- a/data/json/mapgen/lab/lab_rooms.json +++ b/data/json/mapgen/lab/lab_rooms.json @@ -112,16 +112,16 @@ "mapgensize": [ 7, 7 ], "rotation": [ 0, 3 ], "rows": [ - ",,,,,,,", - ",,,,,,,", - ",,,,,,,", - ",cccc6,", - ",,,,,,,", - ",,,,,,,", - ",,,,,,," + ".......", + ".......", + ".......", + ".cccc6.", + ".......", + ".......", + "......." ], "palettes": [ "lab_palette", "lab_palette_map_computer" ], - "terrain": { "c": [ "t_strconc_floor" ] }, + "terrain": { "c": [ "t_thconc_floor" ] }, "place_monster": [ { "monster": "mon_turret", "x": [2, 3], "y": [ 3, 3 ] } ] } }, @@ -133,18 +133,18 @@ "mapgensize": [ 7, 7 ], "rotation": [ 0, 3 ], "rows": [ - ",,,,,,,,,", - ",,,,c,,,,", - ",,,,c,,,,", - ",,,,c,,,,", - ",,,,c,,,,", - ",,,,c,,,,", - ",,,,c,,,,", - ",,,,6,,,,", - ",,,,,,,,," + ".........", + "....c....", + "....c....", + "....c....", + "....c....", + "....c....", + "....c....", + "....6....", + "........." ], "palettes": [ "lab_palette", "lab_palette_map_computer" ], - "terrain": { "c": [ "t_strconc_floor" ] }, + "terrain": { "c": [ "t_thconc_floor" ] }, "place_monster": [ { "monster": "mon_turret", "x": [4, 4], "y": [ 1, 4 ] } ] } }, diff --git a/data/json/mapgen/lab/lab_rooms_wall.json b/data/json/mapgen/lab/lab_rooms_wall.json index da59323ce4f4d..8d718033d991c 100644 --- a/data/json/mapgen/lab/lab_rooms_wall.json +++ b/data/json/mapgen/lab/lab_rooms_wall.json @@ -121,8 +121,8 @@ "set": [ { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 7, "y": 0, "y2": 0 }, { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 0, "y": 1, "y2": 7 }, - { "point": "terrain", "id": "t_door_glass_c", "x": [ 3, 5], "y": 0 }, - { "point": "terrain", "id": "t_door_glass_c", "x": 0, "y": [3, 5] } + { "point": "terrain", "id": "t_door_glass_lab_c", "x": [ 3, 5], "y": 0 }, + { "point": "terrain", "id": "t_door_glass_lab_c", "x": 0, "y": [3, 5] } ], "place_nested": [ { "chunks": [ "lab_spawn_7x7" ], "x": 1, "y": 1} ] } @@ -137,8 +137,8 @@ "set": [ { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 7, "y": 7, "y2": 7 }, { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 0, "y": 0, "y2": 6 }, - { "point": "terrain", "id": "t_door_glass_c", "x": [ 3, 5], "y": 7 }, - { "point": "terrain", "id": "t_door_glass_c", "x": 0, "y": [2, 4] } + { "point": "terrain", "id": "t_door_glass_lab_c", "x": [ 3, 5], "y": 7 }, + { "point": "terrain", "id": "t_door_glass_lab_c", "x": 0, "y": [2, 4] } ], "place_nested": [ { "chunks": [ "lab_spawn_7x7" ], "x": 1, "y": 0} ] } @@ -234,18 +234,19 @@ "nested_mapgen_id": "lab_room_7x7_wall_nw", "object": { "mapgensize": [ 8, 8 ], + "fill_ter": "t_thconc_floor", "rows": [ "....C...", "-LLL-LLL", - "|,,,|,,,", - "|,,,|,,,", - "|,,,|,,,", - "|,,,|,,,", - "|,,,|,,,", - "|,,,|,,," + "|...|...", + "|...|...", + "|...|...", + "|...|...", + "|...|...", + "|...|..." ], "palettes": [ "lab_palette" ], - "terrain": { "C": "t_gates_control_concrete" }, + "terrain": { "C": "t_gates_control_concrete_lab" }, "place_nested": [ { "chunks": [ "sub_f_crate_utility_room" ], "x": [1,3], "y": [2,7], "repeat": 8}, { "chunks": [ "sub_f_crate_utility_room" ], "x": [5,7], "y": [2,7], "repeat": 8} @@ -294,8 +295,8 @@ "set": [ { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 9, "y": 0, "y2": 0 }, { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 0, "y": 1, "y2": 9 }, - { "point": "terrain", "id": "t_door_glass_c", "x": [ 4, 6 ], "y": 0 }, - { "point": "terrain", "id": "t_door_glass_c", "x": 0, "y": [ 4, 6 ] } + { "point": "terrain", "id": "t_door_glass_lab_c", "x": [ 4, 6 ], "y": 0 }, + { "point": "terrain", "id": "t_door_glass_lab_c", "x": 0, "y": [ 4, 6 ] } ], "place_nested": [ { "chunks": [ "lab_spawn_9x9" ], "x": 1, "y": 1} ] } @@ -310,8 +311,8 @@ "set": [ { "line": "terrain", "id": "t_wall_glass", "x": 0, "x2": 0, "y": 0, "y2": 9 }, { "line": "terrain", "id": "t_wall_glass", "x": 1, "x2": 9, "y": 9, "y2": 9 }, - { "point": "terrain", "id": "t_door_glass_c", "x": [ 4, 6 ], "y": 9 }, - { "point": "terrain", "id": "t_door_glass_c", "x": 0, "y": [ 3, 5 ] } + { "point": "terrain", "id": "t_door_glass_lab_c", "x": [ 4, 6 ], "y": 9 }, + { "point": "terrain", "id": "t_door_glass_lab_c", "x": 0, "y": [ 3, 5 ] } ], "place_nested": [ { "chunks": [ "lab_spawn_9x9" ], "x": 1, "y": 0} ] } @@ -457,7 +458,7 @@ "monster": { "7": { "monster": "mon_turret"} }, - "terrain": { "g": "t_wall_glass", "G": "t_door_glass_c", "7": "t_strconc_floor" } + "terrain": { "g": "t_wall_glass", "G": "t_door_glass_lab_c", "7": "t_thconc_floor" } } }, { diff --git a/data/json/mapgen/teashop.json b/data/json/mapgen/teashop.json index 0af4086fd5dd2..8f1f4ff079f08 100644 --- a/data/json/mapgen/teashop.json +++ b/data/json/mapgen/teashop.json @@ -296,7 +296,6 @@ "}": { "item": "displays", "chance": 30, "repeat": [ 1, 3 ] }, "C": { "item": "chair_extra", "chance": 20, "repeat": [ 1, 2 ] }, "c": { "item": "chair_torso", "chance": 10, "repeat": [ 1, 3 ] } - }, "place_signs": [ { "signage": "The Green Leaf Tea Shop", "x": 4, "y": 0 } ] } diff --git a/data/json/mapgen/trailhead.json b/data/json/mapgen/trailhead.json index 21fefe78912f0..5e0d62226c486 100644 --- a/data/json/mapgen/trailhead.json +++ b/data/json/mapgen/trailhead.json @@ -69,7 +69,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "trailhead" ], - "weight": 1, + "weight": 5, "object": { "rows": [ ",,,,,,,;;......,,,,,,;,,", @@ -150,7 +150,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "trailhead" ], - "weight": 1, + "weight": 5, "object": { "rows": [ ",,,,,,,,,,,,,,,,,,,,,,,,", diff --git a/data/json/mapgen_palettes/evac_center.json b/data/json/mapgen_palettes/evac_center.json index 4e6653a4a7f31..019c2c7b318c9 100644 --- a/data/json/mapgen_palettes/evac_center.json +++ b/data/json/mapgen_palettes/evac_center.json @@ -6,7 +6,7 @@ " ": "t_floor", "#": "t_brick_wall", "%": "t_shrub", - "+": "t_door_c", + "+": "t_rdoor_c", ",": "t_pavement_y", ".": [ "t_grass", @@ -41,9 +41,10 @@ "t_shrub" ], "0": "t_door_locked_interior", - "1": "t_window_boarded", + "1": "t_reinforced_glass_shutter", "2": "t_utility_light", "6": "t_console_broken", + "!": "t_fence_barbed", "=": "t_door_metal_locked", ">": "t_stairs_down", "E": "t_elevator", @@ -61,6 +62,7 @@ "@": "f_bed", "D": "f_trashcan", "L": "f_locker", + "p": "f_pillow_fort", "P": "f_indoor_plant", "S": "f_sink", "U": "f_statue", diff --git a/data/json/martialarts.json b/data/json/martialarts.json index 3dfed7592a2b1..c3a3172517aaa 100644 --- a/data/json/martialarts.json +++ b/data/json/martialarts.json @@ -431,6 +431,7 @@ "diveknife", "firemachete_off", "firemachete_on", + "glaive", "golf_club", "hockey_stick", "i_staff", @@ -444,6 +445,7 @@ "makeshift_halberd", "makeshift_knife", "makeshift_machete", + "naginata", "pipe", "pointy_stick", "pool_cue", @@ -665,9 +667,13 @@ "sharp_toothbrush", "shishkebab_off", "shishkebab_on", + "shocktonfa_off", + "shocktonfa_on", "stick", "switchblade", "tanto", + "tonfa", + "tonfa_wood", "umbrella", "wasp_sting", "wrench", @@ -1004,5 +1010,62 @@ "tec_debug_slow", "tec_debug_arpen" ] + },{ + "type" : "martial_art", + "id" : "style_sojutsu", + "name" : "Sōjutsu", + "description": "Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting with a spear. Sōjutsu focuses on keeping opponents at a distance in order to maintain advantage in combat.", + "arm_block" : 99, + "leg_block" : 99, + "static_buffs" : [ + { + "id" : "sojutsu_static", + "name" : "Sōjutsu Stance", + "description" : "Bonus block with reach weapons while standing still", + "unarmed_allowed" : false, + "bonus_blocks" : 1 + } + ], + "onmove_buffs": [ + { + "id" : "sojutsu_damage_buff", + "name" : "Sōjutsu Rush", + "description" : "Increased damage when moving but no bonus block", + "unarmed_allowed" : false, + "min_melee" : 0, + "buff_duration" : 2, + "max_stacks" : 1, + "bonus_blocks" : -1, + "mult_bonuses" : [ + ["damage", "cut", 1.1], + ["damage", "stab", 1.1] + ] + } + ], + "techniques" : [ + "tec_sojutsu_push", + "tec_sojutsu_trip", + "tec_sojutsu_skewer" + ], + "weapons" : [ + "glaive", + "halberd", + "halberd_fake", + "naginata", + "makeshift_halberd", + "pike", + "pike_inferior", + "pike_fake", + "pitchfork", + "qiang", + "spear_copper", + "spear_forked", + "spear_homemade_halfpike", + "spear_pipe", + "spear_rebar", + "spear_steel", + "spear_survivor", + "spear_wood" + ] } ] diff --git a/data/json/monster_drops.json b/data/json/monster_drops.json index b621276ed6fa9..f5e4dbe43ae96 100644 --- a/data/json/monster_drops.json +++ b/data/json/monster_drops.json @@ -1,308 +1,416 @@ [ - { - "type" : "item_group", - "subtype": "collection", - "//": "contains cloth for an average zombie", - "id": "default_zombie_clothes", - "entries": - [ - { "group": "pants", "damage": [1, 4] }, - { "group": "shirts", "damage": [1, 4] }, - { "group": "shoes", "damage": [1, 4] }, - { "group": "jackets", "damage": [1, 4], "prob": 20 }, - { "group": "bags", "damage": [1, 4], "prob": 6 } + { + "type": "item_group", + "subtype": "collection", + "//": "contains cloth for an average zombie", + "id": "default_zombie_clothes", + "entries": [ + { "group": "pants", "damage": [ 1, 4 ] }, + { "group": "shirts", "damage": [ 1, 4 ] }, + { "group": "shoes", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "jackets", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "suits", "damage": [ 1, 4 ], "prob": 20 }, + { + "distribution": [ + { "item": "wristwatch", "prob": 15 }, + { "item": "pocketwatch", "prob": 5 }, + { "item": "gold_watch", "prob": 5, "damage": [ 1, 4 ] }, + { "item": "diving_watch", "prob": 10, "damage": [ 1, 4 ] }, + { "item": "sf_watch", "prob": 5, "damage": [ 1, 4 ] } + ], + "prob": 20 + }, + { "item": "touring_suit", "damage": [ 1, 4 ], "prob": 10 }, + { + "distribution": [ + { "item": "helmet_bike", "damage": [ 1, 4 ], "prob": 50 }, + { "item": "helmet_motor", "damage": [ 1, 4 ], "prob": 50 } + ], + "prob": 10 + }, + { "group": "common_gloves", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "hatstore_hats", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "hatstore_accessories", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "clothing_glasses", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "jewelry_accessories", "prob": 15 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items people could have carried in their bags prior to zombification", + "id": "default_zombie_items_bags", + "entries": [ + { "group": "bags", "damage": [ 1, 4 ] }, + { "group": "default_zombie_items_pockets" }, + { "group": "homebooks", "prob": 30 }, + { "group": "alcohol_bottled_canned", "prob": 10 }, + { "group": "vending_drink_items", "prob": 25 }, + { "item": "laptop", "prob": 10, "charges-min": 0, "charges-max": 50 }, + { "item": "eink_tablet_pc", "prob": 10, "charges-min": 0, "charges-max": 50 }, + { "item": "vibrator", "prob": 5, "charges-min": 0, "charges-max": 50 }, + { "item": "teleumbrella", "prob": 10 }, + { "item": "file", "prob": 10 }, + { "item": "thermos", "prob": 10 }, + { "item": "spray_can", "prob": 10 }, + { + "distribution": [ { "item": "roadmap" }, { "item": "trailmap" }, { "item": "touristmap" }, { "item": "restaurantmap" } ], + "prob": 5 + }, + { + "distribution": [ + { "group": "tools_carpentry", "prob": 33 }, + { "group": "tools_home", "prob": 33 }, + { "group": "tools_electronics", "prob": 33 } + ], + "prob": 5 + }, + { + "distribution": [ + { "item": "talking_doll", "prob": 33, "charges-min": 0, "charges-max": 50 }, + { "item": "creepy_doll", "prob": 33, "charges-min": 0, "charges-max": 50 }, + { "item": "straw_doll", "prob": 33 } + ], + "prob": 5 + }, + { + "distribution": [ + { "item": "camera", "prob": 70, "charges-min": 0, "charges-max": 50 }, + { "item": "camera_pro", "prob": 30, "charges-min": 0, "charges-max": 50 } + ], + "prob": 10 + } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items people could have carried in their pockets prior to zombification", + "id": "default_zombie_items_pockets", + "entries": [ + { + "distribution": [ + { "item": "pockknife", "prob": 50 }, + { "item": "knife_folding", "prob": 30 }, + { "item": "knife_swissarmy", "prob": 10 }, + { "item": "switchblade", "prob": 10 } + ], + "prob": 10 + }, + { + "distribution": [ + { "item": "cig", "prob": 65, "charges-min": 0, "charges-max": 20 }, + { "item": "chaw", "prob": 5 }, + { "item": "cigar", "prob": 10 }, + { "item": "handrolled_cig", "prob": 10 }, + { "item": "nic_gum", "prob": 20 }, + { "item": "ecig", "prob": 15 }, + { "collection": [ { "item": "weed" }, { "item": "pipe_glass", "prob": 50 } ], "prob": 10 }, + { "distribution": [ { "item": "joint", "prob": 80 }, { "item": "joint_roach", "prob": 20 } ], "prob": 10 }, + { + "collection": [ + { "item": "tobacco" }, + { "distribution": [ { "item": "rolling_paper", "prob": 80 }, { "item": "pipe_tobacco", "prob": 20 } ] } + ], + "prob": 10 + }, + { "collection": [ { "item": "advanced_ecig" }, { "item": "nicotine_liquid" } ], "prob": 10 }, + { "collection": [ { "item": "crackpipe" }, { "item": "crack" } ], "prob": 5 } + ], + "prob": 50 + }, + { + "distribution": [ { "item": "lighter", "prob": 40 }, { "item": "ref_lighter", "prob": 40 }, { "item": "matches", "prob": 20 } ], + "prob": 30 + }, + { "distribution": [ { "item": "gum" }, { "item": "caff_gum" } ], "prob": 30 }, + { "item": "mp3", "prob": 18, "charges-min": 0, "charges-max": 15 }, + { "item": "portable_game", "prob": 10, "charges-min": 0, "charges-max": 50 }, + { "item": "game_watch", "prob": 10, "damage": [ 1, 4 ], "charges-min": 0, "charges-max": 50 }, + { "item": "usb_drive", "prob": 10, "charges-min": 0, "charges-max": 50 }, + { "item": "meth", "prob": 2 }, + { "item": "coke", "prob": 2 }, + { "item": "lsd", "prob": 2 }, + { "item": "heroin", "prob": 2 }, + { "item": "mobile_memory_card", "prob": 10 }, + { "item": "flyer", "prob": 30 }, + { "item": "multitool", "prob": 20 }, + { "group": "softdrugs", "prob": 10 }, + { "group": "harddrugs", "prob": 5 }, + { "group": "phones", "prob": 85 }, + { "group": "vending_food_items", "prob": 50 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "//": "items that an average zombie carries around and drops on death", + "id": "default_zombie_items", + "ammo": 30, + "magazine": 100, + "groups": [ + [ "default_zombie_items_bags", 16 ], + [ "default_zombie_items_pockets", 20 ], + [ "ammo_pistol_common", 2 ], + [ "ammo_shotgun_common", 1 ], + [ "guns_pistol_common", 2 ], + [ "guns_shotgun_common", 1 ], + [ "postman_gear", 5 ], + [ "plumber_gear", 5 ] + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "contains cloth (always), a cash card (10% chance), and a random item (75% chance)", + "id": "default_zombie_death_drops", + "entries": [ + { "group": "default_zombie_clothes" }, + { "group": "default_zombie_items", "prob": 75 }, + { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_swimmer_death_drops", + "entries": [ + { + "distribution": [ + { "group": "swimmer_wetsuit", "damage": [ 1, 4 ], "prob": 10 }, + { + "collection": [ + { "group": "swimmer_head", "damage": [ 1, 4 ], "prob": 75 }, + { "group": "swimmer_torso", "damage": [ 1, 4 ], "prob": 33 }, + { "group": "swimmer_pants", "damage": [ 1, 4 ] }, + { "group": "swimmer_shoes", "damage": [ 1, 4 ], "prob": 25 } + ], + "prob": 90 + } ] - }, - { - "type" : "item_group", - "subtype": "distribution", - "//": "items that an average zombie carries around and drops on death", - "id": "default_zombie_items", - "ammo": 30, - "magazine": 100, - "groups": [ - [ "livingroom", 5 ], - [ "kitchen", 4 ], - [ "bedroom", 16 ], - [ "softdrugs", 5 ], - [ "harddrugs", 1 ], - [ "tools_home", 20 ], - [ "trash", 7 ], - [ "ammo_pistol_common", 2 ], - [ "ammo_shotgun_common", 1 ], - [ "guns_pistol_common", 2 ], - [ "guns_shotgun_common", 1 ], - [ "home_hw", 5 ], - [ "postman_gear", 5] + }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_scientist_death_drops", + "entries": [ + { "group": "lab_shoes", "damage": [ 1, 4 ] }, + { "group": "lab_torso", "damage": [ 1, 4 ] }, + { "group": "lab_pants", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { + "distribution": [ + { "group": "harddrugs", "prob": 6 }, + { "group": "chem_lab", "prob": 10 }, + { "group": "teleport", "prob": 6 }, + { "group": "goo", "prob": 8 }, + { "group": "cloning_vat", "prob": 1 }, + { "group": "dissection", "prob": 10 }, + { "group": "electronics", "prob": 9 }, + { "group": "bionics", "prob": 1 }, + { "group": "radio", "prob": 2 }, + { "group": "textbooks", "prob": 3 } ] - }, - { - "type" : "item_group", - "subtype": "collection", - "//": "contains cloth (always), a cash card (10% chance) and a random item (50% chance)", - "id": "default_zombie_death_drops", - "entries": - [ - { "group": "default_zombie_clothes" }, - { "group": "default_zombie_items", "prob": 50 }, - { "item": "cash_card", "prob": 10, "charges-min": 0, "charges-max": 50000 } + }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_grenadier", + "entries": [ + { "item": "chestrig", "damage": [ 1, 4 ] }, + { "item": "bot_grenade_hack", "count": [ 0, 3 ] }, + { "item": "bot_flashbang_hack", "prob": 50 }, + { "item": "bot_gasbomb_hack", "prob": 50 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_grenadier_elite", + "entries": [ + { "item": "chestrig", "damage": [ 1, 4 ] }, + { "item": "molle_pack", "damage": [ 1, 4 ] }, + { "item": "bot_grenade_hack", "count": [ 0, 4 ] }, + { "item": "bot_flashbang_hack", "count": [ 1, 2 ], "prob": 50 }, + { "item": "bot_gasbomb_hack", "count": [ 1, 2 ], "prob": 50 }, + { "item": "bot_c4_hack", "count": [ 1, 2 ], "prob": 20 }, + { "item": "bot_mininuke_hack", "prob": 1 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_armored_death_drops", + "entries": [ + { "item": "power_supply", "count": [ 0, 7 ], "prob": 25 }, + { "item": "element", "count": [ 0, 3 ], "prob": 40 }, + { "item": "cable", "charges": [ 0, 12 ], "prob": 60 }, + { "item": "transponder", "count": [ 0, 1 ], "prob": 25 }, + { "item": "circuit", "count": [ 0, 8 ], "prob": 40 }, + { "item": "small_lcd_screen", "count": [ 0, 2 ], "prob": 25 }, + { "item": "RAM", "count": [ 0, 1 ], "prob": 25 }, + { "item": "depowered_helmet", "count": [ 0, 1 ], "prob": 20 }, + { "item": "depowered_armor", "count": [ 0, 1 ], "prob": 20 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_hulk_death_drops", + "entries": [ + { "item": "rag", "damage": [ 1, 4 ], "count": [ 1, 4 ] }, + { "group": "pants", "damage": [ 1, 4 ] }, + { "group": "default_zombie_items" }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_hazmat_death_drops", + "entries": [ + { + "distribution": [ + { "group": "hazmat_full", "damage": [ 1, 4 ], "prob": 20 }, + { + "collection": [ + { "group": "hazmat_torso", "damage": [ 1, 4 ] }, + { "group": "hazmat_gloves", "damage": [ 1, 4 ] }, + { "group": "hazmat_boots", "damage": [ 1, 4 ] }, + { "group": "hazmat_mask", "damage": [ 1, 4 ] }, + { "group": "hazmat_eyes", "damage": [ 1, 4 ], "prob": 33 } + ], + "prob": 80 + } ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_swimmer_death_drops", - "entries": - [ - { "distribution": [ - { "group": "swimmer_wetsuit", "damage": [1, 4], "prob": 10 }, - { "collection": [ - { "group": "swimmer_head", "damage": [1, 4], "prob": 75 }, - { "group": "swimmer_torso", "damage": [1, 4], "prob": 33 }, - { "group": "swimmer_pants", "damage": [1, 4] }, - { "group": "swimmer_shoes", "damage": [1, 4], "prob": 25 } - ], "prob": 90 } - ] }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "distribution": [ { "group": "rad_gear", "prob": 1 } ] }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_bio_op_death_drops", + "ammo": 30, + "magazine": 100, + "entries": [ + { "group": "bio_op_boots", "damage": [ 1, 4 ] }, + { "group": "mil_armor_torso", "damage": [ 1, 4 ] }, + { "group": "mil_armor_pants", "damage": [ 1, 4 ] }, + { "group": "mil_armor_helmet", "damage": [ 1, 4 ], "prob": 50 }, + { "group": "bio_op_face", "damage": [ 1, 4 ], "prob": 50 }, + { "group": "bio_op_torso", "damage": [ 1, 4 ], "prob": 50 }, + { "group": "bio_op_gloves", "damage": [ 1, 4 ], "prob": 50 }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { + "distribution": [ + { "group": "ammo_milspec", "prob": 15 }, + { "group": "guns_pistol_milspec", "prob": 5 }, + { "group": "guns_shotgun_milspec", "prob": 4 }, + { "group": "guns_smg_milspec", "prob": 5 }, + { "group": "guns_rifle_milspec", "prob": 10 }, + { "group": "bots", "prob": 1 }, + { "group": "grenades", "prob": 5 }, + { "group": "mil_accessories", "prob": 10 }, + { "group": "mil_food", "prob": 5 }, + { "group": "bionics_mil", "prob": 1 } ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_scientist_death_drops", - "entries": - [ - { "group": "lab_shoes", "damage": [1, 4] }, - { "group": "lab_torso", "damage": [1, 4] }, - { "group": "lab_pants", "damage": [1, 4] }, - { "group": "underwear", "damage": [1, 4] }, - { "distribution": [ - { "group": "harddrugs", "prob": 6 }, - { "group": "chem_lab", "prob": 10 }, - { "group": "teleport", "prob": 6 }, - { "group": "goo", "prob": 8 }, - { "group": "cloning_vat", "prob": 1 }, - { "group": "dissection", "prob": 10 }, - { "group": "electronics", "prob": 9 }, - { "group": "bionics", "prob": 1 }, - { "group": "radio", "prob": 2 }, - { "group": "textbooks", "prob": 3 } - ] }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_fireman_death_drops", + "entries": [ + { "group": "fireman_torso", "damage": [ 1, 4 ] }, + { "group": "fireman_pants", "damage": [ 1, 4 ] }, + { "group": "fireman_gloves", "damage": [ 1, 4 ] }, + { "group": "fireman_boots", "damage": [ 1, 4 ] }, + { "group": "fireman_mask", "damage": [ 1, 4 ] }, + { "group": "fireman_head", "damage": [ 1, 4 ] }, + { "group": "hazmat_eyes", "damage": [ 1, 4 ], "prob": 33 }, + { "distribution": [ { "group": "fireman_gear", "prob": 1 } ] }, + { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_survivor_elite_death_drops", + "entries": [ + { "group": "survivorzed_gloves", "damage": [ 1, 4 ] }, + { "group": "survivorzed_boots", "damage": [ 1, 4 ] }, + { "group": "survivorzed_head", "damage": [ 1, 4 ] }, + { "group": "survivorzed_extra", "damage": [ 1, 4 ] }, + { + "distribution": [ + { "group": "survivorzed_suits", "prob": 25 }, + { + "collection": [ { "group": "survivorzed_tops", "prob": 25 }, { "group": "survivorzed_bottoms", "prob": 25 } ], + "prob": 75 + } + ], + "damage": [ 1, 4 ] + }, + { + "//": "1/3 chance of underware, 2/3 chance of loincloth", + "distribution": [ { "group": "underwear" }, { "group": "loincloth" }, { "group": "loincloth" } ], + "damage": [ 1, 4 ] + }, + { + "distribution": [ + { "group": "guns_common", "prob": 24 }, + { "group": "grenades", "prob": 10 }, + { "group": "mil_hw", "prob": 1 }, + { "group": "launchers", "prob": 1 }, + { "group": "stash_food", "prob": 40 }, + { "group": "ammo_common", "prob": 26 }, + { "group": "stash_drugs", "prob": 28 }, + { "group": "gear_survival", "prob": 18 }, + { "group": "mil_food", "prob": 22 }, + { "group": "mil_food_nodrugs", "prob": 34 }, + { "group": "shelter", "prob": 8 }, + { "group": "mil_surplus", "prob": 6 } ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_grenadier", - "entries": - [ - { "item": "chestrig", "damage": [1, 4] }, - { "item": "bot_grenade_hack", "count": [0, 3] }, - { "item": "bot_flashbang_hack", "prob": 50}, - { "item": "bot_gasbomb_hack", "prob": 50} - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_grenadier_elite", - "entries": - [ - { "item": "chestrig", "damage": [1, 4] }, - { "item": "molle_pack", "damage": [1, 4] }, - { "item": "bot_grenade_hack", "count": [0, 4] }, - { "item": "bot_flashbang_hack", "count": [1, 2], "prob": 50}, - { "item": "bot_gasbomb_hack", "count": [1, 2], "prob": 50}, - { "item": "bot_c4_hack", "count": [1, 2], "prob": 20}, - { "item": "bot_mininuke_hack", "prob": 1} - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_armored_death_drops", - "entries": - [ - { "item": "power_supply", "count": [0, 7], "prob": 25}, - { "item": "element", "count": [0, 3], "prob": 40}, - { "item": "cable", "charges": [0, 12], "prob": 60}, - { "item": "transponder", "count": [0, 1], "prob": 25}, - { "item": "circuit", "count": [0, 8], "prob": 40}, - { "item": "small_lcd_screen", "count": [0, 2], "prob": 25}, - { "item": "RAM", "count": [0, 1], "prob": 25}, - { "item": "depowered_helmet", "count": [0, 1], "prob": 20}, - { "item": "depowered_armor", "count": [0, 1], "prob": 20} - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_hulk_death_drops", - "entries": - [ - { "item": "rag", "damage": [1, 4], "count": [1, 4] }, - { "group": "pants", "damage": [1, 4] }, - { "group": "default_zombie_items" }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_hazmat_death_drops", - "entries": - [ - { "distribution": [ - { "group": "hazmat_full", "damage": [1, 4], "prob": 20 }, - { "collection": [ - { "group": "hazmat_torso", "damage": [1, 4] }, - { "group": "hazmat_gloves", "damage": [1, 4] }, - { "group": "hazmat_boots", "damage": [1, 4] }, - { "group": "hazmat_mask", "damage": [1, 4] }, - { "group": "hazmat_eyes", "damage": [1, 4], "prob": 33 } - ], "prob": 80 } - ] }, - { "group": "underwear", "damage": [1, 4] }, - { "distribution": [ - { "group": "rad_gear", "prob": 1 } - ] }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_bio_op_death_drops", - "ammo": 30, - "magazine": 100, - "entries": - [ - { "group": "bio_op_boots", "damage": [1, 4] }, - { "group": "mil_armor_torso", "damage": [1, 4] }, - { "group": "mil_armor_pants", "damage": [1, 4] }, - { "group": "mil_armor_helmet", "damage": [1, 4], "prob": 50 }, - { "group": "bio_op_face", "damage": [1, 4], "prob": 50 }, - { "group": "bio_op_torso", "damage": [1, 4], "prob": 50 }, - { "group": "bio_op_gloves", "damage": [1, 4], "prob": 50 }, - { "group": "underwear", "damage": [1, 4] }, - { "distribution": [ - { "group": "ammo_milspec", "prob": 15 }, - { "group": "guns_pistol_milspec", "prob": 5 }, - { "group": "guns_shotgun_milspec", "prob": 4 }, - { "group": "guns_smg_milspec", "prob": 5 }, - { "group": "guns_rifle_milspec", "prob": 10 }, - { "group": "bots", "prob": 1 }, - { "group": "grenades", "prob": 5 }, - { "group": "mil_accessories", "prob": 10 }, - { "group": "mil_food", "prob": 5 }, - { "group": "bionics_mil", "prob": 1 } - ] }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_fireman_death_drops", - "entries": - [ - { "group": "fireman_torso", "damage": [1, 4] }, - { "group": "fireman_pants", "damage": [1, 4] }, - { "group": "fireman_gloves", "damage": [1, 4] }, - { "group": "fireman_boots", "damage": [1, 4] }, - { "group": "fireman_mask", "damage": [1, 4] }, - { "group": "fireman_head", "damage": [1, 4] }, - { "group": "hazmat_eyes", "damage": [1, 4], "prob": 33 }, - { "distribution": [ - { "group": "fireman_gear", "prob": 1 } - ] }, - { "item": "cash_card", "charges-min": 0, "charges-max": 50000 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_survivor_elite_death_drops", - "entries": - [ - { "group": "survivorzed_gloves", "damage": [1, 4] }, - { "group": "survivorzed_boots", "damage": [1, 4] }, - { "group": "survivorzed_head", "damage": [1, 4] }, - { "group": "survivorzed_extra", "damage": [1, 4] }, - { - "distribution": [ - { - "group": "survivorzed_suits", - "prob": 25 - }, - { - "collection": [ - { "group": "survivorzed_tops", "prob": 25 }, - { "group": "survivorzed_bottoms", "prob": 25 } - ], - "prob": 75 - } - ], "damage": [1, 4] - }, - { - "//": "1/3 chance of underware, 2/3 chance of loincloth", - "distribution": [ - { "group": "underwear" }, - { "group": "loincloth" }, - { "group": "loincloth" } - ], - "damage": [1, 4] - }, - { "distribution": [ - { "group": "guns_common", "prob": 24 }, - { "group": "grenades", "prob": 10 }, - { "group": "mil_hw", "prob": 1 }, - { "group": "launchers", "prob": 1 }, - { "group": "stash_food", "prob": 40 }, - { "group": "ammo_common", "prob": 26 }, - { "group": "stash_drugs", "prob": 28 }, - { "group": "gear_survival", "prob": 18 }, - { "group": "mil_food", "prob": 22 }, - { "group": "mil_food_nodrugs", "prob": 34 }, - { "group": "shelter", "prob": 8 }, - { "group": "mil_surplus", "prob": 6 } - ] }, - { "item": "cash_card", "charges-min": 50000, "charges-max": 150000 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "jackson_drops", - "entries": - [ - { "item": "jacket_leather_red", "prob": 100 }, - { "item": "jeans_red", "prob": 100 }, - { "item": "socks", "prob": 100 }, - { "item": "dance_shoes", "prob": 100 }, - { "item": "glove_jackson", "prob": 100 } - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "marloss_yellow_drops", - "entries": - [ - {"item": "marloss_gel"}, - {"item": "fungal_seeds"} - ] - }, - { - "type" : "item_group", - "subtype": "collection", - "id": "mon_zombie_flamer", - "ammo": 50, - "magazine": 100, - "entries": - [ - { "item": "flamethrower", "charges-min": 100, "charges-max": 1500 } - ] - } + }, + { "item": "cash_card", "charges-min": 50000, "charges-max": 150000 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "jackson_drops", + "entries": [ + { "item": "jacket_leather_red", "prob": 100 }, + { "item": "jeans_red", "prob": 100 }, + { "item": "socks", "prob": 100 }, + { "item": "dance_shoes", "prob": 100 }, + { "item": "glove_jackson", "prob": 100 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "marloss_yellow_drops", + "entries": [ { "item": "marloss_gel" }, { "item": "fungal_seeds" } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_flamer", + "ammo": 50, + "magazine": 100, + "entries": [ { "item": "flamethrower", "charges-min": 100, "charges-max": 1500 } ] + } ] diff --git a/data/json/monsters/insect_spider.json b/data/json/monsters/insect_spider.json index a074a02403bdf..b3bebe406650a 100644 --- a/data/json/monsters/insect_spider.json +++ b/data/json/monsters/insect_spider.json @@ -146,10 +146,11 @@ "hp": 10, "speed": 50, "material": [ "iflesh" ], + "diff": 1, "symbol": "a", "color": "brown", - "aggression": 100, - "morale": 100, + "aggression": -99, + "morale": -8, "melee_skill": 3, "melee_dice": 2, "melee_dice_sides": 3, @@ -160,7 +161,7 @@ "upgrades": { "age_grow": 7, "into": "mon_giant_cockroach" }, "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 120 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "LARVA", "CLIMBS" ] }, { "id": "mon_pregnant_giant_cockroach", @@ -746,8 +747,8 @@ "id": "mon_ant_acid", "type": "MONSTER", "name": "giant acidic ant", - "description": "A monstrous red ant with a swollen abdomen, that ends with a small orifice at the tip. Glistening liquid seems to drip out periodically.", - "default_faction": "ant", + "description": "A monstrous brown ant with a swollen abdomen, that ends with a small orifice at the tip. Glistening liquid seems to drip out periodically.", + "default_faction": "acid_ant", "species": [ "INSECT" ], "diff": 2, "volume": "62500 ml", @@ -767,7 +768,7 @@ "armor_cut": 10, "vision_day": 5, "vision_night": 5, - "upgrades": { "into": "mon_ant_acid_soldier", "half_life": 0 }, + "upgrades": { "age_grow": 14, "into": "mon_ant_acid_soldier" }, "special_attacks": [ [ "ACID", 23 ], [ "EAT_FOOD", 30 ] ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "death_function": [ "ACID", "NORMAL" ], @@ -794,7 +795,7 @@ "melee_dice": 1, "melee_dice_sides": 3, "melee_cut": 0, - "upgrades": { "into": "mon_ant_acid", "half_life": 0 }, + "upgrades": { "age_grow": 3, "into": "mon_ant_acid" }, "death_function": [ "ACID", "NORMAL" ], "harvest": "arachnid_acid", "flags": [ "ACIDPROOF", "LARVA", "POISON", "SMELLS" ] @@ -834,7 +835,7 @@ "type": "MONSTER", "name": "acidic soldier ant", "description": "A massive woolly brown ant that towers over the worker ants with a giant head crest. Along with its huge mandibles, a corrosive liquid seeps from the end of its bloated abdomen.", - "default_faction": "ant", + "default_faction": "acid_ant", "species": [ "INSECT" ], "diff": 2, "volume": "62500 ml", diff --git a/data/json/monsters/reptile_amphibian.json b/data/json/monsters/reptile_amphibian.json index badb34eba6b81..c4237dd3d2e38 100644 --- a/data/json/monsters/reptile_amphibian.json +++ b/data/json/monsters/reptile_amphibian.json @@ -32,7 +32,7 @@ "id": "mon_gator", "type": "MONSTER", "name": "sewer gator", - "description": "In the late 20th century there was an urban legend about pet alligators getting flushed down the toilet and growing to adulthood in sewers. This large specimen doesn't look like it is used to humans as anything other than a meal.", + "description": "In the late 20th century there was an urban legend about pet alligators getting flushed down the toilet and growing to adulthood in sewers. This large specimen doesn't look like it sees humans as anything other than a meal.", "default_faction": "gator", "categories": [ "WILDLIFE" ], "species": [ "REPTILE" ], diff --git a/data/json/morale_types.json b/data/json/morale_types.json index 7bbc32eb69341..c228670c17dde 100644 --- a/data/json/morale_types.json +++ b/data/json/morale_types.json @@ -9,6 +9,11 @@ "type": "morale_type", "text": "Enjoyed a hot meal" }, + { + "id": "morale_chat", + "type": "morale_type", + "text": "Enjoyed a conversation" + }, { "id": "morale_music", "type": "morale_type", @@ -279,6 +284,11 @@ "type": "morale_type", "text": "Barfed" }, + { + "id": "morale_play_with_pet", + "type": "morale_type", + "text": "Spent time playing with a pet" + }, { "id": "morale_pyromania_startfire", "type": "morale_type", diff --git a/data/json/mutation_ordering.json b/data/json/mutation_ordering.json index c91525869b7fb..cb57689ec7dc4 100644 --- a/data/json/mutation_ordering.json +++ b/data/json/mutation_ordering.json @@ -6,7 +6,10 @@ "id" : [ "THRESH_CATTLE", "THRESH_CEPHALOPOD", "THRESH_SLIME", "WEB_RAPPEL", "WEB_ROPE", "WEB_SPINNER", "WEB_WALKER", "WEB_WEAVER", "WINGS_BAT", "WINGS_BIRD", "WINGS_BUTTERFLY", "WINGS_INSECT" ], "order" : 500 },{ - "id" : [ "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3", "LARGE", "PRETTY", "RADIOACTIVE1", "RADIOACTIVE2", "RADIOACTIVE3", "REGEN" ], + "id" : [ "bio_armor_arms", "bio_armor_legs", "bio_armor_torso", "bio_armor_head", "bio_armor_eyes", "bio_sunglasses", "bio_blindfold" ], + "order" : 500 + },{ + "id" : [ "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3", "LARGE", "PRETTY", "RADIOACTIVE1", "RADIOACTIVE2", "RADIOACTIVE3", "REGEN", "bio_deformity", "bio_face_mask" ], "order" : 1000 },{ "id" : [ "ALBINO", "BARK", "CHITIN", "CHITIN2", "CHITIN3", "CHITIN_FUR", "CHITIN_FUR2", "CHITIN_FUR3", "FEATHERS", "FELINE_FUR", "FUR", "LEAVES", "LIGHT_FUR", "LUPINE_FUR", "LYNX_FUR", "PLANTSKIN", "SCALES", "SKIN_ROUGH", "SLEEK_SCALES", "SORES", "THORNS", "TROGLO2", "TROGLO3", "URSINE_FUR", "VISCOUS" ], @@ -18,8 +21,11 @@ "id" : [ "PAWS", "PAWS_LARGE", "SLIME_HANDS" ], "order" : 2500 },{ - "id" : [ "CLAWS", "CLAWS_RAT", "CLAWS_RETRACT", "LONG_FINGERNAILS", "VINES1", "VINES2", "VINES3" ], + "id" : [ "CLAWS", "CLAWS_RAT", "CLAWS_RETRACT", "LONG_FINGERNAILS", "VINES1", "VINES2", "VINES3", "bio_claws" ], "order" : 3000 + },{ + "id" : [ "bio_blade", "bio_blaster", "bio_emp_armgun" ], + "order" : 3250 },{ "id" : [ "TAIL_CATTLE", "TAIL_CLUB", "TAIL_FIN", "TAIL_LONG", "TAIL_RAPTOR", "TAIL_RAT", "TAIL_STING", "TAIL_STUB", "TAIL_THICK" ], "order" : 3500 diff --git a/data/json/mutations.json b/data/json/mutations.json index ca336514c29eb..8a24e3e1d4bae 100644 --- a/data/json/mutations.json +++ b/data/json/mutations.json @@ -91,7 +91,7 @@ "id" : "FASTHEALER", "name" : "Fast Healer", "points" : 2, - "description" : "You heal faster when sleeping and will even recover small amount of HP when not sleeping.", + "description" : "You heal faster when sleeping and will even recover a small amount of HP when not sleeping.", "starting_trait" : true, "types" : ["HEALING"], "changes_to" : ["FASTHEALER2", "REGEN_LIZ"], @@ -105,6 +105,7 @@ "points" : 2, "description" : "Your metabolism is a little slower, and you require less food than most.", "starting_trait" : true, + "cancels" : ["MET_RAT"], "types" : ["METABOLISM"], "changes_to" : [ "GIZZARD", "COLDBLOOD" ], "category" : ["FISH", "BIRD", "INSECT", "TROGLOBITE"], @@ -278,7 +279,7 @@ "id" : "GOODMEMORY", "name" : "Good Memory", "points" : 3, - "description" : "You have a an exceptional memory, and find it easy to remember things. Your skills will erode slightly slower than usual, and you can remember more terrain.", + "description" : "You have an exceptional memory, and find it easy to remember things. Your skills will erode slightly slower than usual, and you can remember more terrain.", "starting_trait" : true, "valid" : false, "cancels" : ["FORGETFUL"] @@ -426,6 +427,16 @@ "starting_trait" : true, "valid" : false, "changes_to" : ["MASOCHIST_MED", "CENOBITE"] + },{ + "type" : "mutation", + "id" : "STIMBOOST", + "name": "Stimulant Psychosis", + "cancels": ["NONADDICTIVE"], + "points" : 2, + "mixed_effect" : true, + "description" : "You have a unique history with stimulants (like coffee or amphetamines). You can tolerate a lot more of them without overdosing, but if you indulge too much, you start seeing things...", + "starting_trait" : true, + "valid" : false },{ "type" : "mutation", "id" : "STYLISH", @@ -450,6 +461,7 @@ "points" : 3, "description" : "You have a very strong genetic base. If you mutate, the odds that the mutation will be beneficial are greatly increased.", "starting_trait" : true, + "cancels" : ["CHAOTIC_BAD"], "category" : ["FISH", "SLIME", "ALPHA", "MEDICAL"] },{ "type" : "mutation", @@ -534,9 +546,9 @@ "id": "MARTIAL_ARTS5", "name": "Melee Weapon Training", "points": 3, - "description": "You have practiced fighting with weapons. You start with your choice of Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu.", + "description": "You have practiced fighting with weapons. You start with your choice of Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu.", "starting_trait" : true, - "initial_ma_styles" : [ "style_eskrima", "style_fencing", "style_silat", "style_niten" ], + "initial_ma_styles" : [ "style_eskrima", "style_fencing", "style_silat", "style_niten", "style_sojutsu" ], "valid" : false },{ "type" : "mutation", @@ -564,7 +576,7 @@ "name" : "Pretty", "points" : 1, "ugliness" : -2, - "description" : "You are a sight to behold. NPCs who care about such thing will react more kindly to you.", + "description" : "You are a sight to behold. NPCs who care about such things will react more kindly to you.", "starting_trait" : true, "category" : ["ALPHA", "FELINE", "LUPINE"], "cancels" : ["UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3"], @@ -592,7 +604,7 @@ "id" : "MYOPIC", "name" : "Near-Sighted", "points" : -2, - "description" : "Without your glasses, your seeing radius is severely reduced! However, while wearing glasses this trait has no effect, and you are guaranteed to start with a pair.", + "description" : "Without glasses, your seeing radius is severely reduced! However, you are guaranteed to start with a pair of glasses.", "starting_trait" : true, "cancels" : ["URSINE_EYE", "EAGLEEYED"], "category" : ["BEAST", "TROGLOBITE"] @@ -601,7 +613,7 @@ "id" : "SLOWHEALER", "name" : "Slow Healer", "points" : -2, - "description" : "You heal a little slower than most; sleeping will heal less lost HP.", + "description" : "You heal a little slower than most; sleeping will heal less HP.", "starting_trait" : true, "types" : ["HEALING"], "healing_resting" : -0.25 @@ -610,7 +622,7 @@ "id" : "SLOWHEALER2", "name" : "Poor Healer", "points" : -4, - "description" : "Your health recovery through sleeping is severely impaired and causes you to recover only a third of usual HP over time.", + "description" : "Your health recovery through sleeping is severely impaired and causes you to recover only a third of usual HP.", "starting_trait" : true, "valid": false, "purifiable": false, @@ -621,7 +633,7 @@ "id" : "SLOWHEALER3", "name" : "Imperceptive Healer", "points" : -8, - "description" : "You recover barely any health through sleeping - it will heal only one tenth of usual HP over time.", + "description" : "You recover barely any health through sleeping - it will heal only one tenth of usual HP.", "starting_trait" : true, "valid": false, "purifiable": false, @@ -672,7 +684,7 @@ "id" : "BADBACK", "name" : "Bad Back", "points" : -3, - "description" : "You simply can not carry as much as people with a similar strength could. Your maximum weight carried is reduced by 35%.", + "description" : "You simply cannot carry as much as people with a similar strength could. Your maximum weight carried is reduced by 35%.", "starting_trait" : true, "category" : ["BIRD", "ELFA"], "cancels" : ["STRONGBACK"] @@ -785,7 +797,7 @@ "name" : "Lactose Intolerance", "points" : -1, "//" : "Actual digestive issue, on even footing with the -vore mutations.", - "description" : "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 due to nausea.", + "description" : "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 due to nausea.", "starting_trait" : true },{ "type" : "mutation", @@ -952,7 +964,7 @@ "id" : "JITTERY", "name" : "Jittery", "points" : -3, - "description" : "During moments of great stress or under the effects of stimulants, you may find your hands shaking uncontrollably, severely reducing your dexterity.", + "description" : "During moments of great stress or under the effects of stimulants, you may find your hands shaking uncontrollably, severely reducing your Dexterity.", "starting_trait" : true, "valid" : false, "category" : ["MEDICAL", "MOUSE"] @@ -1015,7 +1027,7 @@ "id" : "WOOLALLERGY", "name" : "Wool Allergy", "points" : -1, - "description" : "You are badly allergic to wool, and can not wear any clothing made of the substance.", + "description" : "You are badly allergic to wool, and cannot wear any clothing made of the substance.", "starting_trait" : true, "valid" : true },{ @@ -1045,7 +1057,7 @@ "id" : "ALBINO", "name" : "Albino", "points" : -1, - "description" : "You lack skin pigmentation due to a genetic problem. You sunburn extremely easily, and typically use an umbrella and a sunglasses when going out in the sun.", + "description" : "You lack skin pigmentation due to a genetic problem. You sunburn extremely easily, and typically use an umbrella and sunglasses when going out in the sun.", "starting_trait" : true, "changes_to" : ["SUNBURN"], "category" : ["TROGLOBITE", "MOUSE"] @@ -1093,6 +1105,16 @@ "cancels" : ["TOUGH", "TOUGH2", "TOUGH3"], "prereqs" : ["FLIMSY2"], "hp_modifier" : -0.75 + },{ + "type" : "mutation", + "id" : "CHAOTIC_BAD", + "name" : "Genetic Downward Spiral", + "points" : -12, + "purifiable" : false, + "description" : "The events of the Cataclysm have damaged your DNA beyond repair. You mutate frequently, and all mutations you receive (from any source) are negative.", + "starting_trait" : true, + "cancels" : ["ROBUST"], + "valid" : false },{ "type" : "mutation", "id" : "SKIN_ROUGH", @@ -1135,7 +1157,7 @@ "points" : 1, "visibility" : 8, "ugliness" : 5, - "description" : "Your eyes still bulge, yet your pupils look Different somehow. Water doesn't seem to cause any trouble at all, though.", + "description" : "Your eyes still bulge, yet your pupils look different somehow. Water doesn't seem to cause any trouble at all, though.", "leads_to" : ["CEPH_VISION"], "cancels" : ["BIRD_EYE", "LIZ_EYE", "FEL_EYE", "URSINE_EYE", "COMPOUND_EYES", "ELFAEYES"], "category" : ["CEPHALOPOD"] @@ -1707,7 +1729,7 @@ "points" : 1, "visibility" : 8, "ugliness" : 1, - "description" : "Your fur's grown out significantly around your cheeks and neck. It provides minor protection against attacks.", + "description" : "Your fur has grown out significantly around your cheeks and neck. It provides minor protection against attacks.", "types" : ["SKIN"], "prereqs" : ["FELINE_FUR"], "category" : ["FELINE"], @@ -1745,7 +1767,7 @@ "visibility" : 6, "ugliness" : 3, "mixed_effect" : true, - "description" : "You've grown a chitin exoskeleton, much like that of an insect. It provides considerable physical protection, but reduces your dexterity by 1. Somewhat reduces wet effects.", + "description" : "You've grown a chitin exoskeleton, much like that of an insect. It provides considerable physical protection, but reduces your Dexterity by 1. Somewhat reduces wet effects.", "types" : ["SKIN"], "prereqs" : ["CHITIN"], "changes_to" : ["CHITIN3"], @@ -1770,7 +1792,7 @@ "points" : 2, "visibility" : 8, "ugliness" : 5, - "description" : "You've grown a chitin exoskeleton made of thick, stiff plates. It provides excellent physical protection, but reduces your dexterity by 1 and encumbers all body parts but your eyes and mouth. Greatly reduces wet effects.", + "description" : "You've grown a chitin exoskeleton made of thick, stiff plates. It provides excellent physical protection, but reduces your Dexterity by 1 and encumbers all body parts but your eyes and mouth. Greatly reduces wet effects.", "types" : ["SKIN"], "prereqs" : ["CHITIN2", "CHITIN_FUR2"], "category" : ["SPIDER"], @@ -2153,7 +2175,7 @@ "mixed_effect" : true, "restricts_gear" : [ "HAND_L", "HAND_R" ], "destroys_gear" : true, - "description" : "Your index fingers have grown into huge talons. After a bit of practice, you find that this does not affect your dexterity, but allows for a deadly unarmed attack. They also prevent you from wearing gloves.", + "description" : "Your index fingers have grown into huge talons. After a bit of practice, you find that this does not affect your dexterity, but allows for a deadly unarmed attack. They also prevent wearing gloves.", "types" : ["CLAWS"], "prereqs" : ["NAILS"], "cancels" : ["ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8"], @@ -2222,7 +2244,7 @@ "id" : "PHEROMONE_MAMMAL", "name" : "Mammal Pheromones", "points" : 2, - "description" : "Your body produces low-level pheromones which puts mammals at ease. They will be less likely to attack or flee from you.", + "description" : "Your body produces low-level pheromones which put mammals at ease. They will be less likely to attack or flee from you.", "prereqs" : ["SMELLY2"], "types" : ["SCENT"], "category" : ["BEAST", "CATTLE"] @@ -2363,7 +2385,7 @@ "points" : 2, "visibility" : 9, "ugliness" : 5, - "description" : "Your eyes are compound, like those of an insect. This increases your perception by 2 so long as you aren't wearing eyewear.", + "description" : "Your eyes are compound, like those of an insect. This increases your Perception by 2 so long as you aren't wearing eyewear.", "cancels" : ["ELFAEYES", "FEL_EYE", "URSINE_EYE", "BIRD_EYE", "LIZ_EYE"], "prereqs" : ["EYEBULGE"], "category" : ["INSECT"] @@ -2384,7 +2406,7 @@ "visibility" : 4, "ugliness" : 2, "mixed_effect" : true, - "description" : "You have grown large, curved, and wickedly sharp talons in place of your big toes. Fortunately, they don't get in the way of your movement. Unfortunately, they do prevent you from wearing footgear.", + "description" : "You have grown large, curved, and wickedly sharp talons in place of your big toes. Fortunately, they don't get in the way of your movement. Unfortunately, they do prevent wearing footgear.", "valid" : false, "types" : ["LEGS"], "category" : ["RAPTOR"], @@ -2404,7 +2426,7 @@ "visibility" : 2, "ugliness" : 2, "mixed_effect" : true, - "description" : "Your feet have fused into hooves. This allows kicking attacks to do much more damage, provides natural armor, and removes the need to wear shoes; however, you can not wear shoes of any kind. Reduces wet effects.", + "description" : "Your feet have fused into hooves. This allows kicking attacks to do much more damage, provides natural armor, and removes the need to wear shoes; however, you cannot wear shoes of any kind. Reduces wet effects.", "types" : ["LEGS"], "category" : ["CATTLE", "CHIMERA"], "wet_protection":[ @@ -2628,7 +2650,7 @@ "visibility" : 8, "ugliness" : 2, "mixed_effect" : true, - "description" : "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 you from wearing any headwear.", + "description" : "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.", "types" : ["HORNS"], "prereqs" : ["HORNS"], "category" : ["CHIMERA"], @@ -2647,7 +2669,7 @@ "visibility" : 8, "ugliness" : 2, "mixed_effect" : true, - "description" : "You have a pair of long, pointed horns, like those of an antelope. They allow you to make a strong piercing headbutt attack, but prevent you from wearing any headwear the is not made of fabric.", + "description" : "You have a pair of long, pointed horns, like those of an antelope. They allow you to make a strong piercing headbutt attack, but prevent wearing headwear that is not made of fabric.", "types" : ["HORNS"], "prereqs" : ["HORNS"], "restricts_gear" : [ "HEAD" ], @@ -2666,7 +2688,7 @@ "visibility" : 10, "ugliness" : 3, "mixed_effect" : true, - "description" : "You have a huge rack of antlers, like those of a moose. They prevent you from hearing headwear that is not made of fabric, but provide a weak headbutt attack.", + "description" : "You have a huge rack of antlers, like those of a moose. They allow you to make a weak headbutt attack, but prevent wearing headwear that is not made of fabric.", "types" : ["HORNS"], "prereqs" : ["HORNS"], "restricts_gear" : [ "HEAD" ], @@ -2684,7 +2706,7 @@ "points" : 1, "visibility" : 9, "ugliness" : 4, - "description" : "You have a pair of antennae. They allow you to detect the presence of monsters up to a few tiles away, even if you can't see or hear them, but prevent you from wearing headwear that is not made of fabric.", + "description" : "You have a pair of antennae. They allow you to detect the presence of 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.", "types" : ["HORNS"], "prereqs" : ["HEADBUMPS"], "category" : ["INSECT"], @@ -3013,7 +3035,7 @@ "id" : "PRED1", "name" : "Culler", "points" : 2, - "description" : "You've had a revelation: by killing the weaker creatures, who would only die anyway, you preserve resources for those better able to survive. You are less bothered by death of others: their own weakness invited these fates upon them.", + "description" : "You've had a revelation: by killing the weaker creatures, who would only die anyway, you preserve resources for those better able to survive. You are less bothered by the deaths of others: their own weakness invited these fates upon them.", "purifiable" : false, "changes_to" : ["PRED2"], "prereqs" : ["CARNIVORE"], @@ -3025,7 +3047,7 @@ "id" : "PRED2", "name" : "Hunter", "points" : 3, - "description" : "Your brain has a lot more in common with predatory animal than a human, making it easier to control misplaced reactions to death of your prey. Additionally, combat skills, which you use to hunt, are easier to learn and maintain.", + "description" : "Your brain has a lot more in common with a predatory animal than a human, making it easier to control misplaced reactions to the death of your prey. Additionally, combat skills, which you use to hunt, are easier to learn and maintain.", "social_modifiers" : { "intimidate" : 3 }, @@ -3062,7 +3084,7 @@ "id" : "PRED4", "name" : "Apex Predator", "points" : 2, - "description" : "Your mind and brain have adapted to your new place in the world: as one on top the food chain. You can effortlessly master and maintain combat skills, but your critical thinking has atrophied further.", + "description" : "Your mind and brain have adapted to your new place in the world: as one on top of the food chain. You can effortlessly master and maintain combat skills, but your critical thinking has atrophied further.", "social_modifiers" : { "intimidate" : 5 }, @@ -3081,7 +3103,7 @@ "id" : "SAPIOVORE", "name" : "Sapiovore", "points" : 1, - "description" : "The hairless apes are as good eating as any other meat.", + "description" : "The hairless apes make as good eating as any other meat.", "social_modifiers" : { "persuade": -20, "lie": -20, @@ -3157,7 +3179,7 @@ "visibility" : 8, "ugliness" : 6, "mixed_effect" : true, - "description" : "A set of insect-like mandibles have grown around your mouth. They allow you to eat faster and provide a slicing unarmed attack, but prevent you from wearing mouthwear. Slightly reduces wet effects.", + "description" : "A set of insect-like mandibles have grown around your mouth. They allow you to eat faster and provide a slicing unarmed attack, but prevent wearing mouthwear. Slightly reduces wet effects.", "types" : ["TEETH", "MUZZLE"], "prereqs" : ["MOUTH_FLAPS"], "changes_to" : ["FANGS_SPIDER"], @@ -3602,7 +3624,7 @@ "points" : 4, "visibility" : 3, "ugliness" : 3, - "description" : "Your skull bulges noticeably with your impressive brain. Intelligence + 7", + "description" : "Your skull bulges noticeably due to your impressive brain. Intelligence + 7", "prereqs" : ["INT_UP_3"], "threshreq" : ["THRESH_CEPHALOPOD"], "category" : ["CEPHALOPOD"], @@ -3977,7 +3999,7 @@ "points" : 4, "visibility" : -10, "ugliness" : -10, - "description" : "You are incredibly beautiful. People cannot help themselves for your charms, and will do whatever they can to please you.", + "description" : "You are incredibly beautiful. People cannot help themselves due to your charms, and will do whatever they can to please you.", "cancels" : ["UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3"], "prereqs" : ["BEAUTIFUL2"], "category": ["ELFA"] @@ -3999,7 +4021,7 @@ "visibility" : 5, "ugliness" : 6, "mixed_effect" : true, - "description" : "Your face resembles that of a bull, with a significant snout. It looks fearsome but prevents you from wearing mouthgear.", + "description" : "Your face resembles that of a bull, with a significant snout. It looks fearsome but prevents wearing mouthgear.", "types" : ["MUZZLE"], "prereqs" : ["SNOUT"], "category" : ["CATTLE"], @@ -4015,7 +4037,7 @@ "visibility" : 5, "ugliness" : 4, "mixed_effect" : true, - "description" : "Your jaw and nose have extended into a wolfish muzzle. It lends itself to biting in combat and looks impressive, but prevents you from wearing mouthgear.", + "description" : "Your jaw and nose have extended into a wolfish muzzle. It lends itself to biting in combat and looks impressive, but prevents wearing mouthgear.", "types" : ["MUZZLE"], "prereqs" : ["SNOUT"], "category" : ["BEAST", "LUPINE"], @@ -4039,7 +4061,7 @@ "visibility" : 5, "ugliness" : 4, "mixed_effect" : true, - "description" : "Your jaw and nose have extended into a bearish muzzle. You could bite with it, and it looks impressive, but it prevents you from wearing mouthgear.", + "description" : "Your jaw and nose have extended into a bearish muzzle. You could bite with it, and it looks impressive, but it prevents wearing mouthgear.", "types" : ["MUZZLE"], "prereqs" : ["SNOUT"], "category" : ["URSINE"], @@ -4072,7 +4094,7 @@ "visibility" : 8, "ugliness" : 8, "mixed_effect" : true, - "description" : "Your face and jaws are a shorter version of those found on alligators. They look NASTY-as do the bite wounds they can inflict-but prevent you from wearing mouthgear.", + "description" : "Your face and jaws are a shorter version of those found on alligators. They look NASTY--as do the bite wounds they can inflict--but prevent wearing mouthgear.", "types" : ["MUZZLE"], "prereqs" : ["SNOUT"], "category" : ["LIZARD"], @@ -4152,7 +4174,6 @@ "name" : "Rapid Metabolism", "points" : -2, "valid" : false, - "purifiable" : false, "description" : "You require more resources than most, but heal more rapidly as well. Provides weak regeneration even when not asleep.", "types" : ["HEALING"], "cancels" : ["LIGHTEATER", "COLDBLOOD", "COLDBLOOD2", "COLDBLOOD3", "COLDBLOOD4", "WAKEFUL", "WAKEFUL2", "WAKEFUL3"], @@ -4243,7 +4264,7 @@ "id" : "SLEEPY2", "name" : "Very Sleepy", "points" : -3, - "description" : "You find yourself needing to sleep quite often. You'll spend about half your time in or around bed.", + "description" : "You find yourself needing to sleep quite often. You'll spend about half of your time in or around bed.", "prereqs" : ["SLEEPY"], "types" : ["SLEEP"], "category" : ["FELINE"], @@ -4338,7 +4359,7 @@ "visibility" : 3, "ugliness" : 2, "cancels" : ["ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8"], - "description" : "Your hands and feet are heavily webbed, reducing your dexterity by 1 and causing problems with gloves. However, you can swim much faster. Slightly decreases wet penalties.", + "description" : "Your hands and feet are heavily webbed, reducing your Dexterity by 1 and causing problems with gloves. However, you can swim much faster. Slightly decreases wet penalties.", "category" : ["LIZARD", "FISH", "SLIME"], "wet_protection" : [ { "part" : "HAND_L", "good" : 3 }, @@ -4375,7 +4396,7 @@ "visibility" : 4, "ugliness" : 3, "mixed_effect" : true, - "description" : "Your paws are much larger now. Manual dexterity is is difficult: permanent hand encumbrance of 20, serious problems crafting, and no gloves. But you can swim more effectively.", + "description" : "Your paws are much larger now. Manual dexterity is difficult: permanent hand encumbrance of 20, serious problems crafting, and no gloves. But you can swim more effectively.", "encumbrance_always" : [ [ "HAND_L", 20 ], [ "HAND_R", 20 ] @@ -4729,7 +4750,7 @@ "visibility" : 4, "ugliness" : 5, "//~" : "The idea is that you, for lack of a better term, plant yourself. Crafting and digging don't count because they presume a certain amount of movement during the task. The handheld game does count.", - "description" : "It's about time you started developing a root system. When reading, fishing from, waiting, or otherwise being stationary for a while on diggable terrain, you'll extract nutrients and water from the soil.", + "description" : "It's about time you started developing a root system. When reading, fishing, waiting, or otherwise being stationary for a while on diggable terrain, you'll extract nutrients and water from the soil.", "types" : ["LEGS"], "prereqs" : ["ROOTS1"], "threshreq" : ["THRESH_PLANT"], @@ -4989,7 +5010,7 @@ "visibility" : 7, "ugliness" : 4, "mixed_effect" : true, - "description" : "Your arms have transformed into tentacles, resulting in a bonus of 1 to dexterity, permanent hand encumbrance of 30, and inability to wear gloves. Somewhat decreases wet penalties.", + "description" : "Your arms have transformed into tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. Somewhat decreases wet penalties.", "encumbrance_always" : [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] @@ -5028,7 +5049,7 @@ "points" : -2, "visibility" : 8, "ugliness" : 5, - "description" : "Your arms have transformed into four tentacles, resulting in a bonus of 1 to dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 3 extra attacks with them. Somewhat decreases wet penalties.", + "description" : "Your arms have transformed into four tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 3 extra attacks with them. Somewhat decreases wet penalties.", "encumbrance_always" : [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] @@ -5067,7 +5088,7 @@ "points" : -1, "visibility" : 9, "ugliness" : 6, - "description" : "Your arms have transformed into eight tentacles, resulting in a bonus of 1 to dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 7 extra attacks with them. Somewhat decreases wet penalties.", + "description" : "Your arms have transformed into eight tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 7 extra attacks with them. Somewhat decreases wet penalties.", "encumbrance_always" : [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] @@ -5184,7 +5205,7 @@ "id" : "THRESH_BIRD", "name" : "Bird", "points" : 1, - "description" : "You're sure you'll fly someday. In the meantime, there's still nests to build.", + "description" : "You're sure you'll fly someday. In the meantime, there are still nests to build.", "valid": false, "purifiable": false, "threshold": true @@ -5543,7 +5564,7 @@ "name" : "MD", "points" : 0, "//" : "In the US, a medical 'residency' is essentially an extended post-graduate, on-the-job medical training. The idea here is that hopsital computer systems would recognize the PC as a valid user and grant access.", - "description" : "You were just through with the administrative formalities for your residency when the cataclysm struck. \"Your\" hospital was overrun and evacuated, but there's always work for a good doctor.", + "description" : "You were just through with the administrative formalities for your residency when the Cataclysm struck. \"Your\" hospital was overrun and evacuated, but there's always work for a good doctor.", "valid": false, "purifiable": false, "profession": true @@ -5552,7 +5573,7 @@ "id" : "PROF_SKATER", "name" : "Skater", "points" : 0, - "description" : "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.", + "description" : "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.", "valid": false, "purifiable": false, "profession": true @@ -5561,7 +5582,7 @@ "id" : "PROF_MA_ORANGE", "name" : "Martial Artist", "points" : 0, - "description" : "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 were.", + "description" : "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.", "valid": false, "initial_ma_styles" : [ "style_karate", "style_judo", "style_muay_thai", "style_tai_chi", "style_taekwondo" ], "purifiable": false, @@ -5659,7 +5680,28 @@ "player_display": false, "valid": false, "purifiable": false - },{ + }, + { + "type": "mutation", + "id": "NPC_STARTING_NPC", + "name": "Starting NPC", + "points": 0, + "description": "Marker for starting NPCs", + "player_display": false, + "valid": false, + "purifiable": false + }, + { + "type": "mutation", + "id": "NPC_STATIC_NPC", + "name": "Static NPC", + "points": 0, + "description": "Marker for static NPCs", + "player_display": false, + "valid": false, + "purifiable": false + }, + { "type" : "mutation", "id" : "DEBUG_NIGHTVISION", "name" : "Debug Vision", @@ -5723,14 +5765,6 @@ "valid" : false, "description" : "Crafting and construction requirements bugger off with this one. Apply with care.", "debug" : true - },{ - "type" : "mutation", - "id" : "DEBUG_CBM_SLOTS", - "name" : "Debug CBM Slots Limits", - "points" : 99, - "valid" : false, - "description" : "Limitate the number of bionics which you're able to install in your body.", - "debug" : true },{ "type" : "mutation", "id" : "DEBUG_MIND_CONTROL", diff --git a/data/json/npcs/BG_trait_groups.json b/data/json/npcs/BG_trait_groups.json index 4a7c758140524..3836c50cd81f7 100644 --- a/data/json/npcs/BG_trait_groups.json +++ b/data/json/npcs/BG_trait_groups.json @@ -106,7 +106,12 @@ "type": "trait_group", "id": "BG_survival_story_POLICE", "subtype": "distribution", - "traits": [ { "group": "BG_survival_story_UNIVERSAL" }, { "trait": "BGSS_Cop_1" }, { "trait": "BGSS_Cop_2" } ] + "traits": [ + { "group": "BG_survival_story_UNIVERSAL" }, + { "trait": "BGSS_Cop_1" }, + { "trait": "BGSS_Cop_2" }, + { "trait": "BGSS_Cop_3" } + ] }, { "//": "This group is for NPCs that should be doing their homework instead of hunting zombies.", diff --git a/data/json/npcs/BG_traits.json b/data/json/npcs/BG_traits.json index 47cae0d593817..105600feb34b0 100644 --- a/data/json/npcs/BG_traits.json +++ b/data/json/npcs/BG_traits.json @@ -2,32 +2,35 @@ { "type": "mutation", "id": "BGSS_Confused_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_No_Past_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_No_Past_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", @@ -36,7 +39,8 @@ "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", @@ -45,7 +49,8 @@ "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", @@ -54,37 +59,41 @@ "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Religious_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Religious_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Dreamer", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", @@ -93,416 +102,480 @@ "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_3", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", - "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_4", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_5", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Evacuee_6", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_FEMA_Evacuee_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Left_for_Dead_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Left_for_Dead_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Gung_Ho_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Gung_Ho_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Gung_Ho_3", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Prepper_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Prepper_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Out_of_Town_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Out_of_Town_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Lost_Partner_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Lost_Partner_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Rural_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Rural_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Codger", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Hospital_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Hospital_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Hospital_3", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Cop_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Cop_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_Cop_3", + "name": "Survivor Story", + "points": 0, + "description": "cop3", + "player_display": false, + "valid": false, + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Hunter_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Hunter_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Soldier_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Soldier_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Criminal_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Criminal_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Prisoner_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_High_School_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Burger_Flipper_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Nerd_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Scientist_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Scientist_2", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Professor_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Grad_Student_1", - "name": "Survivor", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] }, { "type": "mutation", "id": "BGSS_Lab_1", - "name": "Survivor", + "name": "Survivor Story", + "points": 0, + "description": "This NPC could tell you about how they survived the cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "//": "This is a unique background story trait that should not be given out randomly.", + "id": "BGSS_Scavenger_Merc_1", + "name": "Survivor Story", "points": 0, "description": "This NPC could tell you about how they survived the cataclysm", "player_display": false, "valid": false, - "purifiable": false + "purifiable": false, + "flags": [ "BG_SURVIVAL_STORY" ] } ] diff --git a/data/json/npcs/Backgrounds/backgrounds_table_of_contents.json b/data/json/npcs/Backgrounds/backgrounds_table_of_contents.json index 4689dc831d8ac..e7b634e669ee4 100644 --- a/data/json/npcs/Backgrounds/backgrounds_table_of_contents.json +++ b/data/json/npcs/Backgrounds/backgrounds_table_of_contents.json @@ -1,272 +1,344 @@ [ { - "id": "TALK_FRIEND", + "id": "TALK_FRIEND_CONVERSATION", "type": "talk_topic", "responses": [ { "text": "", "topic": "BGSS_CONFUSED_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Confused_1" } + "condition": { "npc_has_trait": "BGSS_Confused_1" }, + "switch": true }, { "text": "", "topic": "BGSS_NO_PAST_1_STORY1", - "condition": { "npc_has_trait": "BGSS_No_Past_1" } + "condition": { "npc_has_trait": "BGSS_No_Past_1" }, + "switch": true }, { "text": "", "topic": "BGSS_NO_PAST_2_STORY1", - "condition": { "npc_has_trait": "BGSS_No_Past_2" } + "condition": { "npc_has_trait": "BGSS_No_Past_2" }, + "switch": true }, { "text": "", "topic": "BGSS_NO_PAST_3_STORY1", - "condition": { "npc_has_trait": "BGSS_No_Past_3" } + "condition": { "npc_has_trait": "BGSS_No_Past_3" }, + "switch": true }, { "text": "", "topic": "BGSS_NO_PAST_4_STORY1", - "condition": { "npc_has_trait": "BGSS_No_Past_4" } + "condition": { "npc_has_trait": "BGSS_No_Past_4" }, + "switch": true }, { "text": "", "topic": "BGSS_NO_PAST_5_STORY1", - "condition": { "npc_has_trait": "BGSS_No_Past_5" } + "condition": { "npc_has_trait": "BGSS_No_Past_5" }, + "switch": true }, { "text": "", "topic": "BGSS_RELIGIOUS_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Religious_1" } + "condition": { "npc_has_trait": "BGSS_Religious_1" }, + "switch": true }, { "text": "", "topic": "BGSS_RELIGIOUS_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Religious_2" } + "condition": { "npc_has_trait": "BGSS_Religious_2" }, + "switch": true }, { "text": "", "topic": "BGSS_DREAMER_STORY1", - "condition": { "npc_has_trait": "BGSS_Dreamer" } + "condition": { "npc_has_trait": "BGSS_Dreamer" }, + "switch": true }, { "text": "", "topic": "BGSS_WEDDING_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Wedding_1" } + "condition": { "npc_has_trait": "BGSS_Wedding_1" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_1" } + "condition": { "npc_has_trait": "BGSS_Evacuee_1" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_2" } + "condition": { "npc_has_trait": "BGSS_Evacuee_2" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_3_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_3" } + "condition": { "npc_has_trait": "BGSS_Evacuee_3" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_4_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_4" } + "condition": { "npc_has_trait": "BGSS_Evacuee_4" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_5_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_5" } + "condition": { "npc_has_trait": "BGSS_Evacuee_5" }, + "switch": true }, { "text": "", "topic": "BGSS_EVACUEE_6_STORY1", - "condition": { "npc_has_trait": "BGSS_Evacuee_6" } + "condition": { "npc_has_trait": "BGSS_Evacuee_6" }, + "switch": true }, { "text": "", "topic": "BGSS_FEMA_EVACUEE_1_STORY1", - "condition": { "npc_has_trait": "BGSS_FEMA_Evacuee_1" } + "condition": { "npc_has_trait": "BGSS_FEMA_Evacuee_1" }, + "switch": true }, { "text": "", "topic": "BGSS_LEFT_FOR_DEAD_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Left_for_Dead_1" } + "condition": { "npc_has_trait": "BGSS_Left_for_Dead_1" }, + "switch": true }, { "text": "", "topic": "BGSS_LEFT_FOR_DEAD_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Left_for_Dead_2" } + "condition": { "npc_has_trait": "BGSS_Left_for_Dead_2" }, + "switch": true }, { "text": "", "topic": "BGSS_GUNG_HO_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Gung_Ho_1" } + "condition": { "npc_has_trait": "BGSS_Gung_Ho_1" }, + "switch": true }, { "text": "", "topic": "BGSS_GUNG_HO_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Gung_Ho_2" } + "condition": { "npc_has_trait": "BGSS_Gung_Ho_2" }, + "switch": true }, { "text": "", "topic": "BGSS_GUNG_HO_3_STORY1", - "condition": { "npc_has_trait": "BGSS_Gung_Ho_3" } + "condition": { "npc_has_trait": "BGSS_Gung_Ho_3" }, + "switch": true }, { "text": "", "topic": "BGSS_PREPPER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Prepper_1" } + "condition": { "npc_has_trait": "BGSS_Prepper_1" }, + "switch": true }, { "text": "", "topic": "BGSS_PREPPER_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Prepper_2" } + "condition": { "npc_has_trait": "BGSS_Prepper_2" }, + "switch": true }, { "text": "", "topic": "BGSS_OUT_OF_TOWN_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Out_of_Town_1" } + "condition": { "npc_has_trait": "BGSS_Out_of_Town_1" }, + "switch": true }, { "text": "", "topic": "BGSS_OUT_OF_TOWN_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Out_of_Town_2" } + "condition": { "npc_has_trait": "BGSS_Out_of_Town_2" }, + "switch": true }, { "text": "", "topic": "BGSS_LOST_PARTNER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Lost_Partner_1" } + "condition": { "npc_has_trait": "BGSS_Lost_Partner_1" }, + "switch": true }, { "text": "", "topic": "BGSS_LOST_PARTNER_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Lost_Partner_2" } + "condition": { "npc_has_trait": "BGSS_Lost_Partner_2" }, + "switch": true }, { "text": "", "topic": "BGSS_RURAL_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Rural_1" } + "condition": { "npc_has_trait": "BGSS_Rural_1" }, + "switch": true }, { "text": "", "topic": "BGSS_RURAL_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Rural_2" } + "condition": { "npc_has_trait": "BGSS_Rural_2" }, + "switch": true }, { "text": "", "topic": "BGSS_CODGER_STORY1", - "condition": { "npc_has_trait": "BGSS_Codger" } + "condition": { "npc_has_trait": "BGSS_Codger" }, + "switch": true }, { "text": "", "topic": "BGSS_HOSPITAL_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Hospital_1" } + "condition": { "npc_has_trait": "BGSS_Hospital_1" }, + "switch": true }, { "text": "", "topic": "BGSS_HOSPITAL_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Hospital_2" } + "condition": { "npc_has_trait": "BGSS_Hospital_2" }, + "switch": true }, { "text": "", "topic": "BGSS_HOSPITAL_3_STORY1", - "condition": { "npc_has_trait": "BGSS_Hospital_3" } + "condition": { "npc_has_trait": "BGSS_Hospital_3" }, + "switch": true }, { "text": "", "topic": "BGSS_COP_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Cop_1" } + "condition": { "npc_has_trait": "BGSS_Cop_1" }, + "switch": true }, { "text": "", "topic": "BGSS_COP_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Cop_2" } + "condition": { "npc_has_trait": "BGSS_Cop_2" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_COP_3_STORY1", + "condition": { "npc_has_trait": "BGSS_Cop_3" }, + "switch": true }, { "text": "", "topic": "BGSS_HUNTER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Hunter_1" } + "condition": { "npc_has_trait": "BGSS_Hunter_1" }, + "switch": true }, { "text": "", "topic": "BGSS_HUNTER_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Hunter_2" } + "condition": { "npc_has_trait": "BGSS_Hunter_2" }, + "switch": true }, { "text": "", "topic": "BGSS_SOLDIER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Soldier_1" } + "condition": { "npc_has_trait": "BGSS_Soldier_1" }, + "switch": true }, { "text": "", "topic": "BGSS_SOLDIER_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Soldier_2" } + "condition": { "npc_has_trait": "BGSS_Soldier_2" }, + "switch": true }, { "text": "", "topic": "BGSS_CRIMINAL_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Criminal_1" } + "condition": { "npc_has_trait": "BGSS_Criminal_1" }, + "switch": true }, { "text": "", "topic": "BGSS_CRIMINAL_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Criminal_2" } + "condition": { "npc_has_trait": "BGSS_Criminal_2" }, + "switch": true }, { "text": "", "topic": "BGSS_PRISONER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Prisoner_1" } + "condition": { "npc_has_trait": "BGSS_Prisoner_1" }, + "switch": true }, { "text": "", "topic": "BGSS_HIGH_SCHOOL_1_STORY1", - "condition": { "npc_has_trait": "BGSS_High_School_1" } + "condition": { "npc_has_trait": "BGSS_High_School_1" }, + "switch": true }, { "text": "", "topic": "BGSS_BURGER_FLIPPER_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Burger_Flipper_1" } + "condition": { "npc_has_trait": "BGSS_Burger_Flipper_1" }, + "switch": true }, { "text": "", "topic": "BGSS_NERD_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Nerd_1" } + "condition": { "npc_has_trait": "BGSS_Nerd_1" }, + "switch": true }, { "text": "", "topic": "BGSS_SCIENTIST_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Scientist_1" } + "condition": { "npc_has_trait": "BGSS_Scientist_1" }, + "switch": true }, { "text": "", "topic": "BGSS_SCIENTIST_2_STORY1", - "condition": { "npc_has_trait": "BGSS_Scientist_2" } + "condition": { "npc_has_trait": "BGSS_Scientist_2" }, + "switch": true }, { "text": "", "topic": "BGSS_PROFESSOR_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Professor_1" } + "condition": { "npc_has_trait": "BGSS_Professor_1" }, + "switch": true }, { "text": "", "topic": "BGSS_GRAD_STUDENT_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Grad_Student_1" } + "condition": { "npc_has_trait": "BGSS_Grad_Student_1" }, + "switch": true }, { "text": "", "topic": "BGSS_LAB_1_STORY1", - "condition": { "npc_has_trait": "BGSS_Lab_1" } + "condition": { "npc_has_trait": "BGSS_Lab_1" }, + "switch": true + }, + { + "text": "How did you come to be a merc working for the Free Merchants, anyway?", + "//": "This is a unique background story that should not be given out randomly.", + "topic": "BGSS_SCAVENGER_MERC_1_STORY1", + "condition": { "and": [ { "npc_has_trait": "BGSS_Scavenger_Merc_1" }, { "not": { "npc_has_effect": "BGSS_Merc_haswhisky" } } ] }, + "switch": true + }, + { + "text": "So, you got your whisky. Tell me that story.", + "//": "This is a unique background story that should not be given out randomly.", + "topic": "BGSS_SCAVENGER_MERC_1_STORY3", + "condition": { "and": [ { "npc_has_trait": "BGSS_Scavenger_Merc_1" }, { "npc_has_effect": "BGSS_Merc_haswhisky" } ] }, + "switch": true } ] }, { "type": "effect_type", "id": "player_BGSS_SAIDNO", - "//": "Defined here because this should be the only time this effect is referenced.", - "name": [ "Story Denied" ], - "desc": [ - "AI tag: you already asked an NPC for a detail and they don't want to tell you again. This is a bug if you have it." - ] + "//": "Defined here because this should be the only time this effect is referenced." + }, + { + "type": "effect_type", + "id": "player_BGSS_SAIDYES", + "//": "Defined here because this should be the only time this effect is referenced." } ] diff --git a/data/json/npcs/Backgrounds/cop_3.json b/data/json/npcs/Backgrounds/cop_3.json new file mode 100644 index 0000000000000..03cbd82cf3fa0 --- /dev/null +++ b/data/json/npcs/Backgrounds/cop_3.json @@ -0,0 +1,48 @@ +[ + { + "id": "BGSS_COP_3_STORY1", + "type": "talk_topic", + "dynamic_line": "Before , I was a cop. I got shot just a couple days before everything went down... I made a bad call in a drug bust and a scumbag got me right in the gut, it was barely stopped by my vest. I took some pretty bad internal bruising. I never thought getting shot would save my life, but I was off duty recuperating when the worst of it hit.", + "responses": [ + { + "text": "What did you do when you found out about the cataclysm?", + "condition": { "not": { "days_since_cataclysm": 90 } }, + "effect": { "npc_add_effect": "BGSS_Cop_3_earlymeeting", "duration": "PERMANENT" }, + "//": "If you talk to this NPC any time before day 90, the game flags him as an NPC you met 'early' and never gives you the 'late' convo options", + "topic": "BGSS_COP_3_STORY2" + }, + { + "text": "What did you do when you found out about the cataclysm?", + "condition": { "days_since_cataclysm": 90 }, + "topic": "BGSS_COP_3_STORY2" + }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "type": "effect_type", + "id": "BGSS_Cop_3_earlymeeting", + "//": "Defined here because this should be the only time this effect is referenced." + }, + { + "id": "BGSS_COP_3_STORY2", + "type": "talk_topic", + "dynamic_line": "At first I wanted to help. The riots, fighting in the streets, it was too much for me to just sit in my house and hear about it on the news. Then a buddy of mine called me from just off the front lines. He'd been hurt and he wasn't making much sense, but what he told me... well, you can imagine the kind of stuff he told me. Everything the worst of the internet was making up, and more. Instead of packing up to try to volunteer back onto active duty, I took his advice and packed up to leave. My house was on the edge of town and the riots hadn't reached it yet, but from what I'd heard it was smarter to get out than to hold tight. I slipped out that night, took my quad out, and camped a few days in the woods, waiting for it to blow over. It never did.", + "responses": [ + { + "text": "What was it like, surviving out there with an injury?", + "condition": { "not": { "npc_has_effect": "BGSS_Cop_3_earlymeeting" } }, + "topic": "BGSS_COP_3_STORY3" + }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_COP_3_STORY3", + "type": "talk_topic", + "dynamic_line": "Honestly, probably better than it sounds. I had a good bug-out bag, a nice tent, a lot of good stuff. I hadn't suffered any internal organ damage, my stomach muscles were just really badly bruised, and I'd already had some good time to recover. I think it kept me from doing anything too stupid, and believe me there was a high chance of that. For a long time I had these Rambo visions of rushing into town and saving everyone, but I was still too immobile. By the time I had my strength back, it wasn't an option... we 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.", + "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] + } +] diff --git a/data/json/npcs/Backgrounds/criminal_1.json b/data/json/npcs/Backgrounds/criminal_1.json index eab8121ec4b0f..9d1f12ac4897c 100644 --- a/data/json/npcs/Backgrounds/criminal_1.json +++ b/data/json/npcs/Backgrounds/criminal_1.json @@ -13,7 +13,31 @@ "id": "BGSS_CRIMINAL_1_STORY2", "type": "talk_topic", "dynamic_line": "It was just chaos on the streets, man. But I'm used to chaos. You don't live as long as I've lived and not know how to keep away from a fight you can't win. Biggest worry wasn't the zombies and the monsters, honestly. It was the fuckin' police robots. They knew I was in violation, and they kept trying to arrest me.", - "//": "TK, this story not done.", - "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] + "responses": [ + { "text": "How did you keep from getting arrested?", "topic": "BGSS_CRIMINAL_1_STORY3" }, + { "text": "What were you in for in the first place?", "topic": "BGSS_CRIMINAL_1_PAROLE" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_CRIMINAL_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Kept outta their line of sight, is a big part of it. Don't let those flyin' cameras get you, you know? If they do, they call for backup from the big guns, and then, well, I hope you like gettin' tazed and shoved in the back of a van. I kept my head down until I got past the worst of it, but then one of the eyebots recognized me and I had to book it. I was just lucky the bots it called had blown their wad on some giant-ass slime beast and were tryin' to get me with their short range shit. I wound up on the edge of town layin' low under an abandoned RV for a few hours, then slipped out in the night.", + "responses": [ + { "text": "What were you in for in the first place?", "topic": "BGSS_CRIMINAL_1_PAROLE" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_CRIMINAL_1_PAROLE", + "type": "talk_topic", + "dynamic_line": "Bullshit, that's what. The assholes busted me on possession, wasn't even my fuckin' stash. I don't do crack, man, that shit's nasty, I was just carryin' it for my buddy Johnny. Y'know, this might be a hellhole now, but if I've seen the last power-trippin' asshole cop, it might all be worth it.", + "responses": [ + { "text": "What were you saying before?", "topic": "TALK_NONE" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] } ] diff --git a/data/json/npcs/Backgrounds/evacuee_1.json b/data/json/npcs/Backgrounds/evacuee_1.json index 6bc2eec6a02c7..5c704c0dda5b4 100644 --- a/data/json/npcs/Backgrounds/evacuee_1.json +++ b/data/json/npcs/Backgrounds/evacuee_1.json @@ -4,15 +4,55 @@ "type": "talk_topic", "dynamic_line": "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.", "responses": [ - { "text": "How did you survive on the run?", "topic": "BGSS_EVACUEE_1_STORY2" }, + { + "text": "How did you survive on the run?", + "topic": "BGSS_EVACUEE_1_STORY2", + "condition": { "not": { "days_since_cataclysm": 90 } }, + "effect": { "npc_add_effect": "BGSS_EVACUEE_1_earlymeeting", "duration": "PERMANENT" }, + "//": "If you talk to this NPC any time before day 90, the game flags him as an NPC you met 'early' and never gives you the 'late' convo options" + }, + { + "text": "How did you survive on the run?", + "condition": { "days_since_cataclysm": 90 }, + "topic": "BGSS_EVACUEE_1_STORY2" + }, { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] }, + { + "type": "effect_type", + "id": "BGSS_EVACUEE_1_earlymeeting", + "//": "Defined here because this should be the only time this effect is referenced." + }, { "id": "BGSS_EVACUEE_1_STORY2", "type": "talk_topic", "dynamic_line": "I spent a lot of time rummaging for rhubarb and bits of vegetables in the forest before I found the courage to start picking off some of those dead monsters. I guess I was getting desperate.", + "responses": [ + { + "text": "And that's it? You spent months just living off the land?", + "topic": "BGSS_EVACUEE_1_STORY3", + "condition": { "not": { "npc_has_effect": "BGSS_EVACUEE_1_earlymeeting" } } + }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_EVACUEE_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Not exactly. After a while, I got brave. I started venturing towards the outskirts of town, picking off zombies here and there. I learned about travelling in at night to avoid all but those shadow-zombies, and that got me pretty far. Eventually I cleared out a cozy little nook for myself and started really feeling comfortable. I guess I got a bit complacent.", + "responses": [ + { "text": "Complacent?", "topic": "BGSS_EVACUEE_1_STORY4" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_EVACUEE_1_STORY4", + "type": "talk_topic", + "dynamic_line": "I thought I had those damned figured out. I got braver, started heading out by day more and more. One of those screamer zombies spotted me and called in a horde, with a giant beasty at the head of it, the size of a volkswagen and all covered in bone plates. I know when I'm outclassed. The big guy was held back by his own horde of buddies, and I managed to book it back to my place. I closed the windows, locked it down, but it was too late. The giant followed me and just started hammering right through the walls. I grabbed what I could and made for the horizon. Last I saw of my squat, it was collapsing on the bastard. For all I know, it died in the crash, but I am not going back to find out.", "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] } ] diff --git a/data/json/npcs/Backgrounds/evacuee_3.json b/data/json/npcs/Backgrounds/evacuee_3.json index 57909340f82e4..cadfc5ef80f3c 100644 --- a/data/json/npcs/Backgrounds/evacuee_3.json +++ b/data/json/npcs/Backgrounds/evacuee_3.json @@ -3,6 +3,71 @@ "id": "BGSS_EVACUEE_3_STORY1", "type": "talk_topic", "dynamic_line": "There's nothing too special about me, I'm not sure why I survived. I got evacuated with a handful of others, but we were too late to make the second trip to a FEMA center. We got attacked by the dead... I was the only one to make it out. I never looked back.", + "responses": [ + { + "text": "How did you survive after that?", + "condition": { "not": { "days_since_cataclysm": 90 } }, + "effect": { "npc_add_effect": "BGSS_EVACUEE_3_earlymeeting", "duration": "PERMANENT" }, + "//": "If you talk to this NPC any time before day 90, the game flags him as an NPC you met 'early' and never gives you the 'late' convo options", + "topic": "BGSS_EVACUEE_3_STORY2" + }, + { + "text": "How did you survive after that?", + "condition": { "days_since_cataclysm": 90 }, + "topic": "BGSS_EVACUEE_3_STORY2" + }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "type": "effect_type", + "id": "BGSS_EVACUEE_3_earlymeeting", + "//": "Defined here because this should be the only time this effect is referenced." + }, + { + "id": "BGSS_EVACUEE_3_STORY2", + "type": "talk_topic", + "dynamic_line": "Sheer luck I guess. I went the absolute wrong way, into town, and wound up stuck in the subway system. I spent a few days living off vending machine food. Not the best eating, but I pulled through. At least there weren't so many zombies down there.", + "responses": [ + { + "text": "What got you out of the subway?", + "condition": { "not": { "npc_has_effect": "BGSS_EVACUEE_3_earlymeeting" } }, + "topic": "BGSS_EVACUEE_3_STORY3_LATE" + }, + { + "text": "What got you out of the subway?", + "condition": { "npc_has_effect": "BGSS_EVACUEE_3_earlymeeting" }, + "topic": "BGSS_EVACUEE_3_STORY3_EARLY" + }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_EVACUEE_3_STORY3_EARLY", + "type": "talk_topic", + "dynamic_line": "Straight up hunger. I didn't have any great light source down there, and I didn't have much food. I was slipping up and down to the station to buy 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.", "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] + }, + { + "id": "BGSS_EVACUEE_3_STORY3_LATE", + "type": "talk_topic", + "dynamic_line": "Straight up hunger. I didn't have any great light source down there, and I didn't have much food. I was slipping up and down to the station to buy from the vending machines, but once I ran out of cash I had to think of something else. I started raiding the surrounding area by night, and built a decent little base under there.", + "responses": [ + { "text": "I didn't meet you in the subway though. You left.", "topic": "BGSS_EVACUEE_3_STORY4" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_EVACUEE_3_STORY4", + "type": "talk_topic", + "dynamic_line": "Yeah. I had it pretty good there, but eventually I just started going a bit nuts. Always dark, a bit cold, living off scavenged junk food... a soul can only live like that for so long. When the weather above ground got warmer and the daylight hours got longer I decided to get a bit braver. I'd learned enough about the that I was able to live pretty well after that. I've camped a few places, scavenged berries and whatnot, lived a pretty good life compared to those first few months.", + "responses": [ + { "text": "I didn't meet you in the subway though. You left.", "topic": "BGSS_EVACUEE_3_STORY4" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] } ] diff --git a/data/json/npcs/Backgrounds/fema_evacuee_1.json b/data/json/npcs/Backgrounds/fema_evacuee_1.json index ca141b7da19ab..ad01bae9c82e4 100644 --- a/data/json/npcs/Backgrounds/fema_evacuee_1.json +++ b/data/json/npcs/Backgrounds/fema_evacuee_1.json @@ -8,7 +8,7 @@ { "text": "How did you get out?", "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "PERSUADE", "difficulty": 30, "mod": [ [ "BRAVERY", 1 ], [ "TRUST", 1 ] ] }, + "trial": { "type": "PERSUADE", "difficulty": 20, "mod": [ [ "BRAVERY", 2 ], [ "TRUST", 1 ] ] }, "success": { "topic": "BGSS_FEMA_EVACUEE_1_ESCAPE1" }, "failure": { "topic": "BGSS_FEMA_EVACUEE_1_NOTYET" } }, @@ -25,7 +25,7 @@ { "text": "How did you get out?", "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "PERSUADE", "difficulty": 30 }, + "trial": { "type": "PERSUADE", "difficulty": 20, "mod": [ [ "BRAVERY", 2 ], [ "TRUST", 1 ] ] }, "success": { "topic": "BGSS_FEMA_EVACUEE_1_ESCAPE1" }, "failure": { "topic": "BGSS_FEMA_EVACUEE_1_NOTYET" } }, @@ -63,12 +63,23 @@ { "id": "BGSS_FEMA_EVACUEE_1_NOTYET", "type": "talk_topic", - "dynamic_line": "That's a story for another day. I don't really like thinking about it.", - "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "14000" }, + "dynamic_line": "Maybe another time. I don't really like thinking about it.", "responses": [ - { "text": "Sorry. Tell me more about that FEMA camp.", "topic": "BGSS_FEMA_EVACUEE_1_STORY2" }, - { "text": "Sorry for asking. ", "topic": "TALK_FRIEND" }, - { "text": "Sorry for asking. ", "topic": "TALK_DONE" } + { + "text": "Sorry. Tell me more about that FEMA camp.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 600 }, + "topic": "BGSS_FEMA_EVACUEE_1_STORY2" + }, + { + "text": "Sorry for asking. ", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 600 }, + "topic": "TALK_FRIEND" + }, + { + "text": "Sorry for asking. ", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 600 }, + "topic": "TALK_DONE" + } ] } ] diff --git a/data/json/npcs/Backgrounds/grad_student_1.json b/data/json/npcs/Backgrounds/grad_student_1.json index c1883ecd0a14c..e91f8c880f1d6 100644 --- a/data/json/npcs/Backgrounds/grad_student_1.json +++ b/data/json/npcs/Backgrounds/grad_student_1.json @@ -2,8 +2,43 @@ { "id": "BGSS_GRAD_STUDENT_1_STORY1", "type": "talk_topic", - "dynamic_line": "I'm not from around here... You can probably tell from the accent, I'm from the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a conference when stopped me. I was staying at a flee-ridden little motel on the side of the road. When I got up for whatever was going to pass for breakfast, the fat bloody proprietor was sitting at his desk, wearing the same grubby clothes from the night before. I thought he had just slept there, but when he looked at me... well, you know what those Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him on the head with my tablet.", - "//": "TK, this story not done.", - "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] + "dynamic_line": "I'm not from around here... You can probably tell from the accent, I'm from the UK. I was here doing my PhD at Dartmouth. I was halfway to MIT for a conference when stopped me. I was staying at a flea-ridden little motel on the side of the road. When I got up for whatever was going to pass for breakfast, the fat bloody proprietor was sitting at his desk, wearing the same grubby clothes from the night before. I thought he had just slept there, but when he looked at me... well, you know what those Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him 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.", + "responses": [ + { "text": "What did you do next?", "topic": "BGSS_GRAD_STUDENT_1_STORY2" }, + { "text": "What were you studying?", "topic": "BGSS_GRAD_STUDENT_1_FIELD" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_GRAD_STUDENT_1_STORY2", + "type": "talk_topic", + "dynamic_line": "I wandered for a little while around the grounds, letting the adrenaline fade, hoping for some kind of idea what to do. I was out in the middle of nowhere, and I didn't know the area at all. I wasn't certain if I should head back to Hanover, and try to get my belongings, or stay out where I was. Finally, I decided to rest a while until I knew what was going on. The internet told me most of what I needed; I'm sure you saw Twitter in those days. Even if I'd thought it wise to go back all the way to New Hampshire, I was far too scared.", + "responses": [ + { "text": "Something must have driven you out of the motel.", "topic": "BGSS_GRAD_STUDENT_1_STORY3" }, + { "text": "What were you studying?", "topic": "BGSS_GRAD_STUDENT_1_FIELD" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_GRAD_STUDENT_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Yes. Simple hunger. The vending machines sold only peanuts and biscuits. I wasn't about to rely on that for survival. I stayed long enough to realize no one was going to come for me, then packed up what I could and drove off. Eventually my car was caught in a downpour of acid rain that stripped the tires and left me to carry on on foot, living the life of a hunter gatherer. Honestly, I think I eat better this way than I did as a grad student.", + "responses": [ + { "text": "What were you studying?", "topic": "BGSS_GRAD_STUDENT_1_FIELD" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_GRAD_STUDENT_1_FIELD", + "type": "talk_topic", + "dynamic_line": "I was in biochemistry. Specifically, if you're interested, I was studying the folding of non-standard nucleic acids into enzyme-like structures. It sounds more interesting than it was; most of my time was spent cursing at computer screens and wishing we had more information on threose chains at unusual temperatures and pressures for modeling.", + "responses": [ + { "text": "What were you saying before?", "topic": "TALK_NONE" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] } ] diff --git a/data/json/npcs/Backgrounds/hospital_2.json b/data/json/npcs/Backgrounds/hospital_2.json index 136ce70ff78a4..2bee8fc64a2de 100644 --- a/data/json/npcs/Backgrounds/hospital_2.json +++ b/data/json/npcs/Backgrounds/hospital_2.json @@ -2,22 +2,39 @@ { "id": "BGSS_HOSPITAL_2_STORY1", "type": "talk_topic", - "dynamic_line": "I was at work at the hospital, when it all went down. It's a bit of a blur. For a while there were weird reports, stuff that sounded unbelievable about patients getting back up after dying, but mostly things were business as usual. Then, towards the end, stuff just skyrocketed. We thought it was a Chinese attack, and that's what we were being told. People coming in crazed, covered in wounds from bullets and bites. About halfway through my shift I... well, I broke. I'd seen such horrible injuries, and then I... , I can't even talk about it.", + "dynamic_line": { + "npc_has_effect": "player_BGSS_SAIDNO", + "yes": "I just can't talk about that right now. I can't.", + "no": { + "npc_has_effect": "player_BGSS_SAIDYES", + "yes": "I was at work at the hospital, when it all went down. It's a bit of a blur. For a while there were weird reports, stuff that sounded unbelievable about patients getting back up after dying, but mostly things were business as usual. Then, towards the end, stuff just skyrocketed. We thought it was a Chinese attack, and that's what we were being told. People coming in crazed, covered in wounds from bullets and bites. About halfway through my shift I... well, I broke.", + "no": "I was at work at the hospital, when it all went down. It's a bit of a blur. For a while there were weird reports, stuff that sounded unbelievable about patients getting back up after dying, but mostly things were business as usual. Then, towards the end, stuff just skyrocketed. We thought it was a Chinese attack, and that's what we were being told. People coming in crazed, covered in wounds from bullets and bites. About halfway through my shift I... well, I broke. I'd seen such horrible injuries, and then I... , I can't even talk about it." + } + }, "responses": [ { "text": "It might help to get it off your chest.", - "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "PERSUADE", "difficulty": 40, "mod": [ [ "TRUST", 2 ] ] }, + "condition": { + "and": [ { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } ] + }, + "trial": { "type": "PERSUADE", "difficulty": 40, "mod": [ [ "TRUST", 2 ], [ "VALUE", 3 ] ] }, "success": { "topic": "BGSS_HOSPITAL_2_STORY2" }, "failure": { "topic": "BGSS_HOSPITAL_2_NOTYET" } }, { "text": "Suck it up. If we're going to work together I need to know you.", - "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "INTIMIDATE", "difficulty": 40, "mod": [ [ "BRAVERY", 2 ] ] }, + "condition": { + "and": [ { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } ] + }, + "trial": { "type": "INTIMIDATE", "difficulty": 40, "mod": [ [ "BRAVERY", 2 ], [ "TRUST", 1 ], [ "ANGER", -2 ] ] }, "success": { "topic": "BGSS_HOSPITAL_2_STORY2" }, "failure": { "topic": "BGSS_HOSPITAL_2_NOTYET" } }, + { + "text": "What was it that 'broke' you?", + "condition": { "npc_has_effect": "player_BGSS_SAIDYES" }, + "topic": "BGSS_HOSPITAL_2_STORY2" + }, { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] @@ -26,17 +43,34 @@ "id": "BGSS_HOSPITAL_2_NOTYET", "type": "talk_topic", "dynamic_line": "No. I can't. Just, no.", - "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "14000" }, - "responses": [ { "text": "", "topic": "TALK_DONE" } ] + "responses": [ + { + "text": "Sorry... I'll let you be.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 14000 }, + "topic": "TALK_DONE" + } + ] }, { "id": "BGSS_HOSPITAL_2_STORY2", "type": "talk_topic", "dynamic_line": "A young mother. I know she was a mother, because I delivered her baby. Sweet girl, she... she had a good sense of humor. She came in, spitting that black goo, fighting the orderlies, dead from a bullet wound through the chest. That's when I ... I don't know if I woke up, finally, or if I finally went crazy. Either way, I broke. I broke a lot earlier than my colleagues, and that's the only reason I lived. I skipped out, went to a dead corner of the hospital I used to hide in when I was a resident. An old stairwell leading to a closed-off unit the maintenance staff were using to store old equipment. I hid there for hours, while I listened to the world crumbling outside and inside.", "responses": [ - { "text": "How did you get out of there?", "topic": "BGSS_HOSPITAL_2_STORY3" }, - { "text": "", "topic": "TALK_FRIEND" }, - { "text": "", "topic": "TALK_DONE" } + { + "text": "How did you get out of there?", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "BGSS_HOSPITAL_2_STORY3" + }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_FRIEND" + }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + } ] }, { diff --git a/data/json/npcs/Backgrounds/lab_1.json b/data/json/npcs/Backgrounds/lab_1.json index 114261d24f79c..5ccf77097bbcb 100644 --- a/data/json/npcs/Backgrounds/lab_1.json +++ b/data/json/npcs/Backgrounds/lab_1.json @@ -20,7 +20,7 @@ ] }, { - "id": "BGSS_LAB_1_STORY2", + "id": "BGSS_LAB_1_STORY3", "type": "talk_topic", "dynamic_line": "Listen, I know it's incredibly cheesy. That's D&D for you. Anyway, something about the tone really got to me. I knew it was important. I wasted a little time waffling, then decided to use my outstanding vacation time and skip town for a while. I packed for the end of the world. Turns out, I packed the right stuff.", "responses": [ diff --git a/data/json/npcs/Backgrounds/left_for_dead_2.json b/data/json/npcs/Backgrounds/left_for_dead_2.json index e3c5531bb9887..23a3bbac210b3 100644 --- a/data/json/npcs/Backgrounds/left_for_dead_2.json +++ b/data/json/npcs/Backgrounds/left_for_dead_2.json @@ -22,7 +22,7 @@ { "id": "BGSS_LEFT_FOR_DEAD_2_STORY3", "type": "talk_topic", - "dynamic_line": "You probably remember what the cities were like. I think it was about day four. Once I stepped outside I realized what was going on, or realized I didn't know what was going on at least. I saw a bunch of rioters smashing a car, and then I noticed one of them was bashing a woman's head in. I cancelled my grocery trip, ran back to my apartment before they saw me, and holed up there for as long as I could. Things got comparatively quiet as the dead started to outnumber the living, so I started looting what I could from my neighbors, re-killing them when I had to. Eventually the overran my building and I had to climb out and head for the hills on an old bike.", + "dynamic_line": "You probably remember what the cities were like. I think it was about day four. Once I stepped outside I realized what was going on, or realized I didn't know what was going on at least. I saw a bunch of rioters smashing a car, and then I noticed one of them was bashing a woman's head in. I canceled my grocery trip, ran back to my apartment before they saw me, and holed up there for as long as I could. Things got comparatively quiet as the dead started to outnumber the living, so I started looting what I could from my neighbors, re-killing them when I had to. Eventually the overran my building and I had to climb out and head for the hills on an old bike.", "responses": [ { "text": "Thanks for telling me all that. ", "topic": "TALK_FRIEND" }, { "text": "Thanks for telling me all that. ", "topic": "TALK_DONE" } diff --git a/data/json/npcs/Backgrounds/lost_partner_2.json b/data/json/npcs/Backgrounds/lost_partner_2.json index 468c9410d9c61..a12e950c49cc2 100644 --- a/data/json/npcs/Backgrounds/lost_partner_2.json +++ b/data/json/npcs/Backgrounds/lost_partner_2.json @@ -2,22 +2,39 @@ { "id": "BGSS_LOST_PARTNER_2_STORY1", "type": "talk_topic", - "dynamic_line": "Just another tale of love and loss. Not something I like to tell.", + "dynamic_line": { + "npc_has_effect": "player_BGSS_SAIDNO", + "yes": "I said, I don't wanna talk about it. How are you not understanding this?", + "no": { + "npc_has_effect": "player_BGSS_SAIDYES", + "yes": "Like I said, it's a story, but I guess it won't kill me to tell it one more time.", + "no": "Just another tale of love and loss. Not one I like to tell." + } + }, "responses": [ { "text": "It might help to get it off your chest.", - "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "PERSUADE", "difficulty": 50, "mod": [ [ "VALUE", 1 ] ] }, + "condition": { + "and": [ { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } ] + }, + "trial": { "type": "PERSUADE", "difficulty": 50, "mod": [ [ "TRUST", 2 ], [ "VALUE", 3 ] ] }, "success": { "topic": "BGSS_LOST_PARTNER_2_STORY2" }, "failure": { "topic": "BGSS_LOST_PARTNER_2_NOTYET" } }, { "text": "Suck it up. If we're going to work together I need to know you.", - "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "INTIMIDATE", "difficulty": 50, "mod": [ [ "FEAR", 1 ] ] }, + "condition": { + "and": [ { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } ] + }, + "trial": { "type": "INTIMIDATE", "difficulty": 50, "mod": [ [ "BRAVERY", 2 ], [ "TRUST", 1 ], [ "ANGER", -2 ] ] }, "success": { "topic": "BGSS_LOST_PARTNER_2_STORY2" }, "failure": { "topic": "BGSS_LOST_PARTNER_2_FUCKOFF" } }, + { + "text": "You said you lost someone.", + "condition": { "npc_has_effect": "player_BGSS_SAIDYES" }, + "topic": "BGSS_LOST_PARTNER_2_STORY3" + }, { "text": "Never mind. Sorry I brought it up.", "topic": "TALK_FRIEND" } ] }, @@ -25,15 +42,20 @@ "id": "BGSS_LOST_PARTNER_2_NOTYET", "type": "talk_topic", "dynamic_line": "I appreciate the sentiment, but I don't think it would. Drop it.", - "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "7000" }, - "responses": [ { "text": "OK.", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] + "responses": [ + { "text": "OK.", "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 7000 }, "topic": "TALK_FRIEND" }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 7000 }, + "topic": "TALK_DONE" + } + ] }, { "id": "BGSS_LOST_PARTNER_2_FUCKOFF", "type": "talk_topic", "dynamic_line": "Oh, . This doesn't have anything to do with you, or with us.", - "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "14000" }, - "responses": [ { "text": "...", "topic": "TALK_DONE" } ] + "responses": [ { "text": "...", "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 14000 }, "topic": "TALK_DONE" } ] }, { "id": "BGSS_LOST_PARTNER_2_STORY2", @@ -45,9 +67,21 @@ } ], "responses": [ - { "text": "What happened?", "topic": "BGSS_LOST_PARTNER_2_STORY3" }, - { "text": "Never mind. Sorry I brought it up.", "topic": "TALK_FRIEND" }, - { "text": "", "topic": "TALK_DONE" } + { + "text": "What happened?", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "BGSS_LOST_PARTNER_2_STORY3" + }, + { + "text": "Never mind. Sorry I brought it up.", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_FRIEND" + }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + } ] }, { diff --git a/data/json/npcs/Backgrounds/prepper_2.json b/data/json/npcs/Backgrounds/prepper_2.json index 651e7c1fc50e4..b6dcf659065d7 100644 --- a/data/json/npcs/Backgrounds/prepper_2.json +++ b/data/json/npcs/Backgrounds/prepper_2.json @@ -8,7 +8,7 @@ { "text": "Hey, I'd really be interested in seeing those maps.", "topic": "BGSS_PREPPER_2_MAPS", - "condition": { "not": { "npc_has_effect": "player_BGSS_HASMAPS" } } + "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } }, { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } @@ -23,7 +23,7 @@ { "text": "Hey, I'd really be interested in seeing those maps.", "topic": "BGSS_PREPPER_2_MAPS", - "condition": { "not": { "npc_has_effect": "player_BGSS_HASMAPS" } } + "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } }, { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } @@ -37,7 +37,7 @@ { "text": "Hey, I'd really be interested in seeing those maps.", "topic": "BGSS_PREPPER_2_MAPS", - "condition": { "not": { "npc_has_effect": "player_BGSS_HASMAPS" } } + "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDYES" } } }, { "text": "Thanks for telling me that. ", "topic": "TALK_FRIEND" }, { "text": "Thanks for telling me that. ", "topic": "TALK_DONE" } @@ -49,7 +49,7 @@ "dynamic_line": "Yeah, I do. I'd be willing to part with them for, say, $1000. Straight from your ATM account, no cash cards.", "responses": [ { - "text": "[$2000] You have a deal.", + "text": "[$1000] You have a deal.", "topic": "BGSS_PREPPER_2_SOLD", "condition": { "u_has_cash": 100000 }, "effect": { "u_spend_cash": 100000 } @@ -57,14 +57,14 @@ { "text": "Whatever's in that map benefits both of us.", "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "PERSUADE", "difficulty": 40 }, + "trial": { "type": "PERSUADE", "difficulty": 40, "mod": [ [ "VALUE", 3 ], [ "TRUST", 1 ] ] }, "success": { "topic": "BGSS_PREPPER_2_SOLD" }, "failure": { "topic": "BGSS_PREPPER_2_NOSALE" } }, { "text": "How 'bout you hand it over and I don't get pissed off?", "condition": { "not": { "npc_has_effect": "player_BGSS_SAIDNO" } }, - "trial": { "type": "INTIMIDATE", "difficulty": 30 }, + "trial": { "type": "INTIMIDATE", "difficulty": 30, "mod": [ [ "BRAVERY", -1 ], [ "FEAR", 3 ] ] }, "success": { "topic": "BGSS_PREPPER_2_SOLD" }, "failure": { "topic": "BGSS_PREPPER_2_NOSALE" } }, @@ -77,22 +77,44 @@ "id": "BGSS_PREPPER_2_SOLD", "type": "talk_topic", "dynamic_line": "All right. Here they are.", - "effect": { "npc_add_effect": "player_BGSS_HASMAPS", "duration": "permanent", "u_buy_item": "survivormap" }, "responses": [ - { "text": "Thanks! What was it you were saying before?", "topic": "TALK_NONE" }, - { "text": "", "topic": "TALK_FRIEND" }, - { "text": "", "topic": "TALK_DONE" } + { + "text": "Thanks! What was it you were saying before?", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT", "u_buy_item": "survivormap" }, + "topic": "TALK_NONE" + }, + { + "text": "Thanks! ", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT", "u_buy_item": "survivormap" }, + "topic": "TALK_FRIEND" + }, + { + "text": "Thanks! ", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT", "u_buy_item": "survivormap" }, + "topic": "TALK_DONE" + } ] }, { "id": "BGSS_PREPPER_2_NOSALE", "type": "talk_topic", "dynamic_line": "Nice try. You want the maps, you pay up.", - "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "permanent" }, "responses": [ - { "text": "Fine. What was it you were saying before?", "topic": "TALK_NONE" }, - { "text": "", "topic": "TALK_FRIEND" }, - { "text": "", "topic": "TALK_DONE" } + { + "text": "Fine. What was it you were saying before?", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "PERMANENT" }, + "topic": "TALK_NONE" + }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "PERMANENT" }, + "topic": "TALK_FRIEND" + }, + { + "text": "", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + } ] } ] diff --git a/data/json/npcs/Backgrounds/prisoner_1.json b/data/json/npcs/Backgrounds/prisoner_1.json index 954e3d99bdf02..b83b146a09982 100644 --- a/data/json/npcs/Backgrounds/prisoner_1.json +++ b/data/json/npcs/Backgrounds/prisoner_1.json @@ -236,7 +236,7 @@ { "id": "BGSS_PRISONER_1_STORY3", "type": "talk_topic", - "dynamic_line": "I heard gunshots, even from down in lockup. Didn't hear much screaming or anything. That was my first clue something was up. Food stopped showing up, next. Then, the lights went out. I was down there for maybe hours, maybe days, when finally a flashlight in the bars blinded me. It was a 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.", + "dynamic_line": "I heard gunshots, even from down in lockup. Didn't hear much screaming or anything. That was my first clue something was up. Food stopped showing up, next. Then, the lights went out. I was down there for maybe hours, maybe days, when finally a flashlight in the bars blinded me. It was a 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.", "responses": [ { "text": "What did you do from there?", "topic": "BGSS_PRISONER_1_STORY4" }, { "text": "", "topic": "TALK_NONE" }, diff --git a/data/json/npcs/Backgrounds/scavenger_merc_1.json b/data/json/npcs/Backgrounds/scavenger_merc_1.json new file mode 100644 index 0000000000000..1d90bf709cd2b --- /dev/null +++ b/data/json/npcs/Backgrounds/scavenger_merc_1.json @@ -0,0 +1,183 @@ +[ + { + "id": "BGSS_SCAVENGER_MERC_1_STORY1", + "type": "talk_topic", + "dynamic_line": { + "npc_has_effect": "player_BGSS_SAIDYES", + "yes": "Like I said, you want me to tell you a story, you gotta pony up the whisky. A full bottle, mind you.", + "no": "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." + }, + "responses": [ + { + "text": "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.", + "condition": { "not": { "or": [ { "npc_has_effect": "player_BGSS_SAIDNO" }, { "npc_has_effect": "player_BGSS_SAIDYES" } ] } }, + "//": "This guy is very unlikely to respond to nice words, unless you're a really smooth operator and have earned it.", + "trial": { "type": "PERSUADE", "difficulty": 80, "VALUE": -2, "TRUST": -2 }, + "success": { "topic": "BGSS_SCAVENGER_MERC_1_STORY2_BADGERME" }, + "failure": { "topic": "BGSS_SCAVENGER_MERC_1_FUCKOFF" } + }, + { + "text": "Don't mouth off to me. I know where everyone else working for me comes from. If I'm going to let you stand behind me with a loaded gun, you're going to toe the line too.", + "condition": { "not": { "or": [ { "npc_has_effect": "player_BGSS_SAIDNO" }, { "npc_has_effect": "player_BGSS_SAIDYES" } ] } }, + "//": "This guy is more likely to respond to a show of strength.", + "trial": { "type": "INTIMIDATE", "difficulty": 50, "TRUST": -1, "FEAR": -1 }, + "success": { "topic": "BGSS_SCAVENGER_MERC_1_STORY2_OKAY" }, + "failure": { "topic": "BGSS_SCAVENGER_MERC_1_NICETRY" } + }, + { + "text": "Is this enough whisky for you?", + "condition": { "and": [ { "u_has_item": "whiskey" }, { "npc_has_effect": "player_BGSS_SAIDYES" } ] }, + "topic": "BGSS_SCAVENGER_MERC_1_STORY2" + }, + { "text": "Fine. Let's talk business, then.", "topic": "TALK_NONE" }, + { "text": "Fine, have it your way.", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_FUCKOFF", + "type": "talk_topic", + "dynamic_line": "No dice. You asked me to come along. This is what you get. If you don't like it, I'll take my fee and go back to the center. Ain't hard to find contracts.", + "opinion": { "fear": -1 }, + "responses": [ + { + "text": "Fine, then. Let's talk about something else.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 20000 }, + "topic": "TALK_FRIEND" + }, + { + "text": "Have it your way.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 20000 }, + "topic": "TALK_DONE" + } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_NICETRY", + "type": "talk_topic", + "dynamic_line": "I respect where you're coming from, but no. Not interested. If you don't like it, I can find another boss easy enough.", + "responses": [ + { + "text": "Fine, then. Let's talk about something else.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 20000 }, + "topic": "TALK_FRIEND" + }, + { + "text": "Have it your way.", + "effect": { "npc_add_effect": "player_BGSS_SAIDNO", "duration": 20000 }, + "topic": "TALK_DONE" + } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_STORY2_BADGERME", + "type": "talk_topic", + "dynamic_line": ", you're just gonna keep badgering me about this forever, aintcha. Fine. Bring me a bottle of single malt, we share a drink, I tell you the story.", + "responses": [ + { + "text": "I'll get looking for that. In the meantime there was something else I wanted to talk about.", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_FRIEND" + }, + { + "text": "I'll get back to you on that.", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_STORY2_OKAY", + "type": "talk_topic", + "dynamic_line": "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.", + "responses": [ + { + "text": "I'll get looking for that. In the meantime there was something else I wanted to talk about.", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_FRIEND" + }, + { + "text": "I'll get back to you on that.", + "effect": { "npc_add_effect": "player_BGSS_SAIDYES", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_STORY2", + "type": "talk_topic", + "dynamic_line": "Oh, yeah, this is a good choice. Hold on to it for me, let's have a drink later. Right now we're practically swimming in good whisky, but some day the last bottle will get drunk. It's gonna be a long time before any of us is brewing nice scotch, and we ain't never gettin' peat from Islay ever again. Makes me shed a tear just thinking about it.", + "opinion": { "trust": 1, "value": 1 }, + "responses": [ + { + "text": "You owe me a story.", + "effect": { "npc_add_effect": "BGSS_Merc_haswhisky", "duration": "PERMANENT" }, + "topic": "BGSS_SCAVENGER_MERC_1_STORY3" + } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Mostly I just wanted to get some scotch out of you. There really ain't much of a story. I was in the marines, years ago. After that, did security contract work. I was out guarding some dump of a warehouse when the apocalypse rolled through town. I was out on the edge of town, armed, and know when to not pick a fight, so I didn't get killed. Wound up recruited 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.", + "responses": [ + { + "text": "Why was a guy with your skillset guarding a warehouse? Must've been some warehouse.", + "condition": { "and": [ { "u_has_intelligence": 7 }, { "u_has_perception": 8 } ] }, + "topic": "BGSS_SCAVENGER_MERC_1_STORY4" + }, + { "text": "What was working for the Free Merchants like?", "topic": "BGSS_SCAVENGER_MERC_1_FREE_MERCHANTS" }, + { "text": "What was working for the Old Guard like?", "topic": "BGSS_SCAVENGER_MERC_1_OLD_GUARD" }, + { "text": "Thanks for that.", "topic": "TALK_FRIEND" }, + { "text": "Thanks for that. Let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_STORY4", + "type": "talk_topic", + "dynamic_line": "Huh. Hadn't thought about it in ages, but now that you mention it, that was a weird job. It was just a boarded up warehouse in the middle of nowhere, and I was not a cheap contractor in those days. Coulda got any fat 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.", + "//": "UPCOMING: this merc will offer a mission for you to explore the warehouse in question.", + "responses": [ + { "text": "What were you saying before?", "topic": "TALK_NONE" }, + { "text": "Thanks for that.", "topic": "TALK_FRIEND" }, + { "text": "Thanks for that. Let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_FREE_MERCHANTS", + "type": "talk_topic", + "dynamic_line": "Fucking dull. Caravan patrols were a bit more fun, for a while, but a guy can only eat so much road dust. Guarding that pile of bricks full of sad-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.", + "responses": [ + { + "text": "Why was someone with your skillset guarding a warehouse? Must've been some warehouse.", + "condition": { "and": [ { "u_has_intelligence": 7 }, { "u_has_perception": 8 } ] }, + "topic": "BGSS_SCAVENGER_MERC_1_STORY4" + }, + { "text": "What was working for the Old Guard like?", "topic": "BGSS_SCAVENGER_MERC_1_OLD_GUARD" }, + { "text": "Thanks for that.", "topic": "TALK_FRIEND" }, + { "text": "Thanks for that. Let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SCAVENGER_MERC_1_OLD_GUARD", + "type": "talk_topic", + "dynamic_line": "Good work, and some fun stuff, but risky. Without a few hands at my side 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.", + "responses": [ + { + "text": "Why was a guy with your skillset guarding a warehouse? Must've been some warehouse.", + "condition": { "and": [ { "u_has_intelligence": 7 }, { "u_has_perception": 8 } ] }, + "topic": "BGSS_SCAVENGER_MERC_1_STORY4" + }, + { "text": "What was working for the Free Merchants like?", "topic": "BGSS_SCAVENGER_MERC_1_FREE_MERCHANTS" }, + { "text": "Thanks for that.", "topic": "TALK_FRIEND" }, + { "text": "Thanks for that. Let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "effect_type", + "id": "BGSS_Merc_haswhisky", + "//": "Defined here because this should be the only time this effect is referenced.", + "name": [ "I got whisky" ], + "player_visible": false, + "desc": [ "AI tag: This merc is happy with the whisky you brought. This is a bug if you have it." ] + } +] diff --git a/data/json/npcs/NC_BARTENDER.json b/data/json/npcs/NC_BARTENDER.json index 5275f759baec2..de461411a9a7d 100644 --- a/data/json/npcs/NC_BARTENDER.json +++ b/data/json/npcs/NC_BARTENDER.json @@ -1,51 +1,61 @@ [ { - "type" : "item_group", - "id" : "NC_BARTENDER_extra", - "items":[ - ["backpack", 90] - ] - },{ - "type" : "item_group", - "id" : "NC_BARTENDER_coat", - "items":[ - ["trenchcoat", 80], - ["vest", 60] - ] - },{ - "type" : "item_group", - "id" : "NC_BARTENDER_misc", - "items":[ - ["whiskey", 16], - ["vodka", 20], - ["gin", 20], - ["rum", 14], - ["tequila", 12], - ["triple_sec", 12], - ["bum_wine", 20], - ["fruit_wine", 12], - ["brandy", 12], - ["drink_boozeberry", 8], - ["drink_rumcola", 12], - ["drink_screwdriver", 12], - ["drink_wild_apple", 8], - ["drink_strawberry_surprise", 8], - ["long_island", 6], - ["wine_riesling", 6], - ["wine_chardonnay", 10], - ["wine_cabernet", 10], - ["wine_noir", 2], - ["beer", 35], - ["european_pilsner", 25], - ["pale_ale", 25], - ["india_pale_ale", 25], - ["stout", 15], - ["belgian_ale", 10], - ["imperial_stout", 4], - ["single_malt_whiskey", 2], - ["cig", 50], - ["chaw", 20], - ["cigar", 40] + "type": "item_group", + "id": "NC_BARTENDER_extra", + "items": [ [ "backpack", 90 ] ] + }, + { + "type": "item_group", + "id": "NC_BARTENDER_coat", + "items": [ [ "trenchcoat", 80 ], [ "vest", 60 ] ] + }, + { + "type": "item_group", + "id": "NC_BARTENDER_misc", + "items": [ + [ "whiskey", 16 ], + [ "vodka", 20 ], + [ "gin", 20 ], + [ "rum", 14 ], + [ "tequila", 12 ], + [ "moonshine", 15 ], + [ "triple_sec", 12 ], + [ "bum_wine", 20 ], + [ "mixed_alcohol_strong", 15 ], + [ "mixed_alcohol_weak", 15 ], + [ "fruit_wine", 12 ], + [ "brandy", 12 ], + [ "irish_coffee", 12 ], + [ "drink_boozeberry", 8 ], + [ "drink_rumcola", 12 ], + [ "drink_screwdriver", 12 ], + [ "drink_wsour", 12 ], + [ "drink_wild_apple", 8 ], + [ "drink_hobo", 8 ], + [ "drink_beeknees", 8 ], + [ "drink_kalimotxo", 8 ], + [ "drink_strawberry_surprise", 8 ], + [ "long_island", 6 ], + [ "eggnog_spiked", 6 ], + [ "wine_riesling", 6 ], + [ "wine_chardonnay", 10 ], + [ "wine_cabernet", 10 ], + [ "wine_noir", 2 ], + [ "dandelion_wine", 10 ], + [ "pine_wine", 10 ], + [ "mead", 2 ], + [ "beer", 35 ], + [ "hb_beer", 25 ], + [ "european_pilsner", 25 ], + [ "pale_ale", 25 ], + [ "india_pale_ale", 25 ], + [ "stout", 15 ], + [ "belgian_ale", 10 ], + [ "imperial_stout", 4 ], + [ "single_malt_whiskey", 2 ], + [ "cig", 50 ], + [ "chaw", 20 ], + [ "cigar", 40 ] ] } ] diff --git a/data/json/npcs/NC_BOUNTY_HUNTER.json b/data/json/npcs/NC_BOUNTY_HUNTER.json index 6ae2f1da30670..c7dbf7e972693 100644 --- a/data/json/npcs/NC_BOUNTY_HUNTER.json +++ b/data/json/npcs/NC_BOUNTY_HUNTER.json @@ -1,16 +1,7 @@ [ { "type" : "item_group", - "id" : "NC_BOUNTY_HUNTER_pants_male", - "items":[ - ["jeans", 20], - ["pants", 20], - ["pants_leather", 20], - ["pants_cargo", 60] - ] - },{ - "type" : "item_group", - "id" : "NC_BOUNTY_HUNTER_pants_female", + "id" : "NC_BOUNTY_HUNTER_pants", "items":[ ["jeans", 20], ["pants", 20], @@ -35,8 +26,15 @@ ["jacket_windbreaker", 10], ["jacket_leather", 80], ["trenchcoat", 20], - ["jacket_jean", 20], - ["kevlar", 5] + ["jacket_jean", 20] + ] + },{ + "type" : "item_group", + "id" : "NC_BOUNTY_HUNTER_vest", + "items":[ + ["null", 20], + ["kevlar", 80], + ["chestrig", 40] ] },{ "type" : "item_group", @@ -49,7 +47,7 @@ ] },{ "type" : "item_group", - "id" : "NC_BOUNTY_HUNTER_extra", + "id" : "NC_BOUNTY_HUNTER_storage", "items":[ ["null", 20], ["backpack", 40], diff --git a/data/json/npcs/NC_COWBOY.json b/data/json/npcs/NC_COWBOY.json index 712e6f150d8c5..7b11286edb0b7 100644 --- a/data/json/npcs/NC_COWBOY.json +++ b/data/json/npcs/NC_COWBOY.json @@ -28,16 +28,7 @@ ] },{ "type" : "item_group", - "id" : "NC_COWBOY_shirt_male", - "items":[ - ["tshirt", 60], - ["polo_shirt", 20], - ["dress_shirt", 20], - ["tank_top", 20] - ] - },{ - "type" : "item_group", - "id" : "NC_COWBOY_shirt_female", + "id" : "NC_COWBOY_shirt", "items":[ ["tshirt", 60], ["polo_shirt", 20], @@ -64,18 +55,31 @@ ["jacket_windbreaker", 10], ["jacket_leather", 20], ["trenchcoat", 20], - ["jacket_jean", 60], - ["kevlar", 5] + ["jacket_jean", 60] ] },{ "type" : "item_group", - "id" : "NC_COWBOY_extra", + "id" : "NC_COWBOY_vest", + "items":[ + ["null", 20], + ["kevlar", 50] + ] + },{ + "type" : "item_group", + "id" : "NC_COWBOY_storage", "items":[ ["null", 75], ["backpack", 10], ["backpack_leather", 10], ["holster", 25] ] + },{ + "type" : "item_group", + "id" : "NC_COWBOY_holster", + "items":[ + ["null", 25], + ["holster", 75] + ] },{ "type" : "item_group", "id" : "NC_COWBOY_hat", diff --git a/data/json/npcs/NC_EVAC_SHOPKEEP.json b/data/json/npcs/NC_EVAC_SHOPKEEP.json index 17d545f4acf58..07780f2d6d1ac 100644 --- a/data/json/npcs/NC_EVAC_SHOPKEEP.json +++ b/data/json/npcs/NC_EVAC_SHOPKEEP.json @@ -1,9 +1,9 @@ [ { "type" : "item_group", - "id" : "NC_EVAC_SHOPKEEP_extra", + "id" : "NC_EVAC_SHOPKEEP_storage", "items":[ - ["rucksack", 90] + ["duffelbag", 100] ] },{ "type" : "item_group", diff --git a/data/json/npcs/NC_HUNTER.json b/data/json/npcs/NC_HUNTER.json index c30f41814c668..92e8f0add748d 100644 --- a/data/json/npcs/NC_HUNTER.json +++ b/data/json/npcs/NC_HUNTER.json @@ -1,14 +1,7 @@ [ { "type" : "item_group", - "id" : "NC_HUNTER_shirt_male", - "items":[ - ["tshirt", 20], - ["tank_top", 20] - ] - },{ - "type" : "item_group", - "id" : "NC_HUNTER_shirt_female", + "id" : "NC_HUNTER_shirt", "items":[ ["tshirt", 20], ["tank_top", 20] diff --git a/data/json/npcs/NC_JUNK_SHOPKEEP.json b/data/json/npcs/NC_JUNK_SHOPKEEP.json index 1dc34e3babd06..87d8004623b6a 100644 --- a/data/json/npcs/NC_JUNK_SHOPKEEP.json +++ b/data/json/npcs/NC_JUNK_SHOPKEEP.json @@ -2,7 +2,7 @@ { "type": "item_group", "id": "NC_JUNK_SHOPKEEP_extra", - "items": [ [ "rucksack", 90 ] ] + "items": [ [ "duffelbag", 100] ] }, { "type": "item_group", diff --git a/data/json/npcs/NC_NINJA.json b/data/json/npcs/NC_NINJA.json index 0e1a9550f5f7a..ca74034da20ec 100644 --- a/data/json/npcs/NC_NINJA.json +++ b/data/json/npcs/NC_NINJA.json @@ -1,53 +1,27 @@ [ { "type" : "item_group", - "id" : "NC_NINJA_shirt_male", + "id" : "NC_NINJA_shirt", "items":[ - ["null", 50], - ["tshirt", 10], - ["polo_shirt", 10], - ["dress_shirt", 10], - ["tank_top", 40] - ] - },{ - "type" : "item_group", - "id" : "NC_NINJA_shirt_female", - "items":[ - ["tshirt", 10], - ["polo_shirt", 10], - ["dress_shirt", 10], - ["tank_top", 90] - ] - },{ - "type" : "item_group", - "id" : "NC_NINJA_gloves", - "items":[ - ["null", 20], - ["gloves_leather", 60], - ["gloves_work", 20], - ["gloves_fingerless", 20], - ["fire_gauntlets", 20] - ] - },{ - "type" : "item_group", - "id" : "NC_NINJA_masks", - "items":[ - ["null", 10], - ["mask_dust", 10], - ["bandana", 70], - ["mask_filter", 10] + ["karate_gi", 10], + ["judo_gi", 10], + ["keikogi", 10], + ["zubon_gi", 10], + ["hakama_gi", 10] ] - },{ + }, + { "type" : "item_group", - "id" : "NC_NINJA_hat", + "id" : "NC_NINJA_belt", "items":[ - ["null", 90], - ["hat_ball", 5], - ["hat_hard", 5], - ["helmet_bike", 5], - ["helmet_riot", 5], - ["helmet_motor", 5], - ["hat_hunting", 5] + ["null", 50], + ["judo_belt_black", 10], + ["judo_belt_blue", 10], + ["judo_belt_brown", 10], + ["judo_belt_green", 40], + ["judo_belt_orange", 40], + ["judo_belt_white", 40], + ["judo_belt_yellow", 40] ] } ] diff --git a/data/json/npcs/NC_SOLDIER.json b/data/json/npcs/NC_SOLDIER.json index c28c8d3d0e903..877533f6ba3f2 100644 --- a/data/json/npcs/NC_SOLDIER.json +++ b/data/json/npcs/NC_SOLDIER.json @@ -1,45 +1,43 @@ [ { "type" : "item_group", - "id" : "NC_SOLDIER_pants_male", + "id" : "NC_SOLDIER_pants", "items":[ - ["pants_army", 100] + ["pants_army", 80], + ["winter_pants_army", 20] ] },{ "type" : "item_group", - "id" : "NC_SOLDIER_pants_female", + "id" : "NC_SOLDIER_shirt", "items":[ - ["pants_army", 100] + ["army_top", 20], + ["tshirt", 20], + ["polo_shirt", 20], + ["longshirt", 20] ] },{ "type" : "item_group", - "id" : "NC_SOLDIER_shirt_male", - "items":[ - ["army_top", 50], - ["jacket_army", 50], - ["tank_top", 5] - ] - },{ - "type" : "item_group", - "id" : "NC_SOLDIER_shirt_female", + "id" : "NC_SOLDIER_gloves", "items":[ - ["army_top", 50], - ["jacket_army", 50], - ["tank_top", 5] + ["null", 20], + ["gloves_tactical", 50], + ["gloves_fingerless", 30], + ["winter_gloves_army", 10] ] },{ "type" : "item_group", - "id" : "NC_SOLDIER_gloves", + "id" : "NC_SOLDIER_coat", "items":[ ["null", 20], - ["gloves_tactical", 50], - ["gloves_fingerless", 30] + ["jacket_army", 50], + ["winter_jacket_army", 50] ] },{ "type" : "item_group", - "id" : "NC_SOLDIER_coat", + "id" : "NC_SOLDIER_vest", "items":[ ["null", 10], + ["jacket_army", 50], ["kevlar", 10], ["modularvest", 15], ["modularvestkevlar", 25], @@ -57,7 +55,8 @@ "id" : "NC_SOLDIER_masks", "items":[ ["null", 50], - ["mask_gas", 10] + ["mask_gas", 20], + ["mask_bal", 10] ] },{ "type" : "item_group", @@ -71,18 +70,26 @@ "type" : "item_group", "id" : "NC_SOLDIER_hat", "items":[ - ["null", 50], - ["tac_helmet", 10], - ["helmet_army", 50] + ["null", 10], + ["tac_helmet", 50], + ["helmet_army", 50], + ["helmet_skid", 20] ] },{ "type" : "item_group", - "id" : "NC_SOLDIER_extra", + "id" : "NC_SOLDIER_storage", "items":[ ["null", 5], ["molle_pack", 40], ["rucksack", 10] ] + },{ + "type" : "item_group", + "id" : "NC_SOLDIER_holster", + "items":[ + ["null", 20], + ["holster", 50] + ] },{ "type" : "item_group", "id" : "NC_SOLDIER_cutting", diff --git a/data/json/npcs/NC_THUG.json b/data/json/npcs/NC_THUG.json index 8f9fd3d7ac130..eeca200ee0d36 100644 --- a/data/json/npcs/NC_THUG.json +++ b/data/json/npcs/NC_THUG.json @@ -1,66 +1,5 @@ [ { - "type" : "item_group", - "id" : "NC_THUG_pants_male", - "items":[ - ["jeans", 40], - ["pants", 10], - ["pants_leather", 60], - ["pants_cargo", 10] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_pants_female", - "items":[ - ["jeans", 40], - ["pants", 10], - ["pants_leather", 60], - ["pants_cargo", 10] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_shirt_male", - "items":[ - ["tshirt", 50], - ["tank_top", 50] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_shirt_female", - "items":[ - ["tshirt", 40], - ["tank_top", 60] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_gloves", - "items":[ - ["null", 20], - ["gloves_leather", 60], - ["gloves_work", 10], - ["gloves_fingerless", 10], - ["gloves_fingerless_mod", 10] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_coat", - "items":[ - ["null", 20], - ["jacket_leather", 30], - ["jacket_leather_mod", 30], - ["jacket_jean", 30], - ["football_armor", 40], - ["kevlar", 5] - ] - },{ - "type" : "item_group", - "id" : "NC_THUG_shoes", - "items":[ - ["boots", 70], - ["boots_steel", 50], - ["boots_hiking", 20] - ] - },{ "type" : "item_group", "id" : "NC_THUG_bashing", "items":[ diff --git a/data/json/npcs/NC_TRADER.json b/data/json/npcs/NC_TRADER.json index deb2cf8a64830..ce061e19c4a92 100644 --- a/data/json/npcs/NC_TRADER.json +++ b/data/json/npcs/NC_TRADER.json @@ -1,44 +1,10 @@ [ { "type" : "item_group", - "id" : "NC_TRADER_pants_male", + "id" : "NC_TRADER_storage", "items":[ - ["jeans", 20], - ["pants", 20], - ["pants_leather", 20], - ["pants_cargo", 60] - ] - },{ - "type" : "item_group", - "id" : "NC_TRADER_pants_female", - "items":[ - ["jeans", 20], - ["pants", 20], - ["pants_leather", 20], - ["pants_cargo", 80], - ["skirt", 20] - ] - },{ - "type" : "item_group", - "id" : "NC_TRADER_extra", - "items":[ - ["null", 5], - ["backpack", 30], - ["backpack_leather", 30], - ["rucksack", 35] - ] - },{ - "type" : "item_group", - "id" : "NC_TRADER_coat", - "items":[ - ["null", 10], - ["hoodie", 20], - ["jacket_light", 10], - ["jacket_windbreaker", 10], - ["jacket_leather", 10], - ["trenchcoat", 80], - ["jacket_jean", 20], - ["vest", 60] + ["duffelbag", 80], + ["rucksack", 50] ] } ] diff --git a/data/json/npcs/TALK_COMMON_ALLY.json b/data/json/npcs/TALK_COMMON_ALLY.json new file mode 100644 index 0000000000000..151626fc961cd --- /dev/null +++ b/data/json/npcs/TALK_COMMON_ALLY.json @@ -0,0 +1,414 @@ +[ + { + "id": "TALK_WAKE_UP", + "type": "talk_topic", + "dynamic_line": { + "npc_has_effect": "sleep", + "yes": { + "npc_need": "fatigue", + "level": "EXHAUSTED", + "no": { + "npc_need": "fatigue", + "level": "DEAD_TIRED", + "no": { + "npc_need": "fatigue", + "level": "TIRED", + "no": "Just few minutes more...", + "yes": "Make it quick, I want to go back to sleep." + }, + "yes": "Just let me sleep, !" + }, + "yes": "No, just no..." + }, + "no": "Anything to do before I go to sleep?" + }, + "responses": [ + { "text": "Wake up!", "topic": "TALK_NONE", "effect": "wake_up" }, + { "text": "Go back to sleep.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_FRIEND", "TALK_GIVE_ITEM", "TALK_USE_ITEM" ], + "type": "talk_topic", + "responses": [ + { "text": "Combat commands...", "topic": "TALK_COMBAT_COMMANDS" }, + { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" }, + { + "text": "Can you teach me anything?", + "trial": { + "type": "CONDITION", + "condition": { + "or": [ + { "npc_need": "thirst", "amount": 80 }, + { "npc_need": "hunger", "amount": 160 }, + { "npc_need": "fatigue", "level": "TIRED" }, + { "npc_has_effect": "asked_to_train" } + ] + } + }, + "success": { "topic": "TALK_DENY_TRAIN" }, + "failure": { "topic": "TALK_TRAIN_PERSUADE" } + }, + { "text": "Let's trade items", "topic": "TALK_FRIEND", "effect": "start_trade" }, + { "text": "Guard this position", "topic": "TALK_FRIEND_GUARD", "effect": "assign_guard" }, + { "text": "I'd like to know a bit more about you...", "topic": "TALK_FRIEND", "effect": "reveal_stats" }, + { "text": "I want you to use this item", "topic": "TALK_USE_ITEM" }, + { "text": "Hold on to this item", "topic": "TALK_GIVE_ITEM" }, + { "text": "Miscellaneous rules...", "topic": "TALK_MISC_RULES" }, + { "text": "I'm going to go my own way for a while.", "topic": "TALK_LEAVE" }, + { "text": "Let's go.", "topic": "TALK_DONE" }, + { + "text": "Relax and chat with me for a while...", + "topic": "TALK_FRIEND_CHAT", + "condition": { "not": { "npc_has_effect": "asked_to_socialize" } } + }, + { "text": "Let's talk about faction camps.", "topic": "TALK_CAMP_GENERAL" } + ] + }, + { + "id": "TALK_COMBAT_COMMANDS", + "type": "talk_topic", + "dynamic_line": { + "and": [ + { + "npc_engagement_rule": "ENGAGE_NONE", + "no": { + "npc_engagement_rule": "ENGAGE_CLOSE", + "no": { + "npc_engagement_rule": "ENGAGE_WEAK", + "no": { + "npc_engagement_rule": "ENGAGE_HIT", + "no": { + "npc_engagement_rule": "ENGAGE_NO_MOVE", + "no": "*will engage all enemies.", + "yes": "*will engage enemies close enough to attack without moving." + }, + "yes": "*will engage enemies you attack." + }, + "yes": "*will engage weak enemies." + }, + "yes": "*will engage nearby enemies." + }, + "yes": "*will not engage enemies." + }, + { + "npc_rule": "use_guns", + "yes": { + "npc_rule": "use_silent", + "yes": " will use silenced ranged weapons.", + "no": " will use ranged weapons." + }, + "no": " will not use ranged weapons." + }, + { + "npc_rule": "use_grenades", + "yes": " will use grenades.", + "no": " will not use grenades." + }, + { + "npc_rule": "avoid_friendly_fire", + "yes": " will avoid shooting if allies are in the line of fire.", + "no": " will shoot even if allies are in the line of fire." + }, + " What should do?" + ] + }, + "responses": [ + { "text": "Change your engagement rules...", "topic": "TALK_COMBAT_ENGAGEMENT" }, + { "text": "Change your aiming rules...", "topic": "TALK_AIM_RULES" }, + { + "truefalsetext": { + "condition": { "npc_rule": "use_guns" }, + "true": "Don't use ranged weapons anymore.", + "false": "You can use ranged weapons." + }, + "topic": "TALK_COMBAT_COMMANDS", + "effect": { "toggle_npc_rule": "use_guns" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "use_silent" }, "true": "Don't worry about noise.", "false": "Use only silent weapons." }, + "topic": "TALK_COMBAT_COMMANDS", + "effect": { "toggle_npc_rule": "use_silent" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "use_grenades" }, "true": "Don't use grenades anymore.", "false": "You can use grenades." }, + "topic": "TALK_COMBAT_COMMANDS", + "effect": { "toggle_npc_rule": "use_grenades" } + }, + { + "truefalsetext": { + "condition": { "npc_rule": "avoid_friendly_fire" }, + "true": "Don't worry about shooting an ally.", + "false": "Don't shoot unless you're sure you won't hit an ally." + }, + "topic": "TALK_COMBAT_COMMANDS", + "effect": { "toggle_npc_rule": "avoid_friendly_fire" } + }, + { "text": "Never mind.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_COMBAT_ENGAGEMENT", + "type": "talk_topic", + "dynamic_line": { + "and": [ + { + "npc_engagement_rule": "ENGAGE_NONE", + "no": { + "npc_engagement_rule": "ENGAGE_CLOSE", + "no": { + "npc_engagement_rule": "ENGAGE_WEAK", + "no": { + "npc_engagement_rule": "ENGAGE_HIT", + "no": { + "npc_engagement_rule": "ENGAGE_NO_MOVE", + "no": "*will engage all enemies.", + "yes": "*will engage enemies close enough to attack without moving." + }, + "yes": "*will engage enemies you attack." + }, + "yes": "*will engage weak enemies." + }, + "yes": "*will engage nearby enemies." + }, + "yes": "*will not engage enemies." + }, + " What should do?" + ] + }, + "responses": [ + { + "text": "Don't fight unless your life depends on it.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENGAGE_NONE" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_NONE" } + }, + { + "text": "Attack enemies that get too close.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENGAGE_CLOSE" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_CLOSE" } + }, + { + "text": "Attack enemies that you can kill easily.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENGAGE_WEAK" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_WEAK" } + }, + { + "text": "Attack only enemies that I attack first.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENAGE_HIT" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_HIT" } + }, + { + "text": "Attack only enemies you can reach without moving.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENGAGE_NO_MOVE" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_NO_MOVE" } + }, + { + "text": "Attack anything you want.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_engagement_rule": "ENGAGE_ALL" } }, + "effect": { "set_npc_engagement_rule": "ENGAGE_ALL" } + }, + { "text": "Never mind.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_AIM_RULES", + "type": "talk_topic", + "dynamic_line": { + "and": [ + { + "npc_aim_rule": "AIM_WHEN_CONVENIENT", + "no": { + "npc_aim_rule": "AIM_STRICTLY_PRECISE", + "no": { "npc_aim_rule": "AIM_PRECISE", "no": "*will not bother to aim at all.", "yes": "*will take time and aim carefully." }, + "yes": "*will only shoot after taking a long time to aim." + }, + "yes": "*will aim when it's convenient." + }, + " How should aim?" + ] + }, + "responses": [ + { + "text": "Aim when it's convenient.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_aim_rule": "AIM_WHEN_CONVENIENT" } }, + "effect": { "set_npc_aim_rule": "AIM_WHEN_CONVENIENT" } + }, + { + "text": "Go wild, you don't need to aim much.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_aim_rule": "AIM_SPRAY" } }, + "effect": { "set_npc_aim_rule": "AIM_SPRAY" } + }, + { + "text": "Take your time, aim carefully.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_aim_rule": "AIM_PRECISE" } }, + "effect": { "set_npc_aim_rule": "AIM_PRECISE" } + }, + { + "text": "Don't shoot if you can't aim really well.", + "topic": "TALK_NONE", + "condition": { "not": { "npc_aim_rule": "AIM_STRICTLY_PRECISE" } }, + "effect": { "set_npc_aim_rule": "AIM_STRICTLY_PRECISE" } + }, + { "text": "Never mind.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_TRAIN_PERSUADE", + "type": "talk_topic", + "dynamic_line": "Why should I teach you?", + "responses": [ + { + "text": "Come on, we're friends.", + "trial": { "type": "PERSUADE", "difficulty": 0, "mod": [ [ "TRUST", 6 ], [ "VALUE", 2 ], [ "ANGER", -6 ] ] }, + "success": { "topic": "TALK_TRAIN" }, + "failure": { "topic": "TALK_DENY_PERSONAL", "effect": { "npc_add_effect": "asked_to_train", "duration": 3600 } } + }, + { "text": "Never mind then.", "topic": "TALK_NONE" }, + { "text": "Forget it, let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_MISC_RULES", + "type": "talk_topic", + "dynamic_line": { + "and": [ + { + "npc_rule": "allow_pick_up", + "yes": { "has_pickup_list": true, "yes": "* will pick up items from the whitelist.", "no": "* will pick up all items." }, + "no": "* will not pick up items." + }, + { + "npc_rule": "allow_bash", + "yes": " will bash down obstacles.", + "no": " will not bash down obstacles." + }, + { + "npc_rule": "allow_sleep", + "yes": " will sleep when tired.", + "no": " will sleep only when exhausted." + }, + { + "npc_rule": "allow_complain", + "yes": " will complain about wounds and needs.", + "no": " will only complain in an emergency." + }, + { + "npc_rule": "allow_pulp", + "yes": " will smash nearby zombie corpses.", + "no": " will leave zombie corpses intact." + }, + { + "npc_rule": "close_doors", + "yes": " will close doors behind themselves.", + "no": " will leave doors open." + } + ] + }, + "responses": [ + { + "text": "Follow same rules as this follower.", + "topic": "TALK_MISC_RULES", + "condition": { "npc_allies": 2 }, + "effect": "copy_npc_rules" + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_pick_up" }, "true": "Don't pick up items.", "false": "You can pick up items now." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "allow_pick_up" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_bash" }, "true": "Don't bash obstacles.", "false": "You can bash obstacles." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "allow_bash" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_sleep" }, "true": "Stay awake.", "false": "Sleep when you feel tired." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "allow_sleep" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_complain" }, "true": "Stay quiet.", "false": "Tell me when you need something." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "allow_complain" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_pulp" }, "true": "Leave corpses alone.", "false": "Smash zombie corpses." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "allow_pulp" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "close_doors" }, "true": "Leave doors open.", "false": "Close the doors." }, + "topic": "TALK_MISC_RULES", + "effect": { "toggle_npc_rule": "close_doors" } + }, + { "text": "Set up pickup rules.", "topic": "TALK_MISC_RULES", "effect": "set_npc_pickup" }, + { "text": "Never mind.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_LEAVE", + "type": "talk_topic", + "dynamic_line": "You're really leaving?", + "responses": [ + { "text": "Yeah, I'm sure. Bye.", "topic": "TALK_DONE", "effect": "leave" }, + { "text": "Nah, I'm just kidding.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_FRIEND_CHAT", + "type": "talk_topic", + "dynamic_line": [ + { "u_has_item": "beer", "yes": "", "no": "" }, + { "u_has_item": "european_pilsner", "yes": "", "no": "" }, + { "u_has_item": "pale_ale", "yes": "", "no": "" }, + { "u_has_item": "india_pale_ale", "yes": "", "no": "" }, + { + "is_season": "summer", + "yes": "Yeah, this summer heat is hitting me hard, let's take a quick break, how goes it ?", + "no": "" + }, + { + "is_season": "winter", + "yes": "OK, maybe it'll stop me from freezing in this weather, what's up?", + "no": "" + }, + { + "is_day": "Well, it's the time of day for a quick break surely! How are you holding up?", + "is_night": "Man it's dark out isn't it? what's up?" + }, + { + "npc_has_effect": "infected", + "yes": "Well, I'm feeling pretty sick... are you doing OK though?", + "no": "" + }, + { + "u_has_mission": true, + "many": "Definitely, by the way, thanks for helping me so much with my tasks! Anyway, you coping OK, ? ", + "one": "OK, let's take a moment, oh, and thanks for helping me with that thing, so... what's up?", + "none": "" + }, + { + "days_since_cataclysm": 30, + "yes": "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?", + "no": "" + } + ], + "responses": [ + { + "text": "Oh you know, not bad, not bad...", + "topic": "TALK_DONE", + "switch": true, + "effect": [ "morale_chat_activity", { "npc_add_effect": "asked_to_socialize", "duration": 7000 } ] + } + ] + } +] diff --git a/data/json/npcs/TALK_COMMON_MISSION.json b/data/json/npcs/TALK_COMMON_MISSION.json index 32f8198cf3383..1b5bbd0f518ef 100644 --- a/data/json/npcs/TALK_COMMON_MISSION.json +++ b/data/json/npcs/TALK_COMMON_MISSION.json @@ -34,12 +34,6 @@ { "text": "I don't care.", "topic": "TALK_MISSION_REJECTED" } ] }, - { - "id": "TALK_DESCRIBE_MISSION", - "type": "talk_topic", - "category": "CATEGORY_MISSION", - "responses": [ { "text": "I see.", "topic": "TALK_NONE" }, { "text": "Bye.", "topic": "TALK_DONE" } ] - }, { "id": "TALK_MISSION_LIST", "type": "talk_topic", @@ -118,6 +112,163 @@ "category": "CATEGORY_MISSION", "responses": [ { "text": "I'm sorry.", "topic": "TALK_NONE" }, { "text": "Whatever. Bye.", "topic": "TALK_DONE" } ] }, + { + "id": "TALK_MISSION_INQUIRE", + "type": "talk_topic", + "category": "CATEGORY_MISSION", + "responses": [ + { + "text": "I'm sorry... I failed.", + "condition": "mission_failed", + "topic": "TALK_MISSION_FAILURE", + "opinion": { "trust": -1, "value": -1, "anger": 1 } + }, + { + "text": "Not yet.", + "condition": "mission_failed", + "trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 3 ] ] }, + "success": { "topic": "TALK_NONE" }, + "failure": { "topic": "TALK_MISSION_FAILURE", "opinion": { "trust": -3, "value": -1, "anger": 2 } } + }, + { "text": "Not yet.", "condition": "mission_incomplete", "topic": "TALK_NONE" }, + { + "truefalsetext": { "true": "I killed him.", "false": "I killed it.", "condition": { "mission_goal": "MGOAL_ASSASSINATE" } }, + "condition": { + "and": [ + "mission_incomplete", + { + "or": [ + { "mission_goal": "MGOAL_ASSASSINATE" }, + { "mission_goal": "MGOAL_KILL_MONSTER" }, + { "mission_goal": "MGOAL_KILL_MONSTER_SPEC" }, + { "mission_goal": "MGOAL_KILL_MONSTER_TYPE" } + ] + } + ] + }, + "trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 5 ] ] }, + "success": { "topic": "TALK_MISSION_SUCCESS", "effect": "mission_success" }, + "failure": { "topic": "TALK_MISSION_SUCCESS_LIE", "opinion": { "trust": -5, "value": -1, "anger": 5 } } + }, + { "text": "No. I'll get back to it, bye!", "condition": "mission_incomplete", "topic": "TALK_NONE" }, + { + "text": "Yup! Here it is!", + "topic": "TALK_MISSION_SUCCESS", + "condition": { + "and": [ { "or": [ { "mission_goal": "MGOAL_FIND_ITEM" }, { "mission_goal": "MGOAL_FIND_ANY_ITEM" } ] }, "mission_complete" ] + }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "We're here!", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_GO_TO_TYPE" } ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "Here I am.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ { "or": [ { "mission_goal": "MGOAL_GO_TO" }, { "mission_goal": "MGOAL_FIND_NPC" } ] }, "mission_complete" ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "Here it is!", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_FIND_MONSTER" } ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "Justice has been served.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_ASSASSINATE" } ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "I killed it.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_KILL_MONSTER" } ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "I killed them. All of them.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { + "and": [ + { "or": [ { "mission_goal": "MGOAL_KILL_MONSTER_SPEC" }, { "mission_goal": "MGOAL_KILL_MONSTER_TYPE" } ] }, + "mission_complete" + ] + }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "I brought 'em.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { + "and": [ "mission_complete", { "mission_goal": "MGOAL_RECRUIT_NPC" }, { "mission_goal": "MGOAL_RECRUIT_NPC_CLASS" } ] + }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "I've taken care of it", + "topic": "TALK_MISSION_SUCCESS", + "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_COMPUTER_TOGGLE" } ] }, + "switch": true, + "effect": "mission_success" + }, + { + "text": "Mission success! I don't know what else to say.", + "topic": "TALK_MISSION_SUCCESS", + "condition": "mission_complete", + "switch": true, + "default": true, + "effect": "mission_success" + } + ] + }, + { + "id": "TALK_MISSION_SUCCESS", + "type": "talk_topic", + "category": "CATEGORY_MISSION", + "responses": [ + { + "text": "Glad to help. I need no payment.", + "success": { + "topic": "TALK_NONE", + "effect": "clear_mission", + "mission_opinion": { "trust": 4, "value": 3 }, + "opinion": { "fear": -1, "anger": -1 } + } + }, + { + "text": "How about some items as payment?", + "topic": "TALK_MISSION_REWARD", + "condition": { "not": "npc_friend" }, + "effect": "mission_reward" + }, + { + "text": "Maybe you can teach me something as payment?", + "topic": "TALK_TRAIN", + "condition": { "or": [ "npc_train_skills", "npc_train_styles" ] } + }, + { + "text": "Glad to help. I need no payment. Bye!", + "success": { + "topic": "TALK_DONE", + "effect": "clear_mission", + "mission_opinion": { "trust": 4, "value": 3 }, + "opinion": { "fear": -1, "anger": -1 } + } + } + ] + }, { "id": "TALK_MISSION_SUCCESS_LIE", "type": "talk_topic", diff --git a/data/json/npcs/TALK_COMMON_OTHER.json b/data/json/npcs/TALK_COMMON_OTHER.json index e43a2633a81c7..b1abc4e6ea39d 100644 --- a/data/json/npcs/TALK_COMMON_OTHER.json +++ b/data/json/npcs/TALK_COMMON_OTHER.json @@ -37,12 +37,12 @@ "category": "CATEGORY_FOLLOW", "dynamic_line": { "npc_has_effect": "infected", - "yes": "Not until I get some antibiotics...", "no": { "npc_has_effect": "asked_to_follow", - "yes": "You asked me recently; ask again later.", - "no": "Why should I travel with you?" - } + "no": "Why should I travel with you?", + "yes": "You asked me recently; ask again later." + }, + "yes": "Not until I get some antibiotics..." }, "responses": [ { @@ -109,15 +109,6 @@ "dynamic_line": "Yeah... I don't think so.", "responses": [ { "text": "Oh, okay.", "topic": "TALK_DONE" } ] }, - { - "id": "TALK_LEAVE", - "type": "talk_topic", - "dynamic_line": "You're really leaving?", - "responses": [ - { "text": "Yeah, I'm sure. Bye.", "topic": "TALK_DONE", "effect": "leave" }, - { "text": "Nah, I'm just kidding.", "topic": "TALK_NONE" } - ] - }, { "id": "TALK_LEADER", "type": "talk_topic", @@ -159,6 +150,71 @@ "type": "talk_topic", "responses": [ { "text": "Okay, okay.", "topic": "TALK_NONE" } ] }, + { + "id": "TALK_DESCRIBE_MISSION", + "type": "talk_topic", + "category": "CATEGORY_MISSION", + "responses": [ { "text": "I see.", "topic": "TALK_NONE" }, { "text": "Bye.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_TRAIN_START", + "type": "talk_topic", + "dynamic_line": "Alright, let's begin.", + "responses": [ + { + "text": "Sounds good.", + "topic": "TALK_DONE", + "condition": "at_safe_space", + "effect": "start_training", + "switch": true + }, + { + "text": "Okay. Lead the way.", + "topic": "TALK_DONE", + "switch": true, + "default": true, + "effect": "lead_to_safety" + }, + { "text": "No, we'll be okay here.", "topic": "TALK_TRAIN_FORCE", "switch": true, "default": true }, + { "text": "On second thought, never mind.", "topic": "TALK_NONE" } + ] + }, + { + "id": "TALK_DENY_TRAIN", + "type": "talk_topic", + "dynamic_line": { + "u_driving": "I can't train you properly while you're operating a vehicle!", + "npc_driving": "I can't train you properly while I'm operating a vehicle!", + "npc_need": "thirst", + "amount": 80, + "no": { + "npc_need": "hunger", + "amount": 160, + "no": { + "npc_need": "fatigue", + "level": "TIRED", + "no": { + "npc_has_effect": "asked_to_train", + "no": "I have some reason for denying you training.", + "yes": "Give it some time, I'll show you something new later..." + }, + "yes": "I'm too tired, let me rest first." + }, + "yes": "I'm too hungry, give me something to eat." + }, + "yes": "I'm too thirsty, give me something to drink." + }, + "responses": [ { "text": "Ah, okay.", "topic": "TALK_NONE" } ] + }, + { + "id": "TALK_TRAIN_FORCE", + "type": "talk_topic", + "dynamic_line": "Alright, let's begin.", + "responses": [ + { "text": "Sounds good.", "topic": "TALK_DONE", "effect": "start_training" }, + { "text": "On second thought, never mind.", "topic": "TALK_NONE" } + ] + }, { "id": "TALK_DENY_GUARD", "type": "talk_topic", @@ -171,7 +227,7 @@ "dynamic_line": "I'm on watch.", "responses": [ { "text": "I need you to come with me.", "topic": "TALK_FRIEND", "effect": "stop_guard" }, - { "text": "See you around.", "topic": "TALK_NONE" } + { "text": "See you around.", "topic": "TALK_DONE" } ] }, { @@ -186,6 +242,82 @@ "dynamic_line": "I'd prefer to keep that to myself.", "responses": [ { "text": "I understand...", "topic": "TALK_FRIEND" } ] }, + { + "id": "TALK_SHARE_EQUIPMENT", + "type": "talk_topic", + "category": "CATEGORY_EQUIP", + "dynamic_line": { + "npc_has_effect": "infected", + "yes": "You just asked me for stuff; ask later.", + "no": "Why should I share my equipment with you?" + }, + "responses": [ + { "text": "Okay, fine.", "topic": "TALK_NONE", "switch": true, "condition": { "npc_has_effect": "asked_for_item" } }, + { + "text": "Because I'm holding a thermal detonator!", + "topic": "TALK_GIVE_EQUIPMENT", + "switch": true, + "default": true, + "condition": { "u_has_item": "mininuke" }, + "effect": [ { "add_debt": [ [ "TRUST", 1 ], [ "VALUE", 3 ], [ "ALTRUISM", 2 ], [ "TOTAL", 300 ] ] }, "give_equipment" ], + "opinion": { "value": -1 } + }, + { + "text": "Because I'm you're friend!", + "switch": true, + "default": true, + "trial": { "type": "PERSUADE", "difficulty": 10, "mod": [ [ "TRUST", 1 ], [ "VALUE", 3 ], [ "ALTRUISM", 2 ] ] }, + "success": { + "topic": "TALK_GIVE_EQUIPMENT", + "effect": [ { "add_debt": [ [ "TRUST", 1 ], [ "VALUE", 3 ], [ "ALTRUISM", 2 ], [ "TOTAL", 300 ] ] }, "give_equipment" ], + "opinion": { "value": -1 } + }, + "failure": { "topic": "TALK_DENY_EQUIPMENT", "opinion": { "value": -1 } } + }, + { + "text": "Well, I am helping you out...", + "switch": true, + "default": true, + "condition": { "or": [ "has_assigned_mission", "has_many_assigned_missions" ] }, + "trial": { + "type": "PERSUADE", + "difficulty": 12, + "mod": [ [ "TRUST", 1 ], [ "VALUE", 2 ], [ "ALTRUISM", 1 ], [ "MISSIONS", 1 ] ] + }, + "success": { "topic": "TALK_GIVE_EQUIPMENT", "effect": "give_equipment" }, + "failure": { "topic": "TALK_DENY_EQUIPMENT", "opinion": { "value": -1 } } + }, + { + "text": "I'll give it back!", + "switch": true, + "default": true, + "trial": { "type": "LIE", "difficulty": 0, "mod": [ [ "TRUST", 2 ], [ "VALUE", 5 ], [ "ALTRUISM", 3 ] ] }, + "success": { + "topic": "TALK_GIVE_EQUIPMENT", + "effect": [ { "add_debt": [ [ "TRUST", 1 ], [ "VALUE", 3 ], [ "ALTRUISM", 2 ], [ "TOTAL", 300 ] ] }, "give_equipment" ], + "opinion": { "value": -1 } + }, + "failure": { "topic": "TALK_DENY_EQUIPMENT", "opinion": { "trust": -1, "value": -1 } } + }, + { + "text": "Give it to me, or else!", + "switch": true, + "default": true, + "trial": { "type": "INTIMIDATE", "difficulty": 40 }, + "success": { + "topic": "TALK_GIVE_EQUIPMENT", + "effect": [ + { "add_debt": [ [ "U_INTIMIDATE", 1 ], [ "NPC_INTIMIDATE", -1 ], [ "FEAR", 1 ], [ "BRAVERY", -1 ], [ "TOTAL", 500 ] ] }, + "give_equipment" + ], + "opinion": { "trust": -3, "fear": 2, "value": -2, "anger": 2 } + }, + "failure": { "topic": "TALK_DENY_EQUIPMENT", "opinion": { "trust": -3, "fear": 1, "value": -3, "anger": 5 } } + }, + { "text": "Eh, never mind.", "topic": "TALK_NONE" }, + { "text": "Never mind, I'll do without. Bye.", "topic": "TALK_DONE" } + ] + }, { "id": "TALK_GIVE_EQUIPMENT", "type": "talk_topic", @@ -201,6 +333,7 @@ "id": "TALK_DENY_EQUIPMENT", "type": "talk_topic", "category": "CATEGORY_EQUIP", + "dynamic_line": [ ", and if you ask again, !", " !" ], "responses": [ { "text": "Okay, okay, sorry.", "topic": "TALK_NONE" }, { "text": "Seriously, give me more stuff!", "topic": "TALK_SHARE_EQUIPMENT" }, @@ -208,35 +341,8 @@ ] }, { - "id": "TALK_TRAIN_START", + "id": [ "TALK_SIZE_UP", "TALK_LOOK_AT", "TALK_OPINION", "TALK_SHOUT" ], "type": "talk_topic", - "dynamic_line": "Alright, let's begin.", - "responses": [ - { - "text": "Sounds good.", - "topic": "TALK_DONE", - "condition": "at_safe_space", - "effect": "start_training", - "switch": true - }, - { - "text": "Okay. Lead the way.", - "topic": "TALK_DONE", - "switch": true, - "default": true, - "effect": "lead_to_safety" - }, - { "text": "No, we'll be okay here.", "topic": "TALK_TRAIN_FORCE", "switch": true, "default": true }, - { "text": "On second thought, never mind.", "topic": "TALK_NONE" } - ] - }, - { - "id": "TALK_TRAIN_FORCE", - "type": "talk_topic", - "dynamic_line": "Alright, let's begin.", - "responses": [ - { "text": "Sounds good.", "topic": "TALK_DONE", "effect": "start_training" }, - { "text": "On second thought, never mind.", "topic": "TALK_NONE" } - ] + "responses": [ { "text": "Okay", "topic": "TALK_NONE" } ] } ] diff --git a/data/json/npcs/TALK_FRIEND_CONVERSATION.json b/data/json/npcs/TALK_FRIEND_CONVERSATION.json new file mode 100644 index 0000000000000..d15345075457e --- /dev/null +++ b/data/json/npcs/TALK_FRIEND_CONVERSATION.json @@ -0,0 +1,61 @@ +[ + { + "id": "TALK_FRIEND", + "type": "talk_topic", + "responses": [ + { + "text": "Mind if we just chat for a bit?", + "topic": "TALK_FRIEND_CONVERSATION", + "condition": { + "and": [ "at_safe_space", { "or": [ { "npc_has_trait_flag": "BG_SURVIVAL_STORY" }, { "npc_has_trait": "NPC_STATIC_NPC" } ] } ] + }, + "//": "If the NPC already has a BG story, or started out as a static NPC (and so probably doesn't need a random bg story), then go on.", + "switch": true + }, + { + "text": "Mind if we just chat for a bit?", + "topic": "TALK_FRIEND_CONVERSATION", + "condition": "at_safe_space", + "switch": true, + "effect": { "npc_add_trait": "BGSS_Confused_1" }, + "//": "If the NPC doesn't have a BG survival story flagged trait, and didn't start the game as a static NPC, give them a BG story.", + "//": "This is a stand-in for some kind of better system to add a random trait." + }, + { + "text": "Mind if we just chat for a bit?", + "topic": "TALK_CONVERSATION_DANGER", + "condition": { "not": "at_safe_space" } + } + ] + }, + { + "id": "TALK_CONVERSATION_DANGER", + "type": "talk_topic", + "dynamic_line": "Are you sure? This doesn't seem like a particularly safe place for small talk...", + "responses": [ + { + "text": "It's fine, we've got a moment.", + "topic": "TALK_FRIEND_CONVERSATION", + "condition": { "or": [ { "npc_has_trait_flag": "BG_SURVIVAL_STORY" }, { "npc_has_trait": "NPC_STATIC_NPC" } ] }, + "//": "If the NPC already has a BG story, or started out as a static NPC (and so probably doesn't need a random bg story), then go on.", + "switch": true + }, + { + "text": "It's fine, we've got a moment.", + "topic": "TALK_FRIEND_CONVERSATION", + "switch": true, + "effect": { "npc_add_trait": "BGSS_No_Past_1" }, + "//": "If the NPC doesn't have a BG survival story flagged trait, and didn't start the game as a static NPC, give them a BG story.", + "//": "This is a stand-in for some kind of better system to add a random trait." + }, + { "text": "Good point, let's find a more appropriate place.", "topic": "TALK_NONE" }, + { "text": "You're right. Forget I said anything, let's get moving.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FRIEND_CONVERSATION", + "type": "talk_topic", + "dynamic_line": "What did you want to talk about?", + "responses": [ { "text": "Actually, never mind.", "topic": "TALK_NONE" } ] + } +] diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json new file mode 100644 index 0000000000000..e0be2d5afc0ff --- /dev/null +++ b/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json @@ -0,0 +1,57 @@ +[ + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_1", + "dynamic_line": { + "u_is_wearing": "badge_marshal", + "yes": "Please, help me. I need food. Aren't you their sheriff? Can't you help me?", + "no": "Please, help me. I need food." + }, + "responses": [ + { "text": "What are you doing here?", "topic": "TALK_REFUGEE_BEGGAR_1_INTRO" }, + { "text": "Get away from me.", "topic": "TALK_DONE" }, + { "text": "...", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_1_INTRO", + "dynamic_line": "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.", + "responses": [ + { "text": "Why don't you go somewhere else?", "topic": "TALK_REFUGEE_BEGGAR_1_LEAVE" }, + { "text": "Why don't you scavenge your own food?", "topic": "TALK_REFUGEE_BEGGAR_1_SCAVENGE" }, + { "text": "What did you do before the cataclysm?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" }, + { "text": "I'm sorry, I can't help you.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_1_LEAVE", + "dynamic_line": "Where else? I can't fight those things out there. I'm in terrible physical condition, don't have any useful skills, and I'm terrified of and violence. How am I supposed to find a safe place?", + "responses": [ + { "text": "Why don't you scavenge your own food?", "topic": "TALK_REFUGEE_BEGGAR_1_SCAVENGE" }, + { "text": "What did you do before the cataclysm?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" }, + { "text": "I'm sorry, I can't help you.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_1_SCAVENGE", + "dynamic_line": "Out there? That's suicide! People that go out there don't come back, people who can hold their own... unlike me. I'd rather take my chances begging for scraps and waiting for someone in the center to die and make room for me, thanks.", + "responses": [ + { "text": "Why don't you go somewhere else?", "topic": "TALK_REFUGEE_BEGGAR_1_LEAVE" }, + { "text": "What did you do before the cataclysm?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" }, + { "text": "I'm sorry, I can't help you.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_1_EXPERTISE", + "dynamic_line": "I was a high school math teacher. It was a good job, I loved it. Funny enough, it's not super applicable after the end of the world. I mean, at some point people are going to need a teacher again, but right now they just want food, shelter, and clothing.", + "responses": [ + { "text": "Why don't you go somewhere else?", "topic": "TALK_REFUGEE_BEGGAR_1_LEAVE" }, + { "text": "Why don't you scavenge your own food?", "topic": "TALK_REFUGEE_BEGGAR_1_SCAVENGE" }, + { "text": "I'm sorry, I can't help you.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_2.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_2.json new file mode 100644 index 0000000000000..36c7af142eb46 --- /dev/null +++ b/data/json/npcs/TALK_REFUGEE_BEGGAR_2.json @@ -0,0 +1,53 @@ +[ + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_2", + "dynamic_line": "Have I told you about cardboard, friend? Do you have any?", + "//": "STUB FILE: not all text implemented yet. TK: topics WEARING, CARDBOARD3, GIVECARDBOARD, and SANDMAN", + "responses": [ + { "text": "Cardboard?", "topic": "TALK_REFUGEE_BEGGAR_2_CARDBOARD" }, + { "text": "Why are you sitting out here?", "topic": "TALK_REFUGEE_BEGGAR_2_REFUGEE" }, + { "text": "Are you seriously wearing a dinosaur costume?", "topic": "TALK_REFUGEE_BEGGAR_2_DINOSAUR" }, + { "text": "Get away from me.", "topic": "TALK_DONE" }, + { "text": "...", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_2_CARDBOARD", + "dynamic_line": "I'm building a house out of cardboard. The sandman doesn't want me to, but I told him to go fuck himself.", + "responses": [ + { "text": "Why cardboard?", "topic": "TALK_REFUGEE_BEGGAR_2_CARDBOARD2" }, + { "text": "Why are you sitting out here?", "topic": "TALK_REFUGEE_BEGGAR_2_REFUGEE" }, + { "text": "I think I have to get going...", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_2_CARDBOARD2", + "dynamic_line": "There's so much of it now, and the zombies are afraid of it. It's kept me safe so far. The beta rays come from the center point of the zombie, so it hits the cardboard and can't penetrate. The reflection can stop any further damage.", + "responses": [ + { "text": "Why are you sitting out here?", "topic": "TALK_REFUGEE_BEGGAR_2_REFUGEE" }, + { "text": "I think I have to get going...", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_2_REFUGEE", + "dynamic_line": "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.", + "responses": [ + { "text": "Building a house?", "topic": "TALK_REFUGEE_BEGGAR_2_CARDBOARD" }, + { "text": "I think I have to get going...", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_2_DINOSAUR", + "dynamic_line": "No.", + "responses": [ + { "text": "What was that about cardboard?", "topic": "TALK_REFUGEE_BEGGAR_2_CARDBOARD" }, + { "text": "Why are you sitting out here?", "topic": "TALK_REFUGEE_BEGGAR_2_REFUGEE" }, + { "text": "I think I have to get going...", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_3.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_3.json new file mode 100644 index 0000000000000..9984749be1e87 --- /dev/null +++ b/data/json/npcs/TALK_REFUGEE_BEGGAR_3.json @@ -0,0 +1,27 @@ +[ + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_3", + "dynamic_line": "Don't bother with these assholes.", + "//": "STUB FILE: not all text implemented yet. TK: different greetings; topics FOOD, EXPERTISE, JOIN", + "responses": [ + { "text": "What's up?", "topic": "TALK_REFUGEE_BEGGAR_3_COMPLAIN" }, + { "text": "Ok... see ya.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_3_COMPLAIN", + "dynamic_line": "They're 'too full'. Won't share fuck-all.", + "responses": [ + { "text": "Why are you living here then?", "topic": "TALK_REFUGEE_BEGGAR_3_COMPLAIN2" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_3_COMPLAIN2", + "dynamic_line": "Even without them helping, it's the safest place to squat. As long as we keep it clean up here and don't cause sanitation problems, they don't mind us sitting around the entryway. So kind and generous of them, to let us sit here and slowly starve.", + "responses": [ { "text": "I'd better get going.", "topic": "TALK_DONE" } ] + } +] diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_4.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_4.json new file mode 100644 index 0000000000000..a2dc67431a6d6 --- /dev/null +++ b/data/json/npcs/TALK_REFUGEE_BEGGAR_4.json @@ -0,0 +1,69 @@ +[ + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4", + "dynamic_line": "Hey, are you a big fan of survival of the fittest?", + "//": "STUB FILE: not all text implemented yet. TK: different greetings; topics FOOD, EXPERTISE, JOIN", + "responses": [ + { "text": "Why do you ask?", "topic": "TALK_REFUGEE_BEGGAR_4_TALK1" }, + { "text": "Sorry, not interested.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4_TALK1", + "dynamic_line": "Because I sure ain't fit, so I'm sittin' out here until I starve to death. Help a poor sickly soul out?", + "responses": [ + { "text": "What's wrong with you?", "topic": "TALK_REFUGEE_BEGGAR_4_TALK2" }, + { "text": "They won't let you in because you're sick?", "topic": "TALK_REFUGEE_BEGGAR_4_SICKLY" }, + { "text": "How did you even get here if you're so sick?", "topic": "TALK_REFUGEE_BEGGAR_4_ARRIVAL" }, + { "text": "Why are you camped out here if they won't let you in?", "topic": "TALK_REFUGEE_BEGGAR_4_CAMPOUT" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4_TALK2", + "dynamic_line": "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not like I can check that ol' whatchamacallit, the blood test the docs used to bug me about every couple months.", + "responses": [ + { "text": "They won't let you in because you're sick?", "topic": "TALK_REFUGEE_BEGGAR_4_SICKLY" }, + { "text": "How did you even get here if you're so sick?", "topic": "TALK_REFUGEE_BEGGAR_4_ARRIVAL" }, + { "text": "Why are you camped out here if they won't let you in?", "topic": "TALK_REFUGEE_BEGGAR_4_CAMPOUT" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4_SICKLY", + "dynamic_line": "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.", + "responses": [ + { "text": "What's wrong with you?", "topic": "TALK_REFUGEE_BEGGAR_4_TALK2" }, + { "text": "How did you even get here if you're so sick?", "topic": "TALK_REFUGEE_BEGGAR_4_ARRIVAL" }, + { "text": "Why are you camped out here if they won't let you in?", "topic": "TALK_REFUGEE_BEGGAR_4_CAMPOUT" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4_ARRIVAL", + "dynamic_line": "Came with a small group quite a while ago. The others were young and fit, they got in. They were some of the last ones to get in actually. I didn't make the cutoff.", + "responses": [ + { "text": "What's wrong with you?", "topic": "TALK_REFUGEE_BEGGAR_4_TALK2" }, + { "text": "They won't let you in because you're sick?", "topic": "TALK_REFUGEE_BEGGAR_4_SICKLY" }, + { "text": "Why are you camped out here if they won't let you in?", "topic": "TALK_REFUGEE_BEGGAR_4_CAMPOUT" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_4_CAMPOUT", + "dynamic_line": "This is a mercy. I get shelter, light, and heat, and those guards will help us if any zombies show up. It ain't so bad. If I was out on my own I'd 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.", + "responses": [ + { "text": "What's wrong with you?", "topic": "TALK_REFUGEE_BEGGAR_4_TALK2" }, + { "text": "They won't let you in because you're sick?", "topic": "TALK_REFUGEE_BEGGAR_4_SICKLY" }, + { "text": "How did you even get here if you're so sick?", "topic": "TALK_REFUGEE_BEGGAR_4_ARRIVAL" }, + { "text": "Why are you camped out here if they won't let you in?", "topic": "TALK_REFUGEE_BEGGAR_4_CAMPOUT" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_5.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_5.json new file mode 100644 index 0000000000000..84cd5cddcae39 --- /dev/null +++ b/data/json/npcs/TALK_REFUGEE_BEGGAR_5.json @@ -0,0 +1,63 @@ +[ + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_5", + "dynamic_line": "Hey there, friend.", + "//": "STUB FILE: not all text implemented yet. TK: different greetings and a whole segment on getting the beggars to join up.", + "responses": [ + { "text": "What are you doing out here?", "topic": "TALK_REFUGEE_BEGGAR_5_TALK1" }, + { "text": "I couldn't help but notice, you're covered in fur.", "topic": "TALK_REFUGEE_BEGGAR_5_FUR" }, + { "text": "Sorry, not interested.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_5_TALK1", + "dynamic_line": "I live here. Too mutant to join the cool kids club, but not mutant enough to kill on sight.", + "responses": [ + { "text": "Why live out here?", "topic": "TALK_REFUGEE_BEGGAR_5_TALK2" }, + { "text": "I couldn't help but notice, you're covered in fur.", "topic": "TALK_REFUGEE_BEGGAR_5_FUR" }, + { + "text": "You seem like you can hold your own. Why not travel with me?", + "topic": "TALK_REFUGEE_BEGGAR_5_TRAVEL1" + }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_5_TALK2", + "dynamic_line": "It's safer than making my own home. I head out and forage when I have to. As long as we keep it clean and do our part when a zombie comes, they let us squat here as an extra defense. They don't like that I've been bringing food for the other squatters though... I think they are trying to slowly starve us out, and even though I can't keep everyone's bellies full, I've been able to bring back enough to keep these folk in better shape. I suspect they'll find an excuse kick me out eventually.", + "responses": [ + { "text": "I couldn't help but notice, you're covered in fur.", "topic": "TALK_REFUGEE_BEGGAR_5_FUR" }, + { + "text": "You seem like you can hold your own. Why not travel with me?", + "topic": "TALK_REFUGEE_BEGGAR_5_TRAVEL1" + }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_5_FUR", + "dynamic_line": "Gross, isn't it? Feels like pubes. I just started growing it everywhere a little while after the cataclysm. No idea what caused it. I can't blame them for hating it, I hate it.", + "responses": [ + { "text": "Why live out here?", "topic": "TALK_REFUGEE_BEGGAR_5_TALK2" }, + { + "text": "You seem like you can hold your own. Why not travel with me?", + "topic": "TALK_REFUGEE_BEGGAR_5_TRAVEL1" + }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_BEGGAR_5_TRAVEL1", + "dynamic_line": "Well now, that's quite a kind offer, and I appreciate you looking past my full-body pubic hair. Sorry though. I've come to feel sort of responsible for this little gaggle of squatters. As long as I'm the only one providing for them, I don't think I can leave.", + "responses": [ + { "text": "Why live out here?", "topic": "TALK_REFUGEE_BEGGAR_5_TALK2" }, + { "text": "I couldn't help but notice, you're covered in fur.", "topic": "TALK_REFUGEE_BEGGAR_5_FUR" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/json/npcs/TALK_TEST.json b/data/json/npcs/TALK_TEST.json index c24ffe322aa33..8799b04421d65 100644 --- a/data/json/npcs/TALK_TEST.json +++ b/data/json/npcs/TALK_TEST.json @@ -175,6 +175,61 @@ { "text": "This an error! npc allies 2 test response.", "topic": "TALK_DONE", "condition": { "npc_allies": 2 } } ] }, + { + "type": "talk_topic", + "id": "TALK_TEST_NPC_RULES", + "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 npc engagement rule test response.", + "topic": "TALK_DONE", + "condition": { "npc_engagement_rule": "ENGAGE_ALL" } + }, + { + "text": "This is a npc aim rule test response.", + "topic": "TALK_DONE", + "condition": { "npc_aim_rule": "AIM_SPRAY" } + }, + { "text": "This is a npc rule test response.", "topic": "TALK_DONE", "condition": { "npc_rule": "use_silent" } } + ] + }, + { + "type": "talk_topic", + "id": "TALK_TEST_NPC_NEEDS", + "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 npc thirst test response.", + "topic": "TALK_DONE", + "condition": { "npc_need": "thirst", "amount": 75 } + }, + { + "text": "This is a npc hunger test response.", + "topic": "TALK_DONE", + "condition": { "npc_need": "hunger", "amount": 75 } + }, + { + "text": "This is a npc fatigue test response.", + "topic": "TALK_DONE", + "condition": { "npc_need": "fatigue", "level": "DEAD_TIRED" } + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_TEST_MISSION_GOAL", + "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 mission goal test response.", + "topic": "TALK_DONE", + "condition": { "mission_goal": "MGOAL_ASSASSINATE" } + } + ] + }, { "type": "talk_topic", "id": "TALK_TEST_SEASON", @@ -319,6 +374,28 @@ } ] }, + { + "type": "talk_topic", + "id": "TALK_TEST_TRUE_FALSE_CONDITIONAL", + "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" }, + { + "truefalsetext": { + "condition": { "u_has_cash": 500 }, + "true": "This is a true/false true response.", + "false": "This is a true/false false response." + }, + "topic": "TALK_DONE" + }, + { + "text": "This is a conditional trial response.", + "trial": { "type": "CONDITION", "condition": { "u_has_cash": 500 } }, + "success": { "topic": "TALK_TEST_TRUE_CONDITION_NEXT" }, + "failure": { "topic": "TALK_TEST_FALSE_CONDITION_NEXT" } + } + ] + }, { "type": "talk_topic", "id": "TALK_TEST_EFFECTS", diff --git a/data/json/npcs/classes_uncommon.json b/data/json/npcs/classes_uncommon.json new file mode 100644 index 0000000000000..3906a3067dac8 --- /dev/null +++ b/data/json/npcs/classes_uncommon.json @@ -0,0 +1,271 @@ +[ + { + "type": "npc_class", + "id": "NC_BEGGAR_1", + "name": "Beggar", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "All the beggars have been camping inside the evac shelter because they're too weak and unskilled to make it on their own.", + "bonus_str": { "rng": [ -6, -2 ] }, + "bonus_dex": { "rng": [ -4, -1 ] }, + "bonus_int": { "rng": [ 1, 2 ] }, + "bonus_per": { "rng": [ -3, -1 ] }, + "worn_override": "NC_BEGGAR_1_worn", + "carry_override": "EMPTY_GROUP", + "weapon_override": "EMPTY_GROUP", + "traits": [ + { "trait": "GLASSJAW" }, + { "trait": "VEGETARIAN" }, + { "trait": "SQUEAMISH" }, + { "trait": "MOODSWINGS" }, + { "trait": "SLOWHEALER" }, + { "trait": "SLOWRUNNER" }, + { "trait": "DISORGANIZED" }, + { "trait": "BADKNEES" }, + { "trait": "FLIMSY3" }, + { "trait": "MYOPIC" }, + { "trait": "PACIFIST" }, + { "trait": "Exp_Teaching2" } + ], + "skills": [ { "skill": "speech", "bonus": { "rng": [ 0, 3 ] } }, { "skill": "cooking", "bonus": { "rng": [ 0, 3 ] } } ] + }, + { + "type": "item_group", + "id": "NC_BEGGAR_1_worn", + "subtype": "collection", + "entries": [ + { "item": "blanket" }, + { "item": "jeans" }, + { "item": "sweater" }, + { "item": "bra" }, + { "item": "panties" }, + { "item": "socks" }, + { "item": "sneakers" } + ] + }, + { + "type": "npc_class", + "id": "NC_BEGGAR_2", + "name": "Beggar", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "All the beggars have been camping inside the evac shelter because they're too weak and unskilled to make it on their own.", + "bonus_str": { "rng": [ -3, -2 ] }, + "bonus_dex": { "rng": [ -5, -1 ] }, + "bonus_int": { "rng": [ -2, 0 ] }, + "bonus_per": { "rng": [ -6, -2 ] }, + "worn_override": "NC_BEGGAR_2_worn", + "carry_override": "EMPTY_GROUP", + "weapon_override": "EMPTY_GROUP", + "traits": [ + { "trait": "GLASSJAW" }, + { "trait": "ADDICTIVE" }, + { "trait": "HOARDER" }, + { "trait": "SLOWHEALER" }, + { "trait": "SLOWRUNNER" }, + { "trait": "CHEMIMBALANCE" }, + { "trait": "HEAVYSLEEPER" }, + { "trait": "FLIMSY2" }, + { "trait": "SCHIZOPHRENIC" }, + { "trait": "SLOWLEARNER" }, + { "trait": "PACIFIST" } + ] + }, + { + "type": "item_group", + "id": "NC_BEGGAR_2_worn", + "subtype": "collection", + "entries": [ + { "item": "dinosuit" }, + { "item": "coat_winter" }, + { "item": "boxer_shorts" }, + { "item": "socks_wool" }, + { "item": "boots_winter" } + ] + }, + { + "type": "npc_class", + "id": "NC_BEGGAR_3", + "name": "Beggar", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "All the beggars have been camping inside the evac shelter because they're too weak and unskilled to make it on their own.", + "bonus_str": { "rng": [ -4, -1 ] }, + "bonus_dex": { "rng": [ -4, -1 ] }, + "bonus_int": { "rng": [ 2, 5 ] }, + "bonus_per": { "rng": [ 0, 3 ] }, + "worn_override": "NC_BEGGAR_3_worn", + "carry_override": "EMPTY_GROUP", + "weapon_override": "EMPTY_GROUP", + "traits": [ + { "trait": "SLOWHEALER2" }, + { "trait": "SLOWRUNNER" }, + { "trait": "HEAVYSLEEPER" }, + { "trait": "FLIMSY2" }, + { "trait": "FASTLEARNER" }, + { "trait": "PACIFIST" }, + { "trait": "Exp_Mycology2" } + ] + }, + { + "type": "item_group", + "id": "NC_BEGGAR_3_worn", + "subtype": "collection", + "items": [ + { "item": "hoodie" }, + { "item": "jacket_evac" }, + { "item": "jeans" }, + { "item": "panties" }, + { "item": "camisole" }, + { "item": "bra" }, + { "item": "socks" }, + { "item": "lowtops" }, + { "item": "gloves_light" } + ] + }, + { + "type": "npc_class", + "id": "NC_BEGGAR_4", + "name": "Beggar", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "All the beggars have been camping inside the evac shelter because they're too weak and unskilled to make it on their own.", + "bonus_str": { "rng": [ -4, -1 ] }, + "bonus_dex": { "rng": [ -4, -1 ] }, + "bonus_int": { "rng": [ -6, -2 ] }, + "bonus_per": { "rng": [ -3, -1 ] }, + "worn_override": "NC_BEGGAR_4_worn", + "carry_override": "EMPTY_GROUP", + "weapon_override": "EMPTY_GROUP", + "traits": [ + { "trait": "GLASSJAW" }, + { "trait": "ASTHMA" }, + { "trait": "SLOWHEALER3" }, + { "trait": "SLOWRUNNER" }, + { "trait": "HEAVYSLEEPER" }, + { "trait": "FLIMSY3" }, + { "trait": "WEAKSTOMACH" }, + { "trait": "MYOPIC" }, + { "trait": "HYPEROPIC" }, + { "trait": "JITTERY" }, + { "trait": "TRIGGERHAPPY" }, + { "trait": "SMELLY" }, + { "trait": "PROJUNK" }, + { "trait": "BADBACK" }, + { "trait": "BADKNEES" }, + { "trait": "BADCARDIO" } + ] + }, + { + "type": "item_group", + "id": "NC_BEGGAR_4_worn", + "subtype": "collection", + "items": [ + { "item": "house_coat" }, + { "item": "briefs" }, + { "item": "tank_top" }, + { "item": "long_underpants" }, + { "item": "slippers" }, + { "item": "socks" } + ] + }, + { + "type": "npc_class", + "id": "NC_BEGGAR_5", + "name": "Beggar", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "This is the only beggar with some skills, sort of the leader.", + "bonus_str": { "rng": [ -2, 4 ] }, + "bonus_dex": { "rng": [ 0, 2 ] }, + "bonus_int": { "rng": [ -2, 2 ] }, + "bonus_per": { "rng": [ 0, 4 ] }, + "worn_override": "NC_BEGGAR_5_worn", + "carry_override": "EMPTY_GROUP", + "weapon_override": "EMPTY_GROUP", + "traits": [ { "trait": "FUR" }, { "trait": "OPTIMISTIC" }, { "trait": "LIGHTSTEP" }, { "trait": "CLAWS_RETRACT" } ], + "skills": [ + { "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -3 } ] } }, + { "skill": "melee", "bonus": { "rng": [ 0, 5 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 0, 5 ] } } + ] + }, + { + "type": "item_group", + "id": "NC_BEGGAR_5_worn", + "subtype": "collection", + "items": [ + { "item": "jacket_jean" }, + { "item": "boxer_briefs" }, + { "item": "hoodie" }, + { "item": "pants_cargo" }, + { "item": "boots" }, + { "item": "socks" }, + { "item": "backpack" } + ] + }, + { + "type": "npc_class", + "id": "NC_SCAVENGER_MERC", + "name": "Mercenary", + "job_description": "Fighting for the all-mighty dollar.", + "common": false, + "traits": [ + { "trait": "BGSS_Scavenger_Merc_1" }, + { "trait": "PSYCHOPATH" }, + { "trait": "TOUGH" }, + { "trait": "PARKOUR" }, + { "trait": "BADTEMPER" }, + { "trait": "SLOWREADER" }, + { "trait": "INSOMNIA" } + ], + "bonus_str": { "rng": [ 0, 1 ] }, + "bonus_dex": { "rng": [ 1, 2 ] }, + "bonus_int": { "rng": [ -2, 0 ] }, + "bonus_per": { "rng": [ 1, 2 ] }, + "worn_override": "NC_SCAVENGER_MERC_worn", + "carry_override": "NC_SCAVENGER_MERC_carry", + "weapon_override": "NC_SCAVENGER_MERC_wield", + "skills": [ + { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "rng": [ 0, -4 ] } ] } ] } }, + { "skill": "gun", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "pistol", "bonus": { "rng": [ 1, 3 ] } }, + { "skill": "rifle", "bonus": { "rng": [ 3, 6 ] } } + ] + }, + { + "type": "item_group", + "id": "NC_SCAVENGER_MERC_worn", + "subtype": "collection", + "items": [ + { "item": "modularvestkevlar", "contents-group": "army_mags_m4" }, + { "item": "boxer_briefs" }, + { "item": "pants_army" }, + { "item": "duster" }, + { "item": "boots_combat" }, + { "item": "socks_wool" }, + { "item": "knife_combat", "container-item": "bootsheath" }, + { "item": "army_top" }, + { "item": "gloves_fingerless_mod" } + ] + }, + { + "type": "item_group", + "id": "NC_SCAVENGER_MERC_carry", + "subtype": "collection", + "items": [ + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "stanag30", "ammo-item": "556", "charges": 30 }, + { "item": "mre_chilibeans_box" }, + { "item": "mre_chickennoodle_box" } + ] + }, + { + "type": "item_group", + "id": "NC_SCAVENGER_MERC_wield", + "subtype": "collection", + "items": [ + { "item": "m4a1", "ammo-item": "556", "charges": 30, "contents-item": [ "shoulder_strap", "holo_sight", "suppressor" ] } + ] + } +] diff --git a/data/json/npcs/items_generic.json b/data/json/npcs/items_generic.json index e8179c7807828..6df7b9df53b0d 100644 --- a/data/json/npcs/items_generic.json +++ b/data/json/npcs/items_generic.json @@ -1,4 +1,56 @@ [ + { + "type": "item_group", + "id": "npc_underwear_bottom_male", + "groups": [ + [ "male_underwear_bottom", 95 ], + [ "null", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_underwear_bottom_female", + "groups": [ + [ "female_underwear_bottom", 95 ], + [ "null", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_underwear_top_male", + "groups": [ + [ "male_underwear_top", 50 ], + [ "null", 50 ] + ] + }, + { + "type": "item_group", + "id": "npc_underwear_top_female", + "groups": [ + [ "female_underwear_top", 95 ], + [ "null", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_underwear_feet_male", + "items": [ + [ "socks", 80 ], + [ "socks_wool", 20 ], + [ "null", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_underwear_feet_female", + "items": [ + [ "socks", 50 ], + [ "socks_wool", 10 ], + [ "stockings", 20 ], + [ "tights", 20 ], + [ "null", 5 ] + ] + }, { "type": "item_group", "id": "npc_pants_male", @@ -8,7 +60,9 @@ [ "pants_leather", 20 ], [ "shorts", 5 ], [ "shorts_cargo", 10 ], - [ "pants_cargo", 20 ] + [ "pants_cargo", 20 ], + [ "b_shorts", 10 ], + [ "motorbike_pants", 5 ] ] }, { @@ -18,22 +72,53 @@ [ "jeans", 20 ], [ "pants", 20 ], [ "pants_leather", 20 ], + [ "shorts", 5 ], + [ "shorts_cargo", 10 ], [ "pants_cargo", 20 ], - [ "shorts", 20 ], - [ "shorts_denim", 20 ], - [ "shorts_cargo", 20 ], - [ "skirt", 20 ] + [ "b_shorts", 10 ], + [ "motorbike_pants", 5 ], + [ "skirt", 20 ], + [ "skirt_leather", 20 ], + [ "nanoskirt", 5 ], + [ "hot_pants", 20 ], + [ "shorts_denim", 20 ] ] }, { "type": "item_group", "id": "npc_shirt_male", - "items": [ [ "tshirt", 20 ], [ "polo_shirt", 20 ], [ "dress_shirt", 20 ], [ "tank_top", 20 ] ] + "items": [ + [ "tshirt", 20 ], + [ "polo_shirt", 20 ], + [ "dress_shirt", 20 ], + [ "longshirt", 20 ], + [ "flag_shirt", 5 ], + [ "sweatshirt", 20 ], + [ "striped_shirt", 10 ], + [ "sweater", 20 ], + [ "jersey", 10 ] + ] }, { "type": "item_group", "id": "npc_shirt_female", - "items": [ [ "tshirt", 20 ], [ "polo_shirt", 20 ], [ "dress_shirt", 20 ], [ "tank_top", 20 ] ] + "items": [ + [ "tshirt", 20 ], + [ "polo_shirt", 20 ], + [ "dress_shirt", 20 ], + [ "longshirt", 20 ], + [ "flag_shirt", 5 ], + [ "sweatshirt", 20 ], + [ "striped_shirt", 10 ], + [ "sweater", 20 ], + [ "jersey", 10 ], + [ "tank_top", 20 ], + [ "halter_top", 20 ], + [ "camisole", 20 ], + [ "dress", 10 ], + [ "sundress", 10 ], + [ "corset", 5 ] + ] }, { "type": "item_group", @@ -44,7 +129,12 @@ [ "gloves_fingerless", 20 ], [ "fire_gauntlets", 20 ], [ "gloves_work", 10 ], - [ "gloves_fingerless_mod", 5 ] + [ "gloves_fingerless_mod", 5 ], + [ "gloves_medical", 10 ], + [ "gloves_winter", 5 ], + [ "gloves_wool", 20 ], + [ "gloves_light", 20 ], + [ "gloves_tactical", 5 ] ] }, { @@ -53,50 +143,200 @@ "items": [ [ "null", 20 ], [ "hoodie", 20 ], + [ "wool_hoodie", 20 ], [ "jacket_light", 20 ], [ "jacket_leather", 20 ], [ "trenchcoat", 20 ], [ "jacket_jean", 20 ], [ "jacket_windbreaker", 10 ], - [ "poncho", 10 ], + [ "folding_poncho_on", 10 ], [ "jacket_leather_mod", 5 ], - [ "kevlar", 5 ] + [ "american_flag", 5 ], + [ "jacket_leather_red", 10 ], + [ "jacket_army", 10 ], + [ "jacket_flannel", 10 ], + [ "jacket_evac", 20 ], + [ "winter_jacket_army", 5 ], + [ "coat_winter", 10 ], + [ "peacoat", 10 ], + [ "greatcoat", 5 ], + [ "cloak", 5 ], + [ "cloak_wool", 5 ], + [ "house_coat", 5 ] ] }, { "type": "item_group", - "id": "npc_shoes", - "items": [ [ "sneakers", 20 ], [ "boots", 20 ] ] + "id": "npc_shoes_male", + "items": [ + [ "boots", 20 ], + [ "boots_combat", 10 ], + [ "boots_hiking", 20 ], + [ "boots_western", 10 ], + [ "boots_winter", 5 ], + [ "motorbike_boots", 5 ], + [ "dress_shoes", 20 ], + [ "sneakers", 20 ], + [ "lowtops", 20 ], + [ "flip_flops", 10 ], + [ "leathersandals", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_shoes_female", + "items": [ + [ "boots", 10 ], + [ "boots_combat", 10 ], + [ "boots_hiking", 20 ], + [ "boots_western", 20 ], + [ "boots_winter", 5 ], + [ "motorbike_boots", 5 ], + [ "dress_shoes", 20 ], + [ "sneakers", 20 ], + [ "lowtops", 20 ], + [ "flip_flops", 10 ], + [ "leathersandals", 5 ], + [ "heels", 5 ], + [ "thigh_high_boots", 10 ], + [ "knee_high_boots", 10 ] + ] }, { "type": "item_group", "id": "npc_masks", - "items": [ [ "null", 80 ], [ "mask_dust", 10 ], [ "bandana", 10 ], [ "mask_filter", 10 ] ] + "items": [ + [ "null", 80 ], + [ "mask_dust", 10 ], + [ "bandana", 10 ], + [ "mask_filter", 10 ], + [ "mask_gas", 5 ], + [ "mask_bunker", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_scarf", + "items": [ + [ "null", 20 ], + [ "knit_scarf", 30 ], + [ "long_knit_scarf", 15 ], + [ "scarf", 30 ], + [ "scarf_long", 15 ] + ] }, { "type": "item_group", "id": "npc_eyes", - "items": [ [ "null", 80 ], [ "glasses_safety", 20 ], [ "sunglasses", 20 ] ] + "items": [ + [ "null", 80 ], + [ "glasses_safety", 20 ], + [ "sunglasses", 20 ], + [ "fancy_sunglasses", 10 ] + ] }, { "type": "item_group", "id": "npc_hat", "items": [ - [ "null", 80 ], - [ "hat_ball", 10 ], - [ "hat_hard", 10 ], - [ "helmet_bike", 10 ], - [ "helmet_riot", 10 ], - [ "helmet_motor", 10 ], + [ "null", 20 ], + [ "hat_ball", 20 ], + [ "hat_hard", 5 ], + [ "hat_boonie", 5 ], + [ "hat_cotton", 20 ], + [ "hat_fur", 5 ], + [ "hat_knit", 20 ], + [ "hat_newsboy", 10 ], [ "cowboy_hat", 10 ], + [ "hat_sombrero", 5 ], + [ "10gal_hat", 5 ], + [ "straw_hat", 5 ], [ "hat_hunting", 10 ], - [ "hat_hard_hooded", 5 ] + [ "hat_hard_hooded", 5 ], + [ "helmet_bike", 10 ], + [ "helmet_riot", 5 ], + [ "helmet_motor", 5 ], + [ "helmet_skid", 5 ], + [ "helmet_ball", 5 ], + [ "helmet_football", 5 ], + [ "pot_helmet", 10 ], + [ "firehelmet", 5 ], + [ "helmet_army", 5 ] ] }, { "type": "item_group", "id": "npc_extra", - "items": [ [ "null", 75 ], [ "backpack", 10 ], [ "backpack_leather", 10 ], [ "rucksack", 5 ] ] + "items": [ + [ "null", 20 ], + [ "ring", 20 ], + [ "diamond_ring", 2 ], + [ "copper_bracelet", 10 ], + [ "gold_bracelet", 10 ], + [ "silver_bracelet", 10 ], + [ "necklace", 5 ], + [ "locket", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_wrist", + "items": [ + [ "null", 20 ], + [ "diving_watch", 10 ], + [ "game_watch", 5 ], + [ "gold_watch", 5 ], + [ "wristwatch", 20 ], + [ "sf_watch", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_storage", + "items": [ + [ "null", 10 ], + [ "backpack", 20 ], + [ "backpack_leather", 20 ], + [ "rucksack", 5 ], + [ "mbag", 20 ], + [ "runner_bag", 5 ], + [ "duffelbag", 5 ], + [ "dive_bag", 5 ], + [ "slingpack", 10 ], + [ "molle_pack", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_vest", + "items": [ + [ "null", 40 ], + [ "vest", 10 ], + [ "vest_leather", 5 ], + [ "kevlar", 10 ], + [ "modularvest", 5 ], + [ "waistcoat", 5 ], + [ "flotation_vest", 10 ], + [ "chainmail_vest", 5 ] + ] + }, + { + "type": "item_group", + "id": "npc_belt", + "items": [ + [ "null", 20 ], + [ "leather_belt", 50 ], + [ "tool_belt", 10 ] + ] + }, + { + "type": "item_group", + "id": "npc_holster", + "items": [ + [ "null", 50 ], + [ "sholster", 10 ], + [ "sheath", 10 ] + ] }, { "type": "item_group", diff --git a/data/json/npcs/missiondef.json b/data/json/npcs/missiondef.json index a93148547f068..cffcceb7f504f 100644 --- a/data/json/npcs/missiondef.json +++ b/data/json/npcs/missiondef.json @@ -449,7 +449,7 @@ "difficulty": 2, "value": 150000, "item": "etched_skull", - "start": { + "start": { "assign_mission_target": { "om_terrain": "cabin_strange", "om_special": "Strange Cabin", "reveal_radius": 3 } }, "origins": [ "ORIGIN_SECONDARY" ], @@ -474,7 +474,7 @@ "difficulty": 2, "value": 150000, "item": "visions_solitude", - "start": { + "start": { "assign_mission_target": { "om_terrain": "prison_1_5", "om_special": "Prison", "reveal_radius": 3 } }, "origins": [ "ORIGIN_SECONDARY" ], @@ -660,7 +660,7 @@ "difficulty": 5, "value": 250000, "monster_type": "mon_charred_nightmare", - "start": { + "start": { "assign_mission_target": { "om_terrain": "necropolis_c_44", "om_special": "Necropolis", "z": -2 } }, "monster_kill_goal": 20, diff --git a/data/json/npcs/npc.json b/data/json/npcs/npc.json index 624acfdb622f7..e482faeee1e0c 100644 --- a/data/json/npcs/npc.json +++ b/data/json/npcs/npc.json @@ -314,7 +314,7 @@ "id" : "scavenger_merc", "//" : "Appears in the refugee center as a partner for hire.", "name_suffix" : "Merc", - "class" : "NC_COWBOY", + "class" : "NC_SCAVENGER_MERC", "attitude" : 0, "mission" : 7, "chat" : "TALK_SCAVENGER_MERC", @@ -373,5 +373,70 @@ "mission": 0, "chat": "TALK_DONE", "faction": "wasteland_scavengers" + }, + { + "type": "npc", + "id": "refugee_beggar1", + "//": "Hungry beggar in the refugee center.", + "name_unique": "Reena Sandhu", + "gender": "female", + "name_suffix": "beggar", + "class": "NC_BEGGAR_1", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_BEGGAR_1", + "faction": "wasteland_scavengers" + }, + { + "type": "npc", + "id": "refugee_beggar2", + "//": "Schizophrenic beggar in the refugee center.", + "name_unique": "Dino Dave", + "gender": "male", + "name_suffix": "beggar", + "class": "NC_BEGGAR_2", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_BEGGAR_2", + "faction": "wasteland_scavengers" + }, + { + "type": "npc", + "id": "refugee_beggar3", + "//": "Angry beggar in the refugee center.", + "name_unique": "Luo Meizhen", + "gender": "female", + "name_suffix": "beggar", + "class": "NC_BEGGAR_3", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_BEGGAR_3", + "faction": "wasteland_scavengers" + }, + { + "type": "npc", + "id": "refugee_beggar4", + "//": "Sickly beggar in the refugee center.", + "name_unique": "Brandon Garder", + "gender": "male", + "name_suffix": "beggar", + "class": "NC_BEGGAR_4", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_BEGGAR_4", + "faction": "wasteland_scavengers" + }, + { + "type": "npc", + "id": "refugee_beggar5", + "//": "Mutant beggar in the refugee center.", + "name_unique": "Yusuke Taylor", + "gender": "male", + "name_suffix": "beggar", + "class": "NC_BEGGAR_5", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_BEGGAR_5", + "faction": "wasteland_scavengers" } ] diff --git a/data/json/npcs/refugee_center/NPC_Jenny_Forcette.json b/data/json/npcs/refugee_center/NPC_Jenny_Forcette.json new file mode 100644 index 0000000000000..ee72be2a81e80 --- /dev/null +++ b/data/json/npcs/refugee_center/NPC_Jenny_Forcette.json @@ -0,0 +1,418 @@ +[ + { + "type": "npc_class", + "id": "NC_REFUGEE_Jenny", + "name": "Refugee", + "job_description": "I'm just trying to survive.", + "common": false, + "//": "Jenny Forcette is an experienced mechanical engineer. Like the other refugees in the center, she's terrified of the outside world. Unlike many, she has some ideas what to do about it.", + "bonus_str": { "rng": [ -4, -2 ] }, + "bonus_dex": { "rng": [ -2, 1 ] }, + "bonus_int": { "rng": [ 3, 4 ] }, + "bonus_per": { "rng": [ -1, 1 ] }, + "worn_override": "REFUGEE_Jenny_worn", + "carry_override": "REFUGEE_Jenny_carried", + "weapon_override": "REFUGEE_Jenny_wield", + "traits": [ { "trait": "PACIFIST" }, { "trait": "Exp_Eng_Mechanical2" } ], + "skills": [ + { "skill": "mechanics", "bonus": { "rng": [ 5, 7 ] } }, + { "skill": "computer", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "electronics", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "fabrication", "bonus": { "rng": [ 2, 6 ] } } + ] + }, + { + "type": "item_group", + "id": "REFUGEE_Jenny_worn", + "subtype": "collection", + "entries": [ + { "item": "linuxtshirt" }, + { "item": "jeans" }, + { "item": "hoodie" }, + { "item": "sports_bra" }, + { "item": "panties" }, + { "item": "socks" }, + { "item": "sneakers" }, + { "item": "backpack" } + ] + }, + { + "type": "item_group", + "id": "REFUGEE_Jenny_carried", + "subtype": "collection", + "entries": [ { "item": "paper" }, { "item": "soldering_iron", "ammo-item": "battery", "charges": 20 } ] + }, + { + "type": "item_group", + "id": "REFUGEE_Jenny_wield", + "subtype": "collection", + "entries": [ { "item": "laptop" } ] + }, + { + "type": "npc", + "id": "refugee_JennyForcette", + "name_unique": "Jenny Forcette", + "gender": "female", + "name_suffix": "refugee", + "class": "NC_REFUGEE_Jenny", + "attitude": 0, + "mission": 7, + "chat": "TALK_REFUGEE_JENNY_1", + "faction": "free_merchants", + "mission_offered": "MISSION_REFUGEE_Jenny_GET_MOTOR" + }, + { + "type": "effect_type", + "id": "u_met_Jenny_Forcette", + "//": "Use this flag to indicate if the player has met this NPC before." + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_1", + "dynamic_line": { + "u_has_effect": "u_met_Jenny_Forcette", + "yes": [ "Hello again.", "Nice to see you again.", "What's up?" ], + "no": "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." + }, + "responses": [ + { + "text": "Nice meeting you. What are you doing on that computer?", + "condition": { "and": [ { "days_since_cataclysm": 60 }, { "not": { "u_has_effect": "u_met_Jenny_Forcette" } } ] }, + "effect": { "u_add_effect": "u_met_Jenny_Forcette", "duration": "PERMANENT" }, + "topic": "TALK_REFUGEE_JENNY_Project1_developed", + "switch": true + }, + { + "text": "Hi, Jenny. What are you up to these days?", + "condition": { "days_since_cataclysm": 60 }, + "topic": "TALK_REFUGEE_JENNY_Project1_developed", + "switch": true + }, + { + "text": "Nice meeting you. What are you doing on that computer?", + "condition": { "and": [ { "days_since_cataclysm": 30 }, { "not": { "u_has_effect": "u_met_Jenny_Forcette" } } ] }, + "effect": { "u_add_effect": "u_met_Jenny_Forcette", "duration": "PERMANENT" }, + "topic": "TALK_REFUGEE_JENNY_Project1_early", + "switch": true + }, + { + "text": "Hi, Jenny. What are you up to these days?", + "condition": { "days_since_cataclysm": 30 }, + "topic": "TALK_REFUGEE_JENNY_Project1_early", + "switch": true + }, + { + "text": "Nice meeting you. What are you doing on that computer?", + "condition": { "not": { "u_has_effect": "u_met_Jenny_Forcette" } }, + "effect": { "u_add_effect": "u_met_Jenny_Forcette", "duration": "PERMANENT" }, + "topic": "TALK_REFUGEE_JENNY_Project1_veryearly", + "switch": true + }, + { + "text": "Hi, Jenny. What are you up to these days?", + "condition": { "u_has_effect": "u_met_Jenny_Forcette" }, + "topic": "TALK_REFUGEE_JENNY_Project1_veryearly", + "switch": true + }, + { + "text": "Nice meeting you. I'd best get going, though.", + "condition": { "not": { "u_has_effect": "u_met_Jenny_Forcette" } }, + "effect": { "u_add_effect": "u_met_Jenny_Forcette", "duration": "PERMANENT" }, + "topic": "TALK_DONE" + }, + { + "text": "Sorry Jenny, I can't stay to chat.", + "condition": { "u_has_effect": "u_met_Jenny_Forcette" }, + "topic": "TALK_DONE" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Project1_veryearly", + "dynamic_line": "Just puttering around. I'm still a bit too shell-shocked to do very much. I used to be an engineer, though... I'm trying to think of some kind of project to get my mind off all this.", + "responses": [ + { "text": "What's it like living here?", "topic": "TALK_REFUGEE_JENNY_Personal1_veryearly" }, + { "text": "Good luck with that. I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Personal1_veryearly", + "dynamic_line": "Living here? Yeah, I guess I live here now. It's... it's weird. We're crowded into this tiny space, I don't know these people, but we're sharing bathrooms and we've all been through the same stuff. It's not great. At night we can hear the outside, and we all just lie there awake, thinking the same things but too scared to talk about it.", + "responses": [ + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1_veryearly" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees1_veryearly", + "dynamic_line": "I don't know the other folks very well yet. There's Boris, Garry, and Stan, they seem to keep to each other. They've gone through something, but I haven't pried. Dana and her husband lost their baby, that was a big deal right when they arrived. There's that counsellor lady with the unusual name, she's nice enough. Fatima just showed up a little while ago, but I've been trying to get to know her better, I think we've at least got our professional stuff in common a bit. I haven't really spoken much to anyone else.", + "responses": [ + { "text": "What was that you said about living here?", "topic": "TALK_REFUGEE_JENNY_Personal1_veryearly" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Project1_early", + "dynamic_line": "I recently came into possession of this mold for making high-calibre air rifle bullets. I'm kinda working on a design that would use them to protect the base. Got a long way to go, though.", + "responses": [ + { "text": "What are you planning?", "topic": "TALK_REFUGEE_JENNY_Project2_early" }, + { "text": "What's it like living here?", "topic": "TALK_REFUGEE_JENNY_Personal1_early" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "Good luck with that. I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Project2_early", + "dynamic_line": "Well, these things are a standard .30 calibre. They should be compatible with any similar rifle barrel. It would be pretty easy to repurpose some rifle parts into large air weapons that we could use without relying on gunpowder, and without so much noise. I'm still drawing up an actual design though, I have a bunch of features I want. Ask me again in a couple weeks and I'll give you some more info.", + "responses": [ + { "text": "What's it like living here?", "topic": "TALK_REFUGEE_JENNY_Personal1_early" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "Good luck with that. I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Personal1_early", + "dynamic_line": "It's been over a month now, so I guess I'm starting to get used to it. Things were pretty rough after Sean died, but it wasn't our first big loss and it won't be the last I guess. I've made a couple friends, and in a weird way we're all like family. We were all hoping they'd let us downstairs sooner than this though. We're never quite sure if there's going 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 .", + "responses": [ + { "text": "What was it you said you were planning?", "topic": "TALK_REFUGEE_JENNY_Project1_early" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Project1_developed", + "dynamic_line": "About a month ago, I got a mold for making high-calibre air rifle bullets. I've been designing some turrets that would use a central air system to power pneumatic rifle turrets around the center. It's a lot easier than trying to make gunpowder!", + "responses": [ + { "text": "Tell me more about those turrets.", "topic": "TALK_REFUGEE_JENNY_Project2_developed" }, + { + "text": "What's it like living here?", + "condition": { "days_since_cataclysm": 120 }, + "topic": "TALK_REFUGEE_JENNY_Personal1_late", + "switch": true + }, + { + "text": "What's it like living here?", + "condition": { "days_since_cataclysm": 60 }, + "topic": "TALK_REFUGEE_JENNY_Personal1_mid", + "switch": true + }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "Sounds interesting, talk to you later.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Project2_developed", + "dynamic_line": "They're pretty big. This isn't something you'd carry around with you. They fire .30 cal bullets using compressed air that we'd make inside the basement and then pipe up to individual storage tanks for the guns that would be good for a few hundred shots each. The design should be capable of auto or semi-auto fire, at a range that's pretty comparable to a gunpowder-based weapon. It takes out some of the most limited parts of ranged weapons: no gunpowder, no brass casings, just lead that we melt into my mold. It's not soundless, but it's not as loud as a chemical weapon. There are tons of advantages. Only trouble is, I can't convince the Free Merchants to give me the parts I need.", + "responses": [ + { "text": "Is there some way I can help you get the stuff you need?", "topic": "TALK_MISSION_LIST" }, + { "text": "What's it like living here?", "topic": "TALK_REFUGEE_JENNY_Personal1_mid" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "Sounds interesting, talk to you later.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Personal1_mid", + "dynamic_line": "There's good and there's bad. We're all pretty sick of being cooped up in here for months, never knowing if there's going to be food to eat or not. It's starting to look like they're never going to let us go down to the secure basement, and none of us have slept well since we were brought in. 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?", + "responses": [ + { "text": "Tell me more about those turrets.", "topic": "TALK_REFUGEE_JENNY_Project2_developed" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Personal1_late", + "dynamic_line": "It's getting bad. We've been stuck in here for months, nothing changing, nothing improving. We can't go outside, we don't have enough to eat, and we didn't choose to be with each other. I don't know how long we can stay like this before somebody snaps.", + "responses": [ + { "text": "Tell me more about those turrets.", "topic": "TALK_REFUGEE_JENNY_Project2_developed" }, + { "text": "Can you tell me anything about the other refugees here?", "topic": "TALK_REFUGEE_JENNY_Refugees1" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees1", + "dynamic_line": { + "days_since_cataclysm": 90, + "yes": "For better or worse, we're a community now. Fatima and I work together a fair bit, and I consider Dana, Draco, and Aleesha my friends, and so of course I've gotten to know Dana's husband Pedro too. The Borichenkos are their own sweet brand of messed up, like all of us. The Singhs have each other, and keep mostly to themselves. Vanessa and I don't see eye to eye, but I'm still glad she's here. Uyen and Rhyzaea are always bickering about leadership decisions, as if they made those kind of calls. What did you want to know?", + "no": "Well, there's a bunch of us. We're starting to form a bit of a community. Fatima and I work together a fair bit, and I've been hanging out with Dana, Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. What did you want to know?" + }, + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_FreeMerchants", + "dynamic_line": "They run this place, and they don't run a charity. We get paid for working around the place, maintaining it, what have you, and we trade cash for food. The thing is, supply and demand and all... there's a lot more cash than food around. It's easier to buy a laptop than a piece of beef jerky, and there's no sign of that getting better. The balance is way off right now, a hard day of work barely gets you enough to fill your belly. I shouldn't bitch too much though. I don't know much better way to run it, although rumour is that the folks living downstairs have it a lot easier than we do. I try not to think too much on that.", + "responses": [ + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees2_Fatima", + "dynamic_line": "Fatima's a sweety, but she's a total dork. I know, I know, it's backwards for the engineer to call the heavy duty mechanic a nerd, but hey. I call it like it is. She and I have been doing some odd jobs around the upstairs here, fixing up old machinery and things.", + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees2_Friends", + "dynamic_line": "Well, Dana lost her baby right after , in a bus rollover. She was lucky to make it out alive. She and Pedro had one of the rougher trips here, I guess. We just kinda click as friends, I'm grateful there's someone else here I can really get along with. Her husband, Pedro, is still pretty shellshocked. He doesn't talk much. I like him though, when he opens up he's just hilarious. Draco is just a cantankerous old fart who hasn't actually got old yet, give him twenty years and he'll be there. I like grumpy people. We also have pretty similar taste in music. Aleesha's a sweet kid, and we've all kind of adopted her, but she seems to hang out with me and Dana the most. She's a great artist, and she's full of crazy ideas. I guess I like her because of all of us, she seems to have the most hope that there's a future to be had.", + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees2_Borichenko", + "dynamic_line": { + "days_since_cataclysm": 90, + "yes": "I didn't get to know Boris, Garry, and Stan so well for the first while. They kinda kept to themselves. Boris and Garry had just lost their son, you know. It's pretty lucky that Stan was with them, he's Boris' little brother. Together, they're a pretty good team. I feel bad for thinking they were standoffish before. They probably do the most to pull their weight around here whenever there's work to be done.", + "no": "Boris and Garry are married, I guess. They kinda keep to themselves, they seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but I'm not totally sure. He seems nice enough, but he's a man of few words. I can't get a good bead on them. I've learned not to pry too much though." + }, + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees2_Singh", + "dynamic_line": { + "days_since_cataclysm": 120, + "yes": "The Singhs are really shy, and I think they feel pretty bad about making it through this together. They're the only complete family I've seen since . That has to feel really weird, and I think it's made them stick really close together. I think... I think they also just don't really like any of us.", + "no": "I really can't get a bead on them. They never really talk to anyone outside of their little family group, they just sit in their own spot and speak Punjabi. They always seem nice, and they do their share, they just don't have any social connection." + }, + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the others?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Others" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_REFUGEE_JENNY_Refugees2_Others", + "dynamic_line": { + "days_since_cataclysm": 80, + "yes": "Vanessa... I'm doing my best, I really am, but we just do not get along. One of these days one of us is probably going to brain the other with a tire iron, and I'm just grateful I spend more time around the tire irons. Uyen and Rhyzaea are both excellent people, and I genuinely like them, but I can't stand this ongoing political bullshit they've got going on. Alonso is just a... he's... there's no polite word for what he is. A lot of the others are fine with it, and okay, sure, I guess. John is a walking stereotype, but he's a great poker buddy. I admit I kinda like him.", + "no": "Vanessa... well, she's nice, I guess. I gotta say, she kinda drives me nuts, but we're in this together so I try not to be too harsh. Uyen and Rhyzaea both seem to want to run the show here, but I try to stay out of those politics and just focus on building stuff. I don't see much good coming of it. Alonso is fine, he's clearly interested in me, and also in every other single woman here. Not my thing, in a group this small. John is a walking stereotype, I imagine there must be more depth to him, but I haven't seen it yet." + }, + "responses": [ + { "text": "Can you tell me about the Free Merchants?", "topic": "TALK_REFUGEE_JENNY_FreeMerchants" }, + { "text": "Can you tell me about Fatima?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Fatima" }, + { + "text": "What has made you friends with Dana, Draco, and Aleesha?", + "topic": "TALK_REFUGEE_JENNY_Refugees2_Friends" + }, + { "text": "Can you tell me about the Borichenkos?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Borichenko" }, + { "text": "Can you tell me about the Singhs?", "topic": "TALK_REFUGEE_JENNY_Refugees2_Singh" }, + { "text": "What was it you said earlier?", "topic": "TALK_NONE" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "MISSION_REFUGEE_Jenny_GET_MOTOR", + "type": "mission_definition", + "name": "Bring Jenny a motor for her compressor.", + "difficulty": 1, + "value": 0, + "goal": "MGOAL_FIND_ITEM", + "item": "motor", + "followup": "MISSION_REFUGEE_Jenny_GET_TANK", + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "Yeah, if you want to risk your neck out there and bring me what I need, I'm not gonna say no. I can't, like, pay you or anything though, you know that right?", + "offer": "Before I get anything going, I'm going to need to set up a compressor. I have a lot of the stuff for that, but I need a large tank for air, and a good sized electric motor - about 10 kg or so. I'm also going to need a 60 liter tank, after that.", + "accepted": "Great! Bring it to me when you find one.", + "rejected": "Oh well. Thanks for offering anyway.", + "advice": "A lot of electric cars and bikes use these kind of motors. So do some bigger robots.", + "inquire": "Any sign of a motor I can use?", + "success": "That's exactly what I need! Want to talk about that tank now?", + "success_lie": "Huh. This isn't going to work like I thought.", + "failure": "No worries. Let me know if you want to try again." + } + }, + { + "id": "MISSION_REFUGEE_Jenny_GET_TANK", + "type": "mission_definition", + "name": "Bring Jenny a tank for her compressor.", + "difficulty": 1, + "value": 0, + "goal": "MGOAL_FIND_ITEM", + "item": "metal_tank", + "origins": [ "ORIGIN_SECONDARY" ], + "//": "followup: MISSION_REFUGEE_Jenny_GET_RIFLES", + "dialogue": { + "describe": "Now that I've got that motor, I can get my compressor mostly built. I will need a tank though.", + "offer": "I can get started building the compressor, but I need a large metal tank to store compressed air centrally. About 60 liters should do...", + "accepted": "Great! Bring it to me when you find one.", + "rejected": "Oh well. Thanks for offering anyway.", + "advice": "It needs to be a good strong tank, like a big propane tank or something... you could look at fuel storage tanks and things, as long as they're durable enough. Heck, if you get some sheet metal you could probably even weld a good one together.", + "inquire": "Any sign of a tank I can use?", + "success": "Hey, this is perfect, \"tanks\" a bunch. Okay, I'm sorry for that. Anyway, now that I've got the parts, I might be able to build a proof of concept. First I gotta get this thing up and running, and argue with the bean counters about letting me draw power to run it.", + "success_lie": "Huh. This isn't going to work like I thought. Back to the drawing board I guess.", + "failure": "No worries. Let me know if you want to try again." + } + } +] diff --git a/data/json/npcs/talk_tags.json b/data/json/npcs/talk_tags.json index 3a887772ce490..c10593539bb12 100644 --- a/data/json/npcs/talk_tags.json +++ b/data/json/npcs/talk_tags.json @@ -73,6 +73,30 @@ "Water... Is there an oasis nearby?", "Did you know that lack of water kills faster than lack of rest?" ] + },{ + "type" : "snippet", + "category" : "", + "text" : [ + "Yeah sure, can't help but notice you got beer with you! Let's crack a cold one and chat, , how goes it?", + "Oh definitely, how about one of those beers I see on you? What's up anyway?", + "Yeah you share those beers I see you hoarding and then we chat all you like! Only joking, what's up ?" + ] + },{ + "type" : "snippet", + "category" : "", + "text" : [ + "Hey, sure thing, , I need a break anyway, how are you?", + "Yeah OK, , how's it going?", + "Sure, let's shoot the shit! You OK?", + "Why not? How you doing?", + "I'm OK with that, what's up?", + "I can spare a few minutes, how's things?", + "Sure thing , you good?", + "Alright, you got something to get off your chest?", + "Always ready for a good chat! But why, you OK?", + "OK , we should get to know each other, how are you coping?", + "Definitely, I'm game. How you holding up?" + ] },{ "type" : "snippet", "category" : "", @@ -524,6 +548,19 @@ " " ] }, + { + "type" : "snippet", + "category" : "", + "text" : [ + "Can I get out and walk? This vehicle is too small.", + "How about we make the next vehicle a convertible?", + "This vehicle is too small.", + "I'm not a cortionist!", + "I can't fit in your tiny human vehicle.", + "This sucks. I'm too big.", + "I don't like being a mutant crammed into your tiny little vehicle." + ] + }, { "type" : "snippet", "category" : "", @@ -707,6 +744,16 @@ "You're gonna rot in hell for this!" ] }, + { + "type": "snippet", + "category": "", + "text": [ + "Quiet down over there!", + "Did you hear someone talking?", + "Who said that?", + "Who's there?" + ] + }, { "type": "snippet", "category": "", @@ -715,7 +762,7 @@ "Be alert, something is up!", "Did you hear that?", "What's that noise?", - "Who's there?" + "Is something over there?" ] }, { @@ -724,9 +771,9 @@ "text": [ "I hear something moving - sounded like", "What's that sound? I heard", - "Who's there? I heard", + "What's there? I heard", "Did you hear that? Sounded like", - "Who is making that sound? I can hear the" + "What is making that sound? I can hear the" ] }, { @@ -740,18 +787,18 @@ },{ "type": "snippet", "category": "", - "text": [ - "Let's talk about something else.", - "Let's change the subject.", - "I'd like to ask you about something else." + "text": [ + "Let's talk about something else.", + "Let's change the subject.", + "I'd like to ask you about something else." ] },{ "type": "snippet", "category": "", - "text": [ - "We should probably get going.", - "We'd better get moving.", - "Let's head out." + "text": [ + "We should probably get going.", + "We'd better get moving.", + "Let's head out." ] },{ "type": "snippet", @@ -772,38 +819,39 @@ },{ "type": "snippet", "category": "", - "text": [ - "stupid", - "idiotic", - "dumb", - "dumb-ass", - "moronic", - "mickey mouse", - "shit-for-brains" + "text": [ + "stupid", + "idiotic", + "dumb", + "dumb-ass", + "moronic", + "mickey mouse", + "shit-for-brains" ] },{ "type": "snippet", "category": "", - "text": [ - "zombie", - "Z", - "shambler", - "goo-puker", - "walker", - "walking corpse", - " ", - "living dead" + "text": [ + "zombie", + "Z", + "shambler", + "goo-puker", + "walker", + "walking corpse", + " ", + "undead", + "living dead" ] },{ "type": "snippet", "category": "", - "text": [ - "zombies", - "Z", + "text": [ + "zombies", + "Z", "Z's", - "dead", - " ", - "living dead" + "undead", + " ", + "living dead" ] },{ "type": "snippet", @@ -823,12 +871,12 @@ },{ "type": "snippet", "category": "", - "text": [ - "the cataclysm", - "the apocalypse", - "the end of the world", - "Armageddon", - "the end of days" + "text": [ + "the cataclysm", + "the apocalypse", + "the end of the world", + "Armageddon", + "the end of days" ] } ] diff --git a/data/json/overmap/specials.json b/data/json/overmap/specials.json index 1c5d41b2b2127..a3b51d287a0fa 100644 --- a/data/json/overmap/specials.json +++ b/data/json/overmap/specials.json @@ -168,6 +168,7 @@ "city_distance" : [10, -1], "city_sizes" : [0, 20], "occurrences" : [0, 4], + "flags" : [ "BEE" ], "rotate" : false, "spawns" : { "group" : "GROUP_BEE", "population":[20,60], "radius":[2,4] } },{ @@ -313,6 +314,7 @@ "city_distance" : [8, -1], "city_sizes" : [4, 12], "occurrences" : [0, 1], + "flags" : [ "ANT" ], "spawns" : { "group" : "GROUP_ANT", "population":[1000,2000], "radius":[10,30] } },{ "type" : "overmap_special", @@ -783,6 +785,7 @@ "city_distance" : [10, -1], "city_sizes" : [0, 20], "occurrences" : [0, 3], + "flags" : [ "ANT" ], "rotate" : false, "spawns" : { "group" : "GROUP_ANT", "population":[1000,2000], "radius":[10,30] } },{ @@ -795,6 +798,7 @@ "city_distance" : [10, -1], "city_sizes" : [0, 20], "occurrences" : [0, 3], + "flags" : [ "ANT" ], "rotate" : false, "spawns" : { "group" : "GROUP_ANT_ACID", "population":[800,1600], "radius":[10,30] } },{ @@ -829,6 +833,7 @@ "city_distance" : [5, -1], "city_sizes" : [0, 12], "occurrences" : [0, 3], + "flags" : [ "FUNGAL" ], "rotate" : false, "spawns" : { "group" : "GROUP_FUNGI", "population":[600,1200], "radius":[30,50] } },{ @@ -841,6 +846,7 @@ "city_distance" : [5, -1], "city_sizes" : [0, 12], "occurrences" : [0, 2], + "flags" : [ "FUNGAL" ], "rotate" : false, "spawns" : { "group" : "GROUP_FUNGI_TOWER", "population":[125,175], "radius":[2,2] } },{ @@ -853,6 +859,7 @@ "city_distance" : [5, -1], "city_sizes" : [0, 12], "occurrences" : [0, 2], + "flags" : [ "FUNGAL" ], "rotate" : false, "spawns" : { "group" : "GROUP_FUNGI_FLOWERS", "population":[50,100], "radius":[2,4] } },{ @@ -866,6 +873,7 @@ "locations" : [ "forest" ], "city_sizes" : [0, 12], "occurrences" : [0, 4], + "flags" : [ "TRIFFID" ], "rotate" : false, "spawns" : { "group" : "GROUP_TRIFFID", "population":[800,1300], "radius":[12,20] } },{ diff --git a/data/json/player_activities.json b/data/json/player_activities.json index 0fcef07ddf873..120fb9394069f 100644 --- a/data/json/player_activities.json +++ b/data/json/player_activities.json @@ -69,6 +69,12 @@ "stop_phrase": "Stop field dressing?", "based_on": "speed" }, + { + "id": "ACT_SKIN", + "type": "activity_type", + "stop_phrase": "Stop skinning?", + "based_on": "speed" + }, { "id": "ACT_QUARTER", "type": "activity_type", @@ -113,6 +119,13 @@ "stop_phrase": "Stop training?", "based_on": "speed" }, + { + "id": "ACT_SOCIALIZE", + "type": "activity_type", + "stop_phrase": "Stop socializing?", + "based_on": "time", + "rooted": true + }, { "id": "ACT_WAIT_WEATHER", "type": "activity_type", @@ -420,6 +433,12 @@ "stop_phrase": "Stop cutting your hair?", "based_on": "speed" }, + { + "id": "ACT_PLAY_WITH_PET", + "type": "activity_type", + "stop_phrase": "Stop playing with your pet?", + "based_on": "speed" + }, { "id": "ACT_TRY_SLEEP", "type": "activity_type", @@ -427,5 +446,20 @@ "rooted": true, "based_on": "speed", "suspendable": false + }, + { + "id": "ACT_UNLOAD_MAG", + "type": "activity_type", + "stop_phrase": "Stop unloading?", + "suspendable": false, + "based_on": "speed" + }, + { + "id": "ACT_ROBOT_CONTROL", + "type": "activity_type", + "stop_phrase": "Stop programming override?", + "suspendable": false, + "based_on": "speed", + "no_resume": true } ] diff --git a/data/json/professions.json b/data/json/professions.json index 0518f301dbac8..7c7ac17d3197a 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -20,6 +20,17 @@ { "item": "8x40_50_mag", "ammo-item": "8mm_fmj", "charges": 50 } ] }, + { + "type": "item_group", + "subtype": "collection", + "id": "army_mags_rm25", + "entries": [ + { "item": "8x40_25_mag", "ammo-item": "8mm_fmj", "charges": 25 }, + { "item": "8x40_25_mag", "ammo-item": "8mm_fmj", "charges": 25 }, + { "item": "8x40_25_mag", "ammo-item": "8mm_fmj", "charges": 25 }, + { "item": "8x40_25_mag", "ammo-item": "8mm_fmj", "charges": 25 } + ] + }, { "type": "item_group", "subtype": "collection", @@ -1436,7 +1447,9 @@ { "item": "hat_boonie", "custom-flags": [ "no_auto_equip" ] }, { "item": "rm11b_sniper_rifle", "ammo-item": "8mm_fmj", "contents-item": [ "shoulder_strap" ] }, { "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" }, - { "item": "chestrig", "contents-group": [ "army_mags_rm51", "army_mags_usp45" ] } + { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, + { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, + { "item": "chestrig", "contents-group": [ "army_mags_rm25" ] } ] }, "male": [ "boxer_shorts" ], diff --git a/data/json/recipes/ammo/components.json b/data/json/recipes/ammo/components.json index 590b39d68bed9..372b5016377dd 100644 --- a/data/json/recipes/ammo/components.json +++ b/data/json/recipes/ammo/components.json @@ -11,5 +11,20 @@ "using": [ [ "surface_heat", 25 ] ], "qualities": [ { "id": "CHEM", "level": 1 } ], "components": [ [ [ "magnesium", 100 ] ], [ [ "oxy_powder", 200 ] ] ] + }, + { + "type": "recipe", + "result": "460_casing", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_COMPONENTS", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ "gun", 4 ], + "time": 3000, + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "manual_pistol", 5 ], [ "recipe_bullets", 3 ] ], + "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "DRILL", "level": 2 } ], + "tools": [ [ [ "press", -1 ] ], [ [ "cordless_drill", 2 ] ] ], + "components": [ [ [ "308_casing", 1 ], [ "3006_casing", 1 ] ] ] } ] diff --git a/data/json/recipes/ammo/pistol.json b/data/json/recipes/ammo/pistol.json index fd0927010cadd..53f8b82d8bdb7 100644 --- a/data/json/recipes/ammo/pistol.json +++ b/data/json/recipes/ammo/pistol.json @@ -309,6 +309,45 @@ [ [ "gunpowder", 4 ] ] ] }, + { + "result": "reloaded_460_fmj", + "type": "recipe", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_PISTOL", + "skill_used": "fabrication", + "difficulty": 5, + "skills_required": [ "gun", 4 ], + "time": 1, + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ], + "charges": 1, + "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ], + "components": [ + [ [ "460_casing", 1 ] ], + [ [ "lgpistol_primer", 1 ] ], + [ [ "gunpowder", 6 ] ], + [ [ "copper", 2 ] ] + ] + }, + { + "result": "reloaded_460_rowland", + "type": "recipe", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_PISTOL", + "skill_used": "fabrication", + "difficulty": 4, + "skills_required": [ "gun", 3 ], + "time": 1, + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ], + "charges": 1, + "using": [ [ "bullet_forming", 3 ], [ "ammo_bullet", 3 ] ], + "components": [ + [ [ "460_casing", 1 ] ], + [ [ "lgpistol_primer", 1 ] ], + [ [ "gunpowder", 6 ] ] + ] + }, { "result": "reloaded_500_Magnum", "type": "recipe", diff --git a/data/json/recipes/armor/other.json b/data/json/recipes/armor/other.json index d1d914321d164..b810c8d542651 100644 --- a/data/json/recipes/armor/other.json +++ b/data/json/recipes/armor/other.json @@ -195,6 +195,30 @@ [ [ "scrap", 1 ] ] ] }, + { + "result": "basket_laundry", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "fabrication", + "difficulty": 4, + "time": 60000, + "book_learn": [ + [ "textbook_fabrication", 4 ], + [ "welding_book", 4 ] + ], + "qualities": [ + { "id": "ANVIL", "level": 1 }, + { "id": "WELD", "level": 1 }, + { "id": "CUT", "level": 1 } + ], + "tools": [ + [ [ "surface_heat", 5, "LIST" ] ] + ], + "components": [ + [ [ "plastic_chunk", 20 ] ] + ] + }, { "result": "leather_cat_tail", "type": "recipe", diff --git a/data/json/recipes/armor/storage.json b/data/json/recipes/armor/storage.json index c7a6ab371fb18..6e87f48f22fae 100644 --- a/data/json/recipes/armor/storage.json +++ b/data/json/recipes/armor/storage.json @@ -661,7 +661,7 @@ "autolearn": true, "qualities": [ { "id": "SEW", "level": 1 } ], "components": [ - [ [ "rag", 7 ], [ "felt_patch", 7 ], [ "leather", 7 ], [ "fur", 7 ] ], + [ [ "felt_patch", 7 ], [ "leather", 7 ], [ "fur", 7 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 2, "LIST" ] ] ] }, diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index 9c12e6a44d6cf..e27ceb250e33a 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -414,7 +414,7 @@ "components": [ [ [ "rag", 4 ] ], [ [ "nomex_suit", 1 ], [ "entry_suit", 1 ], [ "nomex", 20 ] ], - [ [ "coat_rain", 1 ] ], + [ [ "coat_rain", 1 ], [ "jacket_windbreaker", 1 ], [ "jacket_evac", 1 ], [ "coat_gut", 1 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 200 ] ], [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] @@ -469,7 +469,7 @@ [ [ "rag", 20 ] ], [ [ "leather", 20 ], [ "tanned_hide", 4 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ], - [ [ "coat_rain", 1 ] ], + [ [ "coat_rain", 1 ], [ "jacket_windbreaker", 1 ], [ "jacket_evac", 1 ] ,[ "coat_gut", 1 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] @@ -529,7 +529,7 @@ "tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ], "components": [ [ [ "rag", 30 ] ], - [ [ "coat_rain", 1 ] ], + [ [ "coat_rain", 1 ], [ "jacket_windbreaker", 1 ], [ "jacket_evac", 1 ] ,[ "coat_gut", 1 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 200 ] ], [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] @@ -577,7 +577,7 @@ "components": [ [ [ "rag", 20 ] ], [ [ "leather", 20 ], [ "tanned_hide", 4 ] ], - [ [ "coat_rain", 1 ] ], + [ [ "coat_rain", 1 ], [ "jacket_windbreaker", 1 ], [ "jacket_evac", 1 ] ,[ "coat_gut", 1 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] @@ -728,7 +728,7 @@ [ [ "rag", 10 ] ], [ [ "leather", 20 ], [ "tanned_hide", 4 ] ], [ [ "fur", 20 ], [ "tanned_pelt", 3 ] ], - [ [ "coat_rain", 1 ] ], + [ [ "coat_rain", 1 ], [ "jacket_windbreaker", 1 ], [ "jacket_evac", 1 ] ,[ "coat_gut", 1 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] @@ -750,7 +750,7 @@ [ [ "rag", 30 ] ], [ [ "leather", 40 ], [ "tanned_hide", 7 ] ], [ [ "scrap", 8 ] ], - [ [ "coat_rain", 2 ] ], + [ [ "coat_rain", 2 ], [ "jacket_windbreaker", 2 ], [ "jacket_evac", 2 ] ,[ "coat_gut", 2 ] ], [ [ "chestrig", 1 ], [ "legrig", 1 ], [ "vest", 1 ], [ "tool_belt", 1 ], [ "ragpouch", 6 ], [ "leather_pouch", 4 ], [ "dump_pouch", 1 ], [ "purse", 2 ], [ "fanny", 2 ] ], [ [ "duct_tape", 400 ] ], [ [ "kevlar", 2 ], [ "modularvest", 2 ], [ "swat_armor", 2 ], [ "kevlar_plate", 42 ] ] diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index 9609e5c6558b7..4f3928ca9ec0d 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -170,6 +170,23 @@ [ [ "faux_fur", 12 ] ] ] }, + { + "result": "coat_gut", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "skills_required": [ "survival", 5 ], + "difficulty": 5, + "time": 200000, + "autolearn": true, + "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 1 } ], + "book_learn": [ [ "trappers_companion", 6 ], [ "survival_book", 4 ] ], + "components": [ + [ [ "stomach_sealed", 16 ], [ "large_stomach_sealed", 10 ] ], + [ [ "sinew", 60 ] ] + ] + }, { "result": "coat_rain", "type": "recipe", diff --git a/data/json/recipes/chem/fuel.json b/data/json/recipes/chem/fuel.json index 124f9c4e97903..631bf1995b5cf 100644 --- a/data/json/recipes/chem/fuel.json +++ b/data/json/recipes/chem/fuel.json @@ -1,7 +1,7 @@ [ { "result": "chem_ethanol", - "type" : "recipe", + "type": "recipe", "byproducts": [ [ "water_clean" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", @@ -9,25 +9,21 @@ "difficulty": 5, "time": 30000, "book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook", 4 ] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 2 } - ], - "tools": [ - [ [ "surface_heat", 30, "LIST" ] ], - [ [ "thermometer", -1 ] ] - ], - "components": [ [ + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "thermometer", -1 ] ] ], + "components": [ + [ [ "hard_liquor", 14, "LIST" ], [ "weak_liquor", 10, "LIST" ], [ "wash_liquor", 42, "LIST" ], - [ "bum_wine", 56 ], - [ "fruit_wine", 56 ] - ] ] + [ "cheap_wine", 56, "LIST" ], + [ "worthy_wine", 40, "LIST" ] + ] + ] }, { "result": "denat_alcohol", - "type" : "recipe", + "type": "recipe", "byproducts": [ [ "water_clean" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", @@ -35,20 +31,17 @@ "difficulty": 3, "time": 30000, "book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook" ] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 1 } - ], - "tools": [ - [ [ "surface_heat", 60, "LIST" ] ] - ], - "components": [ [ - [ "hard_liquor", 14, "LIST" ], - [ "weak_liquor", 10, "LIST" ], - [ "wash_liquor", 42, "LIST" ], - [ "bum_wine", 56 ], - [ "fruit_wine", 56 ] - ] ] + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ], + "tools": [ [ [ "surface_heat", 60, "LIST" ] ] ], + "components": [ + [ + [ "hard_liquor", 14, "LIST" ], + [ "weak_liquor", 10, "LIST" ], + [ "wash_liquor", 42, "LIST" ], + [ "cheap_wine", 56, "LIST" ], + [ "worthy_wine", 40, "LIST" ] + ] + ] }, { "result": "diesel", @@ -60,36 +53,36 @@ "result_mult": 4, "time": 420000, "book_learn": [ [ "textbook_biodiesel", 5 ] ], - "batch_time_factors":[99, 1], - "qualities":[ { "id": "CHEM", "level": 2 } ], + "batch_time_factors": [ 99, 1 ], + "qualities": [ { "id": "CHEM", "level": 2 } ], "//": "this recipe could be done using fire, but at the moment fire requirement doesn't work properly for long time crafting", - "tools": [ [ - [ "hotplate", 100 ], - [ "toolset", 100 ] - ] ], + "tools": [ [ [ "hotplate", 100 ], [ "toolset", 100 ] ] ], "components": [ - [ [ "water_clean", 4 ], [ "water", 4 ] ], - [ [ "chem_ethanol", 100 ], [ "denat_alcohol", 100 ] ], - [ [ "lye_powder", 8 ] ], - [ [ "cooking_oil", 8 ], [ "lard", 8 ], [ "tallow", 8 ], [ "tallow_tainted", 8 ], [ "fat", 16 ], [ "fat_tainted", 16 ], [ "lamp_oil", 1000 ] ] + [ [ "water_clean", 4 ], [ "water", 4 ] ], + [ [ "chem_ethanol", 100 ], [ "denat_alcohol", 100 ] ], + [ [ "lye_powder", 8 ] ], + [ + [ "cooking_oil", 8 ], + [ "lard", 8 ], + [ "tallow", 8 ], + [ "tallow_tainted", 8 ], + [ "fat", 16 ], + [ "fat_tainted", 16 ], + [ "lamp_oil", 1000 ] + ] ] }, { "result": "lamp_oil", - "type" : "recipe", + "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", "skill_used": "cooking", "difficulty": 2, "time": 30000, "autolearn": true, - "qualities" : [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 3 } - ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ] - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "tallow", 2 ], [ "tallow_tainted", 2 ], [ "lard", 2 ], [ "cooking_oil", 2 ] ] diff --git a/data/json/recipes/food/brewing.json b/data/json/recipes/food/brewing.json index acd59a4ee641c..547c34f970586 100644 --- a/data/json/recipes/food/brewing.json +++ b/data/json/recipes/food/brewing.json @@ -1,223 +1,220 @@ [ - { - "type" : "recipe", - "result": "brew_milk_curdled", - "result_mult" : 18, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "skills_required": [ "survival", 4 ], - "time": 30000, - "batch_time_factors": [50, 4], - "autolearn": true, - "book_learn": [ ["survival_book", 3] , ["textbook_survival", 3], ["manual_survival", 3] ], - "components": [ - [ [ "milk", 15 ] ], - [ [ "vinegar", 3 ] ], - [ - [ "wild_herbs", 40 ], - [ "stomach_large", 1 ], - [ "hstomach_large", 1 ], - [ "stomach", 2 ], - [ "hstomach", 2 ] - ] - ] - },{ - "type" : "recipe", - "result": "brew_whiskey", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 25000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 5], [ "scots_cookbook", 5 ] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ [ "corn", 2 ], [ "irradiated_corn", 2 ], [ "cornmeal", 6 ], [ "barley", 1 ], [ "buckwheat", 1 ] ], - [ [ "sugar", 50 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_vodka", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 50000, - "batch_time_factors": [50, 4], - "autolearn": [ [ "cooking", 6 ] ], - "book_learn": [ ["brewing_cookbook", 6] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ - [ "molasses", 2 ], [ "corn", 2 ], [ "cornmeal", 6 ], - [ "wheat", 1 ], [ "barley", 1 ], [ "buckwheat", 1 ], - [ "sugar", 50 ], [ "sweet_water", 4 ], [ "sugar_beet", 1 ] - ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_rum", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 15000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 4] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ [ "molasses", 2 ], [ "sugar_beet", 1 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_moonshine", - "result_mult" : 15, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 2, - "time": 40000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 1], ["family_cookbook", 1] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], - "components": [ - [ [ "water", 15 ], [ "water_clean", 15 ] ], - [ [ "cornmeal", 12 ], [ "buckwheat", 2 ] ], - [ [ "sugar", 100 ] ], - [ [ "yeast", 2 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_fruit_wine", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 40000, - "batch_time_factors": [50, 4], - "autolearn": true, - "book_learn": [ ["brewing_cookbook", 1], ["family_cookbook", 2] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ - [ "sweet_fruit", 2, "LIST" ], - [ "juice", 1 ] - ] - ] - },{ - "type" : "recipe", - "result": "brew_hb_beer", - "result_mult" : 15, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 4, - "time": 80000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 4] ], - "qualities":[ { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ - [ [ "water", 15 ], [ "water_clean", 15 ] ], - [ [ "barley", 3 ], [ "buckwheat", 3 ], [ "oats", 3 ] ], - [ [ "hops", 1 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_mead", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 80000, - "batch_time_factors": [50, 4], - "autolearn": true, - "book_learn": [ ["brewing_cookbook", 2] ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ [ "honey_bottled", 10 ], [ "honeycomb", 2 ], [ "honey_glassed", 10 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_dandelion_wine", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 80000, - "batch_time_factors": [50, 4], - "book_learn": [ - ["brewing_cookbook", 3], ["family_cookbook", 2], ["survival_book", 3], - ["textbook_survival", 3], ["manual_survival", 3] - ], - "qualities":[ - { "id": "CUT", "level" : 1 }, - { "id": "COOK", "level": 2 } - ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ [ "raw_dandelion", 10 ] ], - [ [ "sugar", 10 ], [ "honeycomb", 1 ], [ "honey_bottled", 2 ], [ "honey_glassed", 2 ], [ "syrup", 2 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_pine_wine", - "result_mult" : 3, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 80000, - "batch_time_factors": [50, 4], - "book_learn": [ ["survival_book", 3] , ["textbook_survival", 3] , ["manual_survival", 3] ], - "qualities":[ - { "id": "CUT", "level" : 1 }, - { "id": "COOK", "level": 2 } - ], - "components": [ - [ [ "water", 3 ], [ "water_clean", 3 ] ], - [ [ "pine_bough", 5 ] ], - [ [ "sugar", 10 ], [ "honeycomb", 1], [ "honey_bottled", 2 ], [ "honey_glassed", 2 ], [ "syrup", 2 ] ], - [ [ "yeast", 1 ] ] - ] - },{ - "type" : "recipe", - "result": "brew_vinegar", - "result_mult" : 7, - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 8000, - "batch_time_factors": [50, 4], - "autolearn": true, - "components": [ - [ [ "water", 7 ], [ "water_clean", 7 ] ], - [ [ "juice", 14 ], [ "apple_cider", 7 ], [ "fruit_wine", 21 ] ] - ] - } + { + "type": "recipe", + "result": "brew_milk_curdled", + "result_mult": 18, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "skills_required": [ "survival", 4 ], + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "autolearn": true, + "book_learn": [ [ "survival_book", 3 ], [ "textbook_survival", 3 ], [ "manual_survival", 3 ] ], + "components": [ + [ [ "milk", 15 ] ], + [ [ "vinegar", 3 ] ], + [ [ "wild_herbs", 40 ], [ "stomach_large", 1 ], [ "hstomach_large", 1 ], [ "stomach", 2 ], [ "hstomach", 2 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_whiskey", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 25000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 5 ], [ "scots_cookbook", 5 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], + "components": [ + [ [ "water", 3 ], [ "water_clean", 3 ] ], + [ [ "corn", 2 ], [ "irradiated_corn", 2 ], [ "cornmeal", 6 ], [ "barley", 1 ], [ "buckwheat", 1 ] ], + [ [ "sugar", 50 ] ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_vodka", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 50000, + "batch_time_factors": [ 50, 4 ], + "autolearn": [ [ "cooking", 6 ] ], + "book_learn": [ [ "brewing_cookbook", 6 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], + "components": [ + [ [ "water", 3 ], [ "water_clean", 3 ] ], + [ + [ "molasses", 2 ], + [ "corn", 2 ], + [ "cornmeal", 6 ], + [ "wheat", 1 ], + [ "barley", 1 ], + [ "buckwheat", 1 ], + [ "sugar", 50 ], + [ "sweet_water", 4 ], + [ "sugar_beet", 1 ] + ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_rum", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 15000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 4 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], + "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "molasses", 2 ], [ "sugar_beet", 1 ] ], [ [ "yeast", 1 ] ] ] + }, + { + "type": "recipe", + "result": "brew_moonshine", + "result_mult": 15, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 2, + "time": 40000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 1 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], + "components": [ + [ [ "water", 15 ], [ "water_clean", 15 ] ], + [ [ "cornmeal", 12 ], [ "buckwheat", 2 ] ], + [ [ "sugar", 100 ] ], + [ [ "yeast", 2 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_fruit_wine", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 40000, + "batch_time_factors": [ 50, 4 ], + "autolearn": true, + "book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 2 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], + "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "sweet_fruit", 2, "LIST" ], [ "juice", 1 ] ] ] + }, + { + "type": "recipe", + "result": "brew_hb_beer", + "result_mult": 15, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 4, + "time": 80000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 4 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], + "components": [ + [ [ "water", 15 ], [ "water_clean", 15 ] ], + [ [ "barley", 3 ], [ "buckwheat", 3 ], [ "oats", 3 ] ], + [ [ "hops", 1 ] ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_mead", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 80000, + "batch_time_factors": [ 50, 4 ], + "autolearn": true, + "book_learn": [ [ "brewing_cookbook", 2 ] ], + "components": [ + [ [ "water", 3 ], [ "water_clean", 3 ] ], + [ [ "honey_bottled", 10 ], [ "honeycomb", 2 ], [ "honey_glassed", 10 ] ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_dandelion_wine", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 80000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ + [ "brewing_cookbook", 3 ], + [ "family_cookbook", 2 ], + [ "survival_book", 3 ], + [ "textbook_survival", 3 ], + [ "manual_survival", 3 ] + ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], + "components": [ + [ [ "water", 3 ], [ "water_clean", 3 ] ], + [ [ "raw_dandelion", 10 ] ], + [ [ "sugar", 10 ], [ "honeycomb", 1 ], [ "honey_bottled", 2 ], [ "honey_glassed", 2 ], [ "syrup", 2 ] ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_pine_wine", + "result_mult": 3, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 80000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "survival_book", 3 ], [ "textbook_survival", 3 ], [ "manual_survival", 3 ] ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], + "components": [ + [ [ "water", 3 ], [ "water_clean", 3 ] ], + [ [ "pine_bough", 5 ] ], + [ [ "sugar", 10 ], [ "honeycomb", 1 ], [ "honey_bottled", 2 ], [ "honey_glassed", 2 ], [ "syrup", 2 ] ], + [ [ "yeast", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "brew_vinegar", + "result_mult": 7, + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 8000, + "batch_time_factors": [ 50, 4 ], + "autolearn": true, + "components": [ + [ [ "water", 7 ], [ "water_clean", 7 ] ], + [ [ "juice", 14 ], [ "apple_cider", 7 ], [ "cheap_wine", 21, "LIST" ], [ "worthy_wine", 15, "LIST" ] ] + ] + } ] diff --git a/data/json/recipes/food/distill.json b/data/json/recipes/food/distill.json index 248fa1b52f2ff..0c01760c41418 100644 --- a/data/json/recipes/food/distill.json +++ b/data/json/recipes/food/distill.json @@ -1,103 +1,75 @@ [ - { - "type" : "recipe", - "result": "brandy", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 3, - "time": 30000, - "batch_time_factors": [50, 4], - "autolearn": [ [ "cooking", 4 ] ], - "book_learn": [ [ "brewing_cookbook", 2 ] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 2 } - ], - "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], - "components": [ [ - [ "fruit_wine", 21 ], [ "bum_wine", 21 ], - [ "dandelion_wine", 21 ], [ "pine_wine", 21 ], - [ "wine_riesling", 15 ], [ "wine_chardonnay", 15 ], - [ "wine_cabernet", 15 ], [ "wine_noir", 15 ] - ] ] - }, - { - "result": "vodka", - "type" : "recipe", - "id_suffix": "from_wash", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 30000, - "batch_time_factors": [50, 4], - "autolearn": [ [ "cooking", 6 ] ], - "book_learn": [ ["brewing_cookbook", 4] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 2 } - ], - "tools": [ - [ [ "water_boiling_heat", 21, "LIST" ] ] - ], - "components": [ [ [ "wash_vodka", 21 ] ] ] - }, - { - "type" : "recipe", - "result": "rum", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 30000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 4] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 2 } - ], - "tools": [ - [ [ "water_boiling_heat", 21, "LIST" ] ] - ], - "components": [ [ [ "wash_rum", 21 ] ] ] - }, - { - "type" : "recipe", - "result": "whiskey", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 5, - "time": 30000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 4] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 2 } - ], - "tools": [ - [ [ "water_boiling_heat", 21, "LIST" ] ] - ], - "components": [ [ [ "wash_whiskey", 21 ] ] ] - }, - { - "type" : "recipe", - "result": "moonshine", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREW", - "skill_used": "cooking", - "difficulty": 2, - "time": 30000, - "batch_time_factors": [50, 4], - "book_learn": [ ["brewing_cookbook", 1], ["family_cookbook", 1] ], - "qualities": [ - { "id": "BOIL", "level": 2 }, - { "id": "DISTILL", "level": 1 } - ], - "tools": [ - [ [ "water_boiling_heat", 21, "LIST" ] ] - ], - "components": [ [ [ "wash_moonshine", 21 ] ] ] - } + { + "type": "recipe", + "result": "brandy", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 3, + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "autolearn": [ [ "cooking", 4 ] ], + "book_learn": [ [ "brewing_cookbook", 2 ] ], + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], + "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], + "components": [ [ [ "cheap_wine", 21, "LIST" ], [ "worthy_wine", 15, "LIST" ] ] ] + }, + { + "result": "vodka", + "type": "recipe", + "id_suffix": "from_wash", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "autolearn": [ [ "cooking", 6 ] ], + "book_learn": [ [ "brewing_cookbook", 4 ] ], + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], + "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], + "components": [ [ [ "wash_vodka", 21 ] ] ] + }, + { + "type": "recipe", + "result": "rum", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 4 ] ], + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], + "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], + "components": [ [ [ "wash_rum", 21 ] ] ] + }, + { + "type": "recipe", + "result": "whiskey", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 5, + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 4 ] ], + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], + "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], + "components": [ [ [ "wash_whiskey", 21 ] ] ] + }, + { + "type": "recipe", + "result": "moonshine", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 2, + "time": 30000, + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 1 ] ], + "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ], + "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ], + "components": [ [ [ "wash_moonshine", 21 ] ] ] + } ] diff --git a/data/json/recipes/food/dry.json b/data/json/recipes/food/dry.json index e38c5463e58a8..5881b058ee3d8 100644 --- a/data/json/recipes/food/dry.json +++ b/data/json/recipes/food/dry.json @@ -1,6 +1,6 @@ [ { - "type" : "recipe", + "type": "recipe", "result": "dry_fish", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -9,13 +9,11 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], - "components": [ [ [ "fish", 2 ] ] ] + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], + "components": [ [ [ "fish", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "dry_beans", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -24,13 +22,11 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], - "components": [ [ [ "raw_beans", 8 ] ] ] + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], + "components": [ [ [ "raw_beans", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "dry_fruit", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -39,16 +35,8 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], - "components": [ - [ - [ "sweet_fruit", 2, "LIST" ], - [ "coconut", 2 ], - [ "can_coconut", 2 ] - ] - ] + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], + "components": [ [ [ "sweet_fruit", 1, "LIST" ], [ "coconut", 1 ], [ "can_coconut", 1 ] ] ] }, { "result": "dry_hflesh", @@ -62,10 +50,10 @@ "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], - "components": [ [ [ "human_flesh", 2 ] ] ] + "components": [ [ [ "human_flesh", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "dry_meat", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -74,10 +62,8 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], - "components": [ [ [ "meat", 2 ] ] ] + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], + "components": [ [ [ "meat", 1 ] ] ] }, { "result": "dry_meat_tainted", @@ -91,10 +77,10 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], - "components": [ [ [ "meat_tainted", 2 ] ] ] + "components": [ [ [ "meat_tainted", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "dry_mushroom", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -103,13 +89,11 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], "components": [ [ [ "mushroom", 1 ], [ "mushroom_morel", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "dry_veggy", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", @@ -118,23 +102,32 @@ "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], "components": [ - [ [ "broccoli", 2 ], [ "irradiated_broccoli", 2 ], - [ "tomato", 2 ], [ "irradiated_tomato", 2 ], - [ "pumpkin", 2 ], [ "irradiated_pumpkin", 2 ], - [ "zucchini", 2 ], [ "irradiated_zucchini", 2 ], - [ "celery", 2 ], [ "irradiated_celery", 2 ], - [ "potato_raw", 2 ], [ "potato_irradiated", 2 ], - [ "onion", 2 ], [ "irradiated_onion", 2 ], - [ "carrot", 12 ], [ "irradiated_carrot", 12 ], - [ "cabbage", 2 ], [ "irradiated_cabbage", 2 ], - [ "lettuce", 8 ], [ "irradiated_lettuce", 8 ], - [ "veggy", 2 ], - [ "veggy_wild", 2 ], - [ "dandelion_cooked", 2 ], + [ + [ "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_raw", 1 ], + [ "potato_irradiated", 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 ] ] ] @@ -151,7 +144,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], - "components": [ [ [ "veggy_tainted", 2 ] ] ] + "components": [ [ [ "veggy_tainted", 1 ] ] ] }, { "result": "hflesh_powder", @@ -164,8 +157,8 @@ "batch_time_factors": [ 83, 3 ], "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "surface_heat", 25, "LIST" ], [ "mortar_pestle", -1 ] ] ], - "components": [ [ [ "dry_hflesh", 2 ] ] ] + "tools": [ [ [ "surface_heat", 25, "LIST" ], [ "mortar_pestle", -1 ] ] ], + "components": [ [ [ "dry_hflesh", 1 ] ] ] }, { "result": "hflesh_powder", @@ -179,38 +172,34 @@ "batch_time_factors": [ 83, 3 ], "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "food_processor", 20 ] ], [ [ "surface_heat", 10, "LIST" ] ] ], - "components": [ [ [ "dry_hflesh", 2 ] ] ] + "tools": [ [ [ "food_processor", 20 ] ], [ [ "surface_heat", 10, "LIST" ] ] ], + "components": [ [ [ "dry_hflesh", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "milk_powder", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, + "charges": 1, "time": 18000, "autolearn": true, - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], - "components": [ - [ [ "milk", 10 ] ] - ] + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], + "components": [ [ [ "milk", 1 ] ] ] }, { - "type" : "recipe", + "type": "recipe", "result": "powder_eggs", "category": "CC_FOOD", "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, + "charges": 12, "time": 18000, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "tools": [ - [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] - ], + "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], "components": [ [ [ "eggs_bird", 12, "LIST" ], [ "egg_reptile", 12 ], [ "spider_egg", 4 ], [ "ant_egg", 1 ] ] ] }, { @@ -224,8 +213,8 @@ "batch_time_factors": [ 83, 3 ], "autolearn": true, "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "surface_heat", 25, "LIST" ], [ "mortar_pestle", -1 ] ] ], - "components": [ [ [ "dry_meat", 2 ], [ "dry_fish", 2 ] ] ] + "tools": [ [ [ "surface_heat", 25, "LIST" ], [ "mortar_pestle", -1 ] ] ], + "components": [ [ [ "dry_meat", 1 ], [ "dry_fish", 1 ] ] ] }, { "result": "protein_powder", @@ -239,7 +228,7 @@ "batch_time_factors": [ 83, 3 ], "autolearn": true, "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "food_processor", 20 ] ], [ [ "surface_heat", 10, "LIST" ] ] ], - "components": [ [ [ "dry_meat", 2 ], [ "dry_fish", 2 ] ] ] + "tools": [ [ [ "food_processor", 20 ] ], [ [ "surface_heat", 10, "LIST" ] ] ], + "components": [ [ [ "dry_meat", 1 ], [ "dry_fish", 1 ] ] ] } ] diff --git a/data/json/recipes/food/frozen.json b/data/json/recipes/food/frozen.json index 7533f3f9f6b81..c9ff4b45f16dd 100644 --- a/data/json/recipes/food/frozen.json +++ b/data/json/recipes/food/frozen.json @@ -11,8 +11,7 @@ "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], "components": [ - [ [ "milk", 1 ] ], - [ [ "con_milk", 1 ], [ "can_coconut", 1 ] ], + [ [ "milk", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], [ [ "chocolate", 1 ], [ "candy", 1 ], @@ -45,8 +44,7 @@ "autolearn": true, "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], "components": [ - [ [ "milk", 1 ] ], - [ [ "con_milk", 1 ], [ "can_coconut", 1 ] ], + [ [ "milk", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], [ [ "chocolate", 2 ], [ "candy", 2 ], @@ -81,8 +79,7 @@ "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], "components": [ - [ [ "milk", 2 ] ], - [ [ "con_milk", 2 ], [ "can_coconut", 2 ] ], + [ [ "milk", 2 ], [ "con_milk", 2 ], [ "can_coconut", 2 ] ], [ [ "chocolate", 1 ], [ "candy", 1 ], @@ -114,8 +111,7 @@ "book_learn": [ [ "mag_cooking", 0 ] ], "components": [ [ [ "water_clean", 2 ] ], - [ [ "milk", 2 ] ], - [ [ "con_milk", 2 ], [ "can_coconut", 2 ] ], + [ [ "milk", 2 ], [ "con_milk", 2 ], [ "can_coconut", 2 ] ], [ [ "chocolate", 1 ], [ "candy", 1 ], @@ -173,8 +169,7 @@ "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], "components": [ - [ [ "milk", 2 ] ], - [ [ "con_milk", 2 ], [ "can_coconut", 2 ] ], + [ [ "milk", 2 ], [ "con_milk", 2 ], [ "can_coconut", 2 ] ], [ [ "chocolate", 1 ], [ "candy", 1 ], @@ -206,7 +201,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], - "components": [ [ [ "milk", 2 ] ], [ [ "con_milk", 2 ], [ "can_coconut", 2 ] ], [ [ "yoghurt", 1 ] ], [ [ "sugar", 5 ] ] ] + "components": [ [ [ "milk", 2 ], [ "con_milk", 2 ], [ "can_coconut", 2 ] ], [ [ "yoghurt", 1 ] ], [ [ "sugar", 5 ] ] ] }, { "result": "icecream_sorbet", @@ -236,8 +231,7 @@ "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ], "components": [ - [ [ "milk", 1 ] ], - [ [ "con_milk", 1 ], [ "can_coconut", 1 ] ], + [ [ "milk", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], [ [ "chocolate", 1 ], [ "candy", 1 ], diff --git a/data/json/recipes/food/offal_dishes.json b/data/json/recipes/food/offal_dishes.json index e82b503798e87..773492bc959f0 100644 --- a/data/json/recipes/food/offal_dishes.json +++ b/data/json/recipes/food/offal_dishes.json @@ -51,6 +51,7 @@ "category": "CC_FOOD", "skill_used": "cooking", "difficulty": 6, + "charges": 1, "time": 40000, "book_learn": [ [ "mag_cooking", 4 ], [ "mag_glam", 5 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -67,7 +68,7 @@ "book_learn": [ [ "scots_cookbook", 2 ], [ "family_cookbook", 0 ], [ "cookbook", 0 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 75, "LIST" ] ] ], - "components": [ [ [ "liver", 2 ] ], [ [ "onion", 1 ] ] ] + "components": [ [ [ "liver", 2 ] ], [ [ "onion", 1 ], [ "irradiated_onion", 1 ] ] ] }, { "type": "recipe", @@ -99,7 +100,7 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 45, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 20 ] ], [ [ "liver", 1 ], [ "lung", 1 ], [ "kidney", 1 ] ], [ [ "liver", 1 ], [ "lung", 1 ], [ "kidney", 1 ] ], [ [ "liver", 1 ], [ "lung", 1 ], [ "kidney", 1 ] ], @@ -114,6 +115,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 2 ], "time": 65000, + "charges": 2, "book_learn": [ [ "cookbook", 1 ], [ "scots_cookbook", 2 ] ], "difficulty": 3, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -134,7 +136,7 @@ [ [ "liver", 8 ] ], [ [ "fat", 2 ], [ "lard", 2 ] ], [ [ "powder_eggs", 10 ], [ "eggs_bird", 2, "LIST" ] ], - [ [ "onion", 1 ] ], + [ [ "onion", 1 ], [ "irradiated_onion", 1 ] ], [ [ "flour", 2 ] ], [ [ "salt", 3 ] ], [ [ "milk", 2 ], [ "con_milk", 2 ], [ "can_coconut", 2 ] ] @@ -165,13 +167,14 @@ "skill_used": "cooking", "difficulty": 4, "time": 60000, + "charges": 1, "book_learn": [ [ "cookbook", 2 ], [ "family_cookbook", 2 ] ], "qualities": [ { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 100, "LIST" ] ] ], "components": [ [ [ "kidney", 2 ] ], [ [ "flour", 2 ] ], - [ [ "onion", 1 ] ], + [ [ "onion", 1 ], [ "irradiated_onion", 1 ] ], [ [ "soysauce", 1 ] ], [ [ "salt", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], diff --git a/data/json/recipes/food/pasta.json b/data/json/recipes/food/pasta.json index 13c6d718d6b8e..5365b67a0dd9f 100644 --- a/data/json/recipes/food/pasta.json +++ b/data/json/recipes/food/pasta.json @@ -39,17 +39,22 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 3, "book_learn": [ [ "cookbook_italian", 3 ] ], - "qualities": [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 3 } - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ [ [ "spaghetti_raw", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "seasoning_italian", 5 ], [ "sauce_red", 1 ], [ "tomato", 2 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 2 ], [ "wild_herbs", 10 ] ], - [ [ "meat", 2 ], [ "meat_canned", 2 ], [ "can_chicken", 1 ], [ "rehydrated_meat", 2 ], [ "dry_meat", 2 ] ] + [ + [ "seasoning_italian", 4 ], + [ "sauce_red", 1 ], + [ "tomato", 2 ], + [ "irradiated_tomato", 1 ], + [ "can_tomato", 1 ], + [ "wild_herbs", 10 ] + ], + [ [ "meat_red", 1, "LIST" ], [ "can_chicken", 2 ], [ "dry_meat", 1 ] ] ] }, { @@ -60,18 +65,23 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 4, "book_learn": [ [ "cookbook_italian", 3 ] ], - "qualities": [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 2 } - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ [ [ "lasagne_raw", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "seasoning_italian", 5 ], [ "sauce_red", 1 ], [ "tomato", 2 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 2 ], [ "wild_herbs", 10 ] ], + [ + [ "seasoning_italian", 4 ], + [ "sauce_red", 1 ], + [ "tomato", 1 ], + [ "irradiated_tomato", 1 ], + [ "can_tomato", 1 ], + [ "wild_herbs", 10 ] + ], [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], - [ [ "meat", 2 ], [ "meat_canned", 2 ], [ "can_chicken", 1 ], [ "rehydrated_meat", 2 ], [ "dry_meat", 2 ] ] + [ [ "meat_red", 1, "LIST" ], [ "can_chicken", 2 ], [ "dry_meat", 1 ] ] ] }, { @@ -82,18 +92,23 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 4, "book_learn": [ [ "cookbook_human", 3 ] ], - "qualities": [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 2 } - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ [ [ "lasagne_raw", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "seasoning_italian", 5 ], [ "sauce_red", 1 ], [ "tomato", 2 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 2 ], [ "wild_herbs", 10 ] ], + [ + [ "seasoning_italian", 4 ], + [ "sauce_red", 1 ], + [ "tomato", 1 ], + [ "irradiated_tomato", 1 ], + [ "can_tomato", 1 ], + [ "wild_herbs", 10 ] + ], [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], - [ [ "human_flesh", 2 ], [ "human_canned", 1 ], [ "rehydrated_hflesh", 2 ], [ "dry_hflesh", 2 ] ] + [ [ "human_flesh", 1 ], [ "human_canned", 1 ], [ "rehydrated_hflesh", 1 ], [ "dry_hflesh", 1 ] ] ] }, { @@ -104,17 +119,22 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 3, "book_learn": [ [ "cookbook_human", 4 ] ], - "qualities": [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 3 } - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ [ [ "spaghetti_raw", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "seasoning_italian", 5 ], [ "sauce_red", 1 ], [ "tomato", 2 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 2 ], [ "wild_herbs", 10 ] ], - [ [ "human_flesh", 2 ], [ "human_canned", 1 ], [ "rehydrated_hflesh", 2 ], [ "dry_hflesh", 2 ] ] + [ + [ "seasoning_italian", 4 ], + [ "sauce_red", 1 ], + [ "tomato", 2 ], + [ "irradiated_tomato", 1 ], + [ "can_tomato", 1 ], + [ "wild_herbs", 10 ] + ], + [ [ "human_flesh", 1 ], [ "human_canned", 1 ], [ "rehydrated_hflesh", 1 ], [ "dry_hflesh", 1 ] ] ] }, { @@ -124,18 +144,25 @@ "subcategory": "CSC_FOOD_PASTA", "skill_used": "cooking", "difficulty": 4, + "charges": 1, "time": 20000, "book_learn": [ [ "cookbook_italian", 3 ] ], - "qualities": [ - { "id": "CUT", "level": 1 }, - { "id": "COOK", "level": 3 } - ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 4, "LIST" ] ] ], "components": [ [ [ "spaghetti_raw", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "seasoning_italian", 5 ], [ "sauce_pesto", 1 ], [ "wild_herbs", 10 ] ], - [ [ "veggy", 2 ], [ "veggy_wild", 2 ], [ "rehydrated_veggy", 2 ], [ "dry_veggy", 2 ], [ "mushroom", 2 ], [ "mushroom_cooked", 2 ], [ "morel_cooked", 2 ], [ "dry_mushroom", 2 ] ] + [ [ "seasoning_italian", 4 ], [ "sauce_pesto", 1 ], [ "wild_herbs", 10 ] ], + [ + [ "veggy", 2 ], + [ "veggy_wild", 2 ], + [ "rehydrated_veggy", 2 ], + [ "dry_veggy", 2 ], + [ "mushroom", 2 ], + [ "mushroom_cooked", 2 ], + [ "morel_cooked", 2 ], + [ "dry_mushroom", 2 ] + ] ] }, { @@ -147,14 +174,8 @@ "difficulty": 4, "time": 30000, "autolearn": true, - "tools": [ - [ [ "surface_heat", 25, "LIST" ] ], - [ [ "pastaextruder", -1 ] ] - ], - "components": [ - [ [ "flour", 4 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] + "tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ], + "components": [ [ [ "flour", 9 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, { "result": "spaghetti_raw", @@ -165,14 +186,8 @@ "difficulty": 4, "time": 30000, "autolearn": true, - "tools": [ - [ [ "surface_heat", 25, "LIST" ] ], - [ [ "pastaextruder", -1 ] ] - ], - "components": [ - [ [ "flour", 4 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] + "tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ], + "components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, { "result": "lasagne_raw", @@ -183,14 +198,8 @@ "difficulty": 4, "time": 30000, "autolearn": true, - "tools": [ - [ [ "surface_heat", 25, "LIST" ] ], - [ [ "pastaextruder", -1 ] ] - ], - "components": [ - [ [ "flour", 4 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] + "tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ], + "components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, { "result": "macaroni_raw", @@ -201,14 +210,8 @@ "difficulty": 4, "time": 30000, "autolearn": true, - "tools": [ - [ [ "surface_heat", 25, "LIST" ] ], - [ [ "pastaextruder", -1 ] ] - ], - "components": [ - [ [ "flour", 4 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] + "tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ], + "components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, { "result": "macaroni_helper", @@ -223,7 +226,21 @@ "tools": [ [ [ "surface_heat", 4, "LIST" ] ] ], "components": [ [ [ "spaghetti_raw", 1 ], [ "macaroni_raw", 1 ], [ "noodles_fast", 1 ] ], - [ [ "meat", 1 ], [ "rehydrated_meat", 1 ], [ "dry_meat", 1 ], [ "can_chicken", 2 ], [ "meat_canned", 1 ], [ "fish", 1 ], [ "dry_fish", 1 ], [ "rehydrated_fish", 1 ], [ "fish_canned", 1 ], [ "can_salmon", 2 ], [ "can_tuna", 2 ], [ "bacon", 2 ], [ "can_spam", 1 ], [ "sausage", 1 ], [ "bratwurst_sausage", 1 ] ], + [ + [ "meat_red", 1, "LIST" ], + [ "dry_meat", 1 ], + [ "can_chicken", 1 ], + [ "fish", 1 ], + [ "dry_fish", 1 ], + [ "rehydrated_fish", 1 ], + [ "fish_canned", 1 ], + [ "can_salmon", 1 ], + [ "can_tuna", 1 ], + [ "bacon", 1 ], + [ "can_spam", 1 ], + [ "sausage", 1 ], + [ "bratwurst_sausage", 1 ] + ], [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] @@ -236,12 +253,13 @@ "skill_used": "cooking", "difficulty": 1, "time": 10000, + "charges": 2, "book_learn": [ [ "cookbook_human", 1 ] ], "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 4, "LIST" ] ] ], "components": [ [ [ "spaghetti_raw", 1 ], [ "macaroni_raw", 1 ], [ "noodles_fast", 1 ] ], - [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ] ], + [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ] ], [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] diff --git a/data/json/recipes/recipe_companion.json b/data/json/recipes/recipe_companion.json index 92755ac2c295a..19ccbc14b9219 100644 --- a/data/json/recipes/recipe_companion.json +++ b/data/json/recipes/recipe_companion.json @@ -72,11 +72,12 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 1, + "charges": 1, "time": 25000, "autolearn": false, "never_learn": true, "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "dahlia_root", 2 ], [ "potato_raw", 2 ], [ "potato_irradiated", 2 ], [ "cattail_stalk", 4 ] ] ] + "components": [ [ [ "dahlia_root", 10 ], [ "potato_raw", 5 ], [ "potato_irradiated", 5 ] ] ] }, { "type": "recipe", @@ -145,6 +146,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 1, + "charges": 1, "time": 22500, "autolearn": false, "never_learn": true, @@ -171,17 +173,18 @@ "skill_used": "cooking", "difficulty": 3, "time": 75000, + "charges": 1, "autolearn": false, "never_learn": true, "components": [ [ [ "salt_water", 1 ], - [ "saline", 5 ], - [ "salt", 5 ], + [ "saline", 1 ], + [ "salt", 1 ], [ "soysauce", 1 ], - [ "seasoning_salt", 5 ], - [ "pepper", 10 ], - [ "chem_saltpetre", 2 ] + [ "seasoning_salt", 1 ], + [ "pepper", 2 ], + [ "chem_saltpetre", 1 ] ], [ [ "meat", 1 ] ], [ [ "charcoal", 10 ], [ "lamp_oil", 10 ], [ "splinter", 7 ] ] @@ -237,21 +240,20 @@ "skill_used": "cooking", "difficulty": 3, "time": 31250, + "charges": 4, "autolearn": false, "never_learn": true, "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ - [ "meat", 1 ], - [ "rehydrated_meat", 1 ], + [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], - [ "meat_canned", 1 ], [ "can_chicken", 1 ], - [ "fish", 2 ], - [ "rehydrated_fish", 2 ], - [ "dry_fish", 2 ], - [ "fish_canned", 2 ], - [ "can_tuna", 2 ] + [ "fish", 1 ], + [ "rehydrated_fish", 1 ], + [ "dry_fish", 1 ], + [ "fish_canned", 1 ], + [ "can_tuna", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "charcoal", 8 ], [ "lamp_oil", 8 ], [ "splinter", 6 ] ] @@ -268,7 +270,7 @@ "time": 75000, "autolearn": false, "never_learn": true, - "components": [ [ [ "meat", 3 ] ], [ [ "charcoal", 15 ] ] ] + "components": [ [ [ "meat", 1 ] ], [ [ "charcoal", 15 ] ] ] }, { "type": "recipe", @@ -279,38 +281,12 @@ "skill_used": "cooking", "difficulty": 3, "time": 31250, + "charges": 4, "autolearn": false, "never_learn": true, "components": [ - [ [ "flour", 2 ] ], - [ - [ "broccoli", 2 ], - [ "irradiated_broccoli", 2 ], - [ "tomato", 2 ], - [ "irradiated_tomato", 2 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "zucchini", 2 ], - [ "irradiated_zucchini", 2 ], - [ "celery", 2 ], - [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "potato_raw", 2 ], - [ "potato_irradiated", 2 ], - [ "onion", 2 ], - [ "irradiated_onion", 2 ], - [ "carrot", 12 ], - [ "irradiated_carrot", 12 ], - [ "veggy", 2 ], - [ "dry_veggy", 2 ], - [ "rehydrated_veggy", 2 ], - [ "veggy_wild", 2 ], - [ "plant_sac", 6 ], - [ "dandelion_cooked", 2 ], - [ "wild_herbs", 40 ] - ], + [ [ "flour", 30 ] ], + [ [ "veggy_any", 8, "LIST" ], [ "dandelion_cooked", 8 ], [ "wild_herbs", 40 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "charcoal", 8 ], [ "lamp_oil", 8 ], [ "splinter", 6 ] ] ] @@ -326,7 +302,7 @@ "time": 75000, "autolearn": false, "never_learn": true, - "components": [ [ [ "fish", 6 ] ], [ [ "charcoal", 15 ] ] ] + "components": [ [ [ "fish", 1 ] ], [ [ "charcoal", 15 ] ] ] }, { "type": "recipe", @@ -375,18 +351,19 @@ "skill_used": "cooking", "difficulty": 4, "time": 75000, + "charges": 6, "autolearn": false, "never_learn": true, "components": [ - [ [ "meat", 3 ], [ "rehydrated_meat", 6 ], [ "meat_canned", 6 ], [ "can_chicken", 6 ] ], - [ [ "fat", 3 ], [ "tallow", 3 ], [ "lard", 3 ] ], + [ [ "meat_red", 2, "LIST" ], [ "liver", 10 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 10 ], - [ "soysauce", 1 ], - [ "seasoning_italian", 10 ], - [ "wild_herbs", 10 ], - [ "seasoning_salt", 10 ], - [ "pepper", 10 ] + [ "salt", 4 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ], [ [ "charcoal", 10 ] ] ] @@ -400,11 +377,12 @@ "skill_used": "cooking", "difficulty": 3, "time": 112500, + "charges": 1, "autolearn": false, "never_learn": true, "components": [ - [ [ "flour", 2 ] ], - [ [ "salt", 10 ], [ "soysauce", 1 ], [ "seasoning_salt", 10 ] ], + [ [ "flour", 6 ] ], + [ [ "salt", 1 ], [ "soysauce", 1 ], [ "seasoning_salt", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "charcoal", 16 ], [ "lamp_oil", 16 ], [ "splinter", 12 ] ] ] @@ -421,16 +399,18 @@ "autolearn": false, "never_learn": true, "components": [ - [ [ "offal", 4 ] ], + [ [ "offal", 4 ], [ "meat_nofish", 2, "LIST" ], [ "brain", 10 ] ], [ [ "stomach", 2 ], [ "stomach_large", 1 ] ], [ [ "salt_water", 4 ], - [ "saline", 20 ], - [ "salt", 20 ], - [ "soysauce", 4 ], - [ "seasoning_salt", 20 ], - [ "pepper", 40 ], - [ "chem_saltpetre", 8 ] + [ "saline", 8 ], + [ "salt", 4 ], + [ "chem_saltpetre", 2 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ], [ [ "charcoal", 10 ] ] ] @@ -506,18 +486,19 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 5, + "charges": 4, "time": 56250, "autolearn": false, "never_learn": true, "components": [ - [ [ "tallow", 2 ], [ "lard", 2 ] ], + [ [ "tallow", 1 ], [ "lard", 1 ] ], [ - [ "jerky", 6 ], + [ "jerky", 2 ], [ "dry_meat", 2 ], [ "meat_smoked", 2 ], - [ "dry_fish", 3 ], - [ "salted_fish", 6 ], - [ "fish_smoked", 3 ] + [ "dry_fish", 2 ], + [ "salted_fish", 2 ], + [ "fish_smoked", 2 ] ], [ [ "dry_veggy", 2 ], @@ -530,8 +511,8 @@ [ "blueberries", 1 ], [ "irradiated_cherries", 1 ], [ "cherries", 1 ], - [ "irradiated_cranberries", 3 ], - [ "cranberries", 3 ], + [ "irradiated_cranberries", 1 ], + [ "cranberries", 1 ], [ "irradiated_raspberries", 1 ], [ "raspberries", 1 ], [ "irradiated_blackberries", 1 ], diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index 719373651bb11..100200450cc8c 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -207,6 +207,26 @@ "components": [ [ [ "lead", 2 ] ], [ [ "46mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] }, + { + "result": "460_fmj", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, + { + "result": "460_rowland", + "type": "uncraft", + "skill_used": "gun", + "difficulty": 5, + "time": 500, + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], + "flags": [ "UNCRAFT_SINGLE_CHARGE" ] + }, { "result": "500_Magnum", "type": "uncraft", @@ -1206,6 +1226,13 @@ [ [ "small_storage_battery", 2 ] ] ] }, + { + "result": "basket_laundry", + "type": "uncraft", + "time": 5000, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "plastic_chunk", 20 ] ] ] + }, { "result": "lawnmower", "type": "uncraft", diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json index a9ecb4b89ae7d..5de5ea10899f1 100644 --- a/data/json/recipes/recipe_electronics.json +++ b/data/json/recipes/recipe_electronics.json @@ -1037,6 +1037,28 @@ [ [ "solar_cell", 12 ] ], [ [ "cable", 20 ] ] ] + },{ + "type" : "recipe", + "result": "wind_turbine", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_PARTS", + "skill_used": "fabrication", + "skills_required": ["electronics", 3], + "difficulty": 3, + "time": 60000, + "reversible": true, + "decomp_learn": 2, + "autolearn": true, + "book_learn": [["manual_electronics", 7] , ["textbook_electronics", 6] , ["advanced_electronics", 6]], + "using": [ [ "soldering_standard", 35 ] ], + "qualities" : [ {"id": "SCREW","level":1}, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ], + "components": [ + [ [ "motor_small", 1 ], [ "alternator_bicycle", 1 ], [ "alternator_motorbike", 1 ] ], + [ [ "2x4", 5 ], [ "frame_wood", 1 ] ], + [ [ "sheet_metal_small", 3 ] ], + [ [ "nail", 20 ] ], + [ [ "pipe", 4 ] ] + ] },{ "type" : "recipe", "result": "solar_panel_v2", @@ -1315,7 +1337,14 @@ "using": [ [ "soldering_standard", 14 ] ], "qualities" : [ {"id":"SCREW","level":1} ], "components": [ - [ [ "m4a1", 1 ] ], + [ + [ "m4a1", 1 ], + [ "sig552", 1 ], + [ "h&k416a5", 1 ], + [ "m27iar", 1 ], + [ "acr", 1 ], + [ "hk_g36", 1 ] + ], [ [ "processor", 2 ] ], [ [ "RAM", 2 ] ], [ diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json index 2ca1b7f130e3c..5f889ed767c20 100644 --- a/data/json/recipes/recipe_food.json +++ b/data/json/recipes/recipe_food.json @@ -258,7 +258,7 @@ "skill_used": "cooking", "difficulty": 2, "time": 10000, - "result_mult": 2, + "charges": 6, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], @@ -267,12 +267,13 @@ { "type": "recipe", "result": "lard", - "byproducts": [ [ "cracklins" ] ], + "byproducts": [ [ "cracklins" ], [ "cracklins" ], [ "cracklins" ] ], "category": "CC_FOOD", "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 3, "time": 10000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], @@ -285,13 +286,14 @@ "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 4, + "charges": 1, "time": 10000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ - [ "plant_sac", 1 ], + [ "plant_sac", 2 ], [ "seed_cotton_boll", 1 ], [ "seed_pumpkin", 4 ], [ "seed_sunflower", 2 ], @@ -310,7 +312,7 @@ "autolearn": true, "flags": [ "BLIND_HARD" ], "qualities": [ { "id": "CONTAIN", "level": 1 } ], - "components": [ [ [ "dry_meat", 2 ] ], [ [ "water_clean", 1 ] ] ] + "components": [ [ [ "dry_meat", 1 ] ], [ [ "water_clean", 1 ] ] ] }, { "type": "recipe", @@ -368,11 +370,12 @@ "skill_used": "cooking", "difficulty": 2, "time": 9000, + "charges": 4, "autolearn": true, "qualities": [ { "id": "CONTAIN", "level": 1 } ], "components": [ [ [ "cooking_oil", 2 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "lemon", 1 ], [ "irradiated_lemon", 1 ], @@ -382,7 +385,7 @@ [ "veggy_pickled", 1 ], [ "vinegar", 1 ] ], - [ [ "salt", 10 ], [ "seasoning_salt", 10 ], [ "pepper", 15 ] ] + [ [ "salt", 1 ], [ "seasoning_salt", 1 ], [ "pepper", 1 ] ] ] }, { @@ -393,11 +396,12 @@ "skill_used": "cooking", "difficulty": 3, "time": 60000, + "charges": 1, "autolearn": true, "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 15 ] ] ], - "components": [ [ [ "meat", 3 ] ] ] + "components": [ [ [ "meat", 1 ] ] ] }, { "type": "recipe", @@ -407,11 +411,12 @@ "skill_used": "cooking", "difficulty": 3, "time": 60000, + "charges": 1, "autolearn": true, "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 15 ] ] ], - "components": [ [ [ "fish", 6 ] ] ] + "components": [ [ [ "fish", 1 ] ] ] }, { "type": "recipe", @@ -420,11 +425,12 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 3, + "charges": 1, "time": 16000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "frying_oil", 1, "LIST" ] ], [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "fish", 3 ] ], [ [ "batter", 1, "LIST" ] ] ] + "components": [ [ [ "fish", 2 ] ], [ [ "batter", 1, "LIST" ] ] ] }, { "type": "recipe", @@ -434,10 +440,11 @@ "skill_used": "cooking", "difficulty": 3, "time": 16000, + "charges": 1, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "frying_oil", 1, "LIST" ] ], [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "onion", 1 ] ], [ [ "batter", 1, "LIST" ] ] ] + "components": [ [ [ "onion", 2 ], [ "irradiated_onion", 2 ] ], [ [ "batter", 2, "LIST" ] ] ] }, { "type": "recipe", @@ -446,6 +453,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 2, + "charges": 1, "book_learn": [ [ "cookbook_sushi", 2 ] ], "time": 10000, "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CONTAIN", "level": 1 } ], @@ -454,7 +462,7 @@ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "dry_rice", 1 ] ], [ [ "vinegar", 1 ] ], - [ [ "sugar", 10 ], [ "soysauce", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "sugar", 1 ], [ "soysauce", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -466,6 +474,7 @@ "difficulty": 2, "book_learn": [ [ "cookbook_sushi", 2 ] ], "time": 5000, + "charges": 3, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ [ [ "sushi_rice", 1 ] ], @@ -478,7 +487,7 @@ [ "veggy_wild_cooked", 1 ], [ "veggy_cooked", 1 ] ], - [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -490,6 +499,7 @@ "difficulty": 3, "book_learn": [ [ "cookbook_sushi", 3 ] ], "time": 8000, + "charges": 2, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ [ [ "sushi_rice", 1 ] ], @@ -498,22 +508,22 @@ [ "irradiated_cucumber", 1 ], [ "carrot", 6 ], [ "irradiated_carrot", 6 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "veggy_wild", 1 ], - [ "veggy", 1 ], - [ "rehydrated_veggy", 1 ] + [ "celery", 3 ], + [ "irradiated_celery", 3 ], + [ "veggy_wild", 3 ], + [ "veggy", 3 ], + [ "rehydrated_veggy", 3 ] ], [ - [ "lettuce", 1 ], - [ "irradiated_lettuce", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "dandelion_cooked", 1 ], - [ "veggy_wild_cooked", 1 ], - [ "veggy_cooked", 1 ] + [ "lettuce", 2 ], + [ "irradiated_lettuce", 2 ], + [ "cabbage", 2 ], + [ "irradiated_cabbage", 2 ], + [ "dandelion_cooked", 2 ], + [ "veggy_wild_cooked", 2 ], + [ "veggy_cooked", 2 ] ], - [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -525,10 +535,11 @@ "difficulty": 3, "book_learn": [ [ "cookbook_sushi", 3 ] ], "time": 6000, + "charges": 2, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ [ [ "sushi_rice", 1 ] ], - [ [ "fish", 1 ] ], + [ [ "fish", 2 ] ], [ [ "lettuce", 1 ], [ "irradiated_lettuce", 1 ], @@ -538,7 +549,7 @@ [ "veggy_wild_cooked", 1 ], [ "veggy_cooked", 1 ] ], - [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -552,18 +563,18 @@ "time": 6000, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ - [ [ "sushi_rice", 1 ] ], - [ [ "meat", 1 ] ], + [ [ "sushi_rice", 2 ] ], + [ [ "meat_red", 1, "LIST" ] ], [ - [ "lettuce", 1 ], - [ "irradiated_lettuce", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "dandelion_cooked", 1 ], - [ "veggy_wild_cooked", 1 ], - [ "veggy_cooked", 1 ] + [ "lettuce", 2 ], + [ "irradiated_lettuce", 2 ], + [ "cabbage", 2 ], + [ "irradiated_cabbage", 2 ], + [ "dandelion_cooked", 2 ], + [ "veggy_wild_cooked", 2 ], + [ "veggy_cooked", 2 ] ], - [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -575,21 +586,22 @@ "difficulty": 4, "book_learn": [ [ "cookbook_sushi", 4 ] ], "time": 9000, + "charges": 2, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ - [ [ "fish", 2 ] ], + [ [ "fish", 1 ] ], [ [ "cucumber", 1 ], [ "irradiated_cucumber", 1 ], [ "carrot", 6 ], [ "irradiated_carrot", 6 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "veggy_wild", 1 ], - [ "veggy", 1 ], - [ "rehydrated_veggy", 1 ] + [ "celery", 3 ], + [ "irradiated_celery", 3 ], + [ "veggy_wild", 3 ], + [ "veggy", 3 ], + [ "rehydrated_veggy", 3 ] ], - [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "soysauce", 1 ], [ "horseradish", 1 ], [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -651,20 +663,21 @@ "skill_used": "cooking", "difficulty": 4, "time": 60000, + "charges": 6, "autolearn": true, "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 10 ] ] ], "components": [ - [ [ "meat", 3 ], [ "rehydrated_meat", 6 ], [ "meat_canned", 6 ], [ "can_chicken", 6 ] ], - [ [ "fat", 3 ], [ "tallow", 3 ], [ "lard", 3 ] ], + [ [ "meat_red", 2, "LIST" ], [ "liver", 10 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 10 ], - [ "soysauce", 1 ], - [ "seasoning_italian", 10 ], - [ "wild_herbs", 10 ], - [ "seasoning_salt", 10 ], - [ "pepper", 10 ] + [ "salt", 4 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ] ] }, @@ -681,15 +694,15 @@ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], "components": [ - [ [ "meat", 2 ], [ "rehydrated_meat", 4 ], [ "meat_canned", 4 ], [ "can_chicken", 4 ] ], - [ [ "fat", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], + [ [ "meat_red", 2, "LIST" ], [ "can_chicken", 2 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 10 ], - [ "soysauce", 1 ], - [ "seasoning_italian", 10 ], - [ "wild_herbs", 10 ], - [ "seasoning_salt", 10 ], - [ "pepper", 10 ] + [ "salt", 4 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ] ] }, @@ -701,14 +714,15 @@ "skill_used": "cooking", "difficulty": 4, "time": 10000, + "charges": 6, "autolearn": true, "batch_time_factors": [ 50, 3 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "components": [ - [ [ "meat", 3 ] ], - [ [ "fat", 3 ], [ "tallow", 3 ], [ "lard", 3 ] ], + [ [ "meat_red", 2, "LIST" ], [ "liver", 10 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 10 ], + [ "salt", 2 ], [ "soysauce", 1 ], [ "seasoning_italian", 10 ], [ "wild_herbs", 10 ], @@ -727,8 +741,9 @@ "autolearn": true, "batch_time_factors": [ 67, 5 ], "qualities": [ { "id": "COOK", "level": 1 } ], - "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], - "components": [ [ [ "sausage_raw", 6 ] ] ] + "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], + "charges": 1, + "components": [ [ [ "sausage_raw", 1 ] ] ] }, { "type": "recipe", @@ -738,13 +753,14 @@ "skill_used": "cooking", "difficulty": 4, "time": 15000, + "charges": 20, "autolearn": true, "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 5 ] ] ], "components": [ [ [ "meat", 1 ] ], - [ [ "salt", 5 ], [ "soysauce", 1 ], [ "seasoning_italian", 5 ], [ "wild_herbs", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "salt", 2 ], [ "soysauce", 1 ], [ "seasoning_italian", 2 ], [ "wild_herbs", 2 ], [ "seasoning_salt", 2 ] ] ] }, { @@ -755,13 +771,14 @@ "skill_used": "cooking", "difficulty": 4, "time": 15000, + "charges": 20, "batch_time_factors": [ 83, 3 ], "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 5 ] ] ], "components": [ [ [ "human_flesh", 1 ] ], - [ [ "salt", 5 ], [ "soysauce", 1 ], [ "seasoning_italian", 5 ], [ "wild_herbs", 5 ], [ "seasoning_salt", 5 ] ] + [ [ "salt", 2 ], [ "soysauce", 1 ], [ "seasoning_italian", 2 ], [ "wild_herbs", 2 ], [ "seasoning_salt", 2 ] ] ] }, { @@ -789,7 +806,7 @@ "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 15 ] ] ], - "components": [ [ [ "human_flesh", 3 ] ] ] + "components": [ [ [ "human_flesh", 1 ] ] ] }, { "type": "recipe", @@ -798,21 +815,22 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 4, + "charges": 6, "time": 60000, "batch_time_factors": [ 83, 3 ], "book_learn": [ [ "cookbook_human", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 10 ] ] ], "components": [ - [ [ "human_flesh", 3 ], [ "rehydrated_hflesh", 6 ] ], - [ [ "fat", 3 ], [ "tallow", 3 ], [ "lard", 3 ] ], + [ [ "human_flesh", 1 ], [ "rehydrated_hflesh", 1 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 10 ], - [ "soysauce", 1 ], - [ "seasoning_italian", 10 ], - [ "wild_herbs", 10 ], - [ "seasoning_salt", 10 ], - [ "pepper", 10 ] + [ "salt", 4 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ] ] }, @@ -823,11 +841,12 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "time": 15000, + "charges": 1, "autolearn": true, "batch_time_factors": [ 67, 5 ], "qualities": [ { "id": "COOK", "level": 1 } ], - "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], - "components": [ [ [ "mannwurst_raw", 6 ] ] ] + "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], + "components": [ [ [ "mannwurst_raw", 1 ] ] ] }, { "type": "recipe", @@ -1013,6 +1032,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 1, + "charges": 1, "time": 15000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], @@ -1043,7 +1063,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "frying_oil", 1, "LIST" ] ] ], - "components": [ [ [ "potato_raw", 1 ], [ "potato_irradiated", 1 ] ], [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] ] + "components": [ [ [ "potato_raw", 1 ], [ "potato_irradiated", 1 ] ], [ [ "salt", 2 ], [ "seasoning_salt", 2 ] ] ] }, { "type": "recipe", @@ -1069,7 +1089,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "frying_oil", 1, "LIST" ] ] ], - "components": [ [ [ "tortilla_corn", 1 ] ], [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] ] + "components": [ [ [ "tortilla_corn", 1 ] ], [ [ "salt", 2 ], [ "seasoning_salt", 2 ] ] ] }, { "type": "recipe", @@ -1078,6 +1098,7 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "time": 20000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], @@ -1090,6 +1111,7 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "time": 20000, + "charges": 5, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], @@ -1105,6 +1127,7 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "time": 20000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], @@ -1121,10 +1144,11 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "time": 20000, + "charges": 3, "book_learn": [ [ "cookbook_human", 0 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], - "components": [ [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ] ], [ [ "nachos", 3 ] ] ] + "components": [ [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ] ], [ [ "nachos", 3 ] ] ] }, { "type": "recipe", @@ -1133,11 +1157,12 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "time": 20000, + "charges": 3, "book_learn": [ [ "cookbook_human", 0 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], "components": [ - [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ] ], + [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ] ], [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], [ [ "nachos", 3 ] ] ] @@ -1154,7 +1179,7 @@ "note": "the cooking oil isn't supposed to be expended since you can recycle it after frying the potatoes", "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "frying_oil", 1, "LIST" ] ] ], - "components": [ [ [ "potato_raw", 1 ], [ "potato_irradiated", 1 ] ], [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] ] + "components": [ [ [ "potato_raw", 1 ], [ "potato_irradiated", 1 ] ], [ [ "salt", 2 ], [ "seasoning_salt", 2 ] ] ] }, { "type": "recipe", @@ -1166,7 +1191,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], - "components": [ [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], [ [ "fries", 3 ], [ "fresh_fries", 3 ] ] ] + "components": [ [ [ "cheese", 1 ], [ "cheese_hard", 1 ], [ "can_cheese", 1 ] ], [ [ "fries", 1 ], [ "fresh_fries", 1 ] ] ] }, { "type": "recipe", @@ -1188,7 +1213,7 @@ "skill_used": "cooking", "time": 300, "autolearn": true, - "components": [ [ [ "popcorn", 3 ] ], [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] ] + "components": [ [ [ "popcorn", 1 ] ], [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { "type": "recipe", @@ -1392,7 +1417,7 @@ "time": 20000, "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "components": [ [ [ "dahlia_root", 2 ], [ "potato_raw", 2 ], [ "potato_irradiated", 2 ], [ "cattail_stalk", 4 ] ] ] + "components": [ [ [ "dahlia_root", 10 ], [ "potato_raw", 5 ], [ "potato_irradiated", 5 ] ] ] }, { "type": "recipe", @@ -1406,7 +1431,7 @@ "time": 40000, "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "components": [ [ [ "cattail_rhizome", 1 ] ] ] + "components": [ [ [ "cattail_rhizome", 2 ] ] ] }, { "type": "recipe", @@ -1434,7 +1459,7 @@ "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "rag", -1 ] ] ], - "components": [ [ [ "cranberries", 6 ], [ "irradiated_cranberries", 6 ] ], [ [ "water_clean", 1 ] ] ] + "components": [ [ [ "cranberries", 1 ], [ "irradiated_cranberries", 1 ] ], [ [ "water_clean", 1 ] ] ] }, { "type": "recipe", @@ -1507,9 +1532,11 @@ "skill_used": "cooking", "difficulty": 1, "time": 7000, + "charges": 1, "autolearn": true, "flags": [ "BLIND_HARD" ], "components": [ + [ [ "sugar", 6 ] ], [ [ "whiskey", 1 ], [ "single_malt_whiskey", 1 ] ], [ [ "coffee_syrup", 1 ], [ "coffee", 1 ] ], [ [ "milk", 1 ], [ "con_milk", 1 ] ] @@ -1583,18 +1610,17 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], "components": [ - [ [ "bone", 4 ] ], + [ [ "broth_bone", 1 ] ], [ - [ "meat", 1 ], + [ "meat_red", 1, "LIST" ], [ "meat_cooked", 1 ], - [ "can_salmon", 1 ], - [ "can_herring", 1 ], + [ "can_salmon", 2 ], + [ "can_herring", 2 ], [ "fish", 2 ], [ "fish_cooked", 2 ], [ "can_tuna", 2 ], [ "can_sardine", 2 ], [ "can_clams", 2 ], - [ "meat_canned", 1 ], [ "fish_canned", 2 ] ], [ [ "water_clean", 1 ], [ "water", 1 ] ] @@ -1613,38 +1639,7 @@ "batch_time_factors": [ 50, 5 ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], - "components": [ - [ - [ "veggy", 2 ], - [ "veggy_cooked", 2 ], - [ "veggy_wild", 2 ], - [ "veggy_wild_cooked", 2 ], - [ "can_tomato", 3 ], - [ "tomato", 3 ], - [ "irradiated_tomato", 3 ], - [ "pumpkin", 3 ], - [ "irradiated_pumpkin", 3 ], - [ "broccoli", 3 ], - [ "irradiated_broccoli", 3 ], - [ "zucchini", 3 ], - [ "irradiated_zucchini", 3 ], - [ "celery", 9 ], - [ "irradiated_celery", 9 ], - [ "potato_raw", 3 ], - [ "potato_irradiated", 3 ], - [ "potato_baked", 3 ], - [ "can_corn", 3 ], - [ "corn", 3 ], - [ "irradiated_corn", 3 ], - [ "onion", 9 ], - [ "irradiated_onion", 9 ], - [ "cabbage", 3 ], - [ "irradiated_cabbage", 3 ], - [ "irradiated_carrot", 9 ], - [ "carrot", 9 ] - ], - [ [ "water_clean", 2 ], [ "water", 2 ] ] - ] + "components": [ [ [ "broth_bone", 1 ] ], [ [ "veggy_any", 4, "LIST" ] ], [ [ "water_clean", 2 ], [ "water", 2 ] ] ] }, { "type": "recipe", @@ -1654,11 +1649,16 @@ "skill_used": "cooking", "difficulty": 4, "time": 40000, + "charges": 2, "book_learn": [ [ "cookbook_human", 4 ] ], "batch_time_factors": [ 50, 5 ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], - "components": [ [ [ "bone_human", 4 ] ], [ [ "human_flesh", 1 ], [ "human_cooked", 1 ] ], [ [ "water_clean", 1 ], [ "water", 1 ] ] ] + "components": [ + [ [ "broth_bone", 1 ], [ "broth_human", 1 ] ], + [ [ "human_flesh", 1 ], [ "human_cooked", 1 ] ], + [ [ "water_clean", 1 ], [ "water", 1 ] ] + ] }, { "type": "recipe", @@ -1668,18 +1668,19 @@ "skill_used": "cooking", "difficulty": 3, "time": 60000, + "charges": 1, "autolearn": true, "batch_time_factors": [ 83, 5 ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "salt_water", 1 ], - [ "saline", 5 ], - [ "salt", 5 ], + [ "saline", 1 ], + [ "salt", 1 ], [ "soysauce", 1 ], - [ "seasoning_salt", 5 ], - [ "pepper", 10 ], - [ "chem_saltpetre", 2 ] + [ "seasoning_salt", 1 ], + [ "pepper", 2 ], + [ "chem_saltpetre", 1 ] ], [ [ "meat", 1 ] ] ] @@ -1698,14 +1699,14 @@ "components": [ [ [ "salt_water", 1 ], - [ "saline", 5 ], - [ "salt", 5 ], + [ "saline", 1 ], + [ "salt", 1 ], [ "soysauce", 1 ], - [ "seasoning_salt", 5 ], - [ "pepper", 10 ], - [ "chem_saltpetre", 2 ] + [ "seasoning_salt", 1 ], + [ "pepper", 2 ], + [ "chem_saltpetre", 1 ] ], - [ [ "fish", 2 ] ] + [ [ "fish", 1 ] ] ] }, { @@ -1716,18 +1717,19 @@ "skill_used": "cooking", "difficulty": 3, "time": 30000, + "charges": 1, "batch_time_factors": [ 83, 5 ], "book_learn": [ [ "cookbook_human", 3 ] ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "salt_water", 1 ], - [ "saline", 5 ], - [ "salt", 5 ], + [ "saline", 1 ], + [ "salt", 1 ], [ "soysauce", 1 ], - [ "seasoning_salt", 5 ], - [ "pepper", 10 ], - [ "chem_saltpetre", 2 ] + [ "seasoning_salt", 1 ], + [ "pepper", 2 ], + [ "chem_saltpetre", 1 ] ], [ [ "human_flesh", 1 ] ] ] @@ -1739,6 +1741,7 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 1, + "charges": 7, "time": 10000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], @@ -1752,19 +1755,20 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 5, + "charges": 4, "time": 45000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ - [ [ "tallow", 2 ], [ "lard", 2 ] ], + [ [ "tallow", 1 ], [ "lard", 1 ] ], [ - [ "jerky", 6 ], + [ "jerky", 2 ], [ "dry_meat", 2 ], [ "meat_smoked", 2 ], - [ "dry_fish", 3 ], - [ "salted_fish", 6 ], - [ "fish_smoked", 3 ] + [ "dry_fish", 2 ], + [ "salted_fish", 2 ], + [ "fish_smoked", 2 ] ], [ [ "dry_veggy", 2 ], @@ -1777,8 +1781,8 @@ [ "blueberries", 1 ], [ "irradiated_cherries", 1 ], [ "cherries", 1 ], - [ "irradiated_cranberries", 3 ], - [ "cranberries", 3 ], + [ "irradiated_cranberries", 1 ], + [ "cranberries", 1 ], [ "irradiated_raspberries", 1 ], [ "raspberries", 1 ], [ "irradiated_blackberries", 1 ], @@ -1793,9 +1797,11 @@ "subcategory": "CSC_FOOD_DRINKS", "skill_used": "cooking", "difficulty": 2, + "charges": 2, "time": 5000, "autolearn": true, "components": [ + [ [ "water_clean", 2 ] ], [ [ "irradiated_tomato", 1 ], [ "can_tomato", 1 ], [ "tomato", 1 ] ], [ [ "irradiated_broccoli", 1 ], [ "broccoli", 1 ] ], [ [ "irradiated_zucchini", 1 ], [ "zucchini", 1 ] ] @@ -1813,6 +1819,7 @@ "skills_required": [ "mechanics", 1 ], "difficulty": 4, "time": 30000, + "charges": 2, "autolearn": true, "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "COOK", "level": 3 } ], @@ -1821,8 +1828,8 @@ [ [ "jar_glass", 1 ] ], [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "irradiated_tomato", 2 ], [ "can_tomato", 2 ], [ "tomato", 2 ] ], - [ [ "irradiated_broccoli", 2 ], [ "broccoli", 2 ] ], - [ [ "irradiated_zucchini", 2 ], [ "zucchini", 2 ] ] + [ [ "irradiated_broccoli", 1 ], [ "broccoli", 1 ] ], + [ [ "irradiated_zucchini", 1 ], [ "zucchini", 1 ] ] ] }, { @@ -1860,37 +1867,16 @@ "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], + [ [ "veggy_any", 1, "LIST" ] ], [ - [ "irradiated_broccoli", 1 ], - [ "broccoli", 1 ], - [ "irradiated_tomato", 1 ], - [ "can_tomato", 1 ], - [ "tomato", 1 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "irradiated_zucchini", 1 ], - [ "zucchini", 1 ], - [ "veggy", 1 ], - [ "veggy_wild", 1 ], - [ "powder_eggs", 5 ], - [ "eggs_bird", 1, "LIST" ], - [ "egg_reptile", 1 ], - [ "dry_veggy", 2 ], - [ "dandelion_cooked", 2 ], - [ "mushroom_cooked", 2 ], - [ "morel_cooked", 2 ], - [ "mushroom", 2 ], - [ "dry_mushroom", 2 ] - ], - [ - [ "seasoning_italian", 15 ], - [ "wild_herbs", 15 ], - [ "seasoning_salt", 15 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 14 ], [ "soysauce", 2 ], - [ "pepper", 20 ], - [ "garlic_clove", 6 ], - [ "salt_water", 2 ], - [ "salt", 15 ] + [ "pepper", 4 ], + [ "garlic_clove", 2 ], + [ "salt_water", 1 ], + [ "salt", 1 ] ] ] }, @@ -1930,11 +1916,16 @@ "skill_used": "cooking", "difficulty": 2, "time": 20000, + "charges": 2, "autolearn": true, "batch_time_factors": [ 80, 4 ], "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], - "components": [ [ [ "broth", 1 ] ], [ [ "mushroom", 4 ], [ "mushroom_cooked", 4 ], [ "dry_mushroom", 4 ], [ "morel_cooked", 4 ] ] ] + "components": [ + [ [ "broth", 1 ] ], + [ [ "mushroom", 6 ], [ "mushroom_cooked", 6 ], [ "dry_mushroom", 6 ], [ "morel_cooked", 6 ] ], + [ [ "flour", 5 ] ] + ] }, { "type": "recipe", @@ -1957,7 +1948,8 @@ [ [ "jar_glass", 1 ] ], [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "broth", 2 ] ], - [ [ "mushroom", 8 ], [ "mushroom_cooked", 8 ], [ "dry_mushroom", 8 ], [ "morel_cooked", 8 ] ] + [ [ "flour", 20 ], [ "starch", 2 ] ], + [ [ "mushroom", 12 ], [ "mushroom_cooked", 12 ], [ "dry_mushroom", 12 ], [ "morel_cooked", 12 ] ] ] }, { @@ -1983,7 +1975,8 @@ [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ] ], [ [ "scrap", 1 ] ], [ [ "broth", 1 ] ], - [ [ "mushroom", 4 ], [ "mushroom_cooked", 4 ], [ "dry_mushroom", 4 ], [ "morel_cooked", 4 ] ] + [ [ "flour", 10 ], [ "starch", 1 ] ], + [ [ "mushroom", 6 ], [ "mushroom_cooked", 6 ], [ "dry_mushroom", 6 ], [ "morel_cooked", 6 ] ] ] }, { @@ -2008,10 +2001,9 @@ [ "potato_raw", 1 ], [ "celery", 1 ], [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "veggy_green", 1, "LIST" ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -2022,31 +2014,7 @@ [ "dandelion_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ - [ "irradiated_tomato", 2 ], - [ "can_tomato", 2 ], - [ "tomato", 2 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "irradiated_broccoli", 2 ], - [ "broccoli", 2 ], - [ "irradiated_zucchini", 2 ], - [ "zucchini", 2 ], - [ "potato_irradiated", 2 ], - [ "potato_raw", 2 ], - [ "irradiated_onion", 2 ], - [ "onion", 2 ], - [ "irradiated_carrot", 12 ], - [ "carrot", 12 ], - [ "veggy", 2 ], - [ "dry_veggy", 2 ], - [ "mushroom", 2 ], - [ "dry_mushroom", 2 ], - [ "mushroom_cooked", 2 ], - [ "morel_cooked", 2 ], - [ "rehydrated_veggy", 2 ], - [ "veggy_wild", 2 ] - ] + [ [ "veggy_any", 1, "LIST" ] ] ] }, { @@ -2057,12 +2025,13 @@ "skill_used": "cooking", "difficulty": 2, "time": 20000, + "charges": 2, "autolearn": true, "batch_time_factors": [ 80, 4 ], "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ - [ [ "broth", 1 ], [ "broth_bone", 1 ] ], + [ [ "broth", 2 ], [ "broth_bone", 2 ] ], [ [ "spaghetti_raw", 1 ], [ "macaroni_raw", 1 ], @@ -2073,8 +2042,8 @@ [ "irradiated_celery", 1 ], [ "cabbage", 1 ], [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -2085,7 +2054,7 @@ [ "dandelion_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ [ "meat", 2 ], [ "rehydrated_meat", 2 ], [ "dry_meat", 2 ], [ "meat_canned", 2 ], [ "can_chicken", 2 ] ] + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 2 ] ] ] }, { @@ -2106,24 +2075,9 @@ [ "spaghetti_raw", 1 ], [ "macaroni_raw", 1 ], [ "noodles_fast", 1 ], - [ "potato_irradiated", 1 ], - [ "potato_raw", 1 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], + [ "veggy_any", 1, "LIST" ], + [ "sauerkraut", 1 ], [ "can_corn", 1 ], - [ "corn", 1 ], - [ "irradiated_corn", 1 ], - [ "onion", 1 ], - [ "irradiated_onion", 1 ], - [ "carrot", 6 ], - [ "irradiated_carrot", 6 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "veggy_wild", 1 ], - [ "veggy", 1 ], [ "dry_veggy", 1 ], [ "con_milk", 1 ], [ "flatbread", 1 ], @@ -2134,11 +2088,11 @@ [ "hardtack", 1 ], [ "wastebread", 1 ], [ "sourdough_bread", 1 ], - [ "flour", 1 ], - [ "cornmeal", 1 ], + [ "flour", 2 ], + [ "cornmeal", 2 ], [ "milk_powder", 1 ], - [ "crackers", 2 ], - [ "powder_eggs", 5 ], + [ "crackers", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -2154,11 +2108,11 @@ [ "acorns_cooked", 1 ] ], [ - [ "fish", 2 ], - [ "dry_fish", 2 ], - [ "fish_smoked", 2 ], + [ "fish", 1 ], + [ "dry_fish", 1 ], + [ "fish_smoked", 1 ], [ "fish_pickled", 1 ], - [ "salted_fish", 2 ], + [ "salted_fish", 1 ], [ "fish_canned", 1 ], [ "can_salmon", 1 ], [ "can_tuna", 1 ] @@ -2180,12 +2134,7 @@ "components": [ [ [ "broth", 1 ], [ "broth_bone", 1 ], [ "pine_tea", 1 ] ], [ - [ "meat", 1 ], - [ "meat_smoked", 1 ], - [ "dry_meat", 1 ], - [ "rehydrated_meat", 1 ], - [ "meat_canned", 1 ], - [ "can_chicken", 1 ], + [ "meat_nofish", 1, "LIST" ], [ "fish", 1 ], [ "fish_smoked", 1 ], [ "dry_fish", 1 ], @@ -2193,11 +2142,10 @@ [ "fish_canned", 1 ], [ "can_salmon", 1 ], [ "can_tuna", 1 ], - [ "sausage", 2 ], - [ "sausage_cooked", 2 ], - [ "bratwurst_sausage", 2 ], - [ "bacon", 2 ], - [ "powder_eggs", 10 ], + [ "sausage", 1 ], + [ "sausage_cooked", 1 ], + [ "bratwurst_sausage", 1 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], @@ -2228,12 +2176,13 @@ "skill_used": "cooking", "difficulty": 2, "time": 20000, + "charges": 1, "batch_time_factors": [ 80, 4 ], "book_learn": [ [ "cookbook_human", 2 ] ], "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ - [ [ "broth", 1 ], [ "broth_bone", 1 ], [ "broth_human", 1 ] ], + [ [ "broth", 2 ], [ "broth_bone", 2 ], [ "broth_human", 2 ] ], [ [ "spaghetti_raw", 1 ], [ "macaroni_raw", 1 ], @@ -2244,8 +2193,8 @@ [ "irradiated_celery", 1 ], [ "cabbage", 1 ], [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -2255,7 +2204,7 @@ [ "beans_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ], [ "human_flesh", 2 ] ] + [ [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ], [ "human_flesh", 1 ] ] ] }, { @@ -2266,6 +2215,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 10000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], @@ -2277,10 +2227,10 @@ [ "meat_smoked", 1 ], [ "dry_meat", 1 ], [ "rehydrated_meat", 1 ], - [ "sausage", 2 ], - [ "sausage_cooked", 2 ], + [ "sausage", 1 ], + [ "sausage_cooked", 1 ], [ "bratwurst_sausage", 2 ], - [ "bacon", 2 ], + [ "bacon", 1 ], [ "irradiated_onion", 1 ], [ "onion", 1 ] ], @@ -2295,14 +2245,15 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 3 ] ], + [ [ "flour", 10 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "chocolate", 1 ] ], - [ [ "powder_eggs", 10 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], [ [ "weed", 5 ] ] ] }, @@ -2314,14 +2265,15 @@ "skill_used": "cooking", "difficulty": 4, "time": 20000, + "charges": 5, "autolearn": true, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 3 ] ], + [ [ "flour", 10 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "chocolate", 1 ] ], - [ [ "powder_eggs", 10 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ] + [ [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ] ] }, { @@ -2332,11 +2284,12 @@ "skill_used": "cooking", "difficulty": 1, "time": 15000, + "charges": 2, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "flour", 3 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] + "components": [ [ [ "flour", 11 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] }, { "type": "recipe", @@ -2345,12 +2298,13 @@ "subcategory": "CSC_FOOD_BREAD", "skill_used": "cooking", "difficulty": 2, + "charges": 10, "time": 20000, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "flour", 3 ] ], [ [ "yeast", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] + "components": [ [ [ "flour", 20 ] ], [ [ "yeast", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] }, { "type": "recipe", @@ -2360,11 +2314,12 @@ "skill_used": "cooking", "difficulty": 4, "time": 80000, + "charges": 16, "autolearn": true, "batch_time_factors": [ 60, 3 ], "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 12, "LIST" ] ], [ [ "rag", -1 ] ] ], - "components": [ [ [ "maple_sap", 35 ] ] ] + "components": [ [ [ "maple_sap", 40 ] ] ] }, { "type": "recipe", @@ -2400,37 +2355,10 @@ [ "honey_bottled", 2 ], [ "honey_glassed", 2 ] ], - [ [ "meat", 2 ] ], + [ [ "meat", 1 ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], - [ - [ "veggy", 1 ], - [ "dry_veggy", 1 ], - [ "mushroom", 1 ], - [ "dry_mushroom", 1 ], - [ "morel_cooked", 1 ], - [ "mushroom_cooked", 1 ], - [ "veggy_wild", 1 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "broccoli", 1 ], - [ "irradiated_broccoli", 1 ], - [ "zucchini", 1 ], - [ "irradiated_zucchini", 1 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "potato_raw", 1 ], - [ "potato_irradiated", 1 ], - [ "can_corn", 1 ], - [ "corn", 1 ], - [ "irradiated_corn", 1 ], - [ "onion", 1 ], - [ "irradiated_onion", 1 ], - [ "irradiated_carrot", 1 ], - [ "carrot", 6 ] - ], - [ [ "salt", 5 ], [ "soysauce", 1 ], [ "seasoning_salt", 5 ], [ "pepper", 10 ] ] + [ [ "veggy_any", 1, "LIST" ] ], + [ [ "salt", 1 ], [ "soysauce", 1 ], [ "seasoning_salt", 1 ], [ "pepper", 1 ] ] ] }, { @@ -2440,6 +2368,7 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 4, + "charges": 6, "time": 60000, "book_learn": [ [ "family_cookbook", 4 ] ], "batch_time_factors": [ 83, 3 ], @@ -2447,8 +2376,8 @@ "tools": [ [ [ "char_smoker", 10 ] ] ], "components": [ [ [ "syrup", 1 ] ], - [ [ "meat", 2 ], [ "rehydrated_meat", 2 ], [ "meat_canned", 2 ], [ "can_chicken", 2 ] ], - [ [ "fat", 2 ], [ "tallow", 2 ], [ "lard", 2 ] ], + [ [ "meat_red", 3, "LIST" ], [ "can_chicken", 6 ] ], + [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ [ "salt", 10 ], [ "soysauce", 1 ], @@ -2466,11 +2395,12 @@ "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 2, + "charges": 7, "time": 20000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "sugar_beet", 4 ] ], [ [ "water_clean", 1 ], [ "water", 1 ] ] ] + "components": [ [ [ "sugar_beet", 5 ] ], [ [ "water_clean", 1 ], [ "water", 1 ] ] ] }, { "type": "recipe", @@ -2479,6 +2409,7 @@ "subcategory": "CSC_FOOD_BREAD", "skill_used": "cooking", "difficulty": 2, + "charges": 10, "time": 18000, "batch_time_factors": [ 50, 4 ], "autolearn": true, @@ -2486,8 +2417,8 @@ "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], - [ [ "cornmeal", 3 ] ], - [ [ "water", 2 ], [ "water_clean", 2 ] ] + [ [ "cornmeal", 9 ] ], + [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, { @@ -2497,12 +2428,13 @@ "subcategory": "CSC_FOOD_BREAD", "skill_used": "cooking", "difficulty": 1, + "charges": 5, "time": 18000, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "cornmeal", 3 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] + "components": [ [ [ "cornmeal", 5 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] }, { "type": "recipe", @@ -2511,14 +2443,15 @@ "subcategory": "CSC_FOOD_BREAD", "skill_used": "cooking", "difficulty": 3, + "charges": 1, "time": 90000, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 16, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], - [ [ "salt", 10 ], [ "soysauce", 1 ], [ "seasoning_salt", 10 ] ], + [ [ "flour", 6 ] ], + [ [ "salt", 1 ], [ "soysauce", 1 ], [ "seasoning_salt", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] }, @@ -2530,12 +2463,13 @@ "skill_used": "cooking", "difficulty": 2, "time": 28000, + "charges": 3, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 4 ] ], [ [ "milk", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ], [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] ] }, @@ -2551,7 +2485,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], - "components": [ [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "cornmeal", 1 ], [ "flour", 1 ] ] ] + "components": [ [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "cornmeal", 4 ], [ "flour", 4 ] ] ] }, { "type": "recipe", @@ -2598,7 +2532,7 @@ [ "sausage_cooked", 2 ], [ "bratwurst_sausage", 2 ], [ "bacon", 2 ], - [ "powder_eggs", 10 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], @@ -2626,39 +2560,7 @@ "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], "components": [ [ [ "can_beans", 1 ], [ "beans_cooked", 1 ] ], - [ - [ "veggy", 1 ], - [ "veggy_wild", 1 ], - [ "dry_veggy", 1 ], - [ "mushroom", 1 ], - [ "dry_mushroom", 1 ], - [ "morel_cooked", 1 ], - [ "mushroom_cooked", 1 ], - [ "rehydrated_veggy", 1 ], - [ "can_tomato", 1 ], - [ "tomato", 1 ], - [ "irradiated_tomato", 1 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "broccoli", 1 ], - [ "irradiated_broccoli", 1 ], - [ "zucchini", 1 ], - [ "irradiated_zucchini", 1 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "potato_raw", 1 ], - [ "potato_irradiated", 1 ], - [ "can_corn", 1 ], - [ "corn", 1 ], - [ "irradiated_corn", 1 ], - [ "onion", 1 ], - [ "irradiated_onion", 1 ], - [ "irradiated_carrot", 6 ], - [ "carrot", 6 ] - ], + [ [ "veggy_any", 1, "LIST" ] ], [ [ "sugar", 10 ], [ "syrup", 1 ], @@ -2733,41 +2635,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ - [ [ "rice_cooked", 1 ] ], - [ - [ "veggy", 1 ], - [ "veggy_wild", 1 ], - [ "dry_veggy", 1 ], - [ "mushroom", 1 ], - [ "dry_mushroom", 1 ], - [ "rehydrated_veggy", 1 ], - [ "can_tomato", 1 ], - [ "tomato", 1 ], - [ "irradiated_tomato", 1 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "broccoli", 1 ], - [ "irradiated_broccoli", 1 ], - [ "zucchini", 1 ], - [ "irradiated_zucchini", 1 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "potato_raw", 1 ], - [ "potato_irradiated", 1 ], - [ "can_corn", 1 ], - [ "corn", 1 ], - [ "irradiated_corn", 1 ], - [ "onion", 1 ], - [ "irradiated_onion", 1 ], - [ "irradiated_carrot", 1 ], - [ "carrot", 6 ] - ], - [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] - ] + "components": [ [ [ "rice_cooked", 1 ] ], [ [ "veggy_any", 1, "LIST" ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] ] }, { "type": "recipe", @@ -2816,11 +2684,11 @@ [ "sausage_cooked", 2 ], [ "bratwurst_sausage", 2 ], [ "bacon", 2 ], - [ "powder_eggs", 10 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], - [ [ "salt", 5 ], [ "soysauce", 1 ], [ "seasoning_salt", 5 ], [ "garlic_clove", 3 ], [ "pepper", 10 ] ], + [ [ "salt", 1 ], [ "soysauce", 1 ], [ "seasoning_salt", 1 ], [ "garlic_clove", 1 ], [ "pepper", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -2839,39 +2707,13 @@ [ [ "dry_beans", 1 ], [ "raw_beans", 1 ] ], [ [ "dry_rice", 1 ] ], [ - [ "veggy", 1 ], - [ "dry_veggy", 1 ], + [ "veggy_any", 1, "LIST" ], [ "mushroom", 1 ], [ "dry_mushroom", 1 ], [ "morel_cooked", 1 ], - [ "mushroom_cooked", 1 ], - [ "rehydrated_veggy", 1 ], - [ "veggy_wild", 1 ], - [ "can_tomato", 1 ], - [ "tomato", 1 ], - [ "irradiated_tomato", 1 ], - [ "pumpkin", 1 ], - [ "irradiated_pumpkin", 1 ], - [ "broccoli", 1 ], - [ "irradiated_broccoli", 1 ], - [ "zucchini", 1 ], - [ "irradiated_zucchini", 1 ], - [ "celery", 1 ], - [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "potato_raw", 1 ], - [ "potato_irradiated", 1 ], - [ "can_corn", 1 ], - [ "corn", 1 ], - [ "irradiated_corn", 1 ], - [ "onion", 1 ], - [ "irradiated_onion", 1 ], - [ "irradiated_carrot", 1 ], - [ "carrot", 6 ] + [ "mushroom_cooked", 1 ] ], - [ [ "salt", 5 ], [ "soysauce", 1 ], [ "seasoning_salt", 5 ], [ "garlic_clove", 3 ], [ "pepper", 10 ] ], + [ [ "salt", 1 ], [ "soysauce", 1 ], [ "seasoning_salt", 1 ], [ "garlic_clove", 1 ], [ "pepper", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -2912,7 +2754,7 @@ "components": [ [ [ "oatmeal", 1 ] ], [ - [ "sugar", 10 ], + [ "sugar", 4 ], [ "syrup", 1 ], [ "beet_syrup", 1 ], [ "molasses", 1 ], @@ -2930,10 +2772,10 @@ [ "cherries", 1 ], [ "irradiated_plums", 1 ], [ "plums", 1 ], - [ "irradiated_grapes", 2 ], - [ "grapes", 2 ], - [ "irradiated_cranberries", 3 ], - [ "cranberries", 3 ], + [ "irradiated_grapes", 1 ], + [ "grapes", 1 ], + [ "irradiated_cranberries", 1 ], + [ "cranberries", 1 ], [ "irradiated_raspberries", 1 ], [ "raspberries", 1 ], [ "irradiated_blackberries", 1 ], @@ -2980,10 +2822,11 @@ "skill_used": "cooking", "skills_required": [ "survival", 2 ], "difficulty": 1, - "time": 6000, + "charges": 1, + "time": 1500, "autolearn": true, "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], - "components": [ [ [ "pinecone", 4 ] ] ] + "components": [ [ [ "pinecone", 1 ] ] ] }, { "type": "recipe", @@ -2992,6 +2835,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3005,6 +2849,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3019,6 +2864,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3032,6 +2878,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3046,6 +2893,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3059,6 +2907,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3073,6 +2922,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3086,6 +2936,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3100,6 +2951,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3113,6 +2965,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3127,6 +2980,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3140,6 +2994,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3154,6 +3009,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3168,6 +3024,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3181,6 +3038,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "survival", "difficulty": 1, + "charges": 1, "time": 6000, "autolearn": true, "flags": [ "BLIND_EASY" ], @@ -3195,6 +3053,7 @@ "skill_used": "cooking", "skills_required": [ "survival", 1 ], "difficulty": 1, + "charges": 1, "time": 24000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], @@ -3209,6 +3068,7 @@ "skill_used": "cooking", "difficulty": 5, "time": 48000, + "charges": 10, "book_learn": [ [ "family_cookbook", 5 ], [ "survival_book", 3 ], [ "textbook_survival", 3 ] ], "qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], @@ -3217,13 +3077,13 @@ [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ] ], [ [ "honeycomb", 1 ], - [ "honey_bottled", 4 ], - [ "honey_glassed", 4 ], + [ "honey_bottled", 6 ], + [ "honey_glassed", 3 ], [ "sugar", 20 ], - [ "syrup", 2 ], - [ "beet_syrup", 2 ] + [ "syrup", 8 ], + [ "beet_syrup", 8 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] + [ [ "water", 10 ], [ "water_clean", 10 ] ] ] }, { @@ -3234,6 +3094,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 45000, + "charges": 6, "autolearn": true, "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ @@ -3241,19 +3102,19 @@ [ [ "honeycomb", 1 ], [ "con_milk", 1 ], - [ "honey_bottled", 4 ], - [ "honey_glassed", 4 ], - [ "sugar", 40 ], - [ "syrup", 4 ], - [ "beet_syrup", 4 ] + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "sugar", 10 ], + [ "syrup", 3 ], + [ "beet_syrup", 3 ] ], [ [ "sweet_fruit_like", 1, "LIST" ], [ "jam_fruit", 1 ], [ "chocolate", 1 ], - [ "candy", 3 ], - [ "candy2", 3 ], - [ "choco_coffee_beans", 5 ] + [ "candy", 1 ], + [ "candy2", 1 ], + [ "choco_coffee_beans", 2 ] ] ] }, @@ -3282,7 +3143,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ [ [ "powder_eggs", 10 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] + "components": [ [ [ "powder_eggs", 2 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] }, { "type": "recipe", @@ -3318,10 +3179,10 @@ [ "dry_meat", 1 ], [ "rehydrated_meat", 1 ], [ "sausage", 2 ], - [ "sausage_cooked", 2 ], + [ "sausage_cooked", 1 ], [ "bratwurst_sausage", 2 ], - [ "jerky", 3 ], - [ "salted_fish", 2 ], + [ "jerky", 1 ], + [ "salted_fish", 1 ], [ "meat_pickled", 1 ], [ "meat_salted", 1 ], [ "meat_canned", 1 ], @@ -3330,7 +3191,7 @@ [ "fish_pickled", 1 ], [ "salted_fish", 1 ], [ "fish_canned", 1 ], - [ "cracklins", 4 ], + [ "cracklins", 2 ], [ "can_sardine", 1 ], [ "can_tuna", 1 ], [ "can_salmon", 1 ], @@ -3351,7 +3212,7 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], "components": [ - [ [ "powder_eggs", 10 ] ], + [ [ "powder_eggs", 2 ] ], [ [ "bacon", 2 ], [ "meat_cooked", 1 ], @@ -3361,8 +3222,8 @@ [ "sausage", 2 ], [ "sausage_cooked", 2 ], [ "bratwurst_sausage", 2 ], - [ "jerky", 3 ], - [ "salted_fish", 2 ], + [ "jerky", 1 ], + [ "salted_fish", 1 ], [ "meat_pickled", 1 ], [ "meat_salted", 1 ], [ "meat_canned", 1 ], @@ -3371,7 +3232,7 @@ [ "fish_pickled", 1 ], [ "salted_fish", 1 ], [ "fish_canned", 1 ], - [ "cracklins", 4 ], + [ "cracklins", 2 ], [ "can_sardine", 1 ], [ "can_tuna", 1 ], [ "can_salmon", 1 ], @@ -3394,7 +3255,7 @@ "components": [ [ [ "flour", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "syrup", 1 ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] @@ -3450,20 +3311,21 @@ "skill_used": "cooking", "difficulty": 3, "time": 12000, + "charges": 3, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ [ [ "milk", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], - [ [ "cinnamon", 20 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "cinnamon", 2 ] ], [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ], - [ "hardtack", 4 ] + [ "hardtack", 2 ] ] ] }, @@ -3480,9 +3342,9 @@ "components": [ [ [ "flour", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "syrup", 1 ] ], - [ [ "sugar", 15 ] ], + [ [ "sugar", 2 ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] @@ -3500,9 +3362,9 @@ "components": [ [ [ "flour", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "syrup", 1 ] ], - [ [ "sugar", 15 ] ], + [ [ "sugar", 2 ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "sweet_fruit_like", 1, "LIST" ], [ "jam_fruit", 1 ] ] @@ -3516,15 +3378,19 @@ "skill_used": "cooking", "difficulty": 3, "time": 12000, + "charges": 5, "autolearn": true, - "tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "waffleiron", -1 ] ] ], + "tools": [ + [ [ "surface_heat", 8, "LIST" ] ], + [ [ "waffleiron", -1 ] ], + [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] + ], "components": [ [ [ "flour", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 5 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], + [ [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "syrup", 1 ] ], - [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], - [ [ "sugar", 15 ] ], + [ [ "sugar", 2 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "chocolate", 1 ], [ "choc_drink", 2 ] ] ] @@ -3536,6 +3402,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 1, + "charges": 1, "time": 18000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], @@ -3565,9 +3432,9 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 1 ], [ "oatmeal", 1 ], [ "dry_rice", 1 ] ], + [ [ "flour", 8 ], [ "oatmeal", 8 ], [ "dry_rice", 2 ] ], [ - [ "sugar", 15 ], + [ "sugar", 16 ], [ "syrup", 1 ], [ "beet_syrup", 1 ], [ "molasses", 1 ], @@ -3608,7 +3475,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ [ [ "pretzels", 6 ] ], [ [ "chocolate", 1 ] ] ] + "components": [ [ [ "pretzels", 2 ] ], [ [ "chocolate", 1 ] ] ] }, { "type": "recipe", @@ -3675,9 +3542,9 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], - [ [ "sweet_fruit_like", 1, "LIST" ] ], - [ [ "sugar", 5 ], [ "syrup", 1 ], [ "beet_syrup", 1 ], [ "molasses", 1 ] ], + [ [ "flour", 30 ] ], + [ [ "sweet_fruit_like", 8, "LIST" ] ], + [ [ "sugar", 20 ], [ "syrup", 4 ], [ "beet_syrup", 4 ], [ "molasses", 4 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -3688,40 +3555,14 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 3, + "charges": 4, "time": 25000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], - [ - [ "broccoli", 2 ], - [ "irradiated_broccoli", 2 ], - [ "tomato", 2 ], - [ "irradiated_tomato", 2 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "zucchini", 2 ], - [ "irradiated_zucchini", 2 ], - [ "celery", 2 ], - [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "potato_raw", 2 ], - [ "potato_irradiated", 2 ], - [ "onion", 2 ], - [ "irradiated_onion", 2 ], - [ "carrot", 12 ], - [ "irradiated_carrot", 12 ], - [ "veggy", 2 ], - [ "dry_veggy", 2 ], - [ "rehydrated_veggy", 2 ], - [ "veggy_wild", 2 ], - [ "plant_sac", 6 ], - [ "dandelion_cooked", 2 ], - [ "wild_herbs", 40 ] - ], + [ [ "flour", 30 ] ], + [ [ "veggy_any", 8, "LIST" ], [ "dandelion_cooked", 8 ], [ "wild_herbs", 40 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -3732,23 +3573,22 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 3, + "charges": 4, "time": 25000, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ - [ "meat", 1 ], - [ "rehydrated_meat", 1 ], + [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], - [ "meat_canned", 1 ], [ "can_chicken", 1 ], - [ "fish", 2 ], - [ "rehydrated_fish", 2 ], - [ "dry_fish", 2 ], - [ "fish_canned", 2 ], - [ "can_tuna", 2 ] + [ "fish", 1 ], + [ "rehydrated_fish", 1 ], + [ "dry_fish", 1 ], + [ "fish_canned", 1 ], + [ "can_tuna", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] @@ -3760,13 +3600,14 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "difficulty": 3, + "charges": 4, "time": 25000, "book_learn": [ [ "cookbook_human", 3 ] ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], - [ [ "human_flesh", 1 ], [ "rehydrated_hflesh", 2 ], [ "dry_hflesh", 2 ] ], + [ [ "flour", 30 ] ], + [ [ "human_flesh", 1 ], [ "rehydrated_hflesh", 2 ], [ "dry_hflesh", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -3777,12 +3618,13 @@ "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", "difficulty": 3, + "charges": 6, "time": 25000, "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ] ], [ [ "syrup", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] @@ -3815,8 +3657,8 @@ [ "dry_rice", 1 ] ], [ [ "tomato", 1 ], [ "irradiated_tomato", 1 ], [ "can_tomato", 1 ] ], - [ [ "meat", 1 ], [ "rehydrated_meat", 1 ], [ "dry_meat", 1 ], [ "meat_canned", 1 ], [ "can_chicken", 2 ] ], - [ [ "sauce_red", 1 ], [ "curry_powder", 25 ] ] + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 1 ] ], + [ [ "sauce_red", 1 ], [ "curry_powder", 4 ] ] ] }, { @@ -3846,7 +3688,7 @@ [ "dry_rice", 1 ] ], [ [ "tomato", 1 ], [ "irradiated_tomato", 1 ], [ "can_tomato", 1 ] ], - [ [ "sauce_red", 1 ], [ "curry_powder", 25 ] ] + [ [ "sauce_red", 1 ], [ "curry_powder", 4 ] ] ] }, { @@ -3857,6 +3699,7 @@ "skill_used": "cooking", "difficulty": 2, "time": 20000, + "charges": 2, "book_learn": [ [ "cookbook_italian", 2 ] ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], @@ -3873,9 +3716,9 @@ [ "dry_veggy", 2 ] ], [ [ "tomato", 1 ], [ "irradiated_tomato", 1 ], [ "can_tomato", 1 ] ], - [ [ "meat", 1 ], [ "rehydrated_meat", 1 ], [ "dry_meat", 1 ], [ "meat_canned", 1 ], [ "can_chicken", 2 ] ], + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 1 ] ], [ [ "can_beans", 1 ], [ "raw_beans", 1 ], [ "dry_beans", 1 ] ], - [ [ "sauce_red", 1 ], [ "chilly-p", 25 ], [ "chili_pepper", 1 ] ] + [ [ "sauce_red", 1 ], [ "chilly-p", 2 ], [ "chili_pepper", 1 ] ] ] }, { @@ -3886,6 +3729,7 @@ "skill_used": "cooking", "difficulty": 2, "time": 20000, + "charges": 2, "book_learn": [ [ "cookbook_human", 2 ] ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], @@ -3902,9 +3746,9 @@ [ "dry_veggy", 2 ] ], [ [ "tomato", 1 ], [ "irradiated_tomato", 1 ], [ "can_tomato", 1 ] ], - [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ], [ "human_canned", 2 ] ], + [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ], [ "human_canned", 2 ] ], [ [ "can_beans", 1 ], [ "raw_beans", 1 ], [ "dry_beans", 1 ] ], - [ [ "sauce_red", 1 ], [ "chilly-p", 25 ], [ "chili_pepper", 1 ] ] + [ [ "sauce_red", 1 ], [ "chilly-p", 2 ], [ "chili_pepper", 1 ] ] ] }, { @@ -3919,26 +3763,9 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ - [ "veggy", 2 ], - [ "veggy_wild", 2 ], - [ "veggy_salted", 2 ], - [ "celery", 2 ], - [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "tomato", 2 ], - [ "can_tomato", 2 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "onion", 2 ], - [ "irradiated_onion", 2 ], - [ "broccoli", 1 ], - [ "irradiated_tomato", 2 ], - [ "irradiated_broccoli", 1 ], - [ "rehydrated_veggy", 2 ], + [ "veggy_any", 2, "LIST" ], [ "mushroom", 2 ], [ "dry_mushroom", 2 ], [ "morel_cooked", 2 ], @@ -3958,7 +3785,7 @@ "difficulty": 1, "time": 2000, "autolearn": true, - "qualities": [ { "id": "COOK", "level": 1, "amount": 1 } ], + "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], "components": [ [ [ "grahmcrackers", 1 ] ], [ [ "marshmallow", 1 ] ], [ [ "chocolate", 1 ] ] ] }, @@ -3969,11 +3796,12 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 1, + "charges": 2, "time": 5000, "book_learn": [ [ "cookbook_italian", 2 ] ], "qualities": [ { "id": "CONTAIN", "level": 1 } ], "components": [ - [ [ "cooking_oil", 1 ] ], + [ [ "cooking_oil", 2 ] ], [ [ "pine_nuts", 1 ] ], [ [ "seasoning_italian", 5 ], [ "wild_herbs", 10 ] ], [ [ "salt", 5 ], [ "seasoning_salt", 5 ] ] @@ -3991,7 +3819,7 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ [ "cheese", 2 ], [ "can_cheese", 2 ], [ "cheese_hard", 2 ] ], [ [ "sauce_pesto", 1 ], [ "sauce_red", 1 ], [ "seasoning_italian", 5 ], [ "wild_herbs", 10 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] @@ -4009,20 +3837,18 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ - [ "meat", 2 ], - [ "meat_canned", 2 ], + [ "meat_red", 2, "LIST" ], [ "can_chicken", 2 ], [ "meat_salted", 2 ], - [ "rehydrated_meat", 2 ], [ "dry_meat", 2 ], - [ "fish", 3 ], - [ "fish_canned", 3 ], - [ "can_tuna", 3 ], - [ "salted_fish", 3 ], - [ "rehydrated_fish", 3 ], - [ "dry_fish", 3 ] + [ "fish", 2 ], + [ "fish_canned", 2 ], + [ "can_tuna", 2 ], + [ "salted_fish", 2 ], + [ "rehydrated_fish", 2 ], + [ "dry_fish", 2 ] ], [ [ "sauce_red", 1 ], [ "seasoning_italian", 5 ], [ "wild_herbs", 10 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] @@ -4040,10 +3866,10 @@ "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], "components": [ - [ [ "flour", 2 ] ], + [ [ "flour", 30 ] ], [ [ "human_flesh", 2 ], - [ "human_canned", 1 ], + [ "human_canned", 2 ], [ "hflesh_salted", 2 ], [ "rehydrated_hflesh", 2 ], [ "dry_hflesh", 2 ] @@ -4108,13 +3934,13 @@ "skill_used": "cooking", "difficulty": 4, "time": 24000, + "charges": 10, "autolearn": true, "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 50, "LIST" ] ] ], "components": [ [ [ "sweet_fruit_like", 2, "LIST" ], - [ "bum_wine", 14 ], [ "coconut", 2 ], [ "coffee_syrup", 5 ], [ "cola", 6 ], @@ -4178,12 +4004,11 @@ "skill_used": "cooking", "difficulty": 4, "time": 30000, - "result_mult": 2, "autolearn": true, "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 ] ], [ [ "meat", 2 ] ] ] + "components": [ [ [ "water", 11 ], [ "water_clean", 11 ] ], [ [ "jar_glass", 1 ] ], [ [ "meat", 1 ] ] ] }, { "type": "recipe", @@ -4214,12 +4039,11 @@ "skill_used": "cooking", "difficulty": 4, "time": 30000, - "result_mult": 2, "book_learn": [ [ "cookbook_human", 4 ] ], "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", @@ -4240,7 +4064,7 @@ "components": [ [ [ "water", 11 ], [ "water_clean", 11 ] ], [ [ "jar_glass", 1 ] ], - [ [ "mushroom", 2 ], [ "veggy", 2 ], [ "veggy_wild", 2 ] ] + [ [ "mushroom", 6 ], [ "veggy_any_uncooked", 4, "LIST" ] ] ] }, { @@ -4259,7 +4083,12 @@ "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 ] ], [ [ "sweet_fruit", 2, "LIST" ] ] ] + "components": [ + [ [ "water", 11 ], [ "water_clean", 11 ] ], + [ [ "jar_glass", 1 ] ], + [ [ "sweet_fruit", 4, "LIST" ] ], + [ [ "sugar", 20 ] ] + ] }, { "type": "recipe", @@ -4283,12 +4112,7 @@ [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "broth", 2 ], [ "broth_bone", 2 ], [ "pine_tea", 2 ] ], [ - [ "meat", 2 ], - [ "meat_smoked", 2 ], - [ "dry_meat", 2 ], - [ "rehydrated_meat", 2 ], - [ "meat_canned", 2 ], - [ "can_chicken", 2 ], + [ "meat_nofish", 2, "LIST" ], [ "fish", 2 ], [ "fish_smoked", 2 ], [ "dry_fish", 2 ], @@ -4299,8 +4123,7 @@ [ "sausage", 4 ], [ "sausage_cooked", 4 ], [ "bratwurst_sausage", 4 ], - [ "bacon", 4 ], - [ "powder_eggs", 20 ], + [ "powder_eggs", 4 ], [ "eggs_bird", 4, "LIST" ], [ "egg_reptile", 4 ] ], @@ -4349,10 +4172,9 @@ [ "potato_raw", 2 ], [ "celery", 2 ], [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "powder_eggs", 10 ], + [ "veggy_green", 2, "LIST" ], + [ "sauerkraut", 2 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ], [ "can_beans", 2 ], @@ -4366,7 +4188,7 @@ [ "dandelion_cooked", 2 ], [ "acorns_cooked", 2 ] ], - [ [ "meat", 4 ], [ "rehydrated_meat", 4 ], [ "dry_meat", 4 ], [ "meat_canned", 4 ], [ "can_chicken", 4 ] ] + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 2 ] ] ] }, { @@ -4395,10 +4217,9 @@ [ "potato_raw", 2 ], [ "celery", 2 ], [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "powder_eggs", 10 ], + [ "veggy_green", 2, "LIST" ], + [ "sauerkraut", 2 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ], [ "can_beans", 2 ], @@ -4412,31 +4233,7 @@ [ "dandelion_cooked", 2 ], [ "acorns_cooked", 2 ] ], - [ - [ "irradiated_tomato", 4 ], - [ "can_tomato", 4 ], - [ "tomato", 4 ], - [ "pumpkin", 4 ], - [ "irradiated_pumpkin", 4 ], - [ "irradiated_broccoli", 4 ], - [ "broccoli", 4 ], - [ "irradiated_zucchini", 4 ], - [ "zucchini", 4 ], - [ "potato_raw", 4 ], - [ "potato_irradiated", 4 ], - [ "onion", 4 ], - [ "irradiated_onion", 4 ], - [ "carrot", 24 ], - [ "irradiated_carrot", 24 ], - [ "veggy", 4 ], - [ "dry_veggy", 4 ], - [ "mushroom", 4 ], - [ "dry_mushroom", 4 ], - [ "mushroom_cooked", 4 ], - [ "morel_cooked", 4 ], - [ "rehydrated_veggy", 4 ], - [ "veggy_wild", 4 ] - ] + [ [ "veggy_any", 2, "LIST" ] ] ] }, { @@ -4461,26 +4258,8 @@ [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "broth", 2 ], [ "broth_bone", 2 ] ], [ - [ "potato_irradiated", 2 ], - [ "potato_raw", 2 ], - [ "celery", 2 ], - [ "irradiated_celery", 2 ], - [ "cabbage", 2 ], - [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "can_corn", 2 ], - [ "corn", 2 ], - [ "irradiated_corn", 2 ], - [ "irradiated_onion", 2 ], - [ "onion", 2 ], - [ "irradiated_carrot", 12 ], - [ "carrot", 12 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "veggy_wild", 2 ], - [ "veggy", 2 ], - [ "dry_veggy", 2 ], - [ "powder_eggs", 10 ], + [ "veggy_any", 2, "LIST" ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ], [ "can_beans", 2 ], @@ -4496,10 +4275,10 @@ [ "hardtack", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ], - [ "flour", 2 ], - [ "cornmeal", 2 ], + [ "flour", 4 ], + [ "cornmeal", 4 ], [ "milk_powder", 2 ], - [ "crackers", 4 ], + [ "crackers", 2 ], [ "dry_beans", 2 ], [ "raw_beans", 2 ], [ "dry_rice", 2 ], @@ -4512,12 +4291,12 @@ [ "acorns_cooked", 2 ] ], [ - [ "fish", 4 ], - [ "dry_fish", 4 ], - [ "salted_fish", 3 ], - [ "fish_smoked", 4 ], + [ "fish", 2 ], + [ "dry_fish", 2 ], + [ "salted_fish", 2 ], + [ "fish_smoked", 2 ], [ "fish_pickled", 2 ], - [ "salted_fish", 4 ], + [ "salted_fish", 2 ], [ "fish_canned", 2 ], [ "can_salmon", 2 ], [ "can_tuna", 2 ] @@ -4552,8 +4331,8 @@ [ "irradiated_celery", 2 ], [ "cabbage", 2 ], [ "irradiated_cabbage", 2 ], - [ "sauerkraut", 4 ], - [ "powder_eggs", 10 ], + [ "sauerkraut", 2 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ], [ "can_beans", 2 ], @@ -4566,7 +4345,7 @@ [ "beans_cooked", 2 ], [ "acorns_cooked", 2 ] ], - [ [ "dry_hflesh", 4 ], [ "rehydrated_hflesh", 4 ], [ "human_flesh", 4 ] ] + [ [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ], [ "human_flesh", 2 ] ] ] }, { @@ -4601,25 +4380,25 @@ [ "zucchini", 2 ], [ "veggy", 2 ], [ "veggy_wild", 2 ], - [ "powder_eggs", 10 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ], - [ "dry_veggy", 4 ], - [ "dandelion_cooked", 4 ], - [ "mushroom_cooked", 4 ], - [ "morel_cooked", 4 ], - [ "mushroom", 4 ], - [ "dry_mushroom", 4 ] + [ "dry_veggy", 2 ], + [ "dandelion_cooked", 2 ], + [ "mushroom_cooked", 2 ], + [ "morel_cooked", 2 ], + [ "mushroom", 2 ], + [ "dry_mushroom", 2 ] ], [ - [ "seasoning_italian", 30 ], - [ "wild_herbs", 30 ], - [ "seasoning_salt", 30 ], - [ "soysauce", 4 ], - [ "pepper", 40 ], - [ "garlic_clove", 12 ], - [ "salt_water", 2 ], - [ "salt", 30 ] + [ "seasoning_italian", 6 ], + [ "wild_herbs", 6 ], + [ "seasoning_salt", 2 ], + [ "soysauce", 2 ], + [ "pepper", 2 ], + [ "garlic_clove", 1 ], + [ "salt_water", 1 ], + [ "salt", 2 ] ] ] }, @@ -4677,8 +4456,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "meat", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "meat", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4696,8 +4475,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "meat", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "meat", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4716,8 +4495,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "fish", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 5 ], [ "chem_saltpetre", 2 ] ] + [ [ "fish", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 1 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4735,8 +4514,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "fish", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 5 ], [ "chem_saltpetre", 2 ] ] + [ [ "fish", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 1 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4755,8 +4534,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "human_flesh", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "human_flesh", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4774,8 +4553,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "human_flesh", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "human_flesh", 1 ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4794,8 +4573,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "mushroom", 2 ], [ "veggy", 2 ], [ "veggy_wild", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "veggy_any_uncooked", 1, "LIST" ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4813,8 +4592,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "mushroom", 2 ], [ "veggy", 2 ], [ "veggy_wild", 2 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ], [ "chem_saltpetre", 5 ] ] + [ [ "mushroom", 1 ], [ "veggy_any_uncooked", 1, "LIST" ] ], + [ [ "salt_water", 1 ], [ "saline", 1 ], [ "salt", 2 ], [ "chem_saltpetre", 1 ] ] ] }, { @@ -4833,8 +4612,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], - [ [ "sweet_fruit", 1, "LIST" ] ], - [ [ "sugar", 5 ] ] + [ [ "sweet_fruit", 2, "LIST" ] ], + [ [ "sugar", 8 ] ] ] }, { @@ -4853,7 +4632,7 @@ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "bag_plastic", 1 ] ], [ [ "sweet_fruit", 1, "LIST" ] ], - [ [ "sugar", 5 ] ] + [ [ "sugar", 2 ] ] ] }, { @@ -4901,19 +4680,20 @@ "skill_used": "cooking", "difficulty": 2, "time": 45000, + "charges": 15, "autolearn": true, "batch_time_factors": [ 83, 3 ], "flags": [ "BLIND_EASY" ], "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ] ] ], "components": [ [ - [ "wheat", 2 ], - [ "buckwheat", 2 ], - [ "barley", 2 ], + [ "wheat", 1 ], + [ "buckwheat", 1 ], + [ "barley", 1 ], [ "acorns_cooked", 2 ], - [ "oats", 2 ], - [ "starch", 2 ], - [ "dry_rice", 6 ] + [ "oats", 4 ], + [ "starch", 1 ], + [ "dry_rice", 5 ] ] ] }, @@ -4928,7 +4708,7 @@ "autolearn": true, "batch_time_factors": [ 83, 3 ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ] ] ], - "components": [ [ [ "corn", 2 ], [ "irradiated_corn", 2 ] ] ] + "components": [ [ [ "corn", 1 ], [ "irradiated_corn", 1 ] ] ] }, { "type": "recipe", @@ -4999,6 +4779,7 @@ "subcategory": "CSC_FOOD_DRINKS", "skill_used": "cooking", "time": 20, + "charges": 1, "autolearn": true, "flags": [ "BLIND_EASY" ], "components": [ @@ -5074,6 +4855,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 9000, + "charges": 2, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5088,15 +4870,17 @@ [ "onion", 1 ], [ "can_tomato", 1 ], [ "irradiated_tomato", 1 ], - [ "tomato", 1 ] + [ "tomato", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ] ], [ [ "ketchup", 1 ], [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "bacon", 2 ], - [ "seasoning_salt", 15 ], + [ "bacon", 1 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ], [ "sauerkraut", 1 ] ] @@ -5122,15 +4906,17 @@ [ "irradiated_onion", 1 ], [ "can_tomato", 1 ], [ "irradiated_tomato", 1 ], - [ "tomato", 1 ] + [ "tomato", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ] ], [ [ "ketchup", 1 ], [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "bacon", 2 ], - [ "seasoning_salt", 15 ], + [ "bacon", 1 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ] ] ] @@ -5146,7 +4932,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], - "components": [ [ [ "fish", 4 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "lye_powder", 5 ] ] ] + "components": [ [ [ "fish", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "lye_powder", 5 ] ] ] }, { "type": "recipe", @@ -5164,10 +4950,10 @@ [ "human_canned", 1 ], [ "hflesh_aspic", 1 ], [ "human_smoked", 1 ], - [ "human_cooked", 2 ], + [ "human_cooked", 1 ], [ "hfleshbologna", 2 ], - [ "rehydrated_hflesh", 2 ], - [ "human_pickled", 2 ], + [ "rehydrated_hflesh", 1 ], + [ "human_pickled", 1 ], [ "mannwurst", 1 ], [ "mannwurst_cooked", 1 ], [ "mann_bratwurst", 1 ] @@ -5224,7 +5010,7 @@ [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "seasoning_salt", 5 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ] ] ] @@ -5240,33 +5026,7 @@ "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ - [ - [ "meat_cooked", 1 ], - [ "lunchmeat", 4 ], - [ "bologna", 5 ], - [ "fish_cooked", 1 ], - [ "bacon", 2 ], - [ "meat_salted", 2 ], - [ "fried_spam", 2 ], - [ "rehydrated_meat", 2 ], - [ "fish_smoked", 1 ], - [ "meat_smoked", 1 ], - [ "sausage", 1 ], - [ "sausage_cooked", 1 ], - [ "bratwurst_sausage", 1 ], - [ "can_herring", 1 ], - [ "can_chicken", 1 ], - [ "can_salmon", 1 ], - [ "can_tuna", 1 ], - [ "can_sardine", 1 ], - [ "can_clams", 1 ], - [ "meat_canned", 1 ], - [ "rehydrated_fish", 2 ], - [ "fish_pickled", 1 ], - [ "meat_pickled", 1 ], - [ "cracklins", 2 ], - [ "meat_aspic", 2 ] - ], + [ [ "meat_cooked", 1, "LIST" ] ], [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], [ [ "cheese", 2 ], [ "cheese_hard", 2 ], [ "can_cheese", 2 ] ], [ @@ -5331,6 +5091,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 9000, + "charges": 2, "book_learn": [ [ "cookbook_human", 3 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5352,8 +5113,8 @@ [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "bacon", 2 ], - [ "seasoning_salt", 15 ], + [ "bacon", 1 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ], [ "sauerkraut", 1 ] ] @@ -5367,6 +5128,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 8000, + "charges": 2, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5387,8 +5149,8 @@ [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "bacon", 2 ], - [ "seasoning_salt", 15 ], + [ "bacon", 1 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ], [ "sauerkraut", 1 ] ] @@ -5401,14 +5163,15 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 3, + "charges": 3, "time": 8000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ - [ [ "meat", 1 ], [ "rehydrated_meat", 1 ], [ "dry_meat", 1 ], [ "meat_canned", 1 ], [ "can_chicken", 2 ] ], + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 1 ] ], [ [ "tortilla_corn", 3 ] ], - [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] + [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -5418,14 +5181,15 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 3, + "charges": 3, "time": 8000, "book_learn": [ [ "cookbook_human", 2 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ - [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ], [ "human_canned", 1 ] ], + [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ], [ "human_canned", 1 ] ], [ [ "tortilla_corn", 3 ] ], - [ [ "salt", 10 ], [ "seasoning_salt", 10 ] ] + [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -5438,7 +5202,7 @@ "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], - "components": [ [ [ "cheese", 1 ], [ "can_cheese", 1 ], [ "cheese_hard", 1 ] ], [ [ "tortilla_corn", 2 ] ] ] + "components": [ [ [ "cheese", 2 ], [ "can_cheese", 2 ], [ "cheese_hard", 2 ] ], [ [ "tortilla_corn", 2 ] ] ] }, { "type": "recipe", @@ -5447,9 +5211,10 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "time": 1000, + "charges": 1, "autolearn": true, "batch_time_factors": [ 67, 5 ], - "qualities": [ { "id": "COOK", "level": 1, "amount": 1 } ], + "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "hotdogs_frozen", 1 ] ] ] }, @@ -5465,9 +5230,9 @@ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ - [ [ "hotdogs_frozen", 4 ] ], - [ [ "flatbread", 4 ], [ "bread", 4 ], [ "cornbread", 4 ], [ "wastebread", 4 ], [ "sourdough_bread", 4 ] ], - [ [ "ketchup", 4 ], [ "mustard", 4 ], [ "horseradish", 2 ], [ "sauerkraut", 1 ] ], + [ [ "hotdogs_frozen", 1 ] ], + [ [ "flatbread", 1 ], [ "bread", 1 ], [ "cornbread", 1 ], [ "wastebread", 1 ], [ "sourdough_bread", 1 ] ], + [ [ "ketchup", 1 ], [ "mustard", 1 ], [ "horseradish", 1 ], [ "sauerkraut", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, @@ -5483,10 +5248,10 @@ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ - [ [ "hotdogs_frozen", 1 ] ], + [ [ "hotdogs_frozen", 2 ] ], [ [ "chili", 1 ] ], - [ [ "flatbread", 4 ], [ "bread", 4 ], [ "cornbread", 4 ], [ "wastebread", 4 ], [ "sourdough_bread", 4 ] ], - [ [ "mustard", 4 ], [ "horseradish", 2 ], [ "sauerkraut", 1 ] ] + [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], + [ [ "mustard", 2 ], [ "horseradish", 1 ], [ "sauerkraut", 1 ], [ "onion", 1 ], [ "irradiated_onion", 1 ] ] ] }, { @@ -5497,6 +5262,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 25000, + "charges": 4, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5505,10 +5271,8 @@ [ "sausage", 1 ], [ "sausage_cooked", 1 ], [ "bratwurst_sausage", 1 ], - [ "meat", 1 ], - [ "rehydrated_meat", 1 ], + [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], - [ "meat_canned", 1 ], [ "can_chicken", 1 ] ], [ [ "tallow", 1 ], [ "lard", 1 ] ], @@ -5524,6 +5288,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 25000, + "charges": 4, "book_learn": [ [ "cookbook_human", 3 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5571,10 +5336,10 @@ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ - [ [ "hotdogs_frozen", 1 ] ], + [ [ "hotdogs_frozen", 2 ] ], [ [ "chili_human", 1 ] ], - [ [ "flatbread", 4 ], [ "bread", 4 ], [ "cornbread", 4 ], [ "wastebread", 4 ], [ "sourdough_bread", 4 ] ], - [ [ "mustard", 4 ], [ "horseradish", 2 ], [ "sauerkraut", 1 ] ] + [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], + [ [ "mustard", 2 ], [ "horseradish", 2 ], [ "sauerkraut", 1 ], [ "onion", 1 ], [ "irradiated_onion", 1 ] ] ] }, { @@ -5601,7 +5366,8 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 2, - "time": 3500, + "time": 1750, + "charges": 1, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5615,6 +5381,7 @@ "skill_used": "cooking", "difficulty": 3, "time": 8000, + "charges": 2, "book_learn": [ [ "cookbook_human", 3 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], @@ -5635,8 +5402,8 @@ [ "mustard", 1 ], [ "horseradish", 1 ], [ "mayonnaise", 1 ], - [ "bacon", 2 ], - [ "seasoning_salt", 15 ], + [ "bacon", 1 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ], [ "sauerkraut", 1 ] ] @@ -5674,7 +5441,7 @@ "components": [ [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], [ [ "sauce_red", 1 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 1 ], [ "tomato", 2 ] ], - [ [ "meat", 1 ], [ "rehydrated_meat", 1 ], [ "dry_meat", 1 ], [ "meat_canned", 1 ], [ "can_chicken", 2 ] ] + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 1 ] ] ] }, { @@ -5685,13 +5452,14 @@ "skill_used": "cooking", "difficulty": 1, "time": 8000, + "charges": 2, "book_learn": [ [ "cookbook_human", 1 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], [ [ "sauce_red", 1 ], [ "irradiated_tomato", 2 ], [ "can_tomato", 1 ], [ "tomato", 2 ] ], - [ [ "human_flesh", 1 ], [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ] ] + [ [ "human_flesh", 1 ], [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ] ] ] }, { @@ -5705,17 +5473,7 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], - [ - [ "meat_cooked", 1 ], - [ "lunchmeat", 4 ], - [ "bologna", 5 ], - [ "bacon", 2 ], - [ "fried_spam", 2 ], - [ "sausage", 1 ], - [ "sausage_cooked", 1 ], - [ "bratwurst_sausage", 1 ], - [ "meat_smoked", 1 ] - ] + [ [ "meat_cooked", 1, "LIST" ] ] ] }, { @@ -5797,10 +5555,11 @@ "category": "CC_FOOD", "subcategory": "CSC_FOOD_SNACK", "skill_used": "cooking", - "time": 5000, + "time": 2500, + "charges": 1, "autolearn": true, "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], - "components": [ [ [ "toasterpastryfrozen", 2 ] ] ] + "components": [ [ [ "toasterpastryfrozen", 1 ] ] ] }, { "type": "recipe", @@ -5809,6 +5568,7 @@ "subcategory": "CSC_FOOD_VEGGI", "skill_used": "cooking", "difficulty": 3, + "charges": 4, "time": 45000, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -5823,12 +5583,13 @@ "skill_used": "cooking", "difficulty": 4, "time": 18000, + "charges": 2, "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "can_tomato", 1 ], [ "irradiated_tomato", 1 ], [ "tomato", 1 ] ], - [ [ "salt", 5 ], [ "salt_water", 1 ], [ "saline", 5 ], [ "seasoning_salt", 5 ], [ "soysauce", 1 ] ], + [ [ "salt", 2 ], [ "salt_water", 1 ], [ "saline", 2 ], [ "seasoning_salt", 2 ], [ "soysauce", 1 ] ], [ [ "vinegar", 1 ] ] ] }, @@ -5870,8 +5631,8 @@ [ "onion", 2 ], [ "irradiated_onion", 2 ], [ "garlic_clove", 12 ], - [ "irradiated_carrot", 12 ], - [ "carrot", 12 ] + [ "irradiated_carrot", 4 ], + [ "carrot", 4 ] ], [ [ "vinegar", 1 ] ] ] @@ -5889,9 +5650,9 @@ "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "salt_water", 1 ], [ "saline", 5 ], [ "salt", 10 ] ], + [ [ "salt_water", 1 ], [ "saline", 2 ], [ "salt", 2 ] ], [ [ "jar_glass", 1 ] ], - [ [ "veggy", 2 ], [ "lettuce", 2 ], [ "veggy_wild", 2 ], [ "cabbage", 2 ] ] + [ [ "veggy", 1 ], [ "lettuce", 1 ], [ "veggy_wild", 1 ], [ "cabbage", 1 ] ] ] }, { @@ -5908,7 +5669,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "vinegar", 1 ] ], - [ [ "saline", 5 ], [ "salt", 10 ] ], + [ [ "saline", 1 ], [ "salt", 2 ] ], [ [ "jar_glass", 1 ] ], [ [ "cucumber", 6 ] ] ] @@ -5927,7 +5688,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "vinegar", 1 ] ], - [ [ "saline", 5 ], [ "salt", 10 ] ], + [ [ "saline", 1 ], [ "salt", 2 ] ], [ [ "jar_glass", 1 ] ], [ [ "boiled_egg", 6 ] ] ] @@ -5956,7 +5717,6 @@ "skill_used": "cooking", "difficulty": 6, "time": 30000, - "result_mult": 2, "autolearn": true, "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -5964,7 +5724,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ], [ "salt_water", 1 ], [ "saline", 5 ] ], [ [ "jar_glass", 1 ] ], - [ [ "meat", 2 ] ], + [ [ "meat", 1 ], [ "meat_scrap", 10 ] ], [ [ "vinegar", 1 ] ] ] }, @@ -6000,7 +5760,6 @@ "skill_used": "cooking", "difficulty": 6, "time": 30000, - "result_mult": 2, "book_learn": [ [ "cookbook_human", 6 ] ], "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -6008,7 +5767,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ], [ "salt_water", 1 ], [ "saline", 5 ] ], [ [ "jar_glass", 1 ] ], - [ [ "human_flesh", 2 ] ], + [ [ "human_flesh", 1 ] ], [ [ "vinegar", 1 ] ] ] }, @@ -6032,6 +5791,7 @@ "skill_used": "cooking", "difficulty": 2, "time": 30000, + "charges": 3, "autolearn": true, "batch_time_factors": [ 80, 4 ], "qualities": [ { "id": "COOK", "level": 2 } ], @@ -6082,8 +5842,8 @@ [ [ "flour", 3 ] ], [ [ "yeast", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ], [ "can_coconut", 1 ] ], - [ [ "powder_eggs", 10 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], - [ [ "sugar", 5 ] ], + [ [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "sugar", 2 ] ], [ [ "cooking_oil", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] @@ -6100,46 +5860,44 @@ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "components": [ [ - [ "lettuce", 1 ], - [ "irradiated_lettuce", 1 ], - [ "broccoli", 1 ], - [ "irradiated_broccoli", 1 ], - [ "dandelion_cooked", 1 ], - [ "veggy_wild_cooked", 1 ], + [ "lettuce", 2 ], + [ "irradiated_lettuce", 2 ], + [ "broccoli", 2 ], + [ "irradiated_broccoli", 2 ], + [ "dandelion_cooked", 2 ], + [ "veggy_wild_cooked", 2 ], [ "sauerkraut", 2 ], - [ "irradiated_cabbage", 1 ], - [ "cabbage", 1 ] + [ "irradiated_cabbage", 2 ], + [ "cabbage", 2 ] ], [ - [ "cucumber", 2 ], - [ "irradiated_cucumber", 2 ], - [ "tomato", 2 ], + [ "cucumber", 1 ], + [ "irradiated_cucumber", 1 ], + [ "tomato", 1 ], [ "can_tomato", 1 ], - [ "irradiated_tomato", 2 ], - [ "carrot", 12 ], - [ "irradiated_carrot", 12 ], - [ "celery", 2 ], - [ "irradiated_celery", 2 ], - [ "pineapple", 2 ], - [ "irradiated_pineapple", 2 ], - [ "cranberries", 6 ], - [ "irradiated_cranberries", 6 ], - [ "raspberries", 2 ], - [ "irradiated_raspberries", 2 ], - [ "blackberries", 2 ], - [ "irradiated_blackberries", 2 ], - [ "sugar_beet", 2 ] + [ "irradiated_tomato", 1 ], + [ "carrot", 2 ], + [ "irradiated_carrot", 2 ], + [ "pineapple", 1 ], + [ "irradiated_pineapple", 1 ], + [ "cranberries", 1 ], + [ "irradiated_cranberries", 1 ], + [ "raspberries", 1 ], + [ "irradiated_raspberries", 1 ], + [ "blackberries", 1 ], + [ "irradiated_blackberries", 1 ], + [ "sugar_beet", 1 ] ], [ - [ "sugar", 5 ], + [ "sugar", 1 ], [ "mustard", 1 ], [ "mayonnaise", 1 ], - [ "seasoning_salt", 10 ], + [ "seasoning_salt", 1 ], [ "soysauce", 1 ], - [ "pepper", 10 ], - [ "garlic_clove", 3 ], + [ "pepper", 1 ], + [ "garlic_clove", 1 ], [ "vinegar", 1 ], - [ "seasoning_italian", 10 ] + [ "seasoning_italian", 1 ] ] ] }, @@ -6334,15 +6092,15 @@ [ [ "scrap", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], [ - [ "carrot", 6 ], - [ "plant_sac", 3 ], - [ "raw_dandelion", 2 ], - [ "broccoli", 2 ], - [ "zucchini", 2 ], - [ "celery", 2 ], - [ "onion", 2 ], - [ "veggy_wild", 2 ], - [ "lettuce", 4 ], + [ "carrot", 2 ], + [ "plant_sac", 1 ], + [ "raw_dandelion", 1 ], + [ "broccoli", 1 ], + [ "zucchini", 1 ], + [ "celery", 1 ], + [ "onion", 1 ], + [ "veggy_wild", 1 ], + [ "lettuce", 1 ], [ "potato_raw", 1 ], [ "pumpkin", 1 ], [ "cabbage", 1 ], @@ -6358,6 +6116,7 @@ "skill_used": "cooking", "difficulty": 4, "time": 24000, + "charges": 1, "autolearn": true, "contained": true, "batch_time_factors": [ 83, 5 ], @@ -6372,7 +6131,8 @@ [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ] ], [ [ "scrap", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ], - [ [ "sweet_fruit", 1, "LIST" ] ] + [ [ "sweet_fruit", 2, "LIST" ] ], + [ [ "sugar", 15 ] ] ] }, { @@ -6441,7 +6201,7 @@ [ "sausage_cooked", 2 ], [ "bratwurst_sausage", 2 ], [ "bacon", 2 ], - [ "powder_eggs", 10 ], + [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], @@ -6495,10 +6255,9 @@ [ "potato_raw", 1 ], [ "celery", 1 ], [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "veggy_green", 1, "LIST" ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -6509,31 +6268,7 @@ [ "dandelion_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ - [ "irradiated_tomato", 2 ], - [ "can_tomato", 2 ], - [ "tomato", 2 ], - [ "pumpkin", 2 ], - [ "irradiated_pumpkin", 2 ], - [ "irradiated_broccoli", 2 ], - [ "broccoli", 2 ], - [ "irradiated_zucchini", 2 ], - [ "zucchini", 2 ], - [ "potato_irradiated", 2 ], - [ "potato_raw", 2 ], - [ "irradiated_onion", 2 ], - [ "onion", 2 ], - [ "irradiated_carrot", 12 ], - [ "carrot", 12 ], - [ "veggy", 2 ], - [ "dry_veggy", 2 ], - [ "mushroom", 2 ], - [ "dry_mushroom", 2 ], - [ "mushroom_cooked", 2 ], - [ "morel_cooked", 2 ], - [ "rehydrated_veggy", 2 ], - [ "veggy_wild", 2 ] - ] + [ [ "veggy_any", 1, "LIST" ] ] ] }, { @@ -6567,10 +6302,9 @@ [ "potato_raw", 1 ], [ "celery", 1 ], [ "irradiated_celery", 1 ], - [ "cabbage", 1 ], - [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "veggy_green", 1, "LIST" ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -6581,7 +6315,7 @@ [ "dandelion_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ [ "meat", 2 ], [ "rehydrated_meat", 2 ], [ "dry_meat", 2 ], [ "meat_canned", 2 ], [ "can_chicken", 2 ] ] + [ [ "meat_red", 1, "LIST" ], [ "dry_meat", 1 ], [ "can_chicken", 1 ] ] ] }, { @@ -6603,6 +6337,7 @@ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "can_sealer", -1 ] ] ], + "//": "This recipe currently has issues with not being able to give it a result_mult or charges. As such, limited ingredients will make it function with the values for meat.", "components": [ [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ] ], [ [ "scrap", 1 ] ], @@ -6617,18 +6352,17 @@ [ "irradiated_celery", 1 ], [ "cabbage", 1 ], [ "irradiated_cabbage", 1 ], - [ "sauerkraut", 2 ], - [ "powder_eggs", 5 ], + [ "sauerkraut", 1 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], [ "raw_beans", 1 ], [ "dry_rice", 1 ], - [ "can_beans", 1 ], [ "beans_cooked", 1 ], [ "acorns_cooked", 1 ] ], - [ [ "dry_hflesh", 2 ], [ "rehydrated_hflesh", 2 ], [ "human_flesh", 2 ] ] + [ [ "dry_hflesh", 1 ], [ "rehydrated_hflesh", 1 ], [ "human_flesh", 1 ] ] ] }, { @@ -6690,7 +6424,7 @@ [ "cornmeal", 1 ], [ "milk_powder", 1 ], [ "crackers", 2 ], - [ "powder_eggs", 5 ], + [ "powder_eggs", 1 ], [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ], [ "dry_beans", 1 ], @@ -6706,12 +6440,12 @@ [ "acorns_cooked", 1 ] ], [ - [ "fish", 2 ], - [ "dry_fish", 2 ], - [ "salted_fish", 3 ], - [ "fish_smoked", 2 ], + [ "fish", 1 ], + [ "dry_fish", 1 ], + [ "salted_fish", 1 ], + [ "fish_smoked", 1 ], [ "fish_pickled", 1 ], - [ "salted_fish", 2 ], + [ "salted_fish", 1 ], [ "fish_canned", 1 ], [ "can_salmon", 1 ], [ "can_tuna", 1 ] @@ -6741,6 +6475,7 @@ "skills_required": [ "survival", 1 ], "difficulty": 3, "time": 35000, + "charges": 3, "batch_time_factors": [ 50, 4 ], "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], @@ -6752,10 +6487,10 @@ [ "meal_chitin_piece", 1 ], [ "cornmeal", 1 ], [ "oatmeal", 1 ], - [ "powder_eggs", 10 ], + [ "powder_eggs", 2 ], [ "milk_powder", 2 ], [ "protein_powder", 1 ], - [ "wild_herbs", 20 ] + [ "wild_herbs", 5 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] @@ -6829,7 +6564,7 @@ "components": [ [ [ "flatbread", 2 ], [ "bread", 2 ], [ "cornbread", 2 ], [ "wastebread", 2 ], [ "sourdough_bread", 2 ] ], [ [ "cucumber", 1 ], [ "irradiated_cucumber", 1 ] ], - [ [ "mayonnaise", 1 ], [ "mustard", 1 ], [ "horseradish", 2 ], [ "seasoning_salt", 5 ] ] + [ [ "mayonnaise", 1 ], [ "mustard", 1 ], [ "horseradish", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -6987,9 +6722,10 @@ "subcategory": "CSC_FOOD_DRINKS", "skill_used": "cooking", "time": 3000, + "charges": 4, "autolearn": true, "flags": [ "BLIND_HARD" ], - "components": [ [ [ "bum_wine", 2 ], [ "wine_cabernet", 2 ], [ "wine_noir", 2 ] ], [ [ "cola", 1 ] ] ] + "components": [ [ [ "bum_wine", 2 ], [ "wine_cabernet", 2 ], [ "wine_chardonnay", 2 ], [ "wine_noir", 2 ] ], [ [ "cola", 1 ] ] ] }, { "type": "recipe", @@ -6999,6 +6735,7 @@ "skill_used": "cooking", "difficulty": 1, "time": 4000, + "charges": 10, "autolearn": true, "flags": [ "BLIND_HARD" ], "components": [ @@ -7074,6 +6811,7 @@ "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 1, + "charges": 5, "time": 20000, "autolearn": true, "qualities": [ { "id": "BOIL", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], @@ -7097,9 +6835,8 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "stomach", 1 ], [ "stomach_large", 1 ] ], - [ [ "offal", 1 ], [ "liver", 1 ], [ "lung", 1 ], [ "kidney", 1 ] ], - [ [ "oatmeal", 1 ], [ "buckwheat", 1 ] ], - [ [ "fat", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] + [ [ "offal", 1 ], [ "liver", 2 ], [ "lung", 2 ], [ "kidney", 2 ] ], + [ [ "oatmeal", 2 ], [ "buckwheat", 1 ] ] ] }, { @@ -7121,9 +6858,8 @@ "components": [ [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "stomach", 2 ], [ "stomach_large", 1 ] ], - [ [ "offal", 2 ], [ "liver", 2 ], [ "lung", 2 ], [ "kidney", 2 ] ], - [ [ "oatmeal", 2 ], [ "buckwheat", 2 ] ], - [ [ "fat", 2 ], [ "tallow", 2 ], [ "lard", 2 ] ] + [ [ "offal", 2 ], [ "liver", 4 ], [ "lung", 4 ], [ "kidney", 4 ] ], + [ [ "oatmeal", 4 ], [ "buckwheat", 1 ] ] ] }, { @@ -7135,6 +6871,7 @@ "difficulty": 3, "skills_required": [ "tailor", 1 ], "time": 30000, + "charges": 2, "book_learn": [ [ "cookbook_human", 3 ] ], "batch_time_factors": [ 50, 4 ], "using": [ [ "sewing_standard", 2 ] ], @@ -7143,7 +6880,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "hstomach", 1 ] ], - [ [ "oatmeal", 1 ], [ "buckwheat", 1 ] ], + [ [ "oatmeal", 2 ], [ "buckwheat", 1 ] ], [ [ "human_flesh", 1 ], [ "rehydrated_hflesh", 1 ], @@ -7152,8 +6889,7 @@ [ "jerky_human", 1 ], [ "hflesh_salted", 1 ], [ "human_smoked", 1 ] - ], - [ [ "fat", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ] + ] ] }, { @@ -7182,14 +6918,15 @@ "skill_used": "cooking", "difficulty": 3, "time": 20000, + "charges": 5, "book_learn": [ [ "family_cookbook", 6 ], [ "scots_cookbook", 2 ] ], "batch_time_factors": [ 50, 4 ], "qualities": [ { "id": "BOIL", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ - [ [ "oatmeal", 1 ], [ "flour", 1 ], [ "buckwheat", 1 ] ], + [ [ "oatmeal", 1 ], [ "flour", 5 ], [ "buckwheat", 1 ] ], [ [ "dry_fruit", 1 ] ], - [ [ "fat", 1 ], [ "tallow", 1 ], [ "lard", 1 ] ], + [ [ "tallow", 1 ], [ "lard", 1 ] ], [ [ "sugar", 10 ], [ "syrup", 1 ], @@ -7212,7 +6949,7 @@ "time": 10000, "autolearn": true, "qualities": [ { "id": "CONTAIN", "level": 1 } ], - "components": [ [ [ "honey_bottled", 5 ] ], [ [ "sugar", 20 ] ] ] + "components": [ [ [ "honey_bottled", 5 ] ], [ [ "sugar", 35 ] ] ] }, { "type": "recipe", @@ -7236,15 +6973,16 @@ "skill_used": "cooking", "difficulty": 1, "time": 5000, + "charges": 4, "book_learn": [ [ "family_cookbook", 2 ] ], "qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ - [ [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ] ], - [ [ "sugar", 10 ] ], + [ [ "sugar", 4 ] ], [ [ "con_milk", 1 ] ], - [ [ "cinnamon", 5 ] ] + [ [ "cinnamon", 2 ] ] ] }, { @@ -7254,17 +6992,18 @@ "subcategory": "CSC_FOOD_DRINKS", "skill_used": "cooking", "difficulty": 1, + "charges": 6, "time": 5000, "book_learn": [ [ "family_cookbook", 2 ] ], "qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ - [ [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "eggs_bird", 1, "LIST" ], [ "egg_reptile", 1 ] ], [ [ "milk", 1 ], [ "milk_powder", 1 ] ], - [ [ "sugar", 10 ] ], + [ [ "sugar", 4 ] ], [ [ "con_milk", 1 ] ], [ [ "hard_liquor_chem", 1, "LIST" ] ], - [ [ "cinnamon", 5 ] ] + [ [ "cinnamon", 2 ] ] ] }, { @@ -7282,8 +7021,8 @@ "components": [ [ [ "chocolate", 1 ] ], [ [ "milk", 1 ], [ "con_milk", 1 ], [ "milk_powder", 1 ] ], - [ [ "water", 1 ] ], - [ [ "sugar", 10 ] ] + [ [ "water", 1 ], [ "water_clean", 1 ] ], + [ [ "sugar", 5 ] ] ] }, { @@ -7295,16 +7034,17 @@ "difficulty": 1, "time": 5000, "book_learn": [ [ "family_cookbook", 2 ] ], - "result_mult": 2, + "charges": 6, "qualities": [ { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "chocolate", 1 ] ], [ [ "milk", 1 ], [ "con_milk", 1 ], [ "milk_powder", 1 ] ], [ [ "water", 1 ] ], - [ [ "sugar", 10 ] ], - [ [ "chilly-p", 5 ] ], - [ [ "cinnamon", 5 ] ] + [ [ "sugar", 5 ] ], + [ [ "chilly-p", 1 ] ], + [ [ "cinnamon", 1 ] ], + [ [ "water", 6 ], [ "water_clean", 6 ] ] ] }, { @@ -7332,7 +7072,7 @@ "autolearn": true, "batch_time_factors": [ 83, 3 ], "tools": [ [ [ "food_processor", 20 ] ] ], - "components": [ [ [ "corn", 2 ] ] ] + "components": [ [ [ "corn", 1 ], [ "irradiated_corn", 1 ] ] ] }, { "result": "flour", @@ -7342,19 +7082,20 @@ "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 2, + "charges": 15, "time": 11250, "autolearn": true, "batch_time_factors": [ 83, 3 ], "tools": [ [ [ "food_processor", 20 ] ] ], "components": [ [ - [ "wheat", 2 ], - [ "buckwheat", 2 ], - [ "barley", 2 ], + [ "wheat", 1 ], + [ "buckwheat", 1 ], + [ "barley", 1 ], [ "acorns_cooked", 2 ], - [ "oats", 2 ], - [ "starch", 2 ], - [ "dry_rice", 6 ] + [ "oats", 4 ], + [ "starch", 1 ], + [ "dry_rice", 5 ] ] ] }, @@ -7511,22 +7252,25 @@ "subcategory": "CSC_FOOD_MEAT", "skill_used": "cooking", "difficulty": 4, + "charges": 2, "time": 70000, "autolearn": true, "batch_time_factors": [ 83, 3 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "tools": [ [ [ "char_smoker", 10 ] ] ], "components": [ - [ [ "offal", 4 ], [ "liver", 4 ], [ "kidney", 4 ], [ "lung", 4 ], [ "brain", 4 ] ], + [ [ "offal", 4 ], [ "meat_nofish", 2, "LIST" ], [ "brain", 10 ] ], [ [ "stomach", 2 ], [ "stomach_large", 1 ] ], [ [ "salt_water", 4 ], - [ "saline", 20 ], - [ "salt", 20 ], - [ "soysauce", 4 ], - [ "seasoning_salt", 20 ], - [ "pepper", 40 ], - [ "chem_saltpetre", 8 ] + [ "saline", 8 ], + [ "salt", 4 ], + [ "chem_saltpetre", 2 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ] ] }, @@ -7542,16 +7286,18 @@ "batch_time_factors": [ 50, 3 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ], "components": [ - [ [ "offal", 4 ], [ "liver", 4 ], [ "kidney", 4 ], [ "lung", 4 ], [ "brain", 4 ] ], + [ [ "offal", 4 ], [ "meat_nofish", 2, "LIST" ], [ "brain", 10 ] ], [ [ "stomach", 2 ], [ "stomach_large", 1 ] ], [ [ "salt_water", 4 ], - [ "saline", 20 ], - [ "salt", 20 ], - [ "soysauce", 4 ], - [ "seasoning_salt", 20 ], - [ "pepper", 40 ], - [ "chem_saltpetre", 8 ] + [ "saline", 8 ], + [ "salt", 4 ], + [ "chem_saltpetre", 2 ], + [ "soysauce", 2 ], + [ "seasoning_italian", 4 ], + [ "wild_herbs", 4 ], + [ "seasoning_salt", 4 ], + [ "pepper", 4 ] ] ] }, @@ -7579,6 +7325,7 @@ "skill_used": "cooking", "skills_required": [ [ "survival", 1 ] ], "difficulty": 2, + "charges": 15, "time": 67500, "autolearn": true, "batch_time_factors": [ 83, 3 ], @@ -7586,13 +7333,13 @@ "tools": [ [ [ "mortar_pestle", -1 ] ] ], "components": [ [ - [ "wheat", 2 ], - [ "buckwheat", 2 ], - [ "barley", 2 ], + [ "wheat", 1 ], + [ "buckwheat", 1 ], + [ "barley", 1 ], [ "acorns_cooked", 2 ], - [ "oats", 2 ], - [ "starch", 2 ], - [ "dry_rice", 6 ] + [ "oats", 4 ], + [ "starch", 1 ], + [ "dry_rice", 5 ] ] ] }, @@ -7609,7 +7356,7 @@ "autolearn": true, "batch_time_factors": [ 83, 3 ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], - "components": [ [ [ "corn", 2 ], [ "irradiated_corn", 2 ] ] ] + "components": [ [ [ "corn", 1 ], [ "irradiated_corn", 1 ] ] ] }, { "type": "recipe", @@ -7666,13 +7413,14 @@ "skill_used": "cooking", "difficulty": 5, "time": 45000, + "charges": 3, "autolearn": false, "book_learn": [ [ "cookbook_human", 5 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ - [ [ "tallow", 2 ], [ "lard", 2 ] ], - [ [ "jerky_human", 6 ], [ "dry_hflesh", 2 ], [ "human_smoked", 2 ] ], + [ [ "tallow", 1 ], [ "lard", 1 ] ], + [ [ "jerky_human", 1 ], [ "dry_hflesh", 1 ], [ "human_smoked", 1 ] ], [ [ "dry_veggy", 2 ], [ "dry_fruit", 2 ], @@ -7701,6 +7449,7 @@ "skill_used": "cooking", "difficulty": 1, "time": 10000, + "charges": 4, "autolearn": true, "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "food_processor", 40 ] ] ], @@ -7771,7 +7520,7 @@ "components": [ [ [ "water", 16 ], [ "water_clean", 16 ] ], [ [ "jar_3l_glass", 1 ] ], - [ [ "mushroom", 12 ], [ "veggy", 12 ], [ "veggy_wild", 12 ] ] + [ [ "mushroom", 24 ], [ "veggy_any_uncooked", 12, "LIST" ] ] ] }, { @@ -7790,7 +7539,12 @@ "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ] ], - "components": [ [ [ "water", 16 ], [ "water_clean", 16 ] ], [ [ "jar_3l_glass", 1 ] ], [ [ "sweet_fruit", 12, "LIST" ] ] ] + "components": [ + [ [ "water", 16 ], [ "water_clean", 16 ] ], + [ [ "jar_3l_glass", 1 ] ], + [ [ "sweet_fruit", 24, "LIST" ] ], + [ [ "sugar", 180 ] ] + ] }, { "type": "recipe", @@ -8000,7 +7754,7 @@ [ "sausage_cooked", 24 ], [ "bratwurst_sausage", 24 ], [ "bacon", 24 ], - [ "powder_eggs", 120 ], + [ "powder_eggs", 24 ], [ "eggs_bird", 24, "LIST" ], [ "egg_reptile", 24 ] ], @@ -8049,10 +7803,9 @@ [ "potato_raw", 12 ], [ "celery", 12 ], [ "irradiated_celery", 12 ], - [ "cabbage", 12 ], - [ "irradiated_cabbage", 12 ], - [ "sauerkraut", 24 ], - [ "powder_eggs", 60 ], + [ "veggy_green", 12, "LIST" ], + [ "sauerkraut", 12 ], + [ "powder_eggs", 12 ], [ "eggs_bird", 12, "LIST" ], [ "egg_reptile", 12 ], [ "can_beans", 12 ], @@ -8066,7 +7819,7 @@ [ "dandelion_cooked", 12 ], [ "acorns_cooked", 12 ] ], - [ [ "meat", 24 ], [ "rehydrated_meat", 24 ], [ "dry_meat", 24 ], [ "meat_canned", 24 ], [ "can_chicken", 24 ] ] + [ [ "meat_red", 10, "LIST" ], [ "dry_meat", 10 ], [ "can_chicken", 20 ] ] ] }, { @@ -8095,10 +7848,9 @@ [ "potato_raw", 12 ], [ "celery", 12 ], [ "irradiated_celery", 12 ], - [ "cabbage", 12 ], - [ "irradiated_cabbage", 12 ], - [ "sauerkraut", 24 ], - [ "powder_eggs", 60 ], + [ "veggy_green", 12, "LIST" ], + [ "sauerkraut", 12 ], + [ "powder_eggs", 12 ], [ "eggs_bird", 12, "LIST" ], [ "egg_reptile", 12 ], [ "can_beans", 12 ], @@ -8112,31 +7864,7 @@ [ "dandelion_cooked", 12 ], [ "acorns_cooked", 12 ] ], - [ - [ "irradiated_tomato", 24 ], - [ "can_tomato", 24 ], - [ "tomato", 24 ], - [ "pumpkin", 24 ], - [ "irradiated_pumpkin", 24 ], - [ "irradiated_broccoli", 24 ], - [ "broccoli", 24 ], - [ "irradiated_zucchini", 24 ], - [ "zucchini", 24 ], - [ "potato_raw", 24 ], - [ "potato_irradiated", 24 ], - [ "onion", 24 ], - [ "irradiated_onion", 24 ], - [ "carrot", 144 ], - [ "irradiated_carrot", 144 ], - [ "veggy", 24 ], - [ "dry_veggy", 24 ], - [ "mushroom", 24 ], - [ "dry_mushroom", 24 ], - [ "mushroom_cooked", 24 ], - [ "morel_cooked", 24 ], - [ "rehydrated_veggy", 24 ], - [ "veggy_wild", 24 ] - ] + [ [ "veggy_any", 12, "LIST" ] ] ] }, { @@ -8167,7 +7895,7 @@ [ "irradiated_celery", 12 ], [ "cabbage", 12 ], [ "irradiated_cabbage", 12 ], - [ "sauerkraut", 74 ], + [ "sauerkraut", 12 ], [ "can_corn", 12 ], [ "corn", 12 ], [ "irradiated_corn", 12 ], @@ -8180,7 +7908,7 @@ [ "veggy_wild", 12 ], [ "veggy", 12 ], [ "dry_veggy", 12 ], - [ "powder_eggs", 60 ], + [ "powder_eggs", 12 ], [ "eggs_bird", 12, "LIST" ], [ "egg_reptile", 12 ], [ "can_beans", 12 ], @@ -8199,7 +7927,7 @@ [ "flour", 12 ], [ "cornmeal", 12 ], [ "milk_powder", 12 ], - [ "crackers", 24 ], + [ "crackers", 12 ], [ "dry_beans", 12 ], [ "raw_beans", 12 ], [ "dry_rice", 12 ], @@ -8212,10 +7940,10 @@ [ "acorns_cooked", 12 ] ], [ - [ "fish", 24 ], - [ "dry_fish", 24 ], - [ "salted_fish", 18 ], - [ "fish_smoked", 24 ], + [ "fish", 12 ], + [ "dry_fish", 12 ], + [ "salted_fish", 12 ], + [ "fish_smoked", 12 ], [ "fish_pickled", 12 ], [ "fish_canned", 12 ], [ "can_salmon", 12 ], @@ -8251,8 +7979,8 @@ [ "irradiated_celery", 12 ], [ "cabbage", 12 ], [ "irradiated_cabbage", 12 ], - [ "sauerkraut", 24 ], - [ "powder_eggs", 60 ], + [ "sauerkraut", 12 ], + [ "powder_eggs", 12 ], [ "eggs_bird", 12, "LIST" ], [ "egg_reptile", 12 ], [ "can_beans", 12 ], @@ -8265,7 +7993,7 @@ [ "beans_cooked", 12 ], [ "acorns_cooked", 12 ] ], - [ [ "dry_hflesh", 24 ], [ "rehydrated_hflesh", 24 ], [ "human_flesh", 24 ] ] + [ [ "dry_hflesh", 12 ], [ "rehydrated_hflesh", 12 ], [ "human_flesh", 12 ] ] ] }, { @@ -8379,7 +8107,7 @@ "components": [ [ [ "jar_3l_glass", 1 ] ], [ [ "water", 22 ], [ "water_clean", 22 ] ], - [ [ "can_tomato", 12 ], [ "tomato", 12 ], [ "irradiated_tomato", 12 ] ] + [ [ "can_tomato", 24 ], [ "tomato", 36 ], [ "irradiated_tomato", 36 ] ] ] }, { @@ -8393,14 +8121,13 @@ "skill_used": "cooking", "difficulty": 4, "time": 40000, - "result_mult": 2, "autolearn": true, "batch_time_factors": [ 80, 4 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ] ], "components": [ [ [ "jar_glass", 1 ] ], - [ [ "can_tomato", 2 ], [ "tomato", 2 ], [ "irradiated_tomato", 2 ] ], + [ [ "can_tomato", 4 ], [ "tomato", 8 ], [ "irradiated_tomato", 8 ] ], [ [ "water", 12 ], [ "water_clean", 12 ] ] ] }, @@ -8426,7 +8153,7 @@ "components": [ [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ] ], [ [ "scrap", 1 ] ], - [ [ "can_tomato", 1 ], [ "tomato", 1 ], [ "irradiated_tomato", 1 ] ], + [ [ "can_tomato", 2 ], [ "tomato", 4 ], [ "irradiated_tomato", 4 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index 40f479872f9fb..b12747d2e7d42 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -1120,8 +1120,9 @@ "skill_used": "fabrication", "time": 2000, "autolearn": true, + "using": [ [ "steel_tiny", 2 ] ], "qualities": [ { "id": "HAMMER", "level": 2 } ], - "components": [ [ [ "steel_chunk", 2 ], [ "scrap", 6 ] ], [ [ "duct_tape", 30 ] ] ] + "components": [ [ [ "duct_tape", 30 ], [ "2x4", 1 ], [ "stick", 1 ] ] ] }, { "type": "recipe", @@ -1142,7 +1143,7 @@ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], - "components": [ [ [ "plastic_chunk", 2 ] ] ] + "components": [ [ [ "plastic_chunk", 2 ], [ "2x4", 1 ], [ "stick", 2 ] ] ] }, { "type": "recipe", @@ -2384,9 +2385,10 @@ "difficulty": 2, "time": 300000, "autolearn": true, + "using": [ [ "forging_standard", 5 ], [ "steel_tiny", 1 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ], - "components": [ [ [ "steel_chunk", 1 ], [ "scrap", 3 ] ], [ [ "plastic_chunk", 1 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "plastic_chunk", 1 ], [ "scrap", 1 ] ] ] }, { "type": "recipe", @@ -2397,10 +2399,11 @@ "difficulty": 4, "time": 320000, "autolearn": true, + "using": [ [ "forging_standard", 10 ], [ "steel_standard", 1 ] ], "book_learn": [ [ "manual_mechanics", 3 ], [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ], - "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ], [ [ "plastic_chunk", 1 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "components": [ [ [ "plastic_chunk", 1 ], [ "2x4", 1 ], [ "stick", 1 ] ] ] }, { "type": "recipe", @@ -2412,10 +2415,11 @@ "note": "not so much the engineering as hardening the edge", "time": 380000, "autolearn": true, + "using": [ [ "forging_standard", 15 ], [ "steel_standard", 2 ] ], "book_learn": [ [ "manual_mechanics", 4 ], [ "manual_fabrication", 4 ], [ "textbook_fabrication", 4 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ], - "components": [ [ [ "steel_lump", 2 ], [ "steel_chunk", 8 ], [ "scrap", 24 ] ], [ [ "plastic_chunk", 2 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "plastic_chunk", 2 ], [ "2x4", 1 ], [ "stick", 2 ] ] ] }, { "type": "recipe", @@ -2426,10 +2430,11 @@ "difficulty": 4, "time": 280000, "autolearn": true, + "using": [ [ "forging_standard", 10 ], [ "steel_standard", 2 ] ], "book_learn": [ [ "manual_fabrication", 2 ], [ "textbook_fabrication", 3 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ], - "components": [ [ [ "steel_lump", 2 ], [ "steel_chunk", 8 ], [ "scrap", 24 ] ], [ [ "2x4", 2 ], [ "stick", 4 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "2x4", 2 ], [ "stick", 4 ] ] ] }, { "type": "recipe", @@ -2440,15 +2445,10 @@ "difficulty": 7, "time": 320000, "autolearn": true, + "using": [ [ "forging_standard", 15 ], [ "steel_standard", 4 ] ], "book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ - [ [ "tongs", -1 ] ], - [ [ "swage", -1 ] ], - [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], - [ [ "forge", 350 ], [ "oxy_torch", 70 ] ] - ], - "components": [ [ [ "steel_lump", 4 ], [ "steel_chunk", 16 ], [ "scrap", 48 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] }, { "type": "recipe", @@ -2459,10 +2459,11 @@ "difficulty": 5, "time": 320000, "autolearn": true, + "using": [ [ "forging_standard", 10 ], [ "steel_standard", 2 ] ], "book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ], - "components": [ [ [ "steel_lump", 2 ], [ "steel_chunk", 8 ], [ "scrap", 24 ] ], [ [ "2x4", 2 ], [ "stick", 4 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "2x4", 2 ], [ "stick", 4 ] ] ] }, { "type": "recipe", @@ -2473,10 +2474,11 @@ "difficulty": 6, "time": 360000, "autolearn": true, + "using": [ [ "forging_standard", 15 ], [ "steel_standard", 3 ] ], "book_learn": [ [ "textbook_fabrication", 4 ] ], "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ], - "components": [ [ [ "steel_lump", 3 ], [ "steel_chunk", 9 ], [ "scrap", 27 ] ], [ [ "2x4", 3 ], [ "stick", 6 ] ] ] + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "2x4", 3 ], [ "stick", 6 ] ] ] }, { "type": "recipe", @@ -3357,7 +3359,7 @@ "skill_used": "fabrication", "time": 10000, "autolearn": true, - "tools": [ [ [ "surface_heat", 6, "LIST" ], [ "soldering_standard", 10, "LIST" ] ] ], + "tools": [ [ [ "surface_heat", 6, "LIST" ], [ "soldering_iron", 10 ] ] ], "components": [ [ [ "cash_card", 4 ] ] ] }, { diff --git a/data/json/recipes/recipe_weapon.json b/data/json/recipes/recipe_weapon.json index 4ab1d84fd389a..1a47d499c36da 100644 --- a/data/json/recipes/recipe_weapon.json +++ b/data/json/recipes/recipe_weapon.json @@ -2394,7 +2394,8 @@ [ "scrap", 6 ] ], [ - [ "plastic_chunk", 2 ] + [ "plastic_chunk", 2 ], + [ "scrap", 2 ] ] ] },{ diff --git a/data/json/recipes/recipes.json b/data/json/recipes/recipes.json index e1037325f7638..8508d99a6b0f0 100644 --- a/data/json/recipes/recipes.json +++ b/data/json/recipes/recipes.json @@ -5,7 +5,8 @@ "//": "This is just a dummy category. No recipes should be added in here.", "recipe_subcategories": [ "CSC_*_FAVORITE", - "CSC_*_RECENT" + "CSC_*_RECENT", + "CSC_*_HIDDEN" ] }, { diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 9421622961739..c887649745d49 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -376,6 +376,7 @@ "random_point_max": 50, "random_point_size_scalar": 100, "trailhead_chance": 1, + "trailhead_road_distance": 6, "trail_center_variance": 3, "trail_width_offset_min": 1, "trail_width_offset_max": 3, @@ -402,7 +403,8 @@ "mx_grove": 500, "mx_shrubbery": 500, "mx_clearcut": 125, - "mx_pond": 125 + "mx_pond": 125, + "mx_clay_deposit": 125 } }, "forest_thick": { @@ -426,7 +428,8 @@ "mx_grove": 500, "mx_shrubbery": 500, "mx_clearcut": 125, - "mx_pond": 125 + "mx_pond": 125, + "mx_clay_deposit": 125 } }, "forest_water": { @@ -448,7 +451,8 @@ "mx_grove": 500, "mx_shrubbery": 500, "mx_clearcut": 125, - "mx_pond": 125 + "mx_pond": 125, + "mx_clay_deposit": 125 } }, "field": { @@ -626,6 +630,15 @@ "s_petstore": 1 } }, - "weather": { "base_temperature": 6.5, "base_humidity": 66.0, "base_pressure": 1015.0, "base_acid": 0.0 } + "weather": { + "base_temperature": 6.5, + "base_humidity": 66.0, + "base_pressure": 1015.0, + "base_acid": 0.0, + "base_wind": 5.7, + "base_wind_distrib_peaks": 30, + "base_wind_season_variation": 64 + }, + "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ ] } } ] diff --git a/data/json/requirements/cooking_components.json b/data/json/requirements/cooking_components.json index 3364f14351fc8..c4301b166c476 100644 --- a/data/json/requirements/cooking_components.json +++ b/data/json/requirements/cooking_components.json @@ -54,6 +54,18 @@ ] ] }, + { + "id": "cheap_wine", + "type": "requirement", + "//": "Cheap and improvised wines.", + "components": [ [ [ "fruit_wine", 1 ], [ "bum_wine", 1 ], [ "dandelion_wine", 1 ], [ "pine_wine", 1 ] ] ] + }, + { + "id": "worthy_wine", + "type": "requirement", + "//": "More expensive wines.", + "components": [ [ [ "wine_riesling", 1 ], [ "wine_chardonnay", 1 ], [ "wine_cabernet", 1 ], [ "wine_noir", 1 ] ] ] + }, { "id": "hard_liquor_chem", "type": "requirement", @@ -66,6 +78,71 @@ "//": "Hard liquor, ethanol, and denaturalized alcohol - Do not use in comestibles", "components": [ [ [ "hard_liquor_chem", 1, "LIST" ], [ "denat_alcohol", 125 ] ] ] }, + { + "id": "meat_red", + "type": "requirement", + "//": "Anything you might consider raw 'red' meat. About 300-400kcal of meat.", + "components": [ [ [ "meat", 1 ], [ "meat_scrap", 10 ], [ "rehydrated_meat", 1 ], [ "meat_canned", 1 ] ] ] + }, + { + "id": "meat_nofish", + "type": "requirement", + "//": "Any type of raw meat except for fish. About 300-400kcal of meat.", + "components": [ + [ + [ "meat_red", 1, "LIST" ], + [ "liver", 5 ], + [ "kidney", 5 ], + [ "lung", 5 ], + [ "sweetbread", 5 ], + [ "bacon", 4 ], + [ "lunchmeat", 5 ], + [ "bologna", 5 ], + [ "can_spam", 4 ], + [ "can_chicken", 1 ], + [ "meat_pickled", 1 ], + [ "dry_meat", 1 ], + [ "jerky", 1 ], + [ "meat_smoked", 1 ], + [ "meat_salted", 1 ] + ] + ] + }, + { + "id": "meat_cooked", + "type": "requirement", + "//": "meat you'd put on a sandwich", + "components": [ + [ + [ "meat_cooked", 1 ], + [ "meat_pickled", 1 ], + [ "meat_smoked", 1 ], + [ "meat_salted", 1 ], + [ "dry_meat", 1 ], + [ "rehydrated_meat", 1 ], + [ "jerky", 1 ], + [ "bacon", 1 ], + [ "lunchmeat", 2 ], + [ "bologna", 5 ], + [ "can_spam", 4 ], + [ "fried_spam", 4 ], + [ "can_chicken", 1 ], + [ "fish_cooked", 1 ], + [ "fish_smoked", 1 ], + [ "can_herring", 1 ], + [ "can_salmon", 1 ], + [ "can_tuna", 1 ], + [ "can_sardine", 1 ], + [ "can_clams", 1 ], + [ "fish_pickled", 1 ], + [ "cracklins", 1 ], + [ "meat_aspic", 1 ], + [ "sausage", 1 ], + [ "sausage_cooked", 1 ], + [ "bratwurst_sausage", 1 ] + ] + ] + }, { "id": "seasoning_mild", "type": "requirement", @@ -90,15 +167,15 @@ [ "apple", 1 ], [ "apricot", 1 ], [ "banana", 1 ], - [ "blackberries", 6 ], - [ "blueberries", 6 ], - [ "cherries", 6 ], - [ "cranberries", 6 ], + [ "blackberries", 1 ], + [ "blueberries", 1 ], + [ "cherries", 1 ], + [ "cranberries", 1 ], [ "grapefruit", 1 ], - [ "grapes", 6 ], + [ "grapes", 1 ], [ "kiwi", 1 ], [ "mango", 1 ], - [ "melon", 2 ], + [ "melon", 1 ], [ "orange", 1 ], [ "papaya", 1 ], [ "peach", 1 ], @@ -106,11 +183,11 @@ [ "pineapple", 1 ], [ "plums", 1 ], [ "pomegranate", 1 ], - [ "raspberries", 6 ], - [ "strawberries", 6 ], - [ "huckleberries", 6 ], - [ "mulberries", 6 ], - [ "elderberries", 6 ], + [ "raspberries", 1 ], + [ "strawberries", 1 ], + [ "huckleberries", 1 ], + [ "mulberries", 1 ], + [ "elderberries", 1 ], [ "watermelon", 1 ] ] ] @@ -124,15 +201,15 @@ [ "irradiated_apple", 1 ], [ "irradiated_apricot", 1 ], [ "irradiated_banana", 1 ], - [ "irradiated_blackberries", 6 ], - [ "irradiated_blueberries", 6 ], + [ "irradiated_blackberries", 1 ], + [ "irradiated_blueberries", 1 ], [ "irradiated_cherries", 1 ], - [ "irradiated_cranberries", 6 ], + [ "irradiated_cranberries", 1 ], [ "irradiated_grapefruit", 1 ], - [ "irradiated_grapes", 2 ], + [ "irradiated_grapes", 1 ], [ "irradiated_kiwi", 1 ], [ "irradiated_mango", 1 ], - [ "irradiated_melon", 2 ], + [ "irradiated_melon", 1 ], [ "irradiated_orange", 1 ], [ "irradiated_papaya", 1 ], [ "irradiated_peach", 1 ], @@ -140,11 +217,11 @@ [ "irradiated_pineapple", 1 ], [ "irradiated_plums", 1 ], [ "irradiated_pomegranate", 1 ], - [ "irradiated_raspberries", 6 ], - [ "irradiated_strawberries", 6 ], - [ "irradiated_huckleberries", 6 ], - [ "irradiated_mulberries", 6 ], - [ "irradiated_elderberries", 6 ], + [ "irradiated_raspberries", 1 ], + [ "irradiated_strawberries", 1 ], + [ "irradiated_huckleberries", 1 ], + [ "irradiated_mulberries", 1 ], + [ "irradiated_elderberries", 1 ], [ "irradiated_watermelon", 1 ] ] ] @@ -174,6 +251,73 @@ ] ] }, + { + "id": "veggy_green", + "type": "requirement", + "//": "anything you would consider a leafy green vegetable", + "components": [ + [ + [ "cabbage", 1 ], + [ "irradiated_cabbage", 1 ], + [ "cattail_stalk", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ], + [ "raw_dandelion", 1 ], + [ "rehydrated_veggy", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ], + [ "veggy_salted", 1 ] + ] + ] + }, + { + "id": "veggy_any_uncooked", + "type": "requirement", + "components": [ + [ + [ "broccoli", 1 ], + [ "irradiated_broccoli", 1 ], + [ "cabbage", 1 ], + [ "irradiated_cabbage", 1 ], + [ "carrot", 2 ], + [ "irradiated_carrot", 2 ], + [ "cattail_stalk", 1 ], + [ "celery", 1 ], + [ "irradiated_celery", 1 ], + [ "corn", 1 ], + [ "irradiated_corn", 1 ], + [ "cucumber", 1 ], + [ "irradiated_cucumber", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ], + [ "onion", 1 ], + [ "irradiated_onion", 1 ], + [ "plant_sac", 1 ], + [ "potato_raw", 1 ], + [ "potato_irradiated", 1 ], + [ "pumpkin", 1 ], + [ "irradiated_pumpkin", 1 ], + [ "raw_dandelion", 1 ], + [ "rhubarb", 1 ], + [ "irradiated_rhubarb", 1 ], + [ "sugar_beet", 1 ], + [ "tomato", 1 ], + [ "irradiated_tomato", 1 ], + [ "rehydrated_veggy", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ], + [ "zucchini", 1 ], + [ "irradiated_zucchini", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ] + ] + ] + }, + { + "id": "veggy_any", + "type": "requirement", + "components": [ [ [ "dandelion_cooked", 1 ], [ "veggy_any_uncooked", 1, "LIST" ], [ "veggy_canned", 1 ], [ "veggy_salted", 1 ] ] ] + }, { "id": "wash_liquor", "type": "requirement", @@ -183,7 +327,7 @@ { "id": "weak_liquor", "type": "requirement", - "//": "Weak liquor - necessarily comestible and low proof, not necessarily hish quality", + "//": "Weak liquor - necessarily comestible and low proof, not necessarily high quality", "components": [ [ [ "beer", 1 ], diff --git a/data/json/scenarios/scenarios.json b/data/json/scenarios/scenarios.json index 28ab7603361a6..a73d4732b6e44 100644 --- a/data/json/scenarios/scenarios.json +++ b/data/json/scenarios/scenarios.json @@ -251,7 +251,8 @@ "CHAOTIC", "ALCMET", "LIGHT_BONES", - "CHITIN" + "CHITIN", + "ELECTRORECEPTORS" ], "flags": [ "LONE_START" ] }, diff --git a/data/json/techniques.json b/data/json/techniques.json index 077197984d784..bc341d4744c95 100644 --- a/data/json/techniques.json +++ b/data/json/techniques.json @@ -1347,5 +1347,52 @@ "You phase-strike %s", " phase-strikes %s" ] + },{ + "type" : "technique", + "id" : "tec_sojutsu_push", + "name" : "Push", + "min_melee" : 1, + "mult_bonuses" : [ + ["movecost", 0.0], + ["damage", "bash", 0.5], + ["damage", "cut", 0.5], + ["damage", "stab", 0.5] + ], + "unarmed_allowed" : false, + "block_counter": true, + "knockback_dist" : 1, + "messages" : [ + "You push %s away", + " pushes %s away" + ] + },{ + "type" : "technique", + "id" : "tec_sojutsu_trip", + "name" : "Trip", + "min_melee" : 2, + "unarmed_allowed" : false, + "down_dur" : 2, + "messages" : [ + "You deftly trip %s", + " deftly trips %s" + ] + },{ + "type" : "technique", + "id" : "tec_sojutsu_skewer", + "name" : "Skewer", + "min_melee" : 4, + "mult_bonuses" : [ + ["damage", "bash", 0.0], + ["damage", "cut", 1.5], + ["damage", "stab", 1.5] + ], + "unarmed_allowed" : false, + "crit_tec" : true, + "knockback_dist" : 1, + "stun_dur" : 2, + "messages" : [ + "You brutally skewer %s", + " brutally skewers %s" + ] } ] diff --git a/data/json/terrain.json b/data/json/terrain.json index 2730f2880eca4..8a0789da4d4cd 100644 --- a/data/json/terrain.json +++ b/data/json/terrain.json @@ -330,7 +330,7 @@ "symbol": ".", "color": "brown", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "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 } }, { @@ -518,7 +518,7 @@ "symbol": ".", "color": "brown", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100 } }, { @@ -541,7 +541,7 @@ "symbol": ".", "color": "green", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "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 } }, { @@ -552,7 +552,7 @@ "symbol": ".", "color": "white", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "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 } }, { @@ -564,7 +564,7 @@ "symbol": ",", "color": "green", "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "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 } }, { @@ -576,7 +576,7 @@ "symbol": ",", "color": "brown_green", "move_cost": 5, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "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 } }, { @@ -588,7 +588,7 @@ "symbol": ".", "color": "brown", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } }, { @@ -600,7 +600,7 @@ "symbol": ".", "color": "light_green", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } }, { @@ -611,7 +611,7 @@ "symbol": "o", "color": "white", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } }, { @@ -782,7 +782,7 @@ "symbol": ".", "color": "brown", "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "PLOWABLE" ], "bash": { "sound": "SMASH!", "ter_set": "t_null", @@ -1264,6 +1264,32 @@ ] } }, + { + "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": [ 5, 10 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, { "type": "terrain", "id": "t_reinforced_door_glass_o", @@ -1290,6 +1316,32 @@ ] } }, + { + "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": [ 5, 10 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, { "type": "terrain", "id": "t_bars", @@ -1336,6 +1388,29 @@ "items": [ { "item": "2x4", "prob": 25 }, { "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, + "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": "nail", "charges": [ 6, 12 ] } ] }, + "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": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ] + } + }, { "type": "terrain", "id": "t_door_c_peep", @@ -1401,6 +1476,39 @@ ] } }, + { + "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, + "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 ] } + ] + } + }, { "type": "terrain", "id": "t_door_b_peep", @@ -1463,6 +1571,33 @@ ] } }, + { + "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": "nail", "charges": [ 6, 12 ] } ] }, + "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", @@ -1818,6 +1953,30 @@ }, "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", @@ -1837,6 +1996,25 @@ "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", @@ -2142,6 +2320,26 @@ "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, + "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 } ] + } + }, { "type": "terrain", "id": "t_door_metal_o", @@ -2162,6 +2360,26 @@ "items": [ { "item": "scrap", "count": [ 12, 24 ] }, { "item": "steel_plate", "prob": 75 } ] } }, + { + "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 } ] + } + }, { "type": "terrain", "id": "t_door_metal_c_peep", @@ -2336,6 +2554,29 @@ "items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ] } }, + { + "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": [ 5, 10 ] } ] + } + }, { "type": "terrain", "id": "t_door_glass_o", @@ -2359,6 +2600,29 @@ "items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ] } }, + { + "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": [ 5, 10 ] } ] + } + }, { "type": "terrain", "id": "t_door_glass_frosted_c", @@ -2370,6 +2634,17 @@ "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", @@ -2381,6 +2656,17 @@ "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", @@ -5630,6 +5916,24 @@ "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] } }, + { + "type": "terrain", + "id": "t_gates_mech_control_lab", + "name": "mechanical winch", + "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", @@ -5648,6 +5952,24 @@ "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] } }, + { + "type": "terrain", + "id": "t_gates_control_concrete_lab", + "name": "mechanical winch", + "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", @@ -5666,6 +5988,24 @@ "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] } }, + { + "type": "terrain", + "id": "t_gates_control_brick_lab", + "name": "mechanical winch", + "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", @@ -5684,6 +6024,24 @@ "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] } }, + { + "type": "terrain", + "id": "t_gates_control_metal_lab", + "name": "control lever", + "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", @@ -6646,7 +7004,7 @@ "symbol": "#", "color": "brown_green", "move_cost": 2, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE" ], + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE", "HIDE_PLACE" ], "bash": { "str_min": 4, "str_max": 60, diff --git a/data/json/test_regions.json b/data/json/test_regions.json index 351852851f2cb..6dad48821dfe7 100644 --- a/data/json/test_regions.json +++ b/data/json/test_regions.json @@ -76,6 +76,7 @@ "random_point_max": 50, "random_point_size_scalar": 100, "trailhead_chance": 1, + "trailhead_road_distance": 6, "trail_center_variance": 3, "trail_width_offset_min": 1, "trail_width_offset_max": 3, @@ -111,7 +112,8 @@ "s_lot": 6 } }, - "weather": { "base_temperature": 8.0, "base_humidity": 40.0, "base_pressure": 1015.0, "base_acid": 0.0 } + "weather": { "base_temperature": 8.0, "base_humidity": 40.0, "base_pressure": 1015.0, "base_acid": 0.0 }, + "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ ] } }, { "type": "overmap_terrain", diff --git a/data/json/vehicle_groups.json b/data/json/vehicle_groups.json index d799c094c316a..9f12e4ee773cc 100644 --- a/data/json/vehicle_groups.json +++ b/data/json/vehicle_groups.json @@ -142,13 +142,15 @@ [ "suv_electric", 200 ], [ "suv_electric", 120 ], [ "pickup", 300 ], - [ "portable_generator", 50 ] + [ "portable_generator", 50 ], + [ "bicycle", 150 ], + [ "dirt_bike", 125 ] ] }, { "type": "vehicle_group", "id": "dirtlot", - "vehicles": [ [ "quad_bike", 100 ], [ "pickup", 300 ] ] + "vehicles": [ [ "quad_bike", 100 ], [ "pickup", 300 ], [ "dirt_bike", 100 ] ] }, { "type": "vehicle_group", @@ -316,7 +318,8 @@ [ "electric_car", 100 ], [ "suv", 800 ], [ "suv_electric", 100 ], - [ "suv_electric", 100 ], + [ "suv_electric_rack", 100 ], + [ "dirt_bike", 50 ], [ "car_mini", 200 ], [ "beetle", 200 ], [ "pickup", 700 ], diff --git a/data/json/vehicle_parts.json b/data/json/vehicle_parts.json index 82fe36ab3475d..97c45820acf7e 100644 --- a/data/json/vehicle_parts.json +++ b/data/json/vehicle_parts.json @@ -1239,6 +1239,32 @@ { "item": "solar_cell", "count": [ 1, 4 ] } ] }, + { + "type": "vehicle_part", + "id": "wind_turbine", + "name": "wind turbine", + "symbol": "T", + "color": "yellow", + "broken_symbol": "X", + "broken_color": "yellow", + "damage_modifier": 10, + "durability": 15, + "description": "A small wind turbine. Will slowly recharge the vehicle's electrical power when exposed to the wind.", + "epower": 60, + "item": "wind_turbine", + "location": "on_roof", + "requirements": { + "install": { "time": 15000, "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": [ "WIND_TURBINE"], + "breaks_into": [ + { "item": "steel_lump", "count": [ 2, 4 ] }, + { "item": "steel_chunk", "count": [ 2, 4 ] }, + { "item": "scrap", "count": [ 2, 4 ] } + ] + }, { "type": "vehicle_part", "id": "reinforced_solar_panel", diff --git a/data/json/vehicleparts/wheel.json b/data/json/vehicleparts/wheel.json index e25db996b8ab1..0fd9a5cf2294c 100644 --- a/data/json/vehicleparts/wheel.json +++ b/data/json/vehicleparts/wheel.json @@ -13,6 +13,8 @@ "damage_modifier": 70, "breaks_into": [ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "steel_chunk", "count": [ 2, 3 ] } ], "rolling_resistance": 0.375, + "wheel_type": "rigid", + "contact_area": 80, "flags": [ "WHEEL" ] }, { @@ -35,6 +37,8 @@ ], "rolling_resistance": 0.125, "flags": [ "ARMOR", "OBSTACLE", "WHEEL", "STEERABLE" ], + "wheel_type": "rigid", + "contact_area": 400, "damage_reduction": { "all": 10000 } }, { @@ -56,6 +60,8 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 1, + "wheel_type": "standard", + "contact_area": 153, "flags": [ "WHEEL" ] }, { @@ -65,6 +71,23 @@ "name": "wheel (steerable)", "extend": { "flags": [ "STEERABLE" ] } }, + { + "id": "wheel_slick", + "copy-from": "wheel", + "type": "vehicle_part", + "name": "racing slick", + "item": "wheel_slick", + "wheel_type": "racing", + "contact_area": 180 + }, + { + "id": "wheel_slick_steerable", + "copy-from": "wheel_slick", + "type": "vehicle_part", + "name": "racing slick (steerable)", + "item": "wheel_slick", + "extend": { "flags": [ "STEERABLE" ] } + }, { "id": "wheel_armor", "type": "vehicle_part", @@ -84,6 +107,8 @@ { "item": "scrap", "count": [ 2, 3 ] } ], "rolling_resistance": 0.6, + "wheel_type": "standard", + "contact_area": 480, "flags": [ "WHEEL" ] }, { @@ -109,6 +134,8 @@ "folded_volume": 9, "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], "rolling_resistance": 1.62, + "wheel_type": "off-road", + "contact_area": 30, "flags": [ "WHEEL", "STABLE", "TOOL_WRENCH", "STEERABLE", "FOLDABLE" ] }, { @@ -131,6 +158,8 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 0.45, + "wheel_type": "standard", + "contact_area": 40, "flags": [ "WHEEL", "FOLDABLE", "TOOL_WRENCH" ] }, { @@ -140,6 +169,22 @@ "name": "bicycle wheel (steerable)", "extend": { "flags": [ "STEERABLE" ] } }, + { + "id": "wheel_bicycle_or", + "copy-from": "wheel_bicycle", + "type": "vehicle_part", + "name": "off-road bicycle wheel", + "item": "wheel_bicycle_or", + "wheel_area": 36, + "wheel_type": "off-road" + }, + { + "id": "wheel_bicycle_or_steerable", + "copy-from": "wheel_bicycle_or", + "type": "vehicle_part", + "name": "off-road bicycle wheel (steerable)", + "extend": { "flags": [ "STEERABLE" ] } + }, { "id": "wheel_caster", "type": "vehicle_part", @@ -160,6 +205,8 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 29, + "wheel_type": "rigid", + "contact_area": 4, "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ] }, { @@ -181,6 +228,8 @@ { "item": "scrap", "count": [ 1, 3 ] } ], "rolling_resistance": 1.9, + "wheel_type": "standard", + "contact_area": 66, "flags": [ "WHEEL" ] }, { @@ -190,6 +239,22 @@ "name": "motorbike wheel (steerable)", "extend": { "flags": [ "STEERABLE" ] } }, + { + "id": "wheel_motorbike_or", + "copy-from": "wheel_motorbike", + "type": "vehicle_part", + "name": "off-road motorbike wheel", + "item": "wheel_motorbike_or", + "contact_area": 60, + "wheel_type": "off-road" + }, + { + "id": "wheel_motorbike_or_steerable", + "copy-from": "wheel_motorbike_or", + "type": "vehicle_part", + "name": "off-road motorbike wheel (steerable)", + "extend": { "flags": [ "STEERABLE" ] } + }, { "id": "wheel_small", "type": "vehicle_part", @@ -206,6 +271,8 @@ "folded_volume": 9, "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], "rolling_resistance": 1.5, + "wheel_type": "racing", + "contact_area": 30, "flags": [ "WHEEL", "NO_JACK", "FOLDABLE" ] }, { @@ -235,6 +302,8 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 0.45, + "wheel_type": "standard", + "contact_area": 20, "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ] }, { @@ -257,6 +326,8 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 1.95, + "wheel_type": "racing", + "contact_area": 40, "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ] }, { @@ -278,6 +349,8 @@ { "item": "scrap", "count": [ 2, 3 ] } ], "rolling_resistance": 0.575, + "wheel_type": "standard", + "contact_area": 360, "flags": [ "WHEEL" ] }, { @@ -287,6 +360,22 @@ "name": "wide wheel (steerable)", "extend": { "flags": [ "STEERABLE" ] } }, + { + "id": "wheel_wide_or", + "copy-from": "wheel_wide", + "type": "vehicle_part", + "name": "off-road wide wheel", + "item": "wheel_wide_or", + "wheel_type": "off-road", + "contact_area": 320 + }, + { + "id": "wheel_wide_or_steerable", + "copy-from": "wheel_wide_or", + "type": "vehicle_part", + "name": "off-road wide wheel (steerable)", + "extend": { "flags": [ "STEERABLE" ] } + }, { "id": "wheel_wood", "type": "vehicle_part", @@ -307,6 +396,8 @@ "repair": { "skills": [ [ "mechanics", 2 ] ], "time": 5000, "using": [ [ "adhesive", 1 ] ] } }, "rolling_resistance": 2.15, + "wheel_type": "rigid", + "contact_area": 60, "flags": [ "WHEEL" ] }, { diff --git a/data/json/vehicles/bikes.json b/data/json/vehicles/bikes.json index cb84a58b6e1b4..f84db1594d15a 100644 --- a/data/json/vehicles/bikes.json +++ b/data/json/vehicles/bikes.json @@ -10,7 +10,17 @@ { "x": -1, "y": 0, "parts": [ "xlframe_vertical", "wheel_bicycle", "basketsm" ] } ] }, - + { + "id": "bicycle_dirt", + "type": "vehicle", + "name": "Dirt bike", + "blueprint": [ "o#o" ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "xlframe_vertical_2", "saddle", "horn_bicycle", "foot_pedals" ] }, + { "x": 1, "y": 0, "parts": [ "xlframe_vertical", "wheel_bicycle_or_steerable" ] }, + { "x": -1, "y": 0, "parts": [ "xlframe_vertical", "wheel_bicycle_or" ] } + ] + }, { "id": "bicycle_electric", "type": "vehicle", @@ -88,10 +98,10 @@ { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "saddle", "controls", "controls_electronic", "horn_car" ] }, { "x": 1, "y": 0, "parts": [ "frame_cover","engine_vtwin", "alternator_motorbike", "battery_motorbike", "headlight", { "part": "tank_small", "fuel": "gasoline" }, "plating_steel" ] }, { "x": -1, "y": 0, "parts": [ "frame_horizontal", "muffler", "trunk" ] }, - { "x": 1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike_steerable" ] }, - { "x": 1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_steerable" ] }, - { "x": -1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike" ] }, - { "x": -1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike" ] } + { "x": 1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike_or_steerable" ] }, + { "x": 1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_or_steerable" ] }, + { "x": -1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_or" ] }, + { "x": -1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike_or" ] } ], "items": [ { "x": -1, "y": 0, "chance": 10, "items": [ "helmet_motor" ] } ] }, @@ -108,9 +118,9 @@ { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "saddle" ] }, { "x": 1, "y": 0, "part": "frame_cover" }, { "x": -1, "y": 0, "part": "frame_horizontal" }, - { "x": 1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_steerable" ] }, - { "x": -1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike" ] }, - { "x": -1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike" ] } + { "x": 1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_or_steerable" ] }, + { "x": -1, "y": -1, "parts": [ "frame_horizontal", "wheel_motorbike_or" ] }, + { "x": -1, "y": 1, "parts": [ "frame_horizontal", "wheel_motorbike_or" ] } ] }, { diff --git a/data/json/vehicles/cars.json b/data/json/vehicles/cars.json index 8acc9547118ae..52cc6910b85e6 100644 --- a/data/json/vehicles/cars.json +++ b/data/json/vehicles/cars.json @@ -530,14 +530,14 @@ { "x": -1, "y": 2, "part": "halfboard_vertical" }, { "x": -2, "y": -1, "part": "frame_horizontal" }, { "x": -2, "y": -1, "part": "halfboard_sw" }, - { "x": -2, "y": -1, "part": "wheel_steerable" }, + { "x": -2, "y": -1, "part": "wheel_slick_steerable" }, { "x": -2, "y": 0, "part": "frame_horizontal" }, { "x": -2, "y": 0, "part": "door_trunk" }, { "x": -2, "y": 1, "part": "frame_horizontal" }, { "x": -2, "y": 1, "part": "door_trunk" }, { "x": -2, "y": 2, "part": "frame_horizontal" }, { "x": -2, "y": 2, "part": "halfboard_se" }, - { "x": -2, "y": 2, "part": "wheel_steerable" } + { "x": -2, "y": 2, "part": "wheel_slick_steerable" } ], "items": [ { "x": 0, "y": 0, "chance": 10, "item_groups": [ "snacks_fancy" ] }, @@ -617,7 +617,7 @@ { "x": -2, "y": 2, "part": "halfboard_vertical" }, { "x": -3, "y": -1, "part": "frame_horizontal" }, { "x": -3, "y": -1, "part": "halfboard_sw" }, - { "x": -3, "y": -1, "part": "wheel_steerable" }, + { "x": -3, "y": -1, "part": "wheel_slick_steerable" }, { "x": -3, "y": 0, "part": "hdframe_horizontal" }, { "x": -3, "y": 0, "part": "halfboard_vertical_2" }, { "x": -3, "y": 0, "part": "engine_electric_enhanced" }, @@ -628,7 +628,7 @@ { "x": -3, "y": 1, "part": "plating_steel" }, { "x": -3, "y": 2, "part": "frame_horizontal" }, { "x": -3, "y": 2, "part": "halfboard_se" }, - { "x": -3, "y": 2, "part": "wheel_steerable" } + { "x": -3, "y": 2, "part": "wheel_slick_steerable" } ], "items": [ { "x": 0, "y": 0, "chance": 16, "items": [ "coke" ] }, @@ -702,14 +702,14 @@ { "x": -1, "y": 2, "part": "xlhalfboard_vertical" }, { "x": -2, "y": -1, "part": "xlframe_horizontal" }, { "x": -2, "y": -1, "part": "xlhalfboard_sw" }, - { "x": -2, "y": -1, "part": "wheel_steerable" }, + { "x": -2, "y": -1, "part": "wheel_slick_steerable" }, { "x": -2, "y": 0, "part": "xlframe_horizontal" }, { "x": -2, "y": 0, "part": "door_trunk" }, { "x": -2, "y": 1, "part": "xlframe_horizontal" }, { "x": -2, "y": 1, "part": "door_trunk" }, { "x": -2, "y": 2, "part": "xlframe_horizontal" }, { "x": -2, "y": 2, "part": "xlhalfboard_se" }, - { "x": -2, "y": 2, "part": "wheel_steerable" } + { "x": -2, "y": 2, "part": "wheel_slick_steerable" } ], "items": [ { "x": -1, "y": 0, "chance": 8, "items": [ "sm_extinguisher" ] } ] }, diff --git a/data/json/vehicles/farm.json b/data/json/vehicles/farm.json index a2c031390aa89..5edf471219b95 100644 --- a/data/json/vehicles/farm.json +++ b/data/json/vehicles/farm.json @@ -15,14 +15,13 @@ { "x": 3, "y": 0, "part": "reaper" }, { "x": -1, "y": 0, "parts": [ "frame_cross", "plow" ] }, { "x": -2, "y": 0, "part": "seed_drill" }, - { "x": -1, "y": 1, "parts": [ "frame_cross", "wheel_wide" ] }, - { "x": -1, "y": -1, "parts": [ "frame_cross", "wheel_wide" ] }, - { "x": 2, "y": 1, "parts": [ "frame_cross", "wheel_wide_steerable" ] }, - { "x": 2, "y": -1, "parts": [ "frame_cross", "wheel_wide_steerable" ] } + { "x": -1, "y": 1, "parts": [ "frame_cross", "wheel_wide_or" ] }, + { "x": -1, "y": -1, "parts": [ "frame_cross", "wheel_wide_or" ] }, + { "x": 2, "y": 1, "parts": [ "frame_cross", "wheel_wide_or_steerable" ] }, + { "x": 2, "y": -1, "parts": [ "frame_cross", "wheel_wide_or_steerable" ] } ], "items": [] }, - { "id": "autotractor", "type": "vehicle", @@ -48,14 +47,14 @@ { "x": 1, "y": -1, "part": "frame_vertical" }, { "x": 1, "y": -1, "part": "board_vertical" }, { "x": 2, "y": 1, "part": "frame_ne" }, - { "x": 2, "y": 1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": 2, "y": 1, "part": "board_ne" }, { "x": 2, "y": 0, "part": "frame_horizontal" }, { "x": 2, "y": 0, "part": "board_horizontal" }, { "x": 2, "y": 0, "part": "headlight" }, { "x": 2, "y": 0, "part": "omnicam" }, { "x": 2, "y": -1, "part": "frame_nw" }, - { "x": 2, "y": -1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": -1, "part": "wheel_wide_or_steerable" }, { "x": 2, "y": -1, "part": "board_nw" }, { "x": -1, "y": 1, "part": "frame_cross" }, { "x": -1, "y": 1, "part": "storage_battery_mount" }, @@ -73,14 +72,14 @@ { "x": -2, "y": 1, "part": "storage_battery_mount" }, { "x": -2, "y": 1, "part": "storage_battery_removable" }, { "x": -2, "y": 1, "part": "cargo_space" }, - { "x": -2, "y": 1, "part": "wheel_wide_steerable" }, + { "x": -2, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": -2, "y": 0, "part": "seed_drill_advanced" }, { "x": -2, "y": -1, "part": "frame_sw" }, { "x": -2, "y": -1, "part": "engine_electric" }, { "x": -2, "y": -1, "part": "storage_battery_mount" }, { "x": -2, "y": -1, "part": "storage_battery_removable" }, { "x": -2, "y": -1, "part": "cargo_space" }, - { "x": -2, "y": -1, "part": "wheel_wide_steerable" } + { "x": -2, "y": -1, "part": "wheel_wide_or_steerable" } ], "items": [] }, @@ -100,8 +99,8 @@ { "x": 2, "y": 0, "part": "halfboard_vertical" }, { "x": 2, "y": -1, "part": "frame_horizontal" }, { "x": 2, "y": 1, "part": "frame_horizontal" }, - { "x": 2, "y": -1, "part": "wheel_wide_steerable" }, - { "x": 2, "y": 1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": -1, "part": "wheel_wide_or_steerable" }, + { "x": 2, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": 1, "y": 0, "part": "frame_horizontal" }, { "x": 1, "y": 0, "part": "halfboard_vertical" }, { "x": 1, "y": 0, "part": "battery_car" }, @@ -116,8 +115,8 @@ { "x": -1, "y": 0, "part": "halfboard_vertical" }, { "x": -1, "y": 1, "part": "frame_horizontal" }, { "x": -1, "y": -1, "part": "frame_horizontal" }, - { "x": -1, "y": 1, "part": "wheel_wide" }, - { "x": -1, "y": -1, "part": "wheel_wide" }, + { "x": -1, "y": 1, "part": "wheel_wide_or" }, + { "x": -1, "y": -1, "part": "wheel_wide_or" }, { "x": -2, "y": 0, "part": "frame_cross" }, { "x": -2, "y": 1, "part": "frame_cross" }, { "x": -2, "y": -1, "part": "frame_cross" }, @@ -145,8 +144,8 @@ { "x": 2, "y": 0, "part": "halfboard_vertical" }, { "x": 2, "y": -1, "part": "frame_horizontal" }, { "x": 2, "y": 1, "part": "frame_horizontal" }, - { "x": 2, "y": -1, "part": "wheel_wide_steerable" }, - { "x": 2, "y": 1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": -1, "part": "wheel_wide_or_steerable" }, + { "x": 2, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": 1, "y": 0, "part": "frame_horizontal" }, { "x": 1, "y": 0, "part": "halfboard_vertical" }, { "x": 1, "y": 0, "part": "battery_car" }, @@ -161,8 +160,8 @@ { "x": -1, "y": 0, "part": "halfboard_vertical" }, { "x": -1, "y": 1, "part": "frame_horizontal" }, { "x": -1, "y": -1, "part": "frame_horizontal" }, - { "x": -1, "y": 1, "part": "wheel_wide" }, - { "x": -1, "y": -1, "part": "wheel_wide" }, + { "x": -1, "y": 1, "part": "wheel_wide_or" }, + { "x": -1, "y": -1, "part": "wheel_wide_or" }, { "x": -2, "y": 0, "part": "reaper" }, { "x": -2, "y": 1, "part": "frame_cross" }, { "x": -2, "y": -1, "part": "frame_cross" }, @@ -187,8 +186,8 @@ { "x": 2, "y": 0, "part": "halfboard_vertical" }, { "x": 2, "y": -1, "part": "frame_horizontal" }, { "x": 2, "y": 1, "part": "frame_horizontal" }, - { "x": 2, "y": -1, "part": "wheel_wide_steerable" }, - { "x": 2, "y": 1, "part": "wheel_wide_steerable" }, + { "x": 2, "y": -1, "part": "wheel_wide_or_steerable" }, + { "x": 2, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": 1, "y": 0, "part": "frame_horizontal" }, { "x": 1, "y": 0, "part": "halfboard_vertical" }, { "x": 1, "y": 0, "part": "battery_car" }, @@ -203,8 +202,8 @@ { "x": -1, "y": 0, "part": "halfboard_vertical" }, { "x": -1, "y": 1, "part": "frame_horizontal" }, { "x": -1, "y": -1, "part": "frame_horizontal" }, - { "x": -1, "y": 1, "part": "wheel_wide" }, - { "x": -1, "y": -1, "part": "wheel_wide" }, + { "x": -1, "y": 1, "part": "wheel_wide_or" }, + { "x": -1, "y": -1, "part": "wheel_wide_or" }, { "x": -2, "y": 0, "part": "seed_drill" }, { "x": -2, "y": 1, "part": "frame_cross" }, { "x": -2, "y": -1, "part": "frame_cross" }, diff --git a/data/json/vehicles/test.json b/data/json/vehicles/test.json index 11355768a58df..0535f7fd03add 100644 --- a/data/json/vehicles/test.json +++ b/data/json/vehicles/test.json @@ -95,17 +95,17 @@ "name": "Cross Split", "parts": [ { "x": 0, "y": 0, "part": "frame_vertical" }, - { "x": 0, "y": 0, "part": "seat" }, + { "x": 0, "y": 0, "parts": [ "seat", "foot_pedals" ] }, { "x": 0, "y": 1, "parts": [ "frame_vertical", "bed" ] }, { "x": 0, "y": 2, "parts": [ "frame_vertical", "bed" ] }, - { "x": 1, "y": 2, "parts": [ "frame_vertical", "bed" ] }, - { "x": -1, "y": 2, "parts": [ "frame_vertical", "bed" ] }, + { "x": 1, "y": 2, "parts": [ "frame_vertical", "bed", "wheel_steerable" ] }, + { "x": -1, "y": 2, "parts": [ "frame_vertical", "bed", "wheel_steerable" ] }, { "x": 0, "y": -1, "parts": [ "frame_vertical", "seat" ] }, { "x": 0, "y": -2, "parts": [ "frame_vertical", "seat" ] }, - { "x": 1, "y": -2, "parts": [ "frame_vertical", "seat" ] }, - { "x": -1, "y": -2, "parts": [ "frame_vertical", "seat" ] }, + { "x": 1, "y": -2, "parts": [ "frame_vertical", "seat", "wheel_steerable" ] }, + { "x": -1, "y": -2, "parts": [ "frame_vertical", "seat", "wheel_steerable" ] }, { "x": 1, "y": 0, "parts": [ "frame_vertical", "door" ] }, - { "x": -1, "y": 0, "parts": [ "frame_vertical", "engine_v6" ] } + { "x": -1, "y": 0, "parts": [ "frame_vertical", "engine_electric", "storage_battery" ] } ] }, { diff --git a/data/json/vehicles/utility.json b/data/json/vehicles/utility.json index 9dcd965f6867c..54a5934e73e19 100644 --- a/data/json/vehicles/utility.json +++ b/data/json/vehicles/utility.json @@ -307,10 +307,10 @@ { "x": 1, "y": -1, "part": "roof" }, { "x": 1, "y": 0, "part": "roof" }, { "x": 1, "y": 1, "part": "roof" }, - { "x": -1, "y": -1, "part": "wheel" }, - { "x": -1, "y": 1, "part": "wheel" }, - { "x": 1, "y": -1, "part": "wheel_steerable" }, - { "x": 1, "y": 1, "part": "wheel_steerable" }, + { "x": -1, "y": -1, "part": "wheel_wide_or" }, + { "x": -1, "y": 1, "part": "wheel_wide_or" }, + { "x": 1, "y": -1, "part": "wheel_wide_or_steerable" }, + { "x": 1, "y": 1, "part": "wheel_wide_or_steerable" }, { "x": -1, "y": -1, "part": "board_sw" }, { "x": -1, "y": 0, "part": "hatch" }, { "x": -1, "y": 1, "part": "board_se" }, diff --git a/data/json/vitamin.json b/data/json/vitamin.json index 9b2d827a7c914..dc7f366590f98 100644 --- a/data/json/vitamin.json +++ b/data/json/vitamin.json @@ -4,8 +4,8 @@ "type": "vitamin", "name": "Calcium", "deficiency": "hypocalcemia", - "min": -720, - "disease": [ [ -288, -336 ], [ -337, -384 ], [ -385, -720 ] ] + "min": -2880, + "disease": [ [ -1152, -1344 ], [ -1345, -1536 ], [ -1537, -2880 ] ] }, { "id": "iron", @@ -13,9 +13,9 @@ "name": "Iron", "excess": "hypervitaminosis", "deficiency": "anemia", - "min": -720, - "max": 216, - "disease": [ [ -288, -336 ], [ -337, -384 ], [ -385, -720 ] ] + "min": -2880, + "max": 864, + "disease": [ [ -1152, -1344 ], [ -1345, -1536 ], [ -1537, -2880 ] ] }, { "id": "vitA", @@ -23,24 +23,24 @@ "name": "Vitamin A", "excess": "hypervitaminosis", "deficiency": "hypovitA", - "min": -504, - "max": 216, - "disease": [ [ -240, -288 ], [ -289, -336 ], [ -337, -504 ] ] + "min": -2016, + "max": 864, + "disease": [ [ -480, -1152 ], [ -1153, -1344 ], [ -1345, -2016 ] ] }, { "id": "vitB", "type": "vitamin", "name": "Vitamin B12", "deficiency": "hypovitB", - "min": -336, - "disease": [ [ -168, -216, 1 ], [ -217, -264, 2 ], [ -265, -336, 3 ] ] + "min": -1344, + "disease": [ [ -672, -864, 1 ], [ -865, -1056, 2 ], [ -1057, -1344, 3 ] ] }, { "id": "vitC", "type": "vitamin", "name": "Vitamin C", "deficiency": "scurvy", - "min": -336, - "disease": [ [ -168, -216, 1 ], [ -217, -264, 2 ], [ -265, -336, 3 ] ] + "min": -1344, + "disease": [ [ -672, -864, 1 ], [ -865, -1056, 2 ], [ -1057, -1344, 3 ] ] } ] diff --git a/data/mods/CrazyCataclysm/crazy_comestibles.json b/data/mods/CrazyCataclysm/crazy_comestibles.json index 6bdc5cdb2b921..b19276f63e5f5 100644 --- a/data/mods/CrazyCataclysm/crazy_comestibles.json +++ b/data/mods/CrazyCataclysm/crazy_comestibles.json @@ -4,7 +4,7 @@ "type": "COMESTIBLE", "id": "sporeos", "name": "SpOreos", - "color": "gray", + "color": "dark_gray", "spoils_in": 0, "symbol": "%", "quench": 25, diff --git a/data/mods/DinoMod/dinosaur.json b/data/mods/DinoMod/dinosaur.json index 501785e0cbe9d..71f8f97898d81 100644 --- a/data/mods/DinoMod/dinosaur.json +++ b/data/mods/DinoMod/dinosaur.json @@ -1,674 +1,696 @@ [ - { - "type" : "SPECIES", - "id" : "DINOSAUR", - "anger_triggers" : ["PLAYER_WEAK"], - "fear_triggers" : ["SOUND", "FIRE"] - },{ - "type" : "MONSTER", - "id" : "mon_compsognathus", - "name": "Compsognathus", - "species":"DINOSAUR", - "default_faction":"compsognathus", - "symbol":"D", - "color":"green_yellow", - "volume": "30000 ml", - "weight": 40750, - "material":"flesh", - "aggression":-80, - "morale":-8, - "speed":140, - "melee_skill":4, - "melee_dice":1, - "melee_dice_sides":1, - "melee_cut":0, - "dodge":4, - "vision_day": 50, - "armor_bash":1, - "armor_cut":0, - "item_chance":0, - "luminance":0, - "hp":20, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A bipedal dinosaur about the size of a turkey. Its teeth and claws are small but sharp.", - "flags":["SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "BLEED", "WARM"], - "harvest": "mammal_leather", - "anger_triggers":["PLAYER_WEAK", "HURT"], - "fear_triggers":["PLAYER_CLOSE", "FIRE", "FRIEND_DIED" ], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_gallimimus", - "name": "Gallimimus", - "species":"DINOSAUR", - "default_faction":"gallimimus", - "symbol":"D", - "color":"light_green_yellow", - "volume": "62500 ml", - "weight": 81500, - "material":"flesh", - "aggression":-60, - "morale":-20, - "speed":150, - "melee_skill":2, - "melee_dice":1, - "melee_dice_sides":4, - "melee_cut":2, - "dodge":3, - "armor_bash":1, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":40, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A feathered bipedal dinosaur, standing as tall as a human. It looks somewhat like a reptilian ostrich.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM"], - "harvest": "dino_feather_leather", - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_titanis", - "name": "Titanis", - "species":"DINOSAUR", - "default_faction":"titanis", - "symbol":"D", - "color":"blue_green", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":-20, - "morale":60, - "speed":150, - "melee_skill":8, - "melee_dice":1, - "melee_dice_sides":8, - "melee_cut":2, - "dodge":1, - "armor_bash":1, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":60, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"It looks like a dodo, only much bigger, with longer, muscular legs and a predatory gleam in its eyes.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "GRABS", "KEENNOSE", "BLEED", "WARM"], - "harvest": "dino_feather_leather", - "anger_triggers":["STALK", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_spinosaurus", - "name": "Spinosaurus", - "species":"DINOSAUR", - "default_faction":"spinosaurus", - "symbol":"D", - "color":"red_white", - "volume": "875000 ml", - "weight": 200000, - "material":"flesh", - "aggression":100, - "morale":100, - "speed":130, - "melee_skill":15, - "melee_dice":3, - "melee_dice_sides":8, - "melee_cut":15, - "dodge":0, - "armor_bash":4, - "armor_cut":2, - "item_chance":0, - "luminance":0, - "hp":400, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A huge dinosaur about the size of a small house, with a ferocious crocodile-like head and a sail on its back.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "BLEED", "ATTACKMON", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["STALK", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_tyrannosaurus", - "name": "Tyrannosaurus rex", - "species":"DINOSAUR", - "default_faction":"t-rex", - "symbol":"D", - "color":"light_red_white", - "volume": "875000 ml", - "weight": 200000, - "material":"flesh", - "aggression":100, - "morale":100, - "speed":130, - "melee_skill":13, - "melee_dice":3, - "melee_dice_sides":6, - "melee_cut":13, - "dodge":0, - "armor_bash":4, - "armor_cut":2, - "item_chance":0, - "luminance":0, - "hp":300, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"Look at those TEETH!", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "BLEED", "ATTACKMON", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["STALK", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_triceratops", - "name": "Triceratops", - "species":"DINOSAUR", - "default_faction":"herbivore_dino", - "symbol":"D", - "color":"light_green_magenta", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":-50, - "morale":50, - "speed":80, - "melee_skill":12, - "melee_dice":2, - "melee_dice_sides":8, - "melee_cut":15, - "dodge":0, - "armor_bash":4, - "armor_cut":2, - "item_chance":0, - "luminance":0, - "hp":150, - "special_freq":[10], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A massive rhino-like dinosaur with a bony crest from which three large horns emerge.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["HURT"], - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_stegosaurus", - "name": "Stegosaurus", - "species":"DINOSAUR", - "default_faction":"herbivore_dino", - "symbol":"D", - "color":"green_magenta", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":-50, - "morale":-20, - "speed":40, - "melee_skill":7, - "melee_dice":2, - "melee_dice_sides":4, - "melee_cut":1, - "dodge":1, - "armor_bash":3, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":150, - "special_freq":[5], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A large quadruped dinosaur with plates on its back, and a spiked tail.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["HURT"], - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_ankylosaurus", - "name": "Ankylosaurus", - "species":"DINOSAUR", - "default_faction":"herbivore_dino", - "symbol":"D", - "color":"brown_magenta", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":-50, - "morale":30, - "speed":60, - "melee_skill":7, - "melee_dice":2, - "melee_dice_sides":4, - "melee_cut":1, - "dodge":1, - "armor_bash":6, - "armor_cut":4, - "item_chance":0, - "luminance":0, - "hp":120, - "special_freq":[7], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"This dinosaur looks like a giant prehistoric armadillo. Its tail ends in a massive spiked club of bone.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["HURT"], - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_allosaurus", - "name": "Allosaurus", - "species":"DINOSAUR", - "default_faction":"allosaurus", - "symbol":"D", - "color":"brown_white", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":80, - "morale":80, - "speed":110, - "melee_skill":11, - "melee_dice":3, - "melee_dice_sides":4, - "melee_cut":6, - "dodge":1, - "armor_bash":3, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":120, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A large predatory bipedal dinosaur, with tiger-like stripes on its broad back.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "BLEED", "ATTACKMON", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["STALK", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_eoraptor", - "name": "Eoraptor", - "species":"DINOSAUR", - "default_faction":"eoraptor", - "symbol":"D", - "color":"dark_gray_yellow", - "volume": "750 ml", - "weight": 1000, - "material":"flesh", - "aggression":-60, - "morale":-60, - "speed":200, - "melee_skill":1, - "melee_dice":1, - "melee_dice_sides":1, - "melee_cut":1, - "dodge":4, - "armor_bash":1, - "armor_cut":0, - "item_chance":0, - "luminance":0, - "hp":10, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A bipedal dinosaur about the size of a chicken. It roots around the undergrowth, scavenging on small animals and plants.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM"], - "harvest": "mammal_tiny", - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_velociraptor", - "name": "Velociraptor", - "species":"DINOSAUR", - "default_faction":"velociraptor", - "symbol":"D", - "color":"light_red_green", - "volume": "30000 ml", - "weight": 40750, - "material":"flesh", - "aggression":0, - "morale":20, - "speed":150, - "melee_skill":8, - "melee_dice":1, - "melee_dice_sides":6, - "melee_cut":2, - "dodge":3, - "armor_bash":1, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":30, - "special_freq":[5], - "death_function":"NORMAL", - "special_attack":["LEAP"], - "description":"A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM"], - "harvest": "dino_feather_leather", - "anger_triggers":["STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_deinonychus", - "name": "Deinonychus", - "species":"DINOSAUR", - "default_faction":"deinoychus", - "symbol":"D", - "color":"red_green", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":1, - "morale":50, - "speed":130, - "melee_skill":7, - "melee_dice":1, - "melee_dice_sides":8, - "melee_cut":4, - "dodge":2, - "armor_bash":1, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":60, - "special_freq":[5], - "death_function":"NORMAL", - "special_attack":["LEAP"], - "description":"A medium-sized bipedal dinosaur covered with feathers. At the end of each foot is a large sickle-like claw.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM"], - "harvest": "dino_feather_leather", - "anger_triggers":["STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_utahraptor", - "name": "Utahraptor", - "species":"DINOSAUR", - "default_faction":"utahraptor", - "symbol":"D", - "color":"dark_gray_white", - "volume": "92500 ml", - "weight": 120000, - "material":"flesh", - "aggression":30, - "morale":80, - "speed":100, - "melee_skill":10, - "melee_dice":2, - "melee_dice_sides":6, - "melee_cut":5, - "dodge":1, - "armor_bash":2, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":100, - "special_freq":[5], - "death_function":"NORMAL", - "special_attack":["LEAP"], - "description":"A large bipedal dinosaur with feathered arms, a long tail, and scythe-like claws.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM"], - "harvest": "dino_feather_leather", - "anger_triggers":["STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_parasaurolophus", - "name": "Parasaurolophus", - "species":"DINOSAUR", - "default_faction":"herbivore_dino", - "symbol":"D", - "color":"dark_gray_magenta", - "volume": "875000 ml", - "weight": 200000, - "material":"flesh", - "aggression":-40, - "morale":-10, - "speed":100, - "melee_skill":10, - "melee_dice":2, - "melee_dice_sides":6, - "melee_cut":2, - "dodge":0, - "armor_bash":4, - "armor_cut":4, - "item_chance":0, - "luminance":0, - "hp":300, - "special_freq":[10], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A huge mottled dinosaur with a blunt head crest. It contentedly strips leaves from a nearby shrub.", - "flags":["SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM"], - "harvest": "mammal_large_leather", - "anger_triggers":["HURT"], - "fear_triggers":["SOUND", "PLAYER_CLOSE", "FIRE"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_dimorphodon", - "name": "Dimorphodon", - "species":"DINOSAUR", - "default_faction":"dimorphodon", - "symbol":"D", - "color":"light_gray_yellow", - "volume": "30000 ml", - "weight": 40750, - "material":"flesh", - "aggression":-80, - "morale":-8, - "speed":110, - "melee_skill":5, - "melee_dice":2, - "melee_dice_sides":6, - "melee_cut":0, - "dodge":3, - "armor_bash":3, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "vision_day": 50, - "hp":30, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["NONE"], - "description":"A small flying reptile, circling overhead looking for prey.", - "flags":["SEES", "SMELLS", "HEARS", "FLIES", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "BLEED" ], - "harvest": "animal_noskin", - "fear_triggers":["PLAYER_CLOSE", "FIRE", "FRIEND_DIED"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type" : "MONSTER", - "id" : "mon_dilophosaurus", - "name": "Dilophosaurus", - "species":"DINOSAUR", - "default_faction":"dilophosaurus", - "symbol":"D", - "color":"magenta_green", - "volume": "62500 ml", - "weight": 81500, - "material":"flesh", - "aggression":10, - "morale":30, - "speed":100, - "melee_skill":4, - "melee_dice":1, - "melee_dice_sides":6, - "melee_cut":2, - "dodge":1, - "armor_bash":3, - "armor_cut":1, - "item_chance":0, - "luminance":0, - "hp":120, - "special_freq":[0], - "death_function":"NORMAL", - "special_attack":["BOOMER"], - "description":"A medium dinosaur with a sticky green bile dripping from its teeth.", - "flags":["SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM"], - "harvest": "mammal_leather", - "anger_triggers":["PLAYER_WEAK", "HURT"], - "fear_triggers":["SOUND", "FIRE"], - "placate_triggers":["MEAT"], - "categories":["DINOSAUR"] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_compsognathus", "freq" : 100, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_gallimimus", "freq" : 50, "cost_multiplier" : 0, "pack_size" : [4,8] }, - { "monster" : "mon_titanis", "freq" : 10, "cost_multiplier" : 10 }, - { "monster" : "mon_spinosaurus", "freq" : 1, "cost_multiplier" : 50 }, - { "monster" : "mon_tyrannosaurus", "freq" : 1, "cost_multiplier" : 40 }, - { "monster" : "mon_triceratops", "freq" : 3, "cost_multiplier" : 30, "pack_size" : [1,2] }, - { "monster" : "mon_stegosaurus", "freq" : 5, "cost_multiplier" : 20, "pack_size" : [2,4] }, - { "monster" : "mon_ankylosaurus", "freq" : 5, "cost_multiplier" : 20 }, - { "monster" : "mon_allosaurus", "freq" : 2, "cost_multiplier" : 30 }, - { "monster" : "mon_eoraptor", "freq" : 20, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_velociraptor", "freq" : 15, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_deinonychus", "freq" : 10, "cost_multiplier" : 15, "pack_size" : [1,2] }, - { "monster" : "mon_utahraptor", "freq" : 5, "cost_multiplier" : 30 }, - { "monster" : "mon_parasaurolophus", "freq" : 3, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_dimorphodon", "freq" : 50, "cost_multiplier" : 0, "pack_size" : [2,4] }, - { "monster" : "mon_dilophosaurus", "freq" : 15, "cost_multiplier" : 10, "pack_size" : [1,2] } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR_HARMLESS", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_compsognathus", "freq" : 100, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_gallimimus", "freq" : 50, "cost_multiplier" : 0, "pack_size" : [4,8] }, - { "monster" : "mon_eoraptor", "freq" : 20, "cost_multiplier" : 0, "pack_size" : [4,12] } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR_DANGEROUS", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_titanis", "freq" : 10, "cost_multiplier" : 10 }, - { "monster" : "mon_allosaurus", "freq" : 2, "cost_multiplier" : 30 }, - { "monster" : "mon_velociraptor", "freq" : 15, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_deinonychus", "freq" : 10, "cost_multiplier" : 15, "pack_size" : [1,2] }, - { "monster" : "mon_utahraptor", "freq" : 5, "cost_multiplier" : 30 }, - { "monster" : "mon_dilophosaurus", "freq" : 15, "cost_multiplier" : 10, "pack_size" : [1,2] } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR_FLY", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_dimorphodon", "freq" : 50, "cost_multiplier" : 0, "pack_size" : [2,4] } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR_MEGA_HERBIVORE", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_triceratops", "freq" : 3, "cost_multiplier" : 30, "pack_size" : [1,2] }, - { "monster" : "mon_stegosaurus", "freq" : 5, "cost_multiplier" : 20, "pack_size" : [2,4] }, - { "monster" : "mon_ankylosaurus", "freq" : 5, "cost_multiplier" : 20 }, - { "monster" : "mon_parasaurolophus", "freq" : 3, "cost_multiplier" : 10, "pack_size" : [2,4] } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_DINOSAUR_MEGA_CARNIVORE", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_spinosaurus", "freq" : 1, "cost_multiplier" : 50 }, - { "monster" : "mon_tyrannosaurus", "freq" : 1, "cost_multiplier" : 40 }, - { "monster" : "mon_allosaurus", "freq" : 2, "cost_multiplier" : 30 } - ] - },{ - "type":"monstergroup", - "name" : "GROUP_SWAMP", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_spinosaurus", "freq" : 1, "cost_multiplier" : 50 }, - { "monster" : "mon_tyrannosaurus", "freq" : 1, "cost_multiplier" : 40 }, - { "monster" : "mon_allosaurus", "freq" : 2, "cost_multiplier" : 30 } + { + "type": "SPECIES", + "id": "DINOSAUR", + "anger_triggers": [ "PLAYER_WEAK" ], + "fear_triggers": [ "SOUND", "FIRE" ] + }, + { + "type": "MONSTER", + "id": "mon_compsognathus", + "name": "Compsognathus", + "species": "DINOSAUR", + "default_faction": "compsognathus", + "symbol": "D", + "color": "green_yellow", + "volume": "30000 ml", + "weight": 40750, + "material": "flesh", + "aggression": -80, + "morale": -8, + "speed": 140, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_cut": 0, + "dodge": 4, + "vision_day": 50, + "armor_bash": 1, + "armor_cut": 0, + "item_chance": 0, + "luminance": 0, + "hp": 20, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A bipedal dinosaur about the size of a turkey. Its teeth and claws are small but sharp.", + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "BLEED", "WARM" ], + "harvest": "mammal_leather", + "anger_triggers": [ "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "PLAYER_CLOSE", "FIRE", "FRIEND_DIED" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_gallimimus", + "name": "Gallimimus", + "species": "DINOSAUR", + "default_faction": "gallimimus", + "symbol": "D", + "color": "light_green_yellow", + "volume": "62500 ml", + "weight": 81500, + "material": "flesh", + "aggression": -60, + "morale": -20, + "speed": 150, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_cut": 2, + "dodge": 3, + "armor_bash": 1, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 40, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A feathered bipedal dinosaur, standing as tall as a human. It looks somewhat like a reptilian ostrich.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ], + "harvest": "dino_feather_leather", + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_titanis", + "name": "Titanis", + "species": "DINOSAUR", + "default_faction": "titanis", + "symbol": "D", + "color": "blue_green", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": -20, + "morale": 60, + "speed": 150, + "melee_skill": 8, + "melee_dice": 1, + "melee_dice_sides": 8, + "melee_cut": 2, + "dodge": 1, + "armor_bash": 1, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 60, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "It looks like a dodo, only much bigger, with longer, muscular legs and a predatory gleam in its eyes.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "GRABS", "KEENNOSE", "BLEED", "WARM" ], + "harvest": "dino_feather_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_spinosaurus", + "name": "Spinosaurus", + "species": "DINOSAUR", + "default_faction": "spinosaurus", + "symbol": "D", + "color": "red_white", + "volume": "875000 ml", + "weight": 200000, + "material": "flesh", + "aggression": 100, + "morale": 100, + "speed": 130, + "melee_skill": 15, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_cut": 15, + "dodge": 0, + "armor_bash": 4, + "armor_cut": 2, + "item_chance": 0, + "luminance": 0, + "hp": 400, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A huge dinosaur about the size of a small house, with a ferocious crocodile-like head and a sail on its back.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "BLEED", "ATTACKMON", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_tyrannosaurus", + "name": "Tyrannosaurus rex", + "species": "DINOSAUR", + "default_faction": "t-rex", + "symbol": "D", + "color": "light_red_white", + "volume": "875000 ml", + "weight": 200000, + "material": "flesh", + "aggression": 100, + "morale": 100, + "speed": 130, + "melee_skill": 13, + "melee_dice": 3, + "melee_dice_sides": 6, + "melee_cut": 13, + "dodge": 0, + "armor_bash": 4, + "armor_cut": 2, + "item_chance": 0, + "luminance": 0, + "hp": 300, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "Look at those TEETH!", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "BLEED", "ATTACKMON", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_triceratops", + "name": "Triceratops", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "symbol": "D", + "color": "light_green_magenta", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": -50, + "morale": 50, + "speed": 80, + "melee_skill": 12, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_cut": 15, + "dodge": 0, + "armor_bash": 4, + "armor_cut": 2, + "item_chance": 0, + "luminance": 0, + "hp": 150, + "special_freq": [ 10 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A massive rhino-like dinosaur with a bony crest from which three large horns emerge.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "HURT" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_stegosaurus", + "name": "Stegosaurus", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "symbol": "D", + "color": "green_magenta", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": -50, + "morale": -20, + "speed": 40, + "melee_skill": 7, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_cut": 1, + "dodge": 1, + "armor_bash": 3, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 150, + "special_freq": [ 5 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A large quadruped dinosaur with plates on its back, and a spiked tail.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "HURT" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_ankylosaurus", + "name": "Ankylosaurus", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "symbol": "D", + "color": "brown_magenta", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": -50, + "morale": 30, + "speed": 60, + "melee_skill": 7, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_cut": 1, + "dodge": 1, + "armor_bash": 6, + "armor_cut": 4, + "item_chance": 0, + "luminance": 0, + "hp": 120, + "special_freq": [ 7 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "This dinosaur looks like a giant prehistoric armadillo. Its tail ends in a massive spiked club of bone.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "HURT" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_allosaurus", + "name": "Allosaurus", + "species": "DINOSAUR", + "default_faction": "allosaurus", + "symbol": "D", + "color": "brown_white", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": 80, + "morale": 80, + "speed": 110, + "melee_skill": 11, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_cut": 6, + "dodge": 1, + "armor_bash": 3, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 120, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A large predatory bipedal dinosaur, with tiger-like stripes on its broad back.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "BLEED", "ATTACKMON", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_eoraptor", + "name": "Eoraptor", + "species": "DINOSAUR", + "default_faction": "eoraptor", + "symbol": "D", + "color": "dark_gray_yellow", + "volume": "750 ml", + "weight": 1000, + "material": "flesh", + "aggression": -60, + "morale": -60, + "speed": 200, + "melee_skill": 1, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_cut": 1, + "dodge": 4, + "armor_bash": 1, + "armor_cut": 0, + "item_chance": 0, + "luminance": 0, + "hp": 10, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A bipedal dinosaur about the size of a chicken. It roots around the undergrowth, scavenging on small animals and plants.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ], + "harvest": "mammal_tiny", + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_velociraptor", + "name": "Velociraptor", + "species": "DINOSAUR", + "default_faction": "velociraptor", + "symbol": "D", + "color": "light_red_green", + "volume": "30000 ml", + "weight": 40750, + "material": "flesh", + "aggression": 0, + "morale": 20, + "speed": 150, + "melee_skill": 8, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_cut": 2, + "dodge": 3, + "armor_bash": 1, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 30, + "special_freq": [ 5 ], + "death_function": "NORMAL", + "special_attack": [ "LEAP" ], + "description": "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM" ], + "harvest": "dino_feather_leather", + "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_deinonychus", + "name": "Deinonychus", + "species": "DINOSAUR", + "default_faction": "deinoychus", + "symbol": "D", + "color": "red_green", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": 1, + "morale": 50, + "speed": 130, + "melee_skill": 7, + "melee_dice": 1, + "melee_dice_sides": 8, + "melee_cut": 4, + "dodge": 2, + "armor_bash": 1, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 60, + "special_freq": [ 5 ], + "death_function": "NORMAL", + "special_attack": [ "LEAP" ], + "description": "A medium-sized bipedal dinosaur covered with feathers. At the end of each foot is a large sickle-like claw.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM" ], + "harvest": "dino_feather_leather", + "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_utahraptor", + "name": "Utahraptor", + "species": "DINOSAUR", + "default_faction": "utahraptor", + "symbol": "D", + "color": "dark_gray_white", + "volume": "92500 ml", + "weight": 120000, + "material": "flesh", + "aggression": 30, + "morale": 80, + "speed": 100, + "melee_skill": 10, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_cut": 5, + "dodge": 1, + "armor_bash": 2, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 100, + "special_freq": [ 5 ], + "death_function": "NORMAL", + "special_attack": [ "LEAP" ], + "description": "A large bipedal dinosaur with feathered arms, a long tail, and scythe-like claws.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM" ], + "harvest": "dino_feather_leather", + "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_parasaurolophus", + "name": "Parasaurolophus", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "symbol": "D", + "color": "dark_gray_magenta", + "volume": "875000 ml", + "weight": 200000, + "material": "flesh", + "aggression": -40, + "morale": -10, + "speed": 100, + "melee_skill": 10, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_cut": 2, + "dodge": 0, + "armor_bash": 4, + "armor_cut": 4, + "item_chance": 0, + "luminance": 0, + "hp": 300, + "special_freq": [ 10 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A huge mottled dinosaur with a blunt head crest. It contentedly strips leaves from a nearby shrub.", + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "HURT" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_dimorphodon", + "name": "Dimorphodon", + "species": "DINOSAUR", + "default_faction": "dimorphodon", + "symbol": "D", + "color": "light_gray_yellow", + "volume": "30000 ml", + "weight": 40750, + "material": "flesh", + "aggression": -80, + "morale": -8, + "speed": 110, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_cut": 0, + "dodge": 3, + "armor_bash": 3, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "vision_day": 50, + "hp": 30, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "NONE" ], + "description": "A small flying reptile, circling overhead looking for prey.", + "flags": [ "SEES", "SMELLS", "HEARS", "FLIES", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "BLEED" ], + "harvest": "animal_noskin", + "fear_triggers": [ "PLAYER_CLOSE", "FIRE", "FRIEND_DIED" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_dilophosaurus", + "name": "Dilophosaurus", + "species": "DINOSAUR", + "default_faction": "dilophosaurus", + "symbol": "D", + "color": "magenta_green", + "volume": "62500 ml", + "weight": 81500, + "material": "flesh", + "aggression": 10, + "morale": 30, + "speed": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_cut": 2, + "dodge": 1, + "armor_bash": 3, + "armor_cut": 1, + "item_chance": 0, + "luminance": 0, + "hp": 120, + "special_freq": [ 0 ], + "death_function": "NORMAL", + "special_attack": [ "BOOMER" ], + "description": "A medium dinosaur with a sticky green bile dripping from its teeth.", + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM" ], + "harvest": "mammal_leather", + "anger_triggers": [ "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR", + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_titanis", "freq": 10, "cost_multiplier": 10 }, + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, + { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 }, + { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, + { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dilophosaurus", "freq": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } ] -},{ - "type":"monstergroup", - "name" : "GROUP_SEWER", - "default" : "mon_sewer_rat", - "monsters" : [ - { "monster" : "mon_compsognathus", "freq" : 600, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_gallimimus", "freq" : 200, "cost_multiplier" : 0, "pack_size" : [4,8] }, - { "monster" : "mon_titanis", "freq" : 150, "cost_multiplier" : 10 }, - { "monster" : "mon_spinosaurus", "freq" : 50, "cost_multiplier" : 50 }, - { "monster" : "mon_ankylosaurus", "freq" : 80, "cost_multiplier" : 20 }, - { "monster" : "mon_eoraptor", "freq" : 200, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_velociraptor", "freq" : 150, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_deinonychus", "freq" : 100, "cost_multiplier" : 15, "pack_size" : [1,2] }, - { "monster" : "mon_utahraptor", "freq" : 100, "cost_multiplier" : 30 }, - { "monster" : "mon_parasaurolophus", "freq" : 80, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_dilophosaurus", "freq" : 150, "cost_multiplier" : 10, "pack_size" : [1,2] } - + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_HARMLESS", + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] } ] - },{ - - "type":"monstergroup", - "name" : "GROUP_SAFE", - "is_safe" : true, - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_compsognathus", "freq" : 1, "cost_multiplier" : 1, "pack_size" : [4,12] }, - { "monster" : "mon_gallimimus", "freq" : 1, "cost_multiplier" : 1, "pack_size" : [4,8] }, - { "monster" : "mon_eoraptor", "freq" : 1, "cost_multiplier" : 1, "pack_size" : [4,12] } + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_DANGEROUS", + "default": "mon_null", + "monsters": [ + { "monster": "mon_titanis", "freq": 10, "cost_multiplier": 10 }, + { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 }, + { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, + { "monster": "mon_dilophosaurus", "freq": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } ] - },{ - "type":"monstergroup", - "name" : "GROUP_CAVE", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_compsognathus", "freq" : 600, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_gallimimus", "freq" : 200, "cost_multiplier" : 0, "pack_size" : [4,8] }, - { "monster" : "mon_titanis", "freq" : 150, "cost_multiplier" : 10 }, - { "monster" : "mon_spinosaurus", "freq" : 50, "cost_multiplier" : 50 }, - { "monster" : "mon_tyrannosaurus", "freq" : 50, "cost_multiplier" : 40 }, - { "monster" : "mon_triceratops", "freq" : 80, "cost_multiplier" : 30, "pack_size" : [1,2] }, - { "monster" : "mon_stegosaurus", "freq" : 80, "cost_multiplier" : 20, "pack_size" : [2,4] }, - { "monster" : "mon_ankylosaurus", "freq" : 80, "cost_multiplier" : 20 }, - { "monster" : "mon_allosaurus", "freq" : 100, "cost_multiplier" : 30 }, - { "monster" : "mon_eoraptor", "freq" : 200, "cost_multiplier" : 0, "pack_size" : [4,12] }, - { "monster" : "mon_velociraptor", "freq" : 150, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_deinonychus", "freq" : 100, "cost_multiplier" : 15, "pack_size" : [1,2] }, - { "monster" : "mon_utahraptor", "freq" : 100, "cost_multiplier" : 30 }, - { "monster" : "mon_parasaurolophus", "freq" : 80, "cost_multiplier" : 10, "pack_size" : [2,4] }, - { "monster" : "mon_dimorphodon", "freq" : 500, "cost_multiplier" : 0, "pack_size" : [2,4] }, - { "monster" : "mon_dilophosaurus", "freq" : 150, "cost_multiplier" : 10, "pack_size" : [1,2] } + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_FLY", + "default": "mon_null", + "monsters": [ { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_MEGA_HERBIVORE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, + { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_MEGA_CARNIVORE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SWAMP", + "default": "mon_null", + "monsters": [ + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SEWER", + "default": "mon_sewer_rat", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 600, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_titanis", "freq": 150, "cost_multiplier": 10 }, + { "monster": "mon_spinosaurus", "freq": 50, "cost_multiplier": 50 }, + { "monster": "mon_ankylosaurus", "freq": 80, "cost_multiplier": 20 }, + { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, + { "monster": "mon_parasaurolophus", "freq": 80, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dilophosaurus", "freq": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SAFE", + "is_safe": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 1, "cost_multiplier": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 1, "cost_multiplier": 1, "pack_size": [ 4, 8 ] }, + { "monster": "mon_eoraptor", "freq": 1, "cost_multiplier": 1, "pack_size": [ 4, 12 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAVE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 600, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_titanis", "freq": 150, "cost_multiplier": 10 }, + { "monster": "mon_spinosaurus", "freq": 50, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 50, "cost_multiplier": 40 }, + { "monster": "mon_triceratops", "freq": 80, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 80, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 80, "cost_multiplier": 20 }, + { "monster": "mon_allosaurus", "freq": 100, "cost_multiplier": 30 }, + { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, + { "monster": "mon_parasaurolophus", "freq": 80, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dimorphodon", "freq": 500, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dilophosaurus", "freq": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } ] } ] diff --git a/data/mods/DinoMod/fieldoffice.json b/data/mods/DinoMod/fieldoffice.json index 1c2e1001ff97a..87520fa23a9e2 100644 --- a/data/mods/DinoMod/fieldoffice.json +++ b/data/mods/DinoMod/fieldoffice.json @@ -1,201 +1,199 @@ [ - { - "type" : "item_group", - "id" : "fieldoffice_weapons", - "items":[ - ["crossbow", 40], - ["bolt_metal", 60], - ["bolt_steel", 30], - ["remington_870", 10], - ["mossberg_500", 5], - ["shot_bird", 10], - ["shot_00", 10], - ["shot_slug", 4], - ["shot_beanbag", 10], - ["marlin_9a", 14], - ["ruger_1022", 12], - ["22_fmj", 6], - ["22_lr", 8], - ["22_cb", 10], - ["22_ratshot", 8], - ["browning_blr", 5], - ["remington_700", 10], - ["270", 8], - ["rifle_scope", 10], - ["laser_sight", 10], - ["rail_laser_sight", 10] - ] - }, - { - "type" : "item_group", - "id" : "fieldoffice_tools", - "items":[ - ["hammer", 35], - ["saw", 15], - ["ax", 8], - ["hoe", 30], - ["shovel", 40], - ["chainsaw_off", 7], - ["trimmer_off", 10], - ["tool_belt", 5], - ["boots_steel", 50], - ["boots_hiking", 10], - ["vest", 15], - ["glasses_safety", 40], - ["beartrap", 5], - ["radio", 20] - ] - }, - { - "type" : "item_group", - "id" : "fieldoffice_books", - "items":[ - ["mag_traps", 20], - ["manual_traps", 12], - ["trappers_companion", 2], - ["mag_guns", 15], - ["mag_rifle", 15], - ["mag_shotgun", 15], - ["mag_survival", 40], - ["manual_survival", 20], - ["textbook_firstaid", 8], - ["pocket_firstaid", 4], - ["pocket_survival", 2], - ["pocket_firearms", 2], - ["mag_archery", 15], - ["manual_archery", 8], - ["book_archery", 2], - ["recipe_arrows", 4] - ] - }, - { - "type":"monstergroup", - "name" : "GROUP_FIELDOFFICE_ZOMBIE", - "default" : "mon_null", - "monsters" : [ - { "monster" : "mon_zombie_fat", "freq" : 100, "cost_multiplier": 2}, - { "monster" : "mon_zombie_tough", "freq" : 40, "cost_multiplier": 3}, - { "monster" : "mon_zombie_rot", "freq" : 20, "cost_multiplier": 2}, - { "monster" : "mon_zombie_crawler", "freq" : 10, "cost_multiplier": 2}, - { "monster" : "mon_zombie_dog", "freq" : 10, "cost_multiplier" : 2 }, - { "monster" : "mon_zombie_grabber", "freq" : 70, "cost_multiplier" : 1 }, - { "monster" : "mon_skeleton", "freq" : 30, "cost_multiplier" : 2 }, - { "monster" : "mon_zombie_shrieker", "freq" : 30, "cost_multiplier" : 5 }, - { "monster" : "mon_zombie_spitter", "freq" : 30, "cost_multiplier" : 5 }, - { "monster" : "mon_zombie_necro", "freq" : 1, "cost_multiplier" : 25 }, - { "monster" : "mon_zombie_survivor", "freq" : 1, "cost_multiplier" : 25 }, - { "monster" : "mon_boomer", "freq" : 30, "cost_multiplier" : 7 }, - { "monster" : "mon_zombie_brute", "freq" : 10, "cost_multiplier" : 15 }, - { "monster" : "mon_zombie_hulk", "freq" : 1, "cost_multiplier" : 50 }, - { "monster" : "mon_zombie_master", "freq" : 1, "cost_multiplier" : 25 } - ] - }, - { - "type": "overmap_terrain", - "id" : "fieldoffice", - "name" : "wildlife field office", - "sym" : 94, - "color" : "brown", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "mapgen": [ - { - "method": "json", - "weight": 10000, - "object": { - "rows": [ - "rrrrrrrrrrrrrrrrrrrrrrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yyyyyyyyyyyyyyyyyyyyyyyy", - "222222222222222---1+111-", - "3..............|B|F |", - "3.2222222222222| |CCC A|", - "3.3...3...3...3|D+ F A|", - "3.3I..3...3.I.3--|-+---|", - "3.3...3..I3...3.E......3", - "3.2242224222422........3", - "3......................3", - "3.2222422222422.. .3", - "3.3.....3.....3..HH .3", - "3.3.....3.....3..HH .3", - "3.3.....3.....3.5555+553", - "3.3.....3.....3.5.....53", - "3.3....I3...I.3.5GGGGG53", - "3.2222222222222.55555553", - "3......................3", - "222222222222222222222222" - ], - "terrain": { - "r": "t_pavement", - "y": "t_pavement_y", - ".": "t_dirtfloor", - "-": "t_wall", - "1": "t_window", - "|": "t_wall", - "+": "t_door_c", - "2": "t_chainfence_h", - "3": "t_chainfence_v", - "4": "t_chaingate_l", - "5": "t_wall_wood", - " ": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_dirtfloor", - "F": "t_floor", - "G": "t_dirtfloor", - "H": "t_floor", - "I": "t_dirtfloor" - }, - "furniture": { - "A": "f_rack", - "C": "f_counter", - "D": "f_sink", - "E": "f_sink", - "F": "f_chair", - "G": "f_locker", - "H": "f_hay", - "I": "f_hay" - }, - "toilets": { - "B": { } - }, - "comment": "randomly picked from a group ---v", - "place_items": [ - { "item": "fieldoffice_weapons", "chance": 70, "x": [ 20,21 ], "y": 20 }, - { "item": "fieldoffice_tools", "chance": 80, "x": [ 18,19 ], "y": 20 }, - { "item": "fieldoffice_books", "chance": 80, "x": 22, "y": [9,10] } - ], - "place_monsters": [ - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 1, 22 ], "y": [ 1, 6 ], "density": 0.15 }, - { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 16, 22 ], "y": [ 8, 21 ], "density": 0.15 } - ], - "comment": "end of mapgen json definition ---v" + { + "type": "item_group", + "id": "fieldoffice_weapons", + "items": [ + [ "crossbow", 40 ], + [ "bolt_metal", 60 ], + [ "bolt_steel", 30 ], + [ "remington_870", 10 ], + [ "mossberg_500", 5 ], + [ "shot_bird", 10 ], + [ "shot_00", 10 ], + [ "shot_slug", 4 ], + [ "shot_beanbag", 10 ], + [ "marlin_9a", 14 ], + [ "ruger_1022", 12 ], + [ "22_fmj", 6 ], + [ "22_lr", 8 ], + [ "22_cb", 10 ], + [ "22_ratshot", 8 ], + [ "browning_blr", 5 ], + [ "remington_700", 10 ], + [ "270", 8 ], + [ "rifle_scope", 10 ], + [ "laser_sight", 10 ], + [ "rail_laser_sight", 10 ] + ] + }, + { + "type": "item_group", + "id": "fieldoffice_tools", + "items": [ + [ "hammer", 35 ], + [ "saw", 15 ], + [ "ax", 8 ], + [ "hoe", 30 ], + [ "shovel", 40 ], + [ "chainsaw_off", 7 ], + [ "trimmer_off", 10 ], + [ "tool_belt", 5 ], + [ "boots_steel", 50 ], + [ "boots_hiking", 10 ], + [ "vest", 15 ], + [ "glasses_safety", 40 ], + [ "beartrap", 5 ], + [ "radio", 20 ] + ] + }, + { + "type": "item_group", + "id": "fieldoffice_books", + "items": [ + [ "mag_traps", 20 ], + [ "manual_traps", 12 ], + [ "trappers_companion", 2 ], + [ "mag_guns", 15 ], + [ "mag_rifle", 15 ], + [ "mag_shotgun", 15 ], + [ "mag_survival", 40 ], + [ "manual_survival", 20 ], + [ "textbook_firstaid", 8 ], + [ "pocket_firstaid", 4 ], + [ "pocket_survival", 2 ], + [ "pocket_firearms", 2 ], + [ "mag_archery", 15 ], + [ "manual_archery", 8 ], + [ "book_archery", 2 ], + [ "recipe_arrows", 4 ] + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FIELDOFFICE_ZOMBIE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_zombie_fat", "freq": 100, "cost_multiplier": 2 }, + { "monster": "mon_zombie_tough", "freq": 40, "cost_multiplier": 3 }, + { "monster": "mon_zombie_rot", "freq": 20, "cost_multiplier": 2 }, + { "monster": "mon_zombie_crawler", "freq": 10, "cost_multiplier": 2 }, + { "monster": "mon_zombie_dog", "freq": 10, "cost_multiplier": 2 }, + { "monster": "mon_zombie_grabber", "freq": 70, "cost_multiplier": 1 }, + { "monster": "mon_skeleton", "freq": 30, "cost_multiplier": 2 }, + { "monster": "mon_zombie_shrieker", "freq": 30, "cost_multiplier": 5 }, + { "monster": "mon_zombie_spitter", "freq": 30, "cost_multiplier": 5 }, + { "monster": "mon_zombie_necro", "freq": 1, "cost_multiplier": 25 }, + { "monster": "mon_zombie_survivor", "freq": 1, "cost_multiplier": 25 }, + { "monster": "mon_boomer", "freq": 30, "cost_multiplier": 7 }, + { "monster": "mon_zombie_brute", "freq": 10, "cost_multiplier": 15 }, + { "monster": "mon_zombie_hulk", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_zombie_master", "freq": 1, "cost_multiplier": 25 } + ] + }, + { + "type": "overmap_terrain", + "id": "fieldoffice", + "name": "wildlife field office", + "sym": 94, + "color": "brown", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "mapgen": [ + { + "method": "json", + "weight": 10000, + "object": { + "rows": [ + "rrrrrrrrrrrrrrrrrrrrrrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yyyyyyyyyyyyyyyyyyyyyyyy", + "222222222222222---1+111-", + "3..............|B|F |", + "3.2222222222222| |CCC A|", + "3.3...3...3...3|D+ F A|", + "3.3I..3...3.I.3--|-+---|", + "3.3...3..I3...3.E......3", + "3.2242224222422........3", + "3......................3", + "3.2222422222422.. .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3.5555+553", + "3.3.....3.....3.5.....53", + "3.3....I3...I.3.5GGGGG53", + "3.2222222222222.55555553", + "3......................3", + "222222222222222222222222" + ], + "terrain": { + "r": "t_pavement", + "y": "t_pavement_y", + ".": "t_dirtfloor", + "-": "t_wall", + "1": "t_window", + "|": "t_wall", + "+": "t_door_c", + "2": "t_chainfence_h", + "3": "t_chainfence_v", + "4": "t_chaingate_l", + "5": "t_wall_wood", + " ": "t_floor", + "A": "t_floor", + "B": "t_floor", + "C": "t_floor", + "D": "t_floor", + "E": "t_dirtfloor", + "F": "t_floor", + "G": "t_dirtfloor", + "H": "t_floor", + "I": "t_dirtfloor" + }, + "furniture": { + "A": "f_rack", + "C": "f_counter", + "D": "f_sink", + "E": "f_sink", + "F": "f_chair", + "G": "f_locker", + "H": "f_hay", + "I": "f_hay" + }, + "toilets": { "B": { } }, + "comment": "randomly picked from a group ---v", + "place_items": [ + { "item": "fieldoffice_weapons", "chance": 70, "x": [ 20, 21 ], "y": 20 }, + { "item": "fieldoffice_tools", "chance": 80, "x": [ 18, 19 ], "y": 20 }, + { "item": "fieldoffice_books", "chance": 80, "x": 22, "y": [ 9, 10 ] } + ], + "place_monsters": [ + { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_FOREST", "chance": 2, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_FOREST", "chance": 2, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_FOREST", "chance": 2, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 1, 22 ], "y": [ 1, 6 ], "density": 0.15 }, + { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 16, 22 ], "y": [ 8, 21 ], "density": 0.15 } + ], + "comment": "end of mapgen json definition ---v" }, "comment": "end of mapgen entry ---v", - "flags" : [ "SIDEWALK" ] - } + "flags": [ "SIDEWALK" ] + } ] - } + } ] diff --git a/data/mods/DinoMod/regional_overlay.json b/data/mods/DinoMod/regional_overlay.json index b6bd0fffdfd51..9af97bdb00d2c 100644 --- a/data/mods/DinoMod/regional_overlay.json +++ b/data/mods/DinoMod/regional_overlay.json @@ -1,12 +1,8 @@ [ - { - "type": "region_overlay", - "id": "dinomod_overlay", "//": "unique identifier for this overlay", - "regions": [ "all" ], "//": "A list of regions to which this overlay should be applied", - "city": { - "parks": { "//": "weighted list for park overmap terrains", - "fieldoffice": 1 - } - } - } + { + "type": "region_overlay", + "id": "dinomod_overlay", + "regions": [ "all" ], + "city": { "parks": { "fieldoffice": 1 } } + } ] diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json index 010394dbefbbe..cf7f17309ee11 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json @@ -124,8 +124,8 @@ "fields": { "l": { "field": "fd_nuke_gas", "density": 1, "age": 0 }, "L": { "field": "fd_nuke_gas", "density": 1, "age": 0 } }, "computers": { "p": { - "name": "Mr. Stem Cell", - "options": [ { "name": "Stem Cell Treatment", "action": "stemcell_treatment" } ], + "name": "Bonesetting Treatment", + "options": [ { "name": "Bonesetting Treatment", "action": "bonesetting" } ], "failures": [ { "action": "alarm" } ] } } diff --git a/data/mods/Growable_pots/items.json b/data/mods/Growable_pots/items.json new file mode 100644 index 0000000000000..224eeb7bc2e5b --- /dev/null +++ b/data/mods/Growable_pots/items.json @@ -0,0 +1,524 @@ +[ + { + "type": "CONTAINER", + "id": "gp_pot", + "symbol": ")", + "color": "brown", + "name": "Garden pot", + "name_plural": "Garden pots", + "description": "This is a special pot for growing plants. Sticks to maintain plants in comfortable conditions for them to obtain maximum yield.", + "price": 600, + "material": "clay", + "weight": 280, + "volume": 8, + "contains": 5, + "bashing": 1, + "cutting": 0, + "category": "tools", + "to_hit": 0 + }, + { + "type": "GENERIC", + "id": "gp_tomato", + "name": "Garden pot (growing tomato)", + "name_plural": "Garden pot (growing tomatoes)", + "description": "This is a garden pot growing tomatoes. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Tomatoes are ready to harvest!", + "moves": 0, + "target": "gp_tomato_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_tomato_ready", + "name": "Garden pot (ripe tomatoe)", + "name_plural": "Garden pots (ripe tomatoes)", + "description": "This is a garden pot containing a ready to harvest tomato. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "tomato" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_wheat", + "name": "Garden pot (growing wheat)", + "name_plural": "Garden pot (growing wheat)", + "description": "This is a garden pot growing wheat. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "wheat" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "The wheat is growing quickly.", + "msg": "The wheat is ready to harvest.", + "moves": 0, + "target": "gp_wheat_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_wheat_ready", + "name": "Garden pot (ripe wheat)", + "name_plural": "Garden pot (ripe wheat)", + "description": "This is a garden pot with wheat ready to harvest. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "wheat" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_hops", + "name": "Garden pot (growing hops)", + "name_plural": "Garden pot (growing hops)", + "description": "This is a garden pot growing hops. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_hops_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_hops_ready", + "name": "Garden pot (ripe hops)", + "name_plural": "Garden pots (ripe hops)", + "description": "This is a garden pot containing a ready to harvest hops. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_buckwheat", + "name": "Garden pot (growing buckwheat)", + "name_plural": "Garden pot (growing buckwheat)", + "description": "This is a garden pot growing buckwheat. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_buckwheat_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_buckwheat_ready", + "name": "Garden pot (ripe buckwheat)", + "name_plural": "Garden pots (ripe buckwheat)", + "description": "This is a garden pot containing a ready to harvest buckwheat. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_broccoli", + "name": "Garden pot (growing broccoli)", + "name_plural": "Garden pot (growing broccoli)", + "description": "This is a garden pot growing broccoli. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_broccoli_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_broccoli_ready", + "name": "Garden pot (ripe broccoli)", + "name_plural": "Garden pots (ripe broccoli)", + "description": "This is a garden pot containing a ready to harvest broccoli. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_oats", + "name": "Garden pot (growing oats)", + "name_plural": "Garden pot (growing oats)", + "description": "This is a garden pot growing oats. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_oats_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_oats_ready", + "name": "Garden pot (ripe oats)", + "name_plural": "Garden pots (ripe oats)", + "description": "This is a garden pot containing a ready to harvest oats. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_barley", + "name": "Garden pot (growing barley)", + "name_plural": "Garden pot (growing barley)", + "description": "This is a garden pot growing barley. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_barley_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_barley_ready", + "name": "Garden pot (ripe barley)", + "name_plural": "Garden pots (ripe barley)", + "description": "This is a garden pot containing a ready to harvest barley. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_carrot", + "name": "Garden pot (growing carrot)", + "name_plural": "Garden pot (growing carrot)", + "description": "This is a garden pot growing carrot. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_carrot_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_carrot_ready", + "name": "Garden pot (ripe carrot)", + "name_plural": "Garden pots (ripe carrot)", + "description": "This is a garden pot containing a ready to harvest carrot. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_cotton_boll", + "name": "Garden pot (growing cotton)", + "name_plural": "Garden pot (growing cotton)", + "description": "This is a garden pot growing cotton. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_cotton_boll_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_cotton_boll_ready", + "name": "Garden pot (ripe cotton)", + "name_plural": "Garden pots (ripe cotton)", + "description": "This is a garden pot containing a ready to harvest cotton. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_cabbage", + "name": "Garden pot (growing cabbage)", + "name_plural": "Garden pot (growing cabbage)", + "description": "This is a garden pot growing cabbage. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_cabbage_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_cabbage_ready", + "name": "Garden pot (ripe cabbage)", + "name_plural": "Garden pots (ripe cabbage)", + "description": "This is a garden pot containing a ready to harvest cabbage. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_cucumber", + "name": "Garden pot (growing cucumber)", + "name_plural": "Garden pot (growing cucumber)", + "description": "This is a garden pot growing cucumber. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_cucumber_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_cucumber_ready", + "name": "Garden pot (ripe cucumber)", + "name_plural": "Garden pots (ripe cucumber)", + "description": "This is a garden pot containing a ready to harvest cucumber. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + }, + { + "type": "GENERIC", + "id": "gp_garlic", + "name": "Garden pot (growing garlic)", + "name_plural": "Garden pot (growing garlic)", + "description": "This is a garden pot growing garlic. When ripe you need to activate to prepare for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools", + "use_action": { + "type": "delayed_transform", + "transform_age": 432000, + "not_ready_msg": "It is growing quickly.", + "msg": "Hops are ready to harvest!", + "moves": 0, + "target": "gp_cucumber_ready" + } + }, + { + "type": "GENERIC", + "id": "gp_garlic_ready", + "name": "Garden pot (ripe garlic)", + "name_plural": "Garden pots (ripe garlic)", + "description": "This is a garden pot containing a ready to harvest garlic. Disassemble for harvest.", + "weight": 480, + "symbol": ")", + "color": "brown", + "price": 1300, + "material": [ "clay", "veggy" ], + "volume": 10, + "bashing": 1, + "cutting": 0, + "to_hit": 0, + "category": "tools" + } +] diff --git a/data/mods/Growable_pots/modinfo.json b/data/mods/Growable_pots/modinfo.json new file mode 100644 index 0000000000000..5ad6753a4bf79 --- /dev/null +++ b/data/mods/Growable_pots/modinfo.json @@ -0,0 +1,12 @@ +[ + { + "type": "MOD_INFO", + "ident": "growable-pots", + "name": "Growable pots", + "authors": [ "Xhuis" ], + "description": "Allows you to grow some seeds in flower pots.", + "author": "Honcharuk", + "category": "items", + "dependencies": [ "dda" ] + } +] diff --git a/data/mods/Growable_pots/recipes.json b/data/mods/Growable_pots/recipes.json new file mode 100644 index 0000000000000..69551cae38967 --- /dev/null +++ b/data/mods/Growable_pots/recipes.json @@ -0,0 +1,306 @@ +[ + { + "type": "recipe", + "result": "gp_pot", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "fabrication", + "skills_required": [ "survival", 2 ], + "difficulty": 2, + "time": 45000, + "reversible": false, + "autolearn": true, + "qualities": [ { "id": "DIG", "level": 1 } ], + "tools": [ ], + "components": [ [ [ "clay_pot_flower", 1 ], [ "plastic_pot_flower", 1 ] ], [ [ "pointy_stick", 2 ] ] ] + }, + { + "type": "recipe", + "result": "gp_tomato", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_tomato", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_tomato_ready", + "id_suffix": "for_tomato", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "tomato", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_wheat", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_wheat", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_wheat_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "wheat", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_wheat", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_hops", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_hops_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "hops", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_buckwheat", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_buckwheat", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_buckwheat_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "buckwheat", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_broccoli", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_broccoli", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_broccoli_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "broccoli", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_oats", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_oats", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_oats_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "oats", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_barley", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_barley", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_barley_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "barley", 21 ] ] ] + }, + { + "type": "recipe", + "result": "gp_carrot", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_carrot", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_carrot_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_carrot", 1 ] ], [ [ "carrot", 20 ] ] ] + }, + { + "type": "recipe", + "result": "gp_cotton_boll", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_cotton_boll", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_cotton_boll_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_cotton_boll", 1 ] ], [ [ "cotton_boll", 20 ] ] ] + }, + { + "type": "recipe", + "result": "gp_cabbage", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_cabbage", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_cabbage_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_cabbage", 1 ] ], [ [ "cabbage", 20 ] ] ] + }, + { + "type": "recipe", + "result": "gp_cucumber", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_cucumber", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_cucumber_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "cucumber", 20 ] ] ] + }, + { + "type": "recipe", + "result": "gp_garlic", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "reversible": false, + "autolearn": true, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "seed_garlic", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + }, + { + "type": "uncraft", + "result": "gp_garlic_ready", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_VEGGI", + "skill_used": "survival", + "difficulty": 1, + "time": 500, + "tools": [ ], + "components": [ [ [ "gp_pot", 1 ] ], [ [ "garlic", 20 ] ] ] + } +] diff --git a/data/mods/Medieval_Stuff/mutations.json b/data/mods/Medieval_Stuff/mutations.json index cd4b5487955e6..b7e54b7721cbf 100644 --- a/data/mods/Medieval_Stuff/mutations.json +++ b/data/mods/Medieval_Stuff/mutations.json @@ -3,19 +3,19 @@ "type" : "mutation", "id" : "MARTIAL_ARTS", "name" : "Martial Arts Training", - "points" : 3, + "points" : 2, "description" : "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.", "starting_trait" : true, - "initial_ma_styles" : [ "style_pankration" ], + "initial_ma_styles" : [ "style_karate", "style_judo", "style_aikido", "style_tai_chi", "style_taekwondo", "style_pankration" ], "valid" : false },{ "type" : "mutation", "id": "MARTIAL_ARTS5", "name": "Melee Weapon Training", "points": 3, - "description": "You have practiced fighting with weapons. You start with your choice of Eskrima, Fencing, Pentjak Silat, or Medieval Swordsmanship.", + "description": "You have practiced fighting with weapons. You start with your choice of Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, Sōjutsu, or Medieval Swordsmanship.", "starting_trait" : true, - "initial_ma_styles" : [ "style_swordsmanship" ], + "initial_ma_styles" : [ "style_eskrima", "style_fencing", "style_silat", "style_niten", "style_sojutsu", "style_swordsmanship" ], "valid" : false } ] diff --git a/data/mods/No_Anthills/modinfo.json b/data/mods/No_Anthills/modinfo.json index 356fcecec80ff..25d3d8e4da8fb 100644 --- a/data/mods/No_Anthills/modinfo.json +++ b/data/mods/No_Anthills/modinfo.json @@ -24,5 +24,11 @@ "mon_ant_acid", "mon_ant" ] + }, + { + "type": "region_overlay", + "id": "No_Anthills_region_overlay", + "regions": [ "all" ], + "overmap_feature_flag_settings": { "blacklist": [ "ANT" ] } } ] diff --git a/data/mods/No_Anthills/overmap_specials.json b/data/mods/No_Anthills/overmap_specials.json deleted file mode 100644 index 781acd5d499f9..0000000000000 --- a/data/mods/No_Anthills/overmap_specials.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "type": "overmap_special", - "id": "Lab with Anthill", - "copy-from": "Lab with Anthill", - "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "lab_stairs" } ], - "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], - "locations": [ "land" ], - "city_distance": [ 8, -1 ], - "city_sizes": [ 4, 12 ], - "occurrences": [ 0, 1 ] - }, - { - "type": "overmap_special", - "id": "Anthill", - "copy-from": "Anthill", - "locations": [ ], - "occurrences": [ 0, 0 ] - }, - { - "type": "overmap_special", - "id": "Acid Anthill", - "copy-from": "Acid Anthill", - "locations": [ ], - "occurrences": [ 0, 0 ] - } -] diff --git a/data/mods/No_Beehives/modinfo.json b/data/mods/No_Beehives/modinfo.json index 1f622076aa508..e6d9bd8bc4aeb 100644 --- a/data/mods/No_Beehives/modinfo.json +++ b/data/mods/No_Beehives/modinfo.json @@ -15,5 +15,11 @@ { "type": "MONSTER_BLACKLIST", "monsters": [ "mon_bee" ] + }, + { + "type": "region_overlay", + "id": "No_Bees_region_overlay", + "regions": [ "all" ], + "overmap_feature_flag_settings": { "blacklist": [ "BEE" ] } } ] diff --git a/data/mods/No_Beehives/overmap_specials.json b/data/mods/No_Beehives/overmap_specials.json deleted file mode 100644 index e1ffad6d61afc..0000000000000 --- a/data/mods/No_Beehives/overmap_specials.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "type": "overmap_special", - "id": "Bee Hive", - "copy-from": "Bee Hive", - "locations": [ ], - "occurrences": [ 0, 0 ] - } -] diff --git a/data/mods/No_Fungi/modinfo.json b/data/mods/No_Fungi/modinfo.json index 67e6065de2ae2..362117b75b5af 100644 --- a/data/mods/No_Fungi/modinfo.json +++ b/data/mods/No_Fungi/modinfo.json @@ -29,5 +29,11 @@ "mon_fungal_blossom", "mon_fungaloid_seeder" ] + }, + { + "type": "region_overlay", + "id": "No_Fungi_region_overlay", + "regions": [ "all" ], + "overmap_feature_flag_settings": { "blacklist": [ "FUNGAL" ] } } ] diff --git a/data/mods/No_Fungi/overmap_specials.json b/data/mods/No_Fungi/overmap_specials.json deleted file mode 100644 index 695a65c208cb6..0000000000000 --- a/data/mods/No_Fungi/overmap_specials.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "type" : "overmap_special", - "id" : "Fungal Bloom", - "copy-from" : "Fungal Bloom", - "locations" : [], - "occurrences" : [0, 0] - },{ - "type" : "overmap_special", - "id" : "Fungal Tower", - "copy-from" : "Fungal Tower", - "locations" : [], - "occurrences" : [0, 0] - },{ - "type" : "overmap_special", - "id" : "Fungal Flowers", - "copy-from" : "Fungal Flowers", - "locations" : [], - "occurrences" : [0, 0] - } -] diff --git a/data/mods/No_Triffids/modinfo.json b/data/mods/No_Triffids/modinfo.json index bc58a88e9d5c6..58c7d83f38ce2 100644 --- a/data/mods/No_Triffids/modinfo.json +++ b/data/mods/No_Triffids/modinfo.json @@ -16,5 +16,11 @@ { "type": "MONSTER_BLACKLIST", "monsters": [ "mon_triffid", "mon_triffid_young", "mon_fungal_fighter", "mon_vinebeast", "mon_triffid_queen", "mon_triffid_heart" ] + }, + { + "type": "region_overlay", + "id": "No_Triffids_region_overlay", + "regions": [ "all" ], + "overmap_feature_flag_settings": { "blacklist": [ "TRIFFID" ] } } ] diff --git a/data/mods/No_Triffids/overmap_specials.json b/data/mods/No_Triffids/overmap_specials.json deleted file mode 100644 index ec3599f921de2..0000000000000 --- a/data/mods/No_Triffids/overmap_specials.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "type" : "overmap_special", - "id" : "Triffid Grove", - "copy-from" : "Triffid Grove", - "locations" : [] - } -] diff --git a/data/mods/Salvaged_Robots/items.json b/data/mods/Salvaged_Robots/items.json index 38f7f53e2d8cd..5c63f478c0bc6 100644 --- a/data/mods/Salvaged_Robots/items.json +++ b/data/mods/Salvaged_Robots/items.json @@ -147,7 +147,7 @@ "volume": 220, "bashing": 8, "to_hit": -3, - "ammo_type": "battery", + "ammo": "battery", "initial_charges": 0, "max_charges": 500, "qualities": [ @@ -735,6 +735,22 @@ "color": "light_gray", "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID" ] }, + { + "id": "bot_milbot_308", + "type": "TOOL", + "copy-from": "bot_milbot_base", + "name": "inactive military robot", + "description": "An unpowered military robot fitted with an integrated 7.62 firearm and electric prod. Activate this item, with ammo in your inventory, to load and deploy the robot.", + "color": "green", + "use_action": { + "type": "place_monster", + "monster_id": "mon_milbot_308", + "difficulty": 0, + "moves": 100, + "skill1": "electronics", + "skill2": "computer" + } + }, { "id": "bot_milbot_gaurdian", "type": "TOOL", diff --git a/data/mods/Salvaged_Robots/monsters.json b/data/mods/Salvaged_Robots/monsters.json index 3da1e6ca8de4c..f46606f9d5f14 100644 --- a/data/mods/Salvaged_Robots/monsters.json +++ b/data/mods/Salvaged_Robots/monsters.json @@ -771,7 +771,7 @@ "require_targeting_monster": true, "targeting_cost": 10, "targeting_timeout_extend": -1, - "targeting_sound": "\"Target Aquired.\"", + "targeting_sound": "\"Target Acquired.\"", "targeting_volume": 10 } ], @@ -818,6 +818,7 @@ "melee_damage": [ { "damage_type": "electric", "amount": 6 } ], "luminance": 100, "starting_ammo": { "762_51": 100 }, + "revert_to_itype": "bot_milbot_308", "special_attacks": [ { "type": "gun", diff --git a/data/mods/Salvaged_Robots/robot_additions/professions.json b/data/mods/Salvaged_Robots/robot_additions/professions.json index f8e940cd50d4f..fb278c5a21946 100644 --- a/data/mods/Salvaged_Robots/robot_additions/professions.json +++ b/data/mods/Salvaged_Robots/robot_additions/professions.json @@ -26,5 +26,70 @@ "male": [ "boxer_shorts" ], "female": [ "sports_bra", "boxer_shorts" ] } + }, + { + "type": "profession", + "ident": "robo_expert", + "name": "Robotics Engineer", + "description": "You were a low-level engineer at a robotics manufacturer. The management kept telling you putting flamethrowers on manhacks was 'unnecessary' and 'too dangerous,' but there's nothing to stop you now.", + "points": 5, + "skills": [ { "level": 4, "name": "computer" }, { "level": 4, "name": "electronics" }, { "level": 2, "name": "mechanics" } ], + "items": { + "both": { + "items": [ "longshirt", "jeans", "socks", "boots_steel", "jacket_jean", "textbook_robots", "soldering_iron", "screwdriver" ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "boy_shorts" ] + } + }, + { + "type": "profession", + "ident": "robo_prodigy", + "name": "Robotics Prodigy", + "description": "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.", + "points": 8, + "skills": [ { "level": 5, "name": "computer" }, { "level": 8, "name": "electronics" }, { "level": 5, "name": "mechanics" } ], + "items": { + "both": { "items": [ "linuxtshirt", "pants", "socks", "dress_shoes", "blazer", "bot_craftbuddy" ] }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "ident": "robo_adoptee", + "name": "Robot Adoptee", + "description": "During the riots a military robot came out of nowhere to rescue you. Maybe it thinks you're someone important, who knows.", + "points": 6, + "items": { + "both": { + "items": [ "undershirt", "jeans", "socks", "lowtops", "hoodie", "bot_milbot_308" ], + "entries": [ { "item": "762_51", "charges": 100 } ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "ident": "robo_hunter", + "name": "Robo-hunter", + "description": "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.", + "points": 2, + "skills": [ { "level": 2, "name": "gun" }, { "level": 1, "name": "rifle" } ], + "items": { + "both": { + "items": [ "undershirt", "jeans", "socks", "boots_hiking", "jacket_flannel", "bot_skitterbot_rat" ], + "entries": [ + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "ruger_1022", "ammo-item": "22_lr", "charges": 10, "contents-item": "shoulder_strap" }, + { "item": "ruger1022mag", "ammo-item": "22_lr", "charges": 10 }, + { "item": "22_lr", "charges": 20 }, + { "item": "sheath", "contents-item": "knife_hunting" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boy_shorts" ] + } } ] diff --git a/data/mods/Salvaged_Robots/robot_additions/scenarios.json b/data/mods/Salvaged_Robots/robot_additions/scenarios.json index 5abf3fe74019f..9025b1a821397 100644 --- a/data/mods/Salvaged_Robots/robot_additions/scenarios.json +++ b/data/mods/Salvaged_Robots/robot_additions/scenarios.json @@ -19,6 +19,12 @@ "type": "scenario", "ident": "lab_chal", "copy-from": "lab_chal", - "extend": { "professions": [ "robo_hacker" ] } + "extend": { "professions": [ "robo_hacker", "robo_expert", "robo_prodigy" ] } + }, + { + "type": "scenario", + "ident": "wilderness", + "copy-from": "wilderness", + "extend": { "professions": [ "robo_hunter" ] } } ] diff --git a/data/mods/alt_map_key/overmap_terrain.json b/data/mods/alt_map_key/overmap_terrain.json index eaa8aecc09796..da3532950e49d 100644 --- a/data/mods/alt_map_key/overmap_terrain.json +++ b/data/mods/alt_map_key/overmap_terrain.json @@ -1,6781 +1,7532 @@ [ - { - "type" : "overmap_terrain", - "id" : "", - "name" : "nothing", - "sym" : 37, - "color" : "white", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "open_air", - "name" : "open air", - "sym" : 46, - "color" : "blue", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "crater", - "name" : "crater", - "sym" : 42, - "color" : "pink", - "see_cost" : 2, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "field", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 2, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "forest", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 3, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 3], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "forest_thick", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 4, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 6], "chance": 90 }, - "mapgen": [ - { "method": "builtin", "name": "forest" } - ], - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "forest_water", - "name" : "swamp", - "sym" : 35, - "color" : "cyan", - "see_cost" : 4, - "extras" : "field", - "spawns" : { "group": "GROUP_SWAMP", "population": [1, 4], "chance": 100 }, - "mapgen": [ - { "method": "builtin", "name": "forest" } - ], - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hiway_ns", - "name" : "highway", - "sym" : 72, - "color" : "dark_gray", - "see_cost" : 2, - "extras" : "road", - "mapgen": [ - { "method": "builtin", "name": "highway" } - ], - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hiway_ew", - "name" : "highway", - "sym" : 61, - "color" : "dark_gray", - "see_cost" : 2, - "extras" : "road", - "mapgen": [ - { "method": "builtin", "name": "highway" } - ], - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "road", - "name" : "road", - "color" : "dark_gray", - "see_cost" : 2, - "extras" : "road", - "//" : "the entries below are optional and serve as an example of mapgen for line_drawing tiles", - "mapgen_straight": [ - { "method": "builtin", "name": "road_straight" } - ], - "mapgen_curved": [ - { "method": "builtin", "name": "road_curved" } - ], - "mapgen_end": [ - { "method": "builtin", "name": "road_end" } - ], - "mapgen_tee": [ - { "method": "builtin", "name": "road_tee" } - ], - "mapgen_four_way": [ - { "method": "builtin", "name": "road_four_way" } - ], - "flags" : [ "LINEAR" ] - },{ - "type" : "overmap_terrain", - "id" : "road_nesw_manhole", - "name" : "road, manhole", - "sym" : 4194414, - "color" : "yellow", - "see_cost" : 2, - "extras" : "road", - "mapgen": [ - { "method": "builtin", "name": "road_four_way" } - ], - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bridge", - "name" : "bridge", - "sym" : 4194424, - "color" : "white", - "see_cost" : 2, - "mapgen": [ - { "method": "builtin", "name": "bridge" } - ], - "flags" : [ "RIVER" ] - },{ - "type" : "overmap_terrain", - "id" : "river_center", - "name" : "river", - "sym" : 126, - "color" : "blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_center" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_straight" } - ], - "flags" : [ "RIVER" ] - },{ - "type" : "overmap_terrain", - "id" : "river_c_not_ne", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved_not" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_c_not_nw", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved_not" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_c_not_se", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved_not" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_c_not_sw", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved_not" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_ne", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_se", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_sw", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "river_nw", - "name" : "river bank", - "sym" : 126, - "color" : "light_blue", - "see_cost" : 1, - "mapgen": [ - { "method": "builtin", "name": "river_curved" } - ], - "flags" : [ "RIVER", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "house", - "name" : "house", - "sym" : 94, - "color" : "light_green", - "see_cost" : 2, - "extras" : "build", - "mondensity" : 2, - "mapgen": [ - { "method": "builtin", "name": "house_generic_boxy" }, - { "method": "builtin", "name": "house_generic_big_livingroom" }, - { "method": "builtin", "name": "house_generic_center_hallway" } - ], - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "house_base", - "name" : "house", - "sym" : 94, - "color" : "light_green", - "see_cost" : 2, - "extras" : "build", - "mondensity" : 2, - "mapgen": [ - { "method": "builtin", "name": "house_generic_boxy" }, - { "method": "builtin", "name": "house_generic_big_livingroom" }, - { "method": "builtin", "name": "house_generic_center_hallway" } - ], - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "house_prepper", - "name" : "house", - "sym" : 94, - "color" : "light_green", - "see_cost" : 2, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_lot", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 1, - "extras" : "build", - "mondensity" : 2, - "mapgen": [ - { "method": "builtin", "name": "parking_lot" } - ], - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "park", - "name" : "park", - "sym" : 112, - "color" : "blue", - "see_cost" : 2, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pool", - "name" : "pool", - "sym" : 112, - "color" : "blue", - "see_cost" : 2, - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "s_gas", - "name" : "gas station", - "sym" : 103, - "color" : "light_blue", - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_pharm", - "name" : "pharmacy", - "sym" : 112, - "color" : "light_red", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_doctor", - "name" : "doctor's office", - "sym" : 100, - "color" : "light_red", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_cubical", - "name" : "office", - "sym" : 111, - "color" : "dark_gray", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "abstract" : "apartments_tower_any", - "name" : "apartment tower", - "sym" : 65, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "apartments_con_tower_NW", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_con_tower_NE", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_con_tower_SW", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_con_tower_SE", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_mod_tower_NW", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_mod_tower_NE", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_mod_tower_SW", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "apartments_mod_tower_SE", - "copy-from" : "apartments_tower_any" - },{ - "type" : "overmap_terrain", - "id" : "office_tower_1_entrance", - "name" : "office tower", - "sym" : 79, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_1", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_b_entrance", - "name" : "tower parking", - "sym" : 79, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_b", - "name" : "tower parking", - "sym" : 79, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_a1", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_a2", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_a3", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_b1", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_b2", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "office_tower_2_b3", - "name" : "office tower", - "sym" : 111, - "color" : "i_black", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "church", - "name" : "church", - "sym" : 99, - "color" : "white", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_1_NW", - "name" : "cathedral", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_1_NE", - "name" : "cathedral", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_1_SW", - "name" : "cathedral", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_1_SE", - "name" : "cathedral", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_b_NW", - "name" : "cathedral basement", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_b_NE", - "name" : "cathedral basement", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_b_SW", - "name" : "cathedral basement", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cathedral_b_SE", - "name" : "cathedral basement", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_grocery", - "name" : "grocery store", - "sym" : 103, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_hardware", - "name" : "hardware store", - "sym" : 104, - "color" : "light_cyan", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_electronics", - "name" : "electronics store", - "sym" : 101, - "color" : "light_cyan", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_sports", - "name" : "sporting goods store", - "sym" : 115, - "color" : "magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_liquor", - "name" : "liquor store", - "sym" : 108, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_gun", - "name" : "gun store", - "sym" : 103, - "color" : "red", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_clothes", - "name" : "clothing store", - "sym" : 99, - "color" : "magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_library", - "name" : "library", - "sym" : 108, - "color" : "white", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_bookstore", - "name" : "bookstore", - "sym" : 98, - "color" : "white", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_restaurant", - "name" : "restaurant", - "sym" : 114, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_restaurant_fast", - "name" : "fast food restaurant", - "sym" : 102, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_restaurant_coffee", - "name" : "coffee shop", - "sym" : 99, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_teashop", - "name" : "teashop", - "sym" : 116, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "bar", - "name" : "bar", - "sym" : 98, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_pizza_parlor", - "name" : "pizza parlor", - "sym" : 112, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "sub_station", - "name" : "subway station", - "sym" : 115, - "color" : "yellow", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "KNOWN_DOWN", "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_garage", - "name" : "mechanics garage", - "sym" : 109, - "color" : "light_blue", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cabin_strange", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cabin_strange_b", - "name" : "cabin basement", - "sym" : 98, - "color" : "dark_gray", - "see_cost" : 5, - "extras" : "build", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cabin", - "name" : "cabin", - "sym" : 99, - "color" : "light_green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "dirtlot", - "name" : "dirt lot", - "sym" : 79, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sugar_house", - "name" : "sugar house", - "sym" : 83, - "color" : "green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_1", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_2", - "name" : "farm house", - "sym" : 70, - "color" : "i_green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_3", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_4", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_5", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_6", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_7", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_8", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "farm_9", - "name" : "farm field", - "sym" : 102, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "police", - "name" : "police station", - "sym" : 112, - "color" : "red", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "bank", - "name" : "bank", - "sym" : 98, - "color" : "yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "pawn", - "name" : "pawn shop", - "sym" : 112, - "color" : "magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mil_surplus", - "name" : "mil. surplus", - "sym" : 109, - "color" : "magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "furniture", - "name" : "furniture store", - "sym" : 102, - "color" : "blue", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "abstorefront", - "name" : "abandoned storefront", - "sym" : 97, - "color" : "blue", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "s_music", - "name" : "music store", - "sym" : 109, - "color" : "magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "megastore_entrance", - "name" : "megastore", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "megastore", - "name" : "megastore", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "abstract" : "generic_hospital", - "name" : "hospital", - "sym" : 104, - "color" : "i_light_red", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hospital_1", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_2", - "sym" : 72, - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_3", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_4", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_5", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_6", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_7", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_8", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "hospital_9", - "copy-from" : "generic_hospital" - },{ - "type" : "overmap_terrain", - "id" : "public_works_NE", - "name" : "public works", - "sym" : 119, - "color" : "i_light_cyan", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "public_works_NW", - "name" : "public works", - "sym" : 119, - "color" : "i_light_cyan", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "public_works_SW", - "name" : "public works", - "sym" : 87, - "color" : "i_light_cyan", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK"] - },{ - "type" : "overmap_terrain", - "id" : "public_works_SE", - "name" : "public works", - "sym" : 119, - "color" : "i_light_cyan", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_1", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_2", - "name" : "regional school", - "sym" : 83, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_3", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_4", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_5", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_6", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_7", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_8", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "school_1_9", - "name" : "regional school", - "sym" : 115, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_1", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_2", - "name" : "prison", - "sym" : 80, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_3", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_4", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_5", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_6", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_7", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_8", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_9", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_1", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_2", - "name" : "prison", - "sym" : 80, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_3", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_4", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_5", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_6", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_7", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_8", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "prison_1_b_9", - "name" : "prison", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5 - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_1", - "name" : "hotel parking", - "sym" : 104, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_2", - "name" : "hotel parking", - "sym" : 104, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_3", - "name" : "hotel parking", - "sym" : 104, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_4", - "name" : "hotel parking", - "sym" : 104, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_5", - "name" : "hotel entrance", - "sym" : 72, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_6", - "name" : "hotel parking", - "sym" : 104, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_7", - "name" : "hotel tower", - "sym" : 72, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_8", - "name" : "hotel tower", - "sym" : 72, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_1_9", - "name" : "hotel tower", - "sym" : 72, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_b_1", - "name" : "hotel basement", - "sym" : 66, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_b_2", - "name" : "hotel basement", - "sym" : 66, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "hotel_tower_b_3", - "name" : "hotel basement", - "sym" : 66, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2 + { + "type": "overmap_terrain", + "id": "", + "name": "nothing", + "sym": 37, + "color": "white", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "open_air", + "name": "open air", + "sym": 46, + "color": "blue", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "crater", + "name": "crater", + "sym": 42, + "color": "pink", + "see_cost": 2, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "field", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 2, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "forest", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 3, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 3 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "forest_thick", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 4, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 6 ], "chance": 90 }, + "mapgen": [ { "method": "builtin", "name": "forest" } ], + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "forest_water", + "name": "swamp", + "sym": 35, + "color": "cyan", + "see_cost": 4, + "extras": "field", + "spawns": { "group": "GROUP_SWAMP", "population": [ 1, 4 ], "chance": 100 }, + "mapgen": [ { "method": "builtin", "name": "forest" } ], + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hiway_ns", + "name": "highway", + "sym": 72, + "color": "dark_gray", + "see_cost": 2, + "extras": "road", + "mapgen": [ { "method": "builtin", "name": "highway" } ], + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hiway_ew", + "name": "highway", + "sym": 61, + "color": "dark_gray", + "see_cost": 2, + "extras": "road", + "mapgen": [ { "method": "builtin", "name": "highway" } ], + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "road", + "name": "road", + "color": "dark_gray", + "see_cost": 2, + "extras": "road", + "//": "the entries below are optional and serve as an example of mapgen for line_drawing tiles", + "mapgen_straight": [ { "method": "builtin", "name": "road_straight" } ], + "mapgen_curved": [ { "method": "builtin", "name": "road_curved" } ], + "mapgen_end": [ { "method": "builtin", "name": "road_end" } ], + "mapgen_tee": [ { "method": "builtin", "name": "road_tee" } ], + "mapgen_four_way": [ { "method": "builtin", "name": "road_four_way" } ], + "flags": [ "LINEAR" ] + }, + { + "type": "overmap_terrain", + "id": "road_nesw_manhole", + "name": "road, manhole", + "sym": 4194414, + "color": "yellow", + "see_cost": 2, + "extras": "road", + "mapgen": [ { "method": "builtin", "name": "road_four_way" } ], + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bridge", + "name": "bridge", + "sym": 4194424, + "color": "white", + "see_cost": 2, + "mapgen": [ { "method": "builtin", "name": "bridge" } ], + "flags": [ "RIVER" ] + }, + { + "type": "overmap_terrain", + "id": "river_center", + "name": "river", + "sym": 126, + "color": "blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_center" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_straight" } ], + "flags": [ "RIVER" ] + }, + { + "type": "overmap_terrain", + "id": "river_c_not_ne", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_c_not_nw", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_c_not_se", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_c_not_sw", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_ne", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_se", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_sw", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "river_nw", + "name": "river bank", + "sym": 126, + "color": "light_blue", + "see_cost": 1, + "mapgen": [ { "method": "builtin", "name": "river_curved" } ], + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "house", + "name": "house", + "sym": 94, + "color": "light_green", + "see_cost": 2, + "extras": "build", + "mondensity": 2, + "mapgen": [ + { "method": "builtin", "name": "house_generic_boxy" }, + { "method": "builtin", "name": "house_generic_big_livingroom" }, + { "method": "builtin", "name": "house_generic_center_hallway" } + ], + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "house_base", + "name": "house", + "sym": 94, + "color": "light_green", + "see_cost": 2, + "extras": "build", + "mondensity": 2, + "mapgen": [ + { "method": "builtin", "name": "house_generic_boxy" }, + { "method": "builtin", "name": "house_generic_big_livingroom" }, + { "method": "builtin", "name": "house_generic_center_hallway" } + ], + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "house_prepper", + "name": "house", + "sym": 94, + "color": "light_green", + "see_cost": 2, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_lot", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 1, + "extras": "build", + "mondensity": 2, + "mapgen": [ { "method": "builtin", "name": "parking_lot" } ], + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "park", + "name": "park", + "sym": 112, + "color": "blue", + "see_cost": 2, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pool", + "name": "pool", + "sym": 112, + "color": "blue", + "see_cost": 2, + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "s_gas", + "name": "gas station", + "sym": 103, + "color": "light_blue", + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_pharm", + "name": "pharmacy", + "sym": 112, + "color": "light_red", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_doctor", + "name": "doctor's office", + "sym": 100, + "color": "light_red", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_cubical", + "name": "office", + "sym": 111, + "color": "dark_gray", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "abstract": "apartments_tower_any", + "name": "apartment tower", + "sym": 65, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "apartments_con_tower_NW", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_con_tower_NE", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_con_tower_SW", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_con_tower_SE", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_mod_tower_NW", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_mod_tower_NE", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_mod_tower_SW", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "apartments_mod_tower_SE", + "copy-from": "apartments_tower_any" + }, + { + "type": "overmap_terrain", + "id": "office_tower_1_entrance", + "name": "office tower", + "sym": 79, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_1", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_b_entrance", + "name": "tower parking", + "sym": 79, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_b", + "name": "tower parking", + "sym": 79, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_a1", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_a2", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_a3", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_b1", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_b2", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "office_tower_2_b3", + "name": "office tower", + "sym": 111, + "color": "i_black", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "church", + "name": "church", + "sym": 99, + "color": "white", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_1_NW", + "name": "cathedral", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_1_NE", + "name": "cathedral", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_1_SW", + "name": "cathedral", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_1_SE", + "name": "cathedral", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_b_NW", + "name": "cathedral basement", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_b_NE", + "name": "cathedral basement", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_b_SW", + "name": "cathedral basement", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cathedral_b_SE", + "name": "cathedral basement", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_grocery", + "name": "grocery store", + "sym": 103, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_hardware", + "name": "hardware store", + "sym": 104, + "color": "light_cyan", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_electronics", + "name": "electronics store", + "sym": 101, + "color": "light_cyan", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_sports", + "name": "sporting goods store", + "sym": 115, + "color": "magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_liquor", + "name": "liquor store", + "sym": 108, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_gun", + "name": "gun store", + "sym": 103, + "color": "red", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_clothes", + "name": "clothing store", + "sym": 99, + "color": "magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_library", + "name": "library", + "sym": 108, + "color": "white", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_bookstore", + "name": "bookstore", + "sym": 98, + "color": "white", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_restaurant", + "name": "restaurant", + "sym": 114, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_restaurant_fast", + "name": "fast food restaurant", + "sym": 102, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_restaurant_coffee", + "name": "coffee shop", + "sym": 99, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_teashop", + "name": "teashop", + "sym": 116, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "bar", + "name": "bar", + "sym": 98, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_pizza_parlor", + "name": "pizza parlor", + "sym": 112, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "sub_station", + "name": "subway station", + "sym": 115, + "color": "yellow", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_garage", + "name": "mechanics garage", + "sym": 109, + "color": "light_blue", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cabin_strange", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cabin_strange_b", + "name": "cabin basement", + "sym": 98, + "color": "dark_gray", + "see_cost": 5, + "extras": "build", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cabin", + "name": "cabin", + "sym": 99, + "color": "light_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "dirtlot", + "name": "dirt lot", + "sym": 79, + "color": "brown", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sugar_house", + "name": "sugar house", + "sym": 83, + "color": "green", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_1", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_2", + "name": "farm house", + "sym": 70, + "color": "i_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_3", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_4", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_5", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_6", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_7", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_8", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "farm_9", + "name": "farm field", + "sym": 102, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "police", + "name": "police station", + "sym": 112, + "color": "red", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "bank", + "name": "bank", + "sym": 98, + "color": "yellow", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "pawn", + "name": "pawn shop", + "sym": 112, + "color": "magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mil_surplus", + "name": "mil. surplus", + "sym": 109, + "color": "magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "furniture", + "name": "furniture store", + "sym": 102, + "color": "blue", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "abstorefront", + "name": "abandoned storefront", + "sym": 97, + "color": "blue", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "s_music", + "name": "music store", + "sym": 109, + "color": "magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "megastore_entrance", + "name": "megastore", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "megastore", + "name": "megastore", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "abstract": "generic_hospital", + "name": "hospital", + "sym": 104, + "color": "i_light_red", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hospital_1", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_2", + "sym": 72, + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_3", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_4", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_5", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_6", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_7", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_8", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "hospital_9", + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "id": "public_works_NE", + "name": "public works", + "sym": 119, + "color": "i_light_cyan", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "public_works_NW", + "name": "public works", + "sym": 119, + "color": "i_light_cyan", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "public_works_SW", + "name": "public works", + "sym": 87, + "color": "i_light_cyan", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "public_works_SE", + "name": "public works", + "sym": 119, + "color": "i_light_cyan", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_1", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_2", + "name": "regional school", + "sym": 83, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_3", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_4", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_5", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_6", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_7", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_8", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "school_1_9", + "name": "regional school", + "sym": 115, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_1", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_2", + "name": "prison", + "sym": 80, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_3", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_4", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_5", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_6", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_7", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_8", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_9", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_1", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_2", + "name": "prison", + "sym": 80, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_3", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_4", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_5", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_6", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_7", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_8", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "prison_1_b_9", + "name": "prison", + "sym": 112, + "color": "i_yellow", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_1", + "name": "hotel parking", + "sym": 104, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_2", + "name": "hotel parking", + "sym": 104, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_3", + "name": "hotel parking", + "sym": 104, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_4", + "name": "hotel parking", + "sym": 104, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_5", + "name": "hotel entrance", + "sym": 72, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_6", + "name": "hotel parking", + "sym": 104, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_7", + "name": "hotel tower", + "sym": 72, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_8", + "name": "hotel tower", + "sym": 72, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_1_9", + "name": "hotel tower", + "sym": 72, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_b_1", + "name": "hotel basement", + "sym": 66, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_b_2", + "name": "hotel basement", + "sym": 66, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "hotel_tower_b_3", + "name": "hotel basement", + "sym": 66, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "motel_entrance", + "name": "motel", + "sym": 77, + "color": "i_light_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "motel_1", + "name": "motel", + "sym": 109, + "color": "i_light_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "motel_2", + "name": "motel", + "sym": 109, + "color": "i_light_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "motel_3", + "name": "motel", + "sym": 109, + "color": "i_light_green", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "dirtroad1_aban1", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "forest_aban1", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "dirtroad2_aban1", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "dirtplaza_aban1", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "cabin_aban1", + "name": "ruined cabin", + "sym": 35, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "barn_aban1", + "name": "barn", + "sym": 70, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "car_corner_aban1", + "name": "car corner", + "sym": 70, + "color": "green", + "see_cost": 4 + }, + { + "type": "overmap_terrain", + "id": "shipwreck_river_1", + "name": "shipwreck", + "sym": 115, + "color": "pink", + "see_cost": 4, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "shipwreck_river_2", + "name": "shipwreck", + "sym": 115, + "color": "pink", + "see_cost": 4, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "shipwreck_river_3", + "name": "razorclaw nest", + "sym": 115, + "color": "pink", + "see_cost": 4, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "shipwreck_river_4", + "name": "shipwreck", + "sym": 115, + "color": "pink", + "see_cost": 4, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "s_gas_rural", + "name": "gas station", + "sym": 103, + "color": "light_blue", + "extras": "build", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "fema_entrance", + "name": "fema camp", + "sym": 70, + "color": "i_red", + "see_cost": 5, + "extras": "build", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "fema", + "name": "fema camp", + "sym": 102, + "color": "i_red", + "see_cost": 5, + "extras": "build", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "station_radio", + "name": "radio station", + "sym": 114, + "color": "blue", + "see_cost": 5, + "extras": "build", + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "shelter", + "name": "evac shelter", + "sym": 101, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "shelter_under", + "name": "evac shelter", + "sym": 101, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lmoe", + "name": "LMOE shelter", + "sym": 108, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lmoe_under", + "name": "LMOE shelter", + "sym": 108, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lab", + "name": "science lab", + "sym": 108, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lab_stairs", + "name": "science lab", + "sym": 76, + "color": "i_pink", + "see_cost": 5, + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lab_core", + "name": "science lab", + "sym": 108, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 8 ], "chance": 30 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lab_finale", + "name": "science lab", + "sym": 76, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 4, 12 ], "chance": 90 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ants_lab", + "name": "science lab", + "sym": 108, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ants_lab_stairs", + "name": "science lab", + "sym": 76, + "color": "i_pink", + "see_cost": 5, + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ice_lab", + "name": "science lab", + "sym": 108, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ice_lab_stairs", + "name": "science lab", + "sym": 76, + "color": "i_pink", + "see_cost": 5, + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ice_lab_core", + "name": "science lab", + "sym": 108, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 8 ], "chance": 30 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ice_lab_finale", + "name": "science lab", + "sym": 76, + "color": "i_pink", + "spawns": { "group": "GROUP_LAB", "population": [ 4, 12 ], "chance": 90 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "lab_train_depot", + "name": "science train depot", + "sym": 108, + "color": "i_pink", + "see_cost": 5, + "extras": "subway", + "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "central_lab_entrance", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 3, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bunker", + "name": "military bunker", + "sym": 98, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_DOWN" ] + }, + { + "type": "overmap_terrain", + "id": "bunker_basement", + "name": "military bunker", + "sym": 98, + "color": "red", + "see_cost": 2, + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "outpost", + "name": "military outpost", + "sym": 111, + "color": "red", + "see_cost": 2, + "extras": "build", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "silo", + "name": "missile silo", + "sym": 77, + "color": "red", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "silo_finale", + "name": "missile silo", + "sym": 77, + "color": "white_red", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "temple", + "name": "strange temple", + "sym": 83, + "color": "i_pink", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "standing_stones", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 3, + "extras": "field", + "spawns": { "group": "GROUP_STANDING_STONES", "population": [ 1, 4 ], "chance": 100 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "temple_stairs", + "name": "strange temple", + "sym": 115, + "color": "pink", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "temple_finale", + "name": "strange temple", + "sym": 115, + "color": "pink", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment", + "name": "sewage treatment", + "sym": 115, + "color": "yellow", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_hub", + "name": "sewage treatment", + "sym": 115, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_under", + "name": "sewage treatment", + "sym": 115, + "color": "i_yellow", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mine_entrance", + "name": "mine entrance", + "sym": 77, + "color": "dark_gray", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mine_shaft", + "name": "mine shaft", + "sym": 109, + "color": "i_black", + "see_cost": 5, + "flags": [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mine", + "name": "mine", + "sym": 109, + "color": "i_black", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mine_down", + "name": "mine", + "sym": 77, + "color": "i_black", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mine_finale", + "name": "mine", + "sym": 77, + "color": "i_black", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "spiral_hub", + "name": "spiral cavern", + "sym": 64, + "color": "pink", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "spiral", + "name": "spiral cavern", + "sym": 64, + "color": "pink", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "radio_tower", + "name": "radio tower", + "sym": 114, + "color": "blue", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "toxic_dump", + "name": "toxic waste dump", + "sym": 116, + "color": "pink", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "haz_sar_entrance", + "name": "hazardous waste sarcophagus", + "sym": 72, + "color": "i_pink", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "haz_sar", + "name": "hazardous waste sarcophagus", + "sym": 104, + "color": "i_pink", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "haz_sar_entrance_b1", + "name": "hazardous waste sarcophagus", + "sym": 72, + "color": "i_pink", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "haz_sar_b1", + "name": "hazardous waste sarcophagus", + "sym": 104, + "color": "i_pink", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cave", + "name": "cave", + "sym": 99, + "color": "brown", + "see_cost": 2, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cave_rat", + "name": "rat cave", + "sym": 99, + "color": "brown", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hive", + "name": "bee hive", + "sym": 98, + "color": "i_pink", + "see_cost": 3, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "fungal_bloom", + "name": "fungal bloom", + "sym": 70, + "color": "pink", + "see_cost": 2, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "fungal_tower", + "name": "fungal tower", + "sym": 70, + "color": "pink", + "see_cost": 3, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "fungal_flowers", + "name": "fungal flowers", + "sym": 70, + "color": "pink", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "spider_pit", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 3, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "spider_pit_under", + "name": "cavern", + "sym": 99, + "color": "brown", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "anthill", + "name": "anthill", + "sym": 97, + "color": "i_pink", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "slimepit", + "name": "slime pit", + "sym": 83, + "color": "i_pink", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "slimepit_down", + "name": "slime pit", + "sym": 115, + "color": "i_pink", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "triffid_grove", + "name": "triffid grove", + "sym": 84, + "color": "i_pink", + "see_cost": 5, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "triffid_roots", + "name": "triffid roots", + "sym": 116, + "color": "i_pink", + "see_cost": 5, + "flags": [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "triffid_finale", + "name": "triffid heart", + "sym": 84, + "color": "i_pink", + "see_cost": 5, + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "basement", + "sym": 98, + "copy-from": "generic_city_house_basement", + "mapgen": [ { "method": "builtin", "name": "basement_junk" }, { "method": "builtin", "name": "basement_spiders" } ] + }, + { + "type": "overmap_terrain", + "id": "basement_bionic", + "sym": 98, + "copy-from": "generic_city_house_basement" + }, + { + "type": "overmap_terrain", + "id": "cavern", + "name": "cavern", + "sym": 48, + "color": "light_gray", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "rock", + "//": "This is old rock type, new one (below) will replace it in new overmaps", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "empty_rock", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "rift", + "name": "rift", + "sym": 94, + "color": "red", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hellmouth", + "name": "hellmouth", + "sym": 94, + "color": "light_red", + "see_cost": 2, + "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sewer_sub_station", + "name": "subway station (underground level)", + "sym": 83, + "color": "yellow", + "see_cost": 5, + "extras": "subway", + "flags": [ "KNOWN_UP", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "subway", + "name": "subway", + "color": "dark_gray", + "see_cost": 5, + "extras": "subway", + "flags": [ "LINEAR" ] + }, + { + "type": "overmap_terrain", + "id": "sewer", + "name": "sewer", + "color": "green", + "see_cost": 5, + "flags": [ "LINEAR" ] + }, + { + "type": "overmap_terrain", + "id": "ants", + "name": "ant tunnel", + "color": "brown", + "see_cost": 5, + "flags": [ "LINEAR" ] + }, + { + "type": "overmap_terrain", + "id": "ants_food", + "name": "ant food storage", + "sym": 79, + "color": "green", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ants_larvae", + "name": "ant larva chamber", + "sym": 79, + "color": "white", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ants_queen", + "name": "ant queen chamber", + "sym": 79, + "color": "red", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "tutorial", + "name": "tutorial room", + "sym": 79, + "color": "cyan", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_1", + "name": "road", + "sym": 4194412, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_2", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_3", + "name": "mall - loading bay", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_4", + "name": "mall - utilities", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_5", + "name": "mall - utilities", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_6", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_7", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_8", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_9", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_10", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_11", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_12", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_13", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_14", + "name": "mall - entrance", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_15", + "name": "road", + "sym": 4194413, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_16", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_17", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_18", + "name": "road", + "sym": 4194411, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_19", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_20", + "name": "mall - food court", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_21", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_22", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_23", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_24", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_25", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_26", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_27", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_28", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_29", + "name": "mall - food court", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_30", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_31", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_32", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_33", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_34", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_35", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_36", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_37", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_38", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_39", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_40", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_41", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_42", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_43", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_44", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_45", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_46", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_47", + "name": "mall - entrance", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_48", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_49", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_50", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_51", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_52", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_53", + "name": "mall - entrance", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_54", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_55", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_56", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_57", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_58", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_59", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_60", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_61", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_62", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_63", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_64", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_65", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_66", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_67", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_68", + "name": "mall - entrance", + "sym": 77, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_69", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_70", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_71", + "name": "mall", + "sym": 109, + "color": "i_magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_72", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_73", + "name": "road", + "sym": 4194413, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_74", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_75", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_76", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_77", + "name": "road", + "sym": 4194423, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_78", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_79", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_80", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mall_a_81", + "name": "road", + "sym": 4194410, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_1", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_2", + "name": "house", + "sym": 118, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_3", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_4", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_5", + "name": "abandoned store", + "sym": 97, + "color": "blue", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_6", + "name": "road", + "color": "dark_gray", + "sym": 4194424, + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_7", + "name": "pump station", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "mondensity": 2, + "flags": [ "KNOWN_DOWN" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_8", + "name": "pump station", + "sym": 112, + "color": "i_yellow", + "see_cost": 5, + "mondensity": 2, + "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_9", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_10", + "name": "house", + "sym": 62, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_11", + "name": "road", + "color": "dark_gray", + "sym": 4194424, + "see_cost": 5, + "mondensity": 2, + "extras": "road", + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_12", + "name": "gardening store", + "sym": 103, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_13", + "name": "salon", + "sym": 115, + "color": "blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_14", + "name": "crater", + "sym": 42, + "color": "pink", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_15", + "name": "road", + "mondensity": 2, + "see_cost": 5, + "sym": 4194424, + "color": "dark_gray" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_16", + "name": "police station", + "sym": 112, + "color": "i_red", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_17", + "name": "police station", + "sym": 112, + "color": "i_red", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_18", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_19", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_20", + "name": "road", + "sym": 4194413, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_21", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_22", + "name": "road", + "sym": 4194423, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_23", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_24", + "name": "road", + "sym": 4194422, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_25", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_26", + "name": "road", + "sym": 4194411, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_27", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_28", + "name": "grocery store", + "sym": 103, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_29", + "name": "grocery store", + "sym": 103, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_30", + "name": "park", + "sym": 112, + "color": "blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_31", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_32", + "name": "church", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_33", + "name": "church", + "sym": 99, + "color": "i_white", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_34", + "name": "pawn shop", + "sym": 112, + "color": "magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_35", + "name": "crater", + "sym": 42, + "color": "pink", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_36", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_37", + "name": "furniture store", + "sym": 102, + "color": "blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_38", + "name": "crater", + "sym": 42, + "color": "pink", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_39", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_40", + "name": "road", + "sym": 4194422, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_41", + "name": "road", + "sym": 4194423, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_42", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_43", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_44", + "name": "road", + "sym": 4194421, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_45", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_46", + "name": "clothing store", + "sym": 99, + "color": "magenta", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_47", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_48", + "name": "motel", + "sym": 109, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_49", + "name": "motel", + "sym": 109, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_50", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_51", + "name": "restaurant", + "sym": 114, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_52", + "name": "bank", + "sym": 98, + "color": "yellow", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_53", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_54", + "name": "house", + "sym": 60, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_55", + "name": "motel", + "sym": 109, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_56", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_57", + "name": "motel", + "sym": 109, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_58", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_59", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_60", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_61", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_62", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_63", + "name": "house", + "sym": 60, + "color": "light_green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_64", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_65", + "name": "road", + "sym": 4194422, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_66", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_67", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_68", + "name": "road", + "sym": 4194414, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_69", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_70", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_71", + "name": "road", + "sym": 4194410, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_72", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_73", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_74", + "name": "bar", + "sym": 98, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_75", + "name": "fast food restaurant", + "sym": 102, + "color": "green", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_76", + "name": "parking lot", + "sym": 112, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_77", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_78", + "name": "gas station", + "sym": 103, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_79", + "name": "mechanic garage", + "sym": 109, + "color": "light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_80", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_81", + "name": "field", + "sym": 46, + "color": "brown", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "//": "xxx Bookmark for necropolis sewers", + "type": "overmap_terrain", + "id": "necropolis_b_1", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_2", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_3", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_4", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_5", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_6", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_7", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_8", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_9", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_10", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_11", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_12", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_13", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_14", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_15", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_16", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_17", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_18", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_19", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_20", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_21", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_22", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_23", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_24", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_25", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_26", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_27", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_28", + "name": "cavern", + "sym": 48, + "color": "light_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_29", + "name": "sewer?", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_30", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_31", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_32", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_33", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_34", + "name": "basement", + "sym": 79, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_35", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_36", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_37", + "name": "cavern", + "sym": 48, + "color": "light_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_38", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_39", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_40", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_41", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_42", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_43", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_44", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_45", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_46", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_47", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_48", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_49", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_50", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_51", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_52", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_53", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_54", + "name": "basement", + "sym": 79, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_55", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_56", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_57", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_58", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_59", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_60", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_61", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_62", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_63", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_64", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_65", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_66", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_67", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_68", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_69", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_70", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_71", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_72", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_73", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_74", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_75", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_76", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_77", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_78", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_79", + "name": "sewer", + "sym": 4194414, + "color": "green", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_80", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_81", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_1", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_2", + "name": "Vault - Armory", + "sym": 65, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_3", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_4", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_5", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_6", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_7", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_8", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_9", + "name": "Vault - Jail", + "sym": 74, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_10", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_11", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_12", + "name": "Vault - Barracks", + "sym": 66, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_13", + "name": "Vault - Offices", + "sym": 79, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_14", + "name": "Vault - Offices", + "sym": 79, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_15", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_16", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_17", + "name": "Vault - Police Station", + "sym": 80, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_18", + "name": "Vault - Police Station", + "sym": 80, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_19", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_20", + "name": "Vault - Entrance", + "sym": 69, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_21", + "name": "Vault - Utilities", + "sym": 85, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_22", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_23", + "name": "Vault - Communications", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_24", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_25", + "name": "Vault - Courthouse", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_26", + "name": "Vault - Police Station", + "sym": 80, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_27", + "name": "Vault - Police Station", + "sym": 80, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_28", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_29", + "name": "Vault - Entrance", + "sym": 69, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_30", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_31", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_32", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_33", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_34", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_35", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_36", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_37", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_38", + "name": "Vault - Motor Pool", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_39", + "name": "Vault - Motor Pool", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_40", + "name": "Vault - Visitor Center", + "sym": 86, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_41", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_42", + "name": "Vault - Control", + "sym": 88, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_43", + "name": "Vault - Control", + "sym": 88, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_44", + "name": "Vault - Control", + "sym": 88, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_45", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_46", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_47", + "name": "Vault - Motor Pool", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_48", + "name": "Vault - Motor Pool", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_49", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_50", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_51", + "name": "Vault - Cafeteria", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_52", + "name": "Vault - Cafeteria", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_53", + "name": "Vault - Cafeteria", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_54", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_55", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_56", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_57", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_58", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_59", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_60", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_61", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_62", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_63", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_64", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_65", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_66", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_67", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_68", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_69", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_70", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_71", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_72", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_73", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_74", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_75", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_76", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_77", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_78", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_79", + "name": "Vault - School", + "sym": 83, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_80", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_81", + "name": "Vault - Labs", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_1", + "name": "Vault - Robotics Bay", + "sym": 82, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_2", + "name": "Vault - Robotics Bay", + "sym": 82, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_3", + "name": "Vault - Slum Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_4", + "name": "Vault - Slum Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_5", + "name": "Vault - Slum Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_6", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_7", + "name": "Vault - Hospital", + "sym": 72, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_8", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_9", + "name": "Vault - Suites", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_10", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_11", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_12", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_13", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_14", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_15", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_16", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_17", + "name": "Vault - Suites", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_18", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_19", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_20", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_21", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_22", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_23", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_24", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_25", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_26", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_27", + "name": "Vault - Transition Bay", + "sym": 84, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_28", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_29", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_30", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_31", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_32", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_33", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_34", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_35", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_36", + "name": "Vault - Transition Bay", + "sym": 84, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_37", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_38", + "name": "Vault - Maint. Bay", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_39", + "name": "Vault - Maint. Bay", + "sym": 77, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_40", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_41", + "name": "Vault - Quartermasters", + "sym": 81, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_42", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_43", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_44", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_45", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_46", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_47", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_48", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_49", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_50", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_51", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_52", + "name": "Vault - Kitchen", + "sym": 75, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_53", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_54", + "name": "Vault - Slum Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_55", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_56", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_57", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_58", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_59", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_60", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_61", + "name": "Vault - Conference Room", + "sym": 67, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_62", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_63", + "name": "Vault - Slum Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_64", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_65", + "name": "Vault - Living Bays", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_66", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_67", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_68", + "name": "Vault - Housing", + "sym": 104, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_69", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_70", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_71", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_72", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_73", + "name": "solid rock", + "sym": 37, + "color": "dark_gray", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_74", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_75", + "name": "Vault - Library", + "sym": 76, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_76", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_77", + "name": "Vault - Light Industry", + "sym": 73, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_78", + "name": "Vault - Light Industry", + "sym": 73, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_79", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_80", + "name": "Vault - Gym", + "sym": 71, + "color": "yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_81", + "name": "Vault - Passage", + "sym": 4194414, + "color": "white", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_1", + "name": "road", + "sym": 4194412, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_2", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_3", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_4", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_5", + "name": "road", + "sym": 4194411, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_6", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_7", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_8", + "name": "refugee center", + "sym": 82, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_9", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_10", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_11", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_12", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_13", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_14", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_15", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "extras": "build", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_16", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_17", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_18", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_19", + "name": "refugee center", + "sym": 114, + "color": "i_red", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_20", + "name": "road", + "sym": 4194424, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_21", + "name": "road", + "sym": 4194413, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_22", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_23", + "name": "road", + "sym": 4194423, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_24", + "name": "road", + "sym": 4194417, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "evac_center_25", + "name": "road", + "sym": 4194410, + "color": "dark_gray", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "bandit_cabin", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bandit_camp_1", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bandit_camp_2", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bandit_camp_3", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "bandit_camp_4", + "name": "forest", + "sym": 35, + "color": "green", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "sai", + "name": "interface", + "sym": 105, + "color": "yellow", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pwr_sub_s", + "name": "electric substation", + "sym": 101, + "color": "yellow", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pwr_large_entrance", + "name": "electric substation", + "sym": 69, + "color": "i_yellow", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pwr_large_2", + "name": "electric substation", + "sym": 101, + "color": "i_yellow", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pwr_large_3", + "name": "electric substation", + "sym": 101, + "color": "i_yellow", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pwr_large_4", + "name": "electric substation", + "sym": 101, + "color": "i_yellow", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "warehouse", + "name": "small warehouse", + "sym": 119, + "color": "light_cyan", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_entrance", + "name": "home improvement superstore entrance", + "sym": 72, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_SW", + "name": "home improvement superstore", + "sym": 104, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_NW", + "name": "home improvement superstore", + "sym": 104, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_NE", + "name": "home improvement superstore", + "sym": 104, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_backroom", + "name": "home improvement superstore", + "sym": 104, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hdwr_large_loadingbay", + "name": "home improvement superstore", + "sym": 104, + "color": "i_light_cyan", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_1", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_2", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_3", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_4", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_5", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_6", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_7", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_8", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_9", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_10", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_11", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_12", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_13", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_14", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_15", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_16", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_17", + "name": "pond", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_18", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_19", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_20", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_21", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_22", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_23", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_24", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_25", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_26", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_27", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_28", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_29", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_30", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_31", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_32", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_33", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_34", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_35", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_36", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_37", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_38", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_39", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_40", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_41", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_42", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_43", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_44", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_45", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_46", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_47", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_48", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_49", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_50", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_51", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_52", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_53", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_54", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_55", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_56", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_57", + "name": "silo", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_58", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_59", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_60", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_61", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_62", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_63", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_64", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_65", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_66", + "name": "barn", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_67", + "name": "garage", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_68", + "name": "ranch", + "sym": 82, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_69", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_70", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_71", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_72", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_73", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_74", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_75", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_76", + "name": "lot", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_77", + "name": "road", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "extras": "road", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_78", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_79", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_80", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "ranch_camp_81", + "name": "field", + "sym": 114, + "color": "i_brown", + "see_cost": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "looted_building", + "name": "looted building", + "sym": 108, + "color": "light_gray", + "see_cost": 2 + }, + { + "type": "overmap_terrain", + "id": "debug_ramps", + "name": "ramp testing area", + "sym": 37, + "color": "white", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_a1", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_a2", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_a3", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_a4", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_a5", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_b1", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_b2", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_b3", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_b4", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_b5", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_c1", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_c2", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_c3", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_c4", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "football_field_c5", + "name": "football field", + "sym": 102, + "color": "i_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "campsite", + "name": "campsite", + "sym": 99, + "color": "brown", + "see_cost": 5, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "campsite_a", + "name": "campsites", + "sym": 99, + "color": "brown", + "see_cost": 5, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "campsite_cabin_incomplete", + "name": "incomplete cabin", + "sym": 99, + "color": "brown", + "see_cost": 5, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "campsite_field_biker", + "name": "field campsite", + "sym": 99, + "color": "brown", + "see_cost": 5, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "campsite_field_biker_destroyed", + "name": "field campsite", + "sym": 99, + "color": "brown", + "see_cost": 5, + "extras": "field", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 1 ], "chance": 80 }, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "roadstop", + "name": "roadstop", + "sym": 114, + "color": "blue", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "roadstop_a", + "name": "public washroom", + "sym": 112, + "color": "blue", + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "roadstop_b", + "name": "roadside foodcart", + "sym": 102, + "color": "green", + "mondensity": 2, + "flags": [ "SIDEWALK" ] }, { "type": "overmap_terrain", - "id": "motel_entrance", - "name": "motel", - "sym": 77, - "color": "i_light_green", + "id": "pump_station_1", + "name": "pump station", + "sym": 112, + "color": "yellow", "see_cost": 5, - "extras": "build", "mondensity": 2, - "flags": [ "SIDEWALK" ] + "flags": [ "KNOWN_DOWN", "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "pump_station_2", + "name": "pump station", + "sym": 112, + "color": "yellow", + "see_cost": 5, + "mondensity": 2, + "flags": [ "KNOWN_DOWN" ] + }, + { + "type": "overmap_terrain", + "id": "pump_station_3", + "name": "sewer", + "sym": 112, + "color": "i_yellow", + "see_cost": 999, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "pump_station_4", + "name": "sewer", + "sym": 112, + "color": "i_yellow", + "see_cost": 999, + "mondensity": 2 }, { - "type" : "overmap_terrain", - "id" : "motel_1", - "name" : "motel", - "sym" : 109, - "color" : "i_light_green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "motel_2", - "name" : "motel", - "sym" : 109, - "color" : "i_light_green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "motel_3", - "name" : "motel", - "sym" : 109, - "color" : "i_light_green", - "see_cost" : 5, - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "dirtroad1_aban1", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "forest_aban1", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "dirtroad2_aban1", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "dirtplaza_aban1", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "cabin_aban1", - "name" : "ruined cabin", - "sym" : 35, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "barn_aban1", - "name" : "barn", - "sym" : 70, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "car_corner_aban1", - "name" : "car corner", - "sym" : 70, - "color" : "green", - "see_cost" : 4 - },{ - "type" : "overmap_terrain", - "id" : "shipwreck_river_1", - "name" : "shipwreck", - "sym" : 115, - "color" : "pink", - "see_cost" : 4, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "shipwreck_river_2", - "name" : "shipwreck", - "sym" : 115, - "color" : "pink", - "see_cost" : 4, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "shipwreck_river_3", - "name" : "razorclaw nest", - "sym" : 115, - "color" : "pink", - "see_cost" : 4, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "shipwreck_river_4", - "name" : "shipwreck", - "sym" : 115, - "color" : "pink", - "see_cost" : 4, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "s_gas_rural", - "name" : "gas station", - "sym" : 103, - "color" : "light_blue", - "extras" : "build", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "fema_entrance", - "name" : "fema camp", - "sym" : 70, - "color" : "i_red", - "see_cost" : 5, - "extras" : "build", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "fema", - "name" : "fema camp", - "sym" : 102, - "color" : "i_red", - "see_cost" : 5, - "extras" : "build", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "station_radio", - "name" : "radio station", - "sym" : 114, - "color" : "blue", - "see_cost" : 5, - "extras" : "build", - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "shelter", - "name" : "evac shelter", - "sym" : 101, - "color" : "red", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "shelter_under", - "name" : "evac shelter", - "sym" : 101, - "color" : "red", - "see_cost" : 2, - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lmoe", - "name" : "LMOE shelter", - "sym" : 108, - "color" : "red", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lmoe_under", - "name" : "LMOE shelter", - "sym" : 108, - "color" : "red", - "see_cost" : 2, - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lab", - "name" : "science lab", - "sym" : 108, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lab_stairs", - "name" : "science lab", - "sym" : 76, - "color" : "i_pink", - "see_cost" : 5, - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lab_core", - "name" : "science lab", - "sym" : 108, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [0, 8], "chance": 30 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "lab_finale", - "name" : "science lab", - "sym" : 76, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [4, 12], "chance": 90 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ants_lab", - "name" : "science lab", - "sym" : 108, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ants_lab_stairs", - "name" : "science lab", - "sym" : 76, - "color" : "i_pink", - "see_cost" : 5, - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ice_lab", - "name" : "science lab", - "sym" : 108, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ice_lab_stairs", - "name" : "science lab", - "sym" : 76, - "color" : "i_pink", - "see_cost" : 5, - "spawns" : { "group": "GROUP_LAB", "population": [0, 5], "chance": 20 }, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ice_lab_core", - "name" : "science lab", - "sym" : 108, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [0, 8], "chance": 30 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ice_lab_finale", - "name" : "science lab", - "sym" : 76, - "color" : "i_pink", - "spawns" : { "group": "GROUP_LAB", "population": [4, 12], "chance": 90 }, - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type": "overmap_terrain", - "id": "lab_train_depot", - "name": "science train depot", - "sym": 108, - "color": "i_pink", - "see_cost": 5, - "extras": "subway", - "spawns": { "group": "GROUP_LAB", "population": [ 0, 5 ], "chance": 20 }, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type": "overmap_terrain", - "id": "central_lab_entrance", - "name" : "forest", - "sym" : 35, - "color": "green", - "see_cost": 3, - "flags": [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bunker", - "name" : "military bunker", - "sym" : 98, - "color" : "red", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN" ] - },{ - "type": "overmap_terrain", - "id": "bunker_basement", - "name": "military bunker", - "sym" : 98, - "color" : "red", - "see_cost": 2, - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "outpost", - "name" : "military outpost", - "sym" : 111, - "color" : "red", - "see_cost" : 2, - "extras" : "build", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "silo", - "name" : "missile silo", - "sym" : 77, - "color" : "red", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "silo_finale", - "name" : "missile silo", - "sym" : 77, - "color" : "white_red", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "temple", - "name" : "strange temple", - "sym" : 83, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "standing_stones", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 3, - "extras" : "field", - "spawns" : { "group": "GROUP_STANDING_STONES", "population": [ 1,4 ], "chance": 100 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "temple_stairs", - "name" : "strange temple", - "sym" : 115, - "color" : "pink", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "temple_finale", - "name" : "strange temple", - "sym" : 115, - "color" : "pink", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sewage_treatment", - "name" : "sewage treatment", - "sym" : 115, - "color" : "yellow", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sewage_treatment_hub", - "name" : "sewage treatment", - "sym" : 115, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sewage_treatment_under", - "name" : "sewage treatment", - "sym" : 115, - "color" : "i_yellow", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mine_entrance", - "name" : "mine entrance", - "sym" : 77, - "color" : "dark_gray", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mine_shaft", - "name" : "mine shaft", - "sym" : 109, - "color" : "i_black", - "see_cost" : 5, - "flags" : [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mine", - "name" : "mine", - "sym" : 109, - "color" : "i_black", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mine_down", - "name" : "mine", - "sym" : 77, - "color" : "i_black", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mine_finale", - "name" : "mine", - "sym" : 77, - "color" : "i_black", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "spiral_hub", - "name" : "spiral cavern", - "sym" : 64, - "color" : "pink", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "spiral", - "name" : "spiral cavern", - "sym" : 64, - "color" : "pink", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "radio_tower", - "name" : "radio tower", - "sym" : 114, - "color" : "blue", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "toxic_dump", - "name" : "toxic waste dump", - "sym" : 116, - "color" : "pink", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "haz_sar_entrance", - "name" : "hazardous waste sarcophagus", - "sym" : 72, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "haz_sar", - "name" : "hazardous waste sarcophagus", - "sym" : 104, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "haz_sar_entrance_b1", - "name" : "hazardous waste sarcophagus", - "sym" : 72, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "haz_sar_b1", - "name" : "hazardous waste sarcophagus", - "sym" : 104, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cave", - "name" : "cave", - "sym" : 99, - "color" : "brown", - "see_cost" : 2, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cave_rat", - "name" : "rat cave", - "sym" : 99, - "color" : "brown", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hive", - "name" : "bee hive", - "sym" : 98, - "color" : "i_pink", - "see_cost" : 3, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "fungal_bloom", - "name" : "fungal bloom", - "sym" : 70, - "color" : "pink", - "see_cost" : 2, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "fungal_tower", - "name" : "fungal tower", - "sym" : 70, - "color" : "pink", - "see_cost" : 3, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "fungal_flowers", - "name" : "fungal flowers", - "sym" : 70, - "color" : "pink", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "spider_pit", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 3, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "spider_pit_under", - "name" : "cavern", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "anthill", - "name" : "anthill", - "sym" : 97, - "color" : "i_pink", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "slimepit", - "name" : "slime pit", - "sym" : 83, - "color" : "i_pink", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "slimepit_down", - "name" : "slime pit", - "sym" : 115, - "color" : "i_pink", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "triffid_grove", - "name" : "triffid grove", - "sym" : 84, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "triffid_roots", - "name" : "triffid roots", - "sym" : 116, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "KNOWN_UP", "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "triffid_finale", - "name" : "triffid heart", - "sym" : 84, - "color" : "i_pink", - "see_cost" : 5, - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "basement", - "sym" : 98, - "copy-from" : "generic_city_house_basement", - "mapgen": [ - { "method": "builtin", "name": "basement_junk" }, - { "method": "builtin", "name": "basement_spiders" } - ] - },{ - "type" : "overmap_terrain", - "id" : "basement_bionic", - "sym" : 98, - "copy-from" : "generic_city_house_basement" - },{ - "type" : "overmap_terrain", - "id" : "cavern", - "name" : "cavern", - "sym" : 48, - "color" : "light_gray", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "rock", "//" : "This is old rock type, new one (below) will replace it in new overmaps", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "empty_rock", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "rift", - "name" : "rift", - "sym" : 94, - "color" : "red", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hellmouth", - "name" : "hellmouth", - "sym" : 94, - "color" : "light_red", - "see_cost" : 2, - "flags" : [ "KNOWN_DOWN", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sewer_sub_station", - "name" : "subway station (underground level)", - "sym" : 83, - "color" : "yellow", - "see_cost" : 5, - "extras" : "subway", - "flags" : [ "KNOWN_UP", "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "subway", - "name" : "subway", - "color" : "dark_gray", - "see_cost" : 5, - "extras" : "subway", - "flags" : [ "LINEAR" ] - },{ - "type" : "overmap_terrain", - "id" : "sewer", - "name" : "sewer", - "color" : "green", - "see_cost" : 5, - "flags" : [ "LINEAR" ] - },{ - "type" : "overmap_terrain", - "id" : "ants", - "name" : "ant tunnel", - "color" : "brown", - "see_cost" : 5, - "flags" : [ "LINEAR" ] - },{ - "type" : "overmap_terrain", - "id" : "ants_food", - "name" : "ant food storage", - "sym" : 79, - "color" : "green", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ants_larvae", - "name" : "ant larva chamber", - "sym" : 79, - "color" : "white", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ants_queen", - "name" : "ant queen chamber", - "sym" : 79, - "color" : "red", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "tutorial", - "name" : "tutorial room", - "sym" : 79, - "color" : "cyan", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_1", - "name" : "road", - "sym" : 4194412, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_2", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_3", - "name" : "mall - loading bay", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_4", - "name" : "mall - utilities", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_5", - "name" : "mall - utilities", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_6", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_7", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_8", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_9", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_10", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_11", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_12", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_13", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_14", - "name" : "mall - entrance", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_15", - "name" : "road", - "sym" : 4194413, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_16", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_17", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_18", - "name" : "road", - "sym" : 4194411, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_19", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_20", - "name" : "mall - food court", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_21", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_22", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_23", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_24", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_25", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_26", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_27", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_28", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_29", - "name" : "mall - food court", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_30", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_31", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_32", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_33", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_34", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_35", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_36", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_37", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_38", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_39", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_40", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_41", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_42", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_43", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_44", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_45", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_46", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_47", - "name" : "mall - entrance", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_48", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_49", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_50", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_51", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_52", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_53", - "name" : "mall - entrance", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_54", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_55", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_56", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_57", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_58", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_59", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_60", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_61", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_62", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_63", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_64", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_65", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_66", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_67", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_68", - "name" : "mall - entrance", - "sym" : 77, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_69", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_70", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_71", - "name" : "mall", - "sym" : 109, - "color" : "i_magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_72", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_73", - "name" : "road", - "sym" : 4194413, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_74", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_75", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_76", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_77", - "name" : "road", - "sym" : 4194423, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_78", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_79", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_80", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "mall_a_81", - "name" : "road", - "sym" : 4194410, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_1", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_2", - "name" : "house", - "sym" : 118, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_3", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_4", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_5", - "name" : "abandoned store", - "sym" : 97, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_6", - "name" : "road", - "color" : "dark_gray", - "sym" : 4194424, - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_7", - "name" : "pump station", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "KNOWN_DOWN" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_8", - "name" : "pump station", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "KNOWN_DOWN", "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_9", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_10", - "name" : "house", - "sym" : 62, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_11", - "name" : "road", - "color" : "dark_gray", - "sym" : 4194424, - "see_cost" : 5, - "mondensity" : 2, - "extras" : "road", - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_12", - "name" : "gardening store", - "sym" : 103, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_13", - "name" : "salon", - "sym" : 115, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_14", - "name" : "crater", - "sym" : 42, - "color" : "pink", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_15", - "name" : "road", - "mondensity" : 2, - "see_cost" : 5, - "sym" : 4194424, - "color" : "dark_gray" - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_16", - "name" : "police station", - "sym" : 112, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_17", - "name" : "police station", - "sym" : 112, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_18", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_19", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_20", - "name" : "road", - "sym" : 4194413, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_21", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_22", - "name" : "road", - "sym" : 4194423, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_23", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_24", - "name" : "road", - "sym" : 4194422, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_25", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_26", - "name" : "road", - "sym" : 4194411, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_27", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_28", - "name" : "grocery store", - "sym" : 103, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_29", - "name" : "grocery store", - "sym" : 103, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_30", - "name" : "park", - "sym" : 112, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_31", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_32", - "name" : "church", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_33", - "name" : "church", - "sym" : 99, - "color" : "i_white", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_34", - "name" : "pawn shop", - "sym" : 112, - "color" : "magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_35", - "name" : "crater", - "sym" : 42, - "color" : "pink", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_36", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_37", - "name" : "furniture store", - "sym" : 102, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_38", - "name" : "crater", - "sym" : 42, - "color" : "pink", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_39", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_40", - "name" : "road", - "sym" : 4194422, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_41", - "name" : "road", - "sym" : 4194423, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_42", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_43", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_44", - "name" : "road", - "sym" : 4194421, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_45", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_46", - "name" : "clothing store", - "sym" : 99, - "color" : "magenta", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_47", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_48", - "name" : "motel", - "sym" : 109, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_49", - "name" : "motel", - "sym" : 109, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_50", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_51", - "name" : "restaurant", - "sym" : 114, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_52", - "name" : "bank", - "sym" : 98, - "color" : "yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_53", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_54", - "name" : "house", - "sym" : 60, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_55", - "name" : "motel", - "sym" : 109, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_56", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_57", - "name" : "motel", - "sym" : 109, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_58", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_59", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_60", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_61", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_62", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_63", - "name" : "house", - "sym" : 60, - "color" : "light_green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_64", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_65", - "name" : "road", - "sym" : 4194422, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_66", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_67", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_68", - "name" : "road", - "sym" : 4194414, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_69", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_70", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_71", - "name" : "road", - "sym" : 4194410, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_72", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_73", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_74", - "name" : "bar", - "sym" : 98, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_75", - "name" : "fast food restaurant", - "sym" : 102, - "color" : "green", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_76", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_77", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_78", - "name" : "gas station", - "sym" : 103, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_79", - "name" : "mechanic garage", - "sym" : 109, - "color" : "light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_80", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "necropolis_a_81", - "name" : "field", - "sym" : 46, - "color" : "brown", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "//" : "xxx Bookmark for necropolis sewers", - "type" : "overmap_terrain", - "id" : "necropolis_b_1", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_2", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_3", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_4", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_5", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_6", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_7", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_8", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_9", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_10", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_11", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_12", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_13", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_14", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_15", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_16", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_17", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_18", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_19", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_20", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_21", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_22", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_23", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_24", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_25", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_26", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_27", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_28", - "name" : "cavern", - "sym" : 48, - "color" : "light_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_29", - "name" : "sewer?", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_30", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_31", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_32", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_33", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_34", - "name" : "basement", - "sym" : 79, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_35", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_36", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_37", - "name" : "cavern", - "sym" : 48, - "color" : "light_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_38", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_39", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_40", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_41", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_42", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_43", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_44", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_45", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_46", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_47", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_48", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_49", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_50", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_51", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_52", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_53", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_54", - "name" : "basement", - "sym" : 79, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_55", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_56", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_57", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_58", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_59", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_60", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_61", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_62", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_63", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_64", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_65", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_66", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_67", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_68", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_69", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_70", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_71", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_72", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_73", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_74", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_75", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_76", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_77", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_78", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_79", - "name" : "sewer", - "sym" : 4194414, - "color" : "green", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_80", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_b_81", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_1", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_2", - "name" : "Vault - Armory", - "sym" : 65, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_3", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_4", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_5", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_6", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_7", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_8", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_9", - "name" : "Vault - Jail", - "sym" : 74, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_10", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_11", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_12", - "name" : "Vault - Barracks", - "sym" : 66, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_13", - "name" : "Vault - Offices", - "sym" : 79, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_14", - "name" : "Vault - Offices", - "sym" : 79, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_15", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_16", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_17", - "name" : "Vault - Police Station", - "sym" : 80, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_18", - "name" : "Vault - Police Station", - "sym" : 80, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_19", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_20", - "name" : "Vault - Entrance", - "sym" : 69, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_21", - "name" : "Vault - Utilities", - "sym" : 85, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_22", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_23", - "name" : "Vault - Communications", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_24", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_25", - "name" : "Vault - Courthouse", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_26", - "name" : "Vault - Police Station", - "sym" : 80, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_27", - "name" : "Vault - Police Station", - "sym" : 80, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_28", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_29", - "name" : "Vault - Entrance", - "sym" : 69, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_30", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_31", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_32", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_33", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_34", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_35", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_36", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_37", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_38", - "name" : "Vault - Motor Pool", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_39", - "name" : "Vault - Motor Pool", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_40", - "name" : "Vault - Visitor Center", - "sym" : 86, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_41", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_42", - "name" : "Vault - Control", - "sym" : 88, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_43", - "name" : "Vault - Control", - "sym" : 88, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_44", - "name" : "Vault - Control", - "sym" : 88, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_45", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_46", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_47", - "name" : "Vault - Motor Pool", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_48", - "name" : "Vault - Motor Pool", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_49", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_50", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_51", - "name" : "Vault - Cafeteria", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_52", - "name" : "Vault - Cafeteria", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_53", - "name" : "Vault - Cafeteria", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_54", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_55", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_56", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_57", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_58", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_59", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_60", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_61", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_62", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_63", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_64", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_65", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_66", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_67", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_68", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_69", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_70", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_71", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_72", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_73", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_74", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_75", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_76", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_77", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_78", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_79", - "name" : "Vault - School", - "sym" : 83, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_80", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_c_81", - "name" : "Vault - Labs", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_1", - "name" : "Vault - Robotics Bay", - "sym" : 82, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_2", - "name" : "Vault - Robotics Bay", - "sym" : 82, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_3", - "name" : "Vault - Slum Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_4", - "name" : "Vault - Slum Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_5", - "name" : "Vault - Slum Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_6", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_7", - "name" : "Vault - Hospital", - "sym" : 72, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_8", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_9", - "name" : "Vault - Suites", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_10", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_11", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_12", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_13", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_14", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_15", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_16", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_17", - "name" : "Vault - Suites", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_18", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_19", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_20", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_21", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_22", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_23", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_24", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_25", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_26", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_27", - "name" : "Vault - Transition Bay", - "sym" : 84, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_28", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_29", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_30", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_31", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_32", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_33", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_34", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_35", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_36", - "name" : "Vault - Transition Bay", - "sym" : 84, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_37", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_38", - "name" : "Vault - Maint. Bay", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_39", - "name" : "Vault - Maint. Bay", - "sym" : 77, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_40", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_41", - "name" : "Vault - Quartermasters", - "sym" : 81, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_42", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_43", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_44", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_45", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_46", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_47", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_48", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_49", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_50", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_51", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_52", - "name" : "Vault - Kitchen", - "sym" : 75, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_53", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_54", - "name" : "Vault - Slum Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_55", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_56", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_57", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_58", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_59", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_60", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_61", - "name" : "Vault - Conference Room", - "sym" : 67, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_62", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_63", - "name" : "Vault - Slum Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_64", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_65", - "name" : "Vault - Living Bays", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_66", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_67", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_68", - "name" : "Vault - Housing", - "sym" : 104, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_69", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_70", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_71", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_72", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_73", - "name" : "solid rock", - "sym" : 37, - "color" : "dark_gray", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_74", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_75", - "name" : "Vault - Library", - "sym" : 76, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_76", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_77", - "name" : "Vault - Light Industry", - "sym" : 73, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_78", - "name" : "Vault - Light Industry", - "sym" : 73, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_79", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_80", - "name" : "Vault - Gym", - "sym" : 71, - "color" : "yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "necropolis_d_81", - "name" : "Vault - Passage", - "sym" : 4194414, - "color" : "white", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_1", - "name" : "road", - "sym" : 4194412, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_2", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_3", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_4", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_5", - "name" : "road", - "sym" : 4194411, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_6", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_7", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_8", - "name" : "refugee center", - "sym" : 82, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_9", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_10", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_11", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_12", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_13", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_14", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_15", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "extras" : "build", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_16", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_17", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_18", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_19", - "name" : "refugee center", - "sym" : 114, - "color" : "i_red", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_20", - "name" : "road", - "sym" : 4194424, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_21", - "name" : "road", - "sym" : 4194413, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_22", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_23", - "name" : "road", - "sym" : 4194423, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_24", - "name" : "road", - "sym" : 4194417, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "evac_center_25", - "name" : "road", - "sym" : 4194410, - "color" : "dark_gray", - "see_cost" : 5, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "bandit_cabin", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bandit_camp_1", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bandit_camp_2", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bandit_camp_3", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "bandit_camp_4", - "name" : "forest", - "sym" : 35, - "color" : "green", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "sai", - "name" : "interface", - "sym" : 105, - "color" : "yellow", - "see_cost" : 5, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pwr_sub_s", - "name" : "electric substation", - "sym" : 101, - "color" : "yellow", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pwr_large_entrance", - "name" : "electric substation", - "sym" : 69, - "color" : "i_yellow", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pwr_large_2", - "name" : "electric substation", - "sym" : 101, - "color" : "i_yellow", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pwr_large_3", - "name" : "electric substation", - "sym" : 101, - "color" : "i_yellow", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pwr_large_4", - "name" : "electric substation", - "sym" : 101, - "color" : "i_yellow", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "warehouse", - "name" : "small warehouse", - "sym" : 119, - "color" : "light_cyan", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - }, - { - "type" : "overmap_terrain", - "id" : "hdwr_large_entrance", - "name" : "home improvement superstore entrance", - "sym" : 72, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hdwr_large_SW", - "name" : "home improvement superstore", - "sym" : 104, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hdwr_large_NW", - "name" : "home improvement superstore", - "sym" : 104, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hdwr_large_NE", - "name" : "home improvement superstore", - "sym" : 104, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hdwr_large_backroom", - "name" : "home improvement superstore", - "sym" : 104, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hdwr_large_loadingbay", - "name" : "home improvement superstore", - "sym" : 104, - "color" : "i_light_cyan", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_1", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_2", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_3", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_4", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_5", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_6", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_7", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_8", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_9", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_10", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_11", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_12", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_13", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_14", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_15", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_16", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_17", - "name" : "pond", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_18", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_19", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_20", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_21", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_22", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_23", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_24", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_25", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_26", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_27", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_28", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_29", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_30", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_31", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_32", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_33", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_34", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_35", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_36", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_37", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_38", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_39", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_40", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_41", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_42", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_43", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_44", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_45", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_46", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_47", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_48", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_49", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_50", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_51", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_52", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_53", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_54", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_55", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_56", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_57", - "name" : "silo", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_58", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_59", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_60", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_61", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_62", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_63", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_64", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_65", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_66", - "name" : "barn", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_67", - "name" : "garage", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_68", - "name" : "ranch", - "sym" : 82, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_69", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_70", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_71", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_72", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_73", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_74", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_75", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_76", - "name" : "lot", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_77", - "name" : "road", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "extras" : "road", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_78", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_79", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_80", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "ranch_camp_81", - "name" : "field", - "sym" : 114, - "color" : "i_brown", - "see_cost" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "looted_building", - "name" : "looted building", - "sym" : 108, - "color" : "light_gray", - "see_cost" : 2 - },{ - "type" : "overmap_terrain", - "id" : "debug_ramps", - "name" : "ramp testing area", - "sym" : 37, - "color" : "white", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_a1", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_a2", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_a3", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_a4", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_a5", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_b1", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_b2", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_b3", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_b4", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_b5", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_c1", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_c2", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_c3", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_c4", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "football_field_c5", - "name" : "football field", - "sym" : 102, - "color" : "i_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "campsite", - "name" : "campsite", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "campsite_a", - "name" : "campsites", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "campsite_cabin_incomplete", - "name" : "incomplete cabin", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "campsite_field_biker", - "name" : "field campsite", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "campsite_field_biker_destroyed", - "name" : "field campsite", - "sym" : 99, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "spawns" : { "group": "GROUP_FOREST", "population": [0, 1], "chance": 80 }, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "roadstop", - "name" : "roadstop", - "sym" : 114, - "color" : "blue", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "roadstop_a", - "name" : "public washroom", - "sym" : 112, - "color" : "blue", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "roadstop_b", - "name" : "roadside foodcart", - "sym" : 102, - "color" : "green", - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "pump_station_1", - "name" : "pump station", - "sym" : 112, - "color" : "yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "KNOWN_DOWN", "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "pump_station_2", - "name" : "pump station", - "sym" : 112, - "color" : "yellow", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "KNOWN_DOWN" ] - },{ - "type" : "overmap_terrain", - "id" : "pump_station_3", - "name" : "sewer", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "pump_station_4", - "name" : "sewer", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 999, - "mondensity" : 2 - },{ - "type" : "overmap_terrain", - "id" : "pump_station_5", - "name" : "sewer", - "sym" : 112, - "color" : "i_yellow", - "see_cost" : 999, - "mondensity" : 2 + "type": "overmap_terrain", + "id": "pump_station_5", + "name": "sewer", + "sym": 112, + "color": "i_yellow", + "see_cost": 999, + "mondensity": 2 }, { "type": "overmap_terrain", @@ -6788,73 +7539,79 @@ "flags": [ "SIDEWALK" ] }, { - "type" : "overmap_terrain", - "id" : "garage_gas_2", - "name" : "garage", - "sym" : 103, - "color" : "i_light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "garage_gas_3", - "name" : "garage", - "sym" : 103, - "color" : "i_light_blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "SIDEWALK" ] - },{ - "type" : "overmap_terrain", - "id" : "cemetery_4square_00", - "name" : "religious cemetery", - "sym" : 114, - "color" : "i_white", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cemetery_4square_10", - "name" : "religious cemetery", - "sym" : 114, - "color" : "i_white", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cemetery_4square_01", - "name" : "religious cemetery", - "sym" : 114, - "color" : "i_white", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "cemetery_4square_11", - "name" : "religious cemetery", - "sym" : 114, - "color" : "i_white", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "4way_road", - "name" : "road", - "sym" : 43, - "color" : "light_gray", - "see_cost" : 5, - "extras" : "forest", - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] + "type": "overmap_terrain", + "id": "garage_gas_2", + "name": "garage", + "sym": 103, + "color": "i_light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "garage_gas_3", + "name": "garage", + "sym": 103, + "color": "i_light_blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "cemetery_4square_00", + "name": "religious cemetery", + "sym": 114, + "color": "i_white", + "see_cost": 5, + "extras": "field", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cemetery_4square_10", + "name": "religious cemetery", + "sym": 114, + "color": "i_white", + "see_cost": 5, + "extras": "field", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cemetery_4square_01", + "name": "religious cemetery", + "sym": 114, + "color": "i_white", + "see_cost": 5, + "extras": "field", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "cemetery_4square_11", + "name": "religious cemetery", + "sym": 114, + "color": "i_white", + "see_cost": 5, + "extras": "field", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "4way_road", + "name": "road", + "sym": 43, + "color": "light_gray", + "see_cost": 5, + "extras": "forest", + "mondensity": 2, + "flags": [ "NO_ROTATE" ] }, { "type": "overmap_terrain", @@ -6867,63 +7624,68 @@ "flags": [ "NO_ROTATE" ] }, { - "type" : "overmap_terrain", - "id" : "pond_forest", - "name" : "basin", - "sym" : 35, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "pond_swamp", - "name" : "bog", - "sym" : 35, - "color" : "blue", - "see_cost" : 5, - "mondensity" : 2, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "hunter_shack", - "name" : "swamp shack", - "sym" : 104, - "color" : "brown", - "see_cost" : 5, - "extras" : "field", - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "orchard_tree_apple", - "name" : "apple orchard", - "sym" : 97, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 3, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "orchard_processing", - "name" : "orchard processing", - "sym" : 65, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 3, - "flags" : [ "NO_ROTATE" ] - },{ - "type" : "overmap_terrain", - "id" : "orchard_stall", - "name" : "orchard stall", - "sym" : 65, - "color" : "i_green", - "see_cost" : 5, - "extras" : "field", - "mondensity" : 3, - "flags" : [ "NO_ROTATE" ] - }, + "type": "overmap_terrain", + "id": "pond_forest", + "name": "basin", + "sym": 35, + "color": "blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "pond_swamp", + "name": "bog", + "sym": 35, + "color": "blue", + "see_cost": 5, + "mondensity": 2, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "hunter_shack", + "name": "swamp shack", + "sym": 104, + "color": "brown", + "see_cost": 5, + "extras": "field", + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "orchard_tree_apple", + "name": "apple orchard", + "sym": 97, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 3, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "orchard_processing", + "name": "orchard processing", + "sym": 65, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 3, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "orchard_stall", + "name": "orchard stall", + "sym": 65, + "color": "i_green", + "see_cost": 5, + "extras": "field", + "mondensity": 3, + "flags": [ "NO_ROTATE" ] + }, { "id": "dairy_farm_NW", "type": "overmap_terrain", @@ -7153,354 +7915,355 @@ "flags": [ "SIDEWALK" ] }, { - "type" : "overmap_terrain", - "abstract" : "generic_mansion_no_sidewalk", - "name" : "mansion", - "sym" : 109, - "color" : "i_light_green", - "see_cost" : 5, - "mondensity" : 2 + "type": "overmap_terrain", + "abstract": "generic_mansion_no_sidewalk", + "name": "mansion", + "sym": 109, + "color": "i_light_green", + "see_cost": 5, + "mondensity": 2 }, { - "type" : "overmap_terrain", - "abstract" : "generic_mansion", - "copy-from" : "generic_mansion_no_sidewalk", - "flags" : [ "SIDEWALK" ] + "type": "overmap_terrain", + "abstract": "generic_mansion", + "copy-from": "generic_mansion_no_sidewalk", + "flags": [ "SIDEWALK" ] }, { "id": "mansion_c", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c1", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c2", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c3", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c4", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c5", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c_up", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c1u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c2u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c3u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c4u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c5u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c_dn", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c1d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c2d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c3d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c4d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_c5d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+1", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+2", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+3", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+4", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+_up", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+1u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+2u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+3u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+4u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+_dn", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+1d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+2d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_+4d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t1", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t2", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t4", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t5", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t6", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t7", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t_up", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t1u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t2u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t4u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t5u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t6u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t7u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t_dn", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t1d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t2d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t4d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t5d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t6d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_t7d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_entry", "type": "overmap_terrain", - "copy-from" : "generic_mansion", + "copy-from": "generic_mansion", "sym": 77 }, { "id": "mansion_e1", "type": "overmap_terrain", - "copy-from" : "generic_mansion", + "copy-from": "generic_mansion", "sym": 77 }, { "id": "mansion_e2", "type": "overmap_terrain", - "copy-from" : "generic_mansion", + "copy-from": "generic_mansion", "sym": 77 }, { "id": "mansion_entry_up", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_e1u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_e2u", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_entry_dn", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_e1d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_e2d", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion_no_sidewalk", "sym": 77 }, { "id": "mansion_wild", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_wild_up", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion_no_sidewalk" }, { "id": "mansion_wild_dn", "type": "overmap_terrain", - "copy-from" : "generic_mansion_no_sidewalk" - },{ + "copy-from": "generic_mansion_no_sidewalk" + }, + { "id": "fire_station", "type": "overmap_terrain", "name": "fire station", @@ -7509,7 +8272,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "s_arcade", "type": "overmap_terrain", "name": "arcade", @@ -7517,7 +8281,8 @@ "color": "blue", "see_cost": 5, "mondensity": 2 - },{ + }, + { "id": "bowling_alley", "type": "overmap_terrain", "name": "bowling alley", @@ -7525,8 +8290,9 @@ "color": "blue", "see_cost": 5, "mondensity": 2, - "extras": "build" - },{ + "extras": "build" + }, + { "id": "gym", "type": "overmap_terrain", "name": "boxing gym", @@ -7535,7 +8301,8 @@ "see_cost": 5, "mondensity": 3, "extras": "build" - },{ + }, + { "id": "s_gardening", "type": "overmap_terrain", "name": "gardening supply", @@ -7543,9 +8310,10 @@ "color": "brown", "see_cost": 5, "mondensity": 2, - "extras": "build" - },{ - "id": "gym_fitness", + "extras": "build" + }, + { + "id": "gym_fitness", "type": "overmap_terrain", "name": "fitness gym", "sym": 102, @@ -7573,7 +8341,8 @@ "see_cost": 5, "mondensity": 6, "extras": "build" - },{ + }, + { "id": "s_jewelry", "type": "overmap_terrain", "name": "jewelry store", @@ -7582,7 +8351,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "home_improvement", "type": "overmap_terrain", "name": "home improvement store", @@ -7591,7 +8361,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "s_antique", "type": "overmap_terrain", "name": "antique store", @@ -7600,7 +8371,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "dojo", "type": "overmap_terrain", "name": "dojo", @@ -7609,7 +8381,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "s_laundromat", "type": "overmap_terrain", "name": "laundromat", @@ -7618,7 +8391,8 @@ "see_cost": 5, "mondensity": 2, "extras": "build" - },{ + }, + { "id": "museum", "type": "overmap_terrain", "name": "museum", @@ -7742,7 +8516,7 @@ "id": "s_butcher", "name": "butcher shop", "copy-from": "generic_city_building", - "sym": 98, + "sym": 98, "color": "green" }, { @@ -8094,20 +8868,20 @@ "color": "i_blue" }, { - "type" : "overmap_terrain", - "id" : "s_daycare", + "type": "overmap_terrain", + "id": "s_daycare", "copy-from": "generic_city_building", - "name" : "daycare center", - "sym": 100, - "color" : "light_green" + "name": "daycare center", + "sym": 100, + "color": "light_green" }, { - "type" : "overmap_terrain", - "id" : "s_vfw", + "type": "overmap_terrain", + "id": "s_vfw", "copy-from": "generic_city_building", "name": "war memorial", "sym": 119, - "color" : "yellow" + "color": "yellow" }, { "type": "overmap_terrain", @@ -8166,12 +8940,12 @@ "color": "green" }, { - "type" : "overmap_terrain", - "id" : "s_petstore", + "type": "overmap_terrain", + "id": "s_petstore", "copy-from": "generic_city_building", - "name" : "pet supply store", - "sym": 112, - "color" : "magenta" + "name": "pet supply store", + "sym": 112, + "color": "magenta" }, { "type": "overmap_terrain", @@ -8234,44 +9008,44 @@ "color": "i_light_green" }, { - "type" : "overmap_terrain", - "id" : "large_storage_units_3", + "type": "overmap_terrain", + "id": "large_storage_units_3", "copy-from": "generic_city_building", - "name" : "storage units", - "sym" : 115, - "color" : "i_magenta" + "name": "storage units", + "sym": 115, + "color": "i_magenta" }, { - "type" : "overmap_terrain", - "id" : "large_storage_units_2", + "type": "overmap_terrain", + "id": "large_storage_units_2", "copy-from": "generic_city_building", - "name" : "storage units", - "sym" : 115, - "color" : "i_magenta" + "name": "storage units", + "sym": 115, + "color": "i_magenta" }, { - "type" : "overmap_terrain", - "id" : "large_storage_units_1", + "type": "overmap_terrain", + "id": "large_storage_units_1", "copy-from": "generic_city_building", - "name" : "storage units", - "sym" : 115, - "color" : "i_magenta" + "name": "storage units", + "sym": 115, + "color": "i_magenta" }, { - "type" : "overmap_terrain", - "id" : "medium_storage_units_1", + "type": "overmap_terrain", + "id": "medium_storage_units_1", "copy-from": "generic_city_building", - "name" : "storage units", - "sym" : 115, - "color" : "i_magenta" + "name": "storage units", + "sym": 115, + "color": "i_magenta" }, { - "type" : "overmap_terrain", - "id" : "medium_storage_units_2", + "type": "overmap_terrain", + "id": "medium_storage_units_2", "copy-from": "generic_city_building", - "name" : "storage units", - "sym" : 115, - "color" : "i_magenta" + "name": "storage units", + "sym": 115, + "color": "i_magenta" }, { "type": "overmap_terrain", @@ -8306,36 +9080,36 @@ "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_baseballfield_a1", + "type": "overmap_terrain", + "id": "s_baseballfield_a1", "copy-from": "generic_city_building", - "name" : "baseball field", - "sym" : 98, - "color" : "i_blue" + "name": "baseball field", + "sym": 98, + "color": "i_blue" }, { - "type" : "overmap_terrain", - "id" : "s_baseballfield_a2", + "type": "overmap_terrain", + "id": "s_baseballfield_a2", "copy-from": "generic_city_building", - "name" : "baseball field", - "sym" : 98, - "color" : "i_blue" + "name": "baseball field", + "sym": 98, + "color": "i_blue" }, { - "type" : "overmap_terrain", - "id" : "s_baseballfield_b1", + "type": "overmap_terrain", + "id": "s_baseballfield_b1", "copy-from": "generic_city_building", - "name" : "baseball field", - "sym" : 98, - "color" : "i_blue" + "name": "baseball field", + "sym": 98, + "color": "i_blue" }, { - "type" : "overmap_terrain", - "id" : "s_baseballfield_b2", + "type": "overmap_terrain", + "id": "s_baseballfield_b2", "copy-from": "generic_city_building", - "name" : "baseball field", - "sym" : 98, - "color" : "i_blue" + "name": "baseball field", + "sym": 98, + "color": "i_blue" }, { "id": "animalshelter", @@ -8372,11 +9146,11 @@ "flags": [ "NO_ROTATE" ] }, { - "type": "overmap_terrain", - "id": "mass_grave", - "name": "mass grave", - "sym": 109, - "color": "red" + "type": "overmap_terrain", + "id": "mass_grave", + "name": "mass grave", + "sym": 109, + "color": "red" }, { "type": "overmap_terrain", @@ -8409,7 +9183,7 @@ "name": "bike shop", "copy-from": "generic_city_building", "color": "light_blue", - "sym": 98 + "sym": 98 }, { "type": "overmap_terrain", @@ -8420,36 +9194,36 @@ "color": "green" }, { - "type" : "overmap_terrain", - "id" : "s_reststop_1", + "type": "overmap_terrain", + "id": "s_reststop_1", "copy-from": "generic_city_building", - "name" : "rest area", - "sym" : 114, - "color" : "i_yellow" + "name": "rest area", + "sym": 114, + "color": "i_yellow" }, { - "type" : "overmap_terrain", - "id" : "s_reststop_2", + "type": "overmap_terrain", + "id": "s_reststop_2", "copy-from": "generic_city_building", - "name" : "rest area", - "sym" : 114, - "color" : "i_yellow" + "name": "rest area", + "sym": 114, + "color": "i_yellow" }, { - "type" : "overmap_terrain", - "id" : "s_restparking_1", + "type": "overmap_terrain", + "id": "s_restparking_1", "copy-from": "generic_city_building", - "name" : "rest area parking", - "sym" : 112, - "color" : "light_blue" + "name": "rest area parking", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_restparking_2", + "type": "overmap_terrain", + "id": "s_restparking_2", "copy-from": "generic_city_building", - "name" : "rest area parking", - "sym" : 112, - "color" : "light_blue" + "name": "rest area parking", + "sym": 112, + "color": "light_blue" }, { "id": "dairy_farm_NW", @@ -8488,100 +9262,100 @@ "flags": [ "SIDEWALK", "NO_ROTATE" ] }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a1", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a1", "copy-from": "generic_city_building", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue" + "name": "parking lot", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a2", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a2", "copy-from": "generic_city_building", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue" + "name": "parking lot", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a3", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a3", "copy-from": "generic_city_building", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue" + "name": "parking lot", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a4", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a4", "copy-from": "generic_city_building", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue" + "name": "parking lot", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a5", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a5", "copy-from": "generic_city_building", - "name" : "parking lot", - "sym" : 112, - "color" : "light_blue" + "name": "parking lot", + "sym": 112, + "color": "light_blue" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_a6", + "type": "overmap_terrain", + "id": "s_shoppingplaza_a6", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b1", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b1", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b2", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b2", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b3", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b3", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b4", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b4", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b5", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b5", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { - "type" : "overmap_terrain", - "id" : "s_shoppingplaza_b6", + "type": "overmap_terrain", + "id": "s_shoppingplaza_b6", "copy-from": "generic_city_building", - "name" : "abandoned shopping plaza", - "sym" : 97, - "color" : "i_light_gray" + "name": "abandoned shopping plaza", + "sym": 97, + "color": "i_light_gray" }, { "type": "overmap_terrain", diff --git a/data/mods/blazemod/blaze_blob_parts.json b/data/mods/blazemod/blaze_blob_parts.json index 89b0eed425477..584172c9fa90c 100644 --- a/data/mods/blazemod/blaze_blob_parts.json +++ b/data/mods/blazemod/blaze_blob_parts.json @@ -16,6 +16,8 @@ "breaks_into": [ { "item": "glooplegrow" } ], "description": "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.", "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, + "wheel_type": "treads", + "contact_area": 2500, "rolling_resistance": 6, "flags": [ "WHEEL", "VARIABLE_SIZE", "MULTISQUARE", "TRACKED", "NO_JACK", "FOLDABLE" ] }, @@ -172,6 +174,8 @@ "description": "A living blob, existing in a super-cooled state. It acts as a wheel.", "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "rolling_resistance": 1.5, + "wheel_type": "standard", + "contact_area": 153, "flags": [ "WHEEL", "TOOL_NONE", "FOLDABLE", "EXTRA_DRAG", "SHARP", "TRACKED", "NO_JACK" ] }, { @@ -186,11 +190,10 @@ "broken_color": "light_blue", "difficulty": 1, "durability": 500, - "power": -3500, "damage_modifier": 200, "folded_volume": 1, "breaks_into": [ { "item": "frostiegrow" } ], - "description": "A living blob, existing in a super-cooled state. It acts as a boat board.", + "description": "A living blob, existing in a super-cooled state. It acts as a boat hull.", "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "flags": [ "FLOATS", "TOOL_NONE", "FOLDABLE", "EXTRA_DRAG", "SHARP", "TRACKED", "NO_JACK" ] }, @@ -481,6 +484,8 @@ "breaks_into": [ { "item": "glooplegrow" }, { "item": "water", "count": [ 50, 100 ] } ], "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "rolling_resistance": 1.75, + "wheel_type": "standard", + "contact_area": 153, "flags": [ "WHEEL", "TOOL_NONE", "FOLDABLE", "TRACKED", "NO_JACK" ] }, { @@ -886,6 +891,8 @@ "breaks_into": [ { "item": "graygrow" }, { "item": "water", "count": [ 100, 200 ] } ], "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "rolling_resistance": 1.25, + "wheel_type": "standard", + "contact_area": 153, "flags": [ "WHEEL", "TOOL_NONE", "FOLDABLE", "TRACKED", "NO_JACK" ] }, { @@ -1017,6 +1024,8 @@ "breaks_into": [ { "item": "gray" } ], "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "rolling_resistance": 6, + "wheel_type": "rigid", + "contact_area": 500, "flags": [ "WHEEL", "TOOL_NONE", "FOLDABLE", "PROTRUSION", "STABLE", "TRACKED", "NO_JACK" ] }, { @@ -1498,6 +1507,8 @@ "breaks_into": [ { "item": "oozlegrow" }, { "item": "water", "count": [ 100, 200 ] } ], "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, "rolling_resistance": 1.5, + "wheel_type": "standard", + "contact_area": 153, "flags": [ "WHEEL", "TOOL_NONE", "FOLDABLE", "TRACKED", "NO_JACK" ] }, { @@ -1675,7 +1686,7 @@ "breaks_into": [ { "item": "queengrow" } ], "description": "A living blob turned into a heavy vehicle weapon.", "requirements": { "repair": { "time": 30000, "using": [ [ "blobrep", 1 ] ] } }, - "flags": [ "TURRET", "TOOL_NONE", "FOLDABLE" ] + "flags": [ "TURRET", "TOOL_NONE", "FOLDABLE", "USE_TANKS" ] }, { "id": "razorqueen", diff --git a/data/mods/blazemod/blaze_other_parts.json b/data/mods/blazemod/blaze_other_parts.json index c682c4aadd2fe..ce8db00c89b8a 100644 --- a/data/mods/blazemod/blaze_other_parts.json +++ b/data/mods/blazemod/blaze_other_parts.json @@ -217,6 +217,8 @@ { "item": "chain", "count": [ 1, 3 ] } ], "rolling_resistance": 6, + "wheel_type": "treads", + "contact_area": 900, "flags": [ "WHEEL", "VARIABLE_SIZE", "MULTISQUARE", "TRACKED", "NO_JACK" ] }, { @@ -240,6 +242,8 @@ { "item": "chain", "count": [ 3, 6 ] } ], "rolling_resistance": 5, + "wheel_type": "treads", + "contact_area": 2500, "flags": [ "WHEEL", "VARIABLE_SIZE", "MULTISQUARE", "TRACKED", "NO_JACK" ] }, { @@ -263,6 +267,8 @@ { "item": "chain", "count": [ 3, 4 ] } ], "rolling_resistance": 5, + "wheel_type": "treads", + "contact_area": 3600, "flags": [ "WHEEL", "VARIABLE_SIZE", "MULTISQUARE", "TRACKED", "NO_JACK" ] }, { diff --git a/data/mods/more_classes_scenarios/cs_classes.json b/data/mods/more_classes_scenarios/cs_classes.json index 3aefb30ffcfee..6a3e11bd82eb6 100644 --- a/data/mods/more_classes_scenarios/cs_classes.json +++ b/data/mods/more_classes_scenarios/cs_classes.json @@ -350,7 +350,7 @@ "entries": [ { "item": "glock_19", "ammo-item": "9mm", "container-item": "sholster", "charges": 15 }, { "item": "glockmag", "ammo-item": "9mm", "charges": 15 }, - { "item": "tommygun", "ammo-item": "45_acp", "container-item": "shoulder_strap", "charges": 30 }, + { "item": "tommygun", "ammo-item": "45_acp", "charges": 30, "contents-item": [ "shoulder_strap" ] }, { "item": "thompson_bigmag", "ammo-item": "45_acp", "charges": 30 }, { "item": "ref_lighter", "charges": 100 } ] diff --git a/data/raw/keybindings.json b/data/raw/keybindings.json index 9ea34a2ccb6a2..236cc73c31dc1 100644 --- a/data/raw/keybindings.json +++ b/data/raw/keybindings.json @@ -1926,7 +1926,8 @@ "type": "keybinding", "name": "Keybindings", "category": "DEFAULTMODE", - "id": "open_keybindings" + "id": "open_keybindings", + "bindings": [ { "input_method": "keyboard", "key": "?" } ] }, { "type": "keybinding", diff --git a/doc/COLOR.md b/doc/COLOR.md index 4f5317caa0075..4babaf72cd250 100644 --- a/doc/COLOR.md +++ b/doc/COLOR.md @@ -23,6 +23,8 @@ Whenever color is defined in JSON it should be defined in following format: `Pre `Background` - defines optional color of background/paper. +**Note:** Not all foreground + background pairs are defined by their full name. Use in-game Color manager to see all color names. + **Note:** If color was not found by its name, then `c_unset` is used for `Foreground` and `i_white` for `Background`. ## Examples of color strings @@ -49,7 +51,7 @@ Color code is short string which defines color and can be used, for example, in | ![#5c3317](https://placehold.it/20/5c3317/000000?text=+) | `brown` | `BROWN` | `92,51,23` | `br` | | | ![#0000c8](https://placehold.it/20/0000c8/000000?text=+) | `blue` | `BLUE` | `0,0,200` | `B` | | | ![#8b3a62](https://placehold.it/20/8b3a62/000000?text=+) | `magenta` or `pink`| `MAGENTA` | `139,58,98` | `P` | | -| ![#009650](https://placehold.it/20/009650/000000?text=+) | `cyan` | `CYAN` | `0,150,180` | `C` | | +| ![#0096b4](https://placehold.it/20/0096b4/000000?text=+) | `cyan` | `CYAN` | `0,150,180` | `C` | | | ![#969696](https://placehold.it/20/969696/000000?text=+) | `light_gray` | `GRAY` | `150,150,150` | `lg` | deprecated `lt` prefix can be used instead of `light_` | | ![#636363](https://placehold.it/20/636363/000000?text=+) | `dark_gray` | `DGRAY` | `99,99,99` | `dg` | deprecated `dk` prefix can be used instead of `dark_` | | ![#ff9696](https://placehold.it/20/ff9696/000000?text=+) | `light_red` | `LRED` | `255,150,150` | | deprecated `lt` prefix can be used instead of `light_` | diff --git a/doc/DEVELOPER_TOOLING.md b/doc/DEVELOPER_TOOLING.md new file mode 100644 index 0000000000000..63e6c6d1d0040 --- /dev/null +++ b/doc/DEVELOPER_TOOLING.md @@ -0,0 +1,74 @@ +## Astyle + +Automatic formatting is performed by astyle. If you have make and astyle +installed then this can be done with `make astyle`. + +On Windows, there is an astyle extension for Visual Studio. + +## JSON style + +See the [JSON style guide](JSON_STYLE.md). + +## include-what-you-use + +[include-what-you-use](https://github.com/include-what-you-use/include-what-you-use) +(IWYU) is a project intended to optimise includes. It will calculate the +required headers and add and remove includes as appropriate. + +Running on this codebase revealed some issues. You will need a version of IWYU +where the following PRs have been merged (which has not yet happened at time of +writing): + +* https://github.com/include-what-you-use/include-what-you-use/pull/637 +* https://github.com/include-what-you-use/include-what-you-use/pull/641 + +Once you have IWYU built, build the codebase using cmake, with +`CMAKE_EXPORT_COMPILE_COMMANDS=ON` on to create a compilation database +(Look for `compile_commands.json` in the build dir to see whether that worked). + +Then run: + +``` +iwyu_tool.py -p $CMAKE_BUILD_DIR/compile_commands.json -- -Xiwyu --mapping_file=$PWD/tools/iwyu/cata.imp | fix_includes.py --nosafe_headers +``` + +There are mapping files in `tools/iwyu` intended to help IWYU pick the right +headers. Mostly they should be fairly obvious, but the SDL mappings might +warrant further explanation. We want to force most SDL includes to go via +`sdl_wrappers.h`, because that handles the platform-dependence issues (the +include paths are different on Windows). There are a couple of exceptions +(`SDL_version.h` and `SDL_mixer.h`). The former is because `main.cpp` can't +include all SDL headers, because they `#define WinMain`. All the mappings in +`sdl.imp` are designed to make this happen. + +We have to use IWYU pragmas in some situations. Some of the reasons are: + +* IWYU has a concept of [associated + headers](https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md#iwyu-pragma-associated), + where each cpp file can have some number of such headers. The cpp file is + expected to define the things declared in those headers. In Cata, the + mapping between headers and cpp files is not nearly so simple, so there are + files with multiple associated headers, and files with none. Headers that + are not the associated header of any cpp file will not get their includes + updated, which could lead to broken builds, so ideally all headers would be + associated to some cpp file. You can use the following command to get a list + of headers which are not currently associated to any cpp file (requires GNU + sed): + +``` +diff <(ls src/*.h | sed 's!.*/!!') <(for i in src/*.cpp; do echo $i; sed -n '/^#include/{p; :loop n; p; /^$/q; b loop}' $i; done | grep 'e "' | grep -o '"[^"]*"' | sort -u | tr -d '"') +``` + +* Due to a [clang bug](https://bugs.llvm.org/show_bug.cgi?id=20666), uses in + template arguments to explicit instantiations are not counted, which leads to + some need for `IWYU pragma: keep`. + +* Due to + [these](https://github.com/include-what-you-use/include-what-you-use/blob/4909f206b46809775e9b5381f852eda62cbf4bf7/iwyu.cc#L1617) + [missing](https://github.com/include-what-you-use/include-what-you-use/blob/4909f206b46809775e9b5381f852eda62cbf4bf7/iwyu.cc#L1629) + features of IWYU, it does not count uses in template arguments to return + types, which leads to other requirements for `IWYU pragma: keep`. + +* IWYU seems to have particular trouble with types used in maps and + `cata::optional`. Have not looked into this in detail, but again worked + around it with pragmas. diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index 628798897395d..e450e385fc97a 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -64,6 +64,7 @@ List of known flags, used in both terrain.json and furniture.json - ```CONNECT_TO_WALL``` (only for terrain) This flag has been superseded by the JSON entry `connects_to`, but is retained for backward compatibility. - ```CONSOLE``` Used as a computer. - ```CONTAINER``` Items on this square are hidden until looted by the player. +- ```HIDE_PLACE``` Creatures on this tile can't be seen by creatures not standing on adjacent tiles - ```DECONSTRUCT``` Can be deconstructed. - ```DEEP_WATER``` - ```DESTROY_ITEM``` Items that land here are destroyed. See also `NOITEM` @@ -94,6 +95,7 @@ List of known flags, used in both terrain.json and furniture.json - ```PERMEABLE``` Permeable for gases. - ```PLACE_ITEM``` Valid terrain for `place_item()` to put items on. - ```PLANT``` A 'furniture' that grows and fruits. +- ```PLOWABLE``` Terrain can be plowed. - ```RAMP``` Can be used to move up a z-level - ```RAMP_END``` - ```REDUCE_SCENT``` Reduces scent even more; only works if also bashable. @@ -1138,6 +1140,17 @@ Those flags are added by the game code to specific items (that specific welder, - ```ORTHOGONAL``` The connection generally prefers straight lines, avoids turning wherever possible. +## Overmap specials + +### Flags + +- ```BLOB``` Location should "blob" outward from the defined location with a chance to be placed in adjacent locations. +- ```CLASSIC``` Location is allowed when classic zombies are enabled. +- ```UNIQUE``` Location is unique and will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%) +- ```BEE``` Location is related to bees. Used to classify location. +- ```FUNGAL``` Location is related to fungi. Used to classify location. +- ```TRIFFID``` Location is related to triffids. Used to classify location. + ## TODO - Descriptions for `Special attacks` under `Monsters` could stand to be more descriptive of exactly what the attack does. @@ -1165,4 +1178,5 @@ Those flags are added by the game code to specific items (that specific welder, - ```mx_grove``` ... All trees and shrubs become a single species of tree. - ```mx_shrubbery``` ... All trees and shrubs become a single species of shrub. - ```mx_clearcut``` ... All trees become stumps. -- ```mx_pond``` ... A small pond. \ No newline at end of file +- ```mx_pond``` ... A small pond. +- ```mx_clay_deposit``` ... A small surface clay deposit. \ No newline at end of file diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 25d92d5ed83fb..2bd71dd6e43ee 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -36,7 +36,7 @@ Here's a quick summary of what each of the JSON files contain, broken down by fo | monsters.json | monster descriptions, mostly zombies | morale_types.json | morale modifier messages | mutation_category.json | messages for mutation categories -| mutation_ordering.json | draw order for mutation overlays in tiles mode +| mutation_ordering.json | draw order for mutation and CBM overlays in tiles mode | mutations.json | traits/mutations | names.json | names used for NPC/player name generation | overmap_connections.json | connections for roads and tunnels in the overmap @@ -950,6 +950,7 @@ CBMs can be defined like this: "stack_size" : 8, // (Optional) How many uses are in the above-defined volume. If omitted, is the same as 'charges' "fun" : 50 // Morale effects when used "freezing_point": 32, // (Optional) Temperature in F at which item freezes, default is water (32F/0C) +"cooks_like": "meat_cooked" // (Optional) If the item is used in a recipe, replaces it with its cooks_like ``` ### Containers @@ -2067,6 +2068,14 @@ Each tileset has a tile_config.json describing how to map the contents of a spri { "weight":1, "sprite":3621}, { "weight":1, "sprite":3622} ] + }, + { + "id": [ + "overlay_mutation_GOURMAND", // character overlay for mutation + "overlay_mutation_male_GOURMAND", // overlay for specified gender + "overlay_mutation_active_GOURMAND" // overlay for activated mutation + ], + "fg": 4040 } ] }, @@ -2089,6 +2098,10 @@ Each tileset has a tile_config.json describing how to map the contents of a spri { "id" : [ "PLANTSKIN", "BARK" ], // mutation name, in a string or array of strings "order" : 3500 // order is applied to all items in the array + }, + { + "id" : "bio_armor_torso", // Overlay order of bionics is controlled in the same way + "order" : 500 } ] } @@ -2096,7 +2109,7 @@ Each tileset has a tile_config.json describing how to map the contents of a spri # Mutation overlay ordering -The file `mutation_ordering.json` defines the order that visual mutation overlays are rendered on a character ingame. The layering value from 0 (bottom) - 9999 (top) sets the order. +The file `mutation_ordering.json` defines the order that visual mutation and bionic overlays are rendered on a character ingame. The layering value from 0 (bottom) - 9999 (top) sets the order. Example: ```C++ @@ -2117,6 +2130,9 @@ Example: },{ "id" : [ "PROF_CYBERCOP", "PROF_FED", "PROF_PD_DET", "PROF_POLICE", "PROF_SWAT", "PHEROMONE_INSECT" ], "order" : 8500 + },{ + "id" : [ "bio_armor_arms", "bio_armor_legs", "bio_armor_torso", "bio_armor_head", "bio_armor_eyes" ], + "order" : 500 } ] } diff --git a/doc/NPCs.md b/doc/NPCs.md index 05e66831b7cfe..25a9e5c38602e 100644 --- a/doc/NPCs.md +++ b/doc/NPCs.md @@ -88,6 +88,23 @@ A complex `dynamic_line` usually contains several `dynamic_line` entry and some In all cases, `npc_` refers to the NPC, and `u_` refers to the player. Optional lines do not have to be defined, but the NPC should always have something to say. Entries are always parsed as `dynamic_line` and can be nested. +#### Several lines joined together +The dynamic line is a list of dynamic lines, all of which are displayed. The dynamic lines in the list are processed normally. +```C++ +{ + "and": [ + { + "npc_male": "I'm a man.", + "npc_female": "I'm a woman." + }, + " ", + { + "u_male": "You're a man.", + "u_female": "You're a woman." + } + ] +} +``` #### Based on the gender of the NPC / NPC The dynamic line is chosen based on the gender of the NPC. Both entries must exist. @@ -185,7 +202,7 @@ The dynamic line is chosen based on whether the NPC has a specific trait. Both ``` #### Based on trait or mutation flag possessed by the player character -The dynamic line is chosen based on whether the player character has a trait with a specific flag. Both entries are optional. The `u_has_trait_flag` string should be a valid trait flag. The line from `yes` will be shown if the character has any traits with the flag, otherwise the line from `no`. +The dynamic line is chosen based on whether the player character has a trait with a specific flag. Both entries are optional. The `u_has_trait_flag` string should be a valid trait flag. The line from `yes` will be shown if the character has any traits with the flag, otherwise the line from `no`. The special trait flag "MUTATION_THRESHOLD" checks to see if the player has crossed a mutation threshold. ```C++ { @@ -196,7 +213,7 @@ The dynamic line is chosen based on whether the player character has a trait wit ``` #### Based on trait or mutation flag possessed by the NPC -The dynamic line is chosen based on whether the NPC has a trait with a specific flag. Both entries are optional. The `npc_has_trait_flag` string should be a valid trait flag. The line from `yes` will be shown if the NPC has any traits with the flag, otherwise the line from `no`. +The dynamic line is chosen based on whether the NPC has a trait with a specific flag. Both entries are optional. The `npc_has_trait_flag` string should be a valid trait flag. The line from `yes` will be shown if the NPC has any traits with the flag, otherwise the line from `no`. The special trait flag "MUTATION_THRESHOLD" checks to see if the NPC has crossed a mutation threshold. ```C++ { @@ -239,6 +256,32 @@ The dynamic line is chosen based on whether the NPC is currently is under the ef } ``` +#### Based on the NPC's current needs +The dynamic line is chosed based on the NPC's current hunger, thirst, or fatigue. `level` or `amount` is required: `amount` is an integer, and `level` is one of the four defined fatigue levels "TIRED", "DEAD_TIRED", "EXHAUSTED", or "MASSIVE_FATIGUE". The line from `yes` will be shown if the NPC's need is at least that amount, and otherwise the line from `no`. + +```C++ +{ + "and" [ + { + "npc_need": "hunger", + "amount": 100, + "yes": "I'm hungry! " + }, + { + "npc_need": "thirst", + "amount": 100, + "yes": "I need a drink! " + }, + { + "npc_need": "fatigue", + "level": "TIRED", + "yes": "I could use a nap.", + "no": "I'm otherwise good." + } + ] +} +``` + #### Based on whether the NPC has missions available The dynamic line is chosen based on whether the NPC has any missions to give out. All entries are optional. The line from `many` will be shown in the NPC has two or more missions to assign to the player, the line from `one` will be shown if the NPC has one mission available, and otherwise the line from `none` will be shown. @@ -263,12 +306,63 @@ The dynamic line is chosen based on whether the player character is performing a } ``` +#### Based on whether the player character or NPC are driving vehicles or not +The dynamic line is chosen if the player is driving a vehicle, or the NPC is driving a vehicle, or if neither are driving vehicles. The line from `u_driving` is chosen if the player is in control of a vehicle, the line from `npc_driving` is chosen if the NPC is in control of a vehicle, and the line from `no_vehicle` is chosen if neither are controlling a vehicle. + +**NOTE**: NPCs can't drive vehicles right now. + +```C++ +{ + "u_driving": "I said take a left at Albequerque!", + "npc_driving": "Who died and put me behind the wheel?", + "no_vehicle": "This is a good time to chat." +} +``` + +#### Based on an NPC follower AI rule +The dynamic line is chosen based on NPC follower AI rules settings. There are three variants: `npc_aim_rule`, `npc_engagement_rule`, and `npc_rule`, all of which take a rule value and an optional `yes` and `no` response. The `yes` response is chosen if the NPC follower AI rule value matches the rule value and otherwise the no value is chosen. + +`npc_aim_rule` values are currently "AIM_SPRAY", "AIM_WHEN_CONVENIENT", "AIM_PRECISE", or "AIM_STRICTLY_PRECISE". +`npc_engagement_rule` values are currently "ENGAGE_NONE", "ENGAGE_CLOSE", "ENGAGE_WEAK", "ENGAGE_HIT", or "ENGAGE_NO_MOVE". +`npc_rule` values are currently "use_guns", "use_grenades", "use_silent", "avoid_friendly_fire", "allow_pick_up", "allow_bash", "allow_sleep", "allow_complain", "allow_pulp", or "close_doors". + +```C++ +{ + "and": [ + { + "npc_aim_rule": "AIM_STRICTLY_PRECISE", + "yes": "No wasting ammo, got it. " + }, + { + "npc_engagement_rule": "ENGAGE_NO_MOVE", + "yes": "Stay where I am. " + }, + { + "npc_rule": "allow_pulp", + "yes": "Pulp the corpses when I'm done.", + "no": "Leave the corpses for someone else to deal with." + } + ] +} +``` + +#### Based on whether the NPC has a pickup list +The dynamic line is chosen based on whether the NPC has a pickup list or not. The line from `yes` will be shown if they have a pickup list and otherwise the line from `no`. The line from `yes` will be shown even if `npc_rule`: `allow_pick_up` is false. + +```C++ +{ + "has_pickup_list": true, + "yes": "I know what to get.", + "no": "What was I supposed to take?" +} +``` + #### Based on the days since the Cataclysm The dynamic line is chosen based on the specified number of days have elapsed since the start of the Catacylsm. Both entries are optional. The line from `yes` will be shown if at least that many days have passed, otherwise the line from `no`. ```C++ { - "days_since_cataclysm": "30", + "days_since_cataclysm": 30, "yes": "Things are really getting bad!", "no": "I'm sure the government will restore services soon." } @@ -378,14 +472,31 @@ The player will always have the option to return to a previous topic or end the will otherwise have the option to give a $500, $50, or $5 bribe if they have the funds. If they don't have at least $50, they will also have the option to provide some other bribe. +### truefalsetext +The player will have one response text if a condition is true, and another if it is false, but the same trial for either line. `condition`, `true`, and `false` are all mandatory. + +```C++ +{ + "truefalsetext": { + "condition": { "u_has_cash": 800 }, + "true": "I may have the money, I'm not giving you any.", + "false": "I don't have that money." + }, + "topic": "TALK_WONT_PAY" +} +``` + ### text Will be shown to the user, no further meaning. ### trial -Optional, if not defined, "NONE" is used. Otherwise one of "NONE", "LIE", "PERSUADE" or "INTIMIDATE". If "NONE" is used, the `failure` object is not read, otherwise it's mandatory. -The `difficulty` is only required if type is not "NONE" and specifies the success chance in percent (it is however modified by various things like mutations). +Optional, if not defined, "NONE" is used. Otherwise one of "NONE", "LIE", "PERSUADE" "INTIMIDATE", or "CONDITION". If "NONE" is used, the `failure` object is not read, otherwise it's mandatory. + +The `difficulty` is only required if type is not "NONE" or "CONDITION" and specifies the success chance in percent (it is however modified by various things like mutations). Higher difficulties are easier to pass. + +An optional `mod` array takes any of the following modifiers and increases the difficulty by the NPC's opinion of your character or personality trait for that modifier multiplied by the value: "ANGER", "FEAR", "TRUST", "VALUE", "AGRESSION", "ALTRUISM", "BRAVERY", "COLLECTOR". The special "POS_FEAR" modifier treats NPC's fear of your character below 0 as though it were 0. The special "TOTAL" modifier sums all previous modifiers and then multiplies the result by its value and is used when setting the owed value. -An optional `mod` array takes any of the following modifiers and increases the difficulty by the NPC's opinion of your character or personality trait for that modifier multiplied by the value: "ANGER", "FEAR", "TRUST", "VALUE", "AGRESSION", "ALTRUISM", "BRAVERY", "COLLECTOR". The special "POS_FEAR" modifier treats NPC's fear of your character below 0 as though it were 0. +"CONDITION" trials take a mandatory `condition` instead of `difficulty`. The `success` object is chosen if the `condition` is true and the `failure` is chosen otherwise. ### success and failure Both objects have the same structure. `topic` defines which topic the dialogue will switch to. `opinion` is optional, if given it defines how the opinion of the NPC will change. The given values are *added* to the opinion of the NPC, they are all optional and default to 0. `effect` is a function that is executed after choosing the response, see below. @@ -404,6 +515,7 @@ The `failure` object is used if the trial fails, the `success` object is used ot ### Sample trials "trial": { "type": "PERSUADE", "difficulty": 0, "mod": [ [ "TRUST", 3 ], [ "VALUE", 3 ], [ "ANGER", -3 ] ] } "trial": { "type": "INTIMIDATE", "difficulty": 20, "mod": [ [ "FEAR", 8 ], [ "VALUE", 2 ], [ "TRUST", 2 ], [ "BRAVERY", -2 ] ] } +"trial": { "type": "CONDITION", "condition": { "npc_has_trait": "FARMER" } } `topic` can also be a single topic object (the `type` member is not required here): ```C++ @@ -425,153 +537,94 @@ This is an optional condition which can be used to prevent the response under ce ### response effect The `effect` function can be any of the following effects. Multiple effects should be arranged in a list and are processed in the order listed. -#### assign_mission -Assigns a previously selected mission to your character. - -#### mission_success -Resolves the current mission successfully. - -#### mission_failure -Resolves the current mission as a failure. - -#### clear_mission -Clears the mission from the your character's assigned missions. - -#### mission_reward -Gives the player the mission's reward. - -#### start_trade -Opens the trade screen and allows trading with the NPC. - -#### assign_base -Assigns the NPC to a base camp at the player's current position. - -#### assign_guard -Makes the NPC into a guard, which will defend the current location. - -#### stop_guard -Releases the NPC from their guard duty (also see `assign_guard`). - -#### start_camp -Makes the NPC the overseer of a new faction camp. - -#### recover_camp -Makes the NPC the overseer of an existing camp that doesn't have an overseer. - -#### remove_overseer -Makes the NPC stop being an overseer, abandoning the faction camp. - -#### wake_up -Wakes up sleeping, but not sedated, NPCs. - -#### reveal_stats -Reveals the NPC's stats, based on the player's skill at assessing them. - -#### end_conversation -Ends the conversation and makes the NPC ignore you from now on. - -#### insult_combat -Ends the conversation and makes the NPC hostile, adds a message that character starts a fight with the NPC. - -#### give_equipment -Allows your character to select items from the NPC's inventory and transfer them to your inventory. - -#### give_aid -Removes all bites, infection, and bleeding from your character's body and heals 10-25 HP of injury on each of your character's body parts. - -#### give_aid_all -Performs give_aid on each of your character's NPC allies in range. - -#### buy_haircut -Gives your character a haircut morale boost for 12 hours. - -#### buy_shave -Gives your character a shave morale boost for 6 hours. - -#### buy_10_logs -Places 10 logs in the ranch garage, and makes the NPC unavailable for 1 day. - -#### buy_100_logs -Places 100 logs in the ranch garage, and makes the NPC unavailable for 7 days. - -#### bionic_install -The NPC installs a bionic from your character's inventory onto your character, using very high skill, and charging you according to the operation's difficulty. - -#### bionic_remove -The NPC removes a bionic from your character, using very high skill , and charging you according to the operation's difficulty. - -#### hostile -Make the NPC hostile and end the conversation. - -#### flee -Makes the NPC flee from your character. - -#### leave -Makes the NPC not follow your character anymore. - -#### follow -Makes the NPC follow your character. - -#### deny_follow -#### deny_lead -#### deny_train -#### deny_personal_info -Sets the appropriate effect on the NPC for a few hours. These are deprecated in favor of the more flexible `npc_add_effect` described below. - -#### drop_weapon -Make the NPC drop their weapon. - -#### player_weapon_away -Makes your character put away (unwield) their weapon. - -#### player_weapon_drop -Makes your character drop their weapon. - -#### stranger_neutral -Changes the NPC's attitude to neutral. - -#### start_mugging -The NPC will approach your character and steal from your character, attacking if your character resists. - -#### lead_to_safety -The NPC will gain the LEAD attitude and give your character the mission of reaching safety. - -#### start_training -The NPC will train your character in a skill or martial art. - -#### companion_mission: role_string -The NPC will offer you a list of missions for your allied NPCs, depending on the NPC's role. - -#### u_add_effect: effect_string, (optional duration: duration_string) -#### npc_add_effect: effect_string, (optional duration: duration_string) -Your character or the NPC will gain the effect for `duration_string` turns. - -#### u_add_trait: trait_string -#### npc_add_trait: trait_string -Your character or the NPC will gain the trait. - -#### u_buy_item: item_string, (optional cost: cost_num, optional count: count_num, optional container: container_string) -The NPC will give your character the item or `count_num` copies of the item, contained in container, and will remove `cost_num` from your character's cash if specified. If cost isn't present, the NPC gives your character the item at no charge. - -#### u_sell_item: item_string, (optional cost: cost_num, optional count: count_num) -Your character will give the NPC the item or `count_num` copies of the item, and will add `cost_num` to your character's cash if specified. If cost isn't present, the your character gives the NPC the item at no charge. - -This effect will fail if you do not have at least `count_num` copies of the item, so it should be checked with `u_has_items`. - -#### u_spend_cash: cost_num -Remove `cost_num` from your character's cash. Negative values means your character gains cash. - -#### npc_faction_change: faction_string -Change the NPC's faction membership to `faction_string`. - -#### u_faction_rep: rep_num -Increase's your reputation with the NPC's current faction, or decreases it if `rep_num` is negative. +#### Missions + +Effect | Description +---|--- +assign_mission | Assigns a previously selected mission to your character. +mission_success | Resolves the current mission successfully. +mission_failure | Resolves the current mission as a failure. +clear_mission | Clears the mission from the your character's assigned missions. +mission_reward | Gives the player the mission's reward. + +#### Stats / Morale + +Effect | Description +---|--- +give_aid | Removes all bites, infection, and bleeding from your character's body and heals 10-25 HP of injury on each of your character's body parts. +give_aid_all | Performs give_aid on each of your character's NPC allies in range. +buy_haircut | Gives your character a haircut morale boost for 12 hours. +buy_shave | Gives your character a shave morale boost for 6 hours. +morale_chat | Gives your character a pleasant conversation morale boost for 6 hours. +player_weapon_away | Makes your character put away (unwield) their weapon. +player_weapon_drop | Makes your character drop their weapon. + +#### Character effects / Mutations + +Effect | Description +---|--- +u_add_effect: effect_string, (*one of* duration: duration_string, duration: duration_int)
npc_add_effect: effect_string, (*one of* duration: duration_string, duration: duration_int) | Your character or the NPC will gain the effect for `duration_string` or `duration_int` turns. If `duration_string` is "PERMANENT", the effect will be added permanently. +u_add_trait: trait_string
npc_add_trait: trait_string | Your character or the NPC will gain the trait. + +#### Trade / Items + +Effect | Description +---|--- +start_trade | Opens the trade screen and allows trading with the NPC. +buy_10_logs | Places 10 logs in the ranch garage, and makes the NPC unavailable for 1 day. +buy_100_logs | Places 100 logs in the ranch garage, and makes the NPC unavailable for 7 days. +give_equipment | Allows your character to select items from the NPC's inventory and transfer them to your inventory. +u_buy_item: item_string, (*optional* cost: cost_num, *optional* count: count_num, *optional* container: container_string) | The NPC will give your character the item or `count_num` copies of the item, contained in container, and will remove `cost_num` from your character's cash if specified.
If cost isn't present, the NPC gives your character the item at no charge. +u_sell_item: item_string, (*optional* cost: cost_num, *optional* count: count_num) | Your character will give the NPC the item or `count_num` copies of the item, and will add `cost_num` to your character's cash if specified.
If cost isn't present, the your character gives the NPC the item at no charge.
This effect will fail if you do not have at least `count_num` copies of the item, so it should be checked with `u_has_items`. +u_spend_cash: cost_num | Remove `cost_num` from your character's cash. Negative values means your character gains cash. +add_debt: mod_list | Increases the NPC's debt to the player by the values in the mod_list.
The following would increase the NPC's debt to the player by 1500x the NPC's altruism and 1000x the NPC's opinion of the player's value.
``` +{ "effect": { "add_debt": [ [ "ALTRUISM", 3 ], [ "VALUE", 2 ], [ "TOTAL", 500 ] ] +``` + +#### Behaviour / AI + +Effect | Description +---|--- +assign_base | Assigns the NPC to a base camp at the player's current position. +assign_guard | Makes the NPC into a guard, which will defend the current location. +stop_guard | Releases the NPC from their guard duty (also see `assign_guard`). +start_camp | Makes the NPC the overseer of a new faction camp. +recover_camp | Makes the NPC the overseer of an existing camp that doesn't have an overseer. +remove_overseer | Makes the NPC stop being an overseer, abandoning the faction camp. +wake_up | Wakes up sleeping, but not sedated, NPCs. +reveal_stats | Reveals the NPC's stats, based on the player's skill at assessing them. +end_conversation | Ends the conversation and makes the NPC ignore you from now on. +insult_combat | Ends the conversation and makes the NPC hostile, adds a message that character starts a fight with the NPC. +hostile | Make the NPC hostile and end the conversation. +flee | Makes the NPC flee from your character. +leave | Makes the NPC not follow your character anymore. +follow | Makes the NPC follow your character. +drop_weapon | Make the NPC drop their weapon. +stranger_neutral | Changes the NPC's attitude to neutral. +start_mugging | The NPC will approach your character and steal from your character, attacking if your character resists. +lead_to_safety | The NPC will gain the LEAD attitude and give your character the mission of reaching safety. +start_training | The NPC will train your character in a skill or martial art. +companion_mission: role_string | The NPC will offer you a list of missions for your allied NPCs, depending on the NPC's role. +bionic_install | The NPC installs a bionic from your character's inventory onto your character, using very high skill, and charging you according to the operation's difficulty. +bionic_remove | The NPC removes a bionic from your character, using very high skill, and charging you according to the operation's difficulty. +npc_faction_change: faction_string | Change the NPC's faction membership to `faction_string`. +u_faction_rep: rep_num | Increase's your reputation with the NPC's current faction, or decreases it if `rep_num` is negative. +toggle_npc_rule: rule_string | Toggles the value of a boolean NPC follower AI rule such as "use_silent" or "allow_bash" +set_npc_engagement_rule: rule_string | Sets the NPC follower AI rule for engagement distance to the value of `rule_string`. +set_npc_aim_rule: rule_string | Sets the NPC follower AI rule for aiming speed to the value of `rule_string`. + +#### Deprecated + +Effect | Description +---|--- +deny_follow
deny_lead
deny_train
deny_personal_info | Sets the appropriate effect on the NPC for a few hours.
These are *deprecated* in favor of the more flexible `npc_add_effect` described above. #### Sample effects ``` { "topic": "TALK_EVAC_GUARD3_HOSTILE", "effect": [ { "u_faction_rep": -15 }, { "npc_change_faction": "hells_raiders" } ] } { "text": "Let's trade then.", "effect": "start_trade", "topic": "TALK_EVAC_MERCHANT" }, { "text": "What needs to be done?", "topic": "TALK_CAMP_OVERSEER", "effect": { "companion_mission": "FACTION_CAMP" } } +{ "text": "Do you like it?", "topic": "TALK_CAMP_OVERSEER", "effect": [ { "u_add_effect": "concerned", "duration": 600 }, { "npc_add_effect": "touched", "duration": "3600" }, { "u_add_effect": "empathetic", "duration": "PERMANENT" } ] } ``` --- @@ -586,6 +639,9 @@ trust, value, fear, and anger are optional keywords inside the opinion object. E { "effect": "follow", "opinion": { "trust": 1, "value": 1 }, "topic": "TALK_DONE" } { "topic": "TALK_DENY_FOLLOW", "effect": "deny_follow", "opinion": { "fear": -1, "value": -1, "anger": 1 } } ``` + +#### mission_opinion: { } +trust, value, fear, and anger are optional keywords inside the opinion object. Each keyword must be followed by a numeric value. The NPC's opinion is modified by the value of the current mission divided by the value of the keyword. --- ### response conditions @@ -593,125 +649,86 @@ Conditions can be a simple string with no other values, a key and an int, a key The following keys and simple strings are available: -#### "and" (array) -`true` if every condition in the array is true. Can be used to create complex condition tests, like `"[INTELLIGENCE 10+][PERCEPTION 12+] Your jacket is torn. Did you leave that scrap of fabric behind?"` - -#### "or" (array) -`true` if every condition in the array is true. Can be used to create complex condition tests, like -`"[STRENGTH 9+] or [DEXTERITY 9+] I'm sure I can handle one zombie."` - -#### "not" (object) -`true` if the condition in the object or string is false. Can be used to create complex conditions test by negating other conditions, for text such as `"[INTELLIGENCE 7-] Hitting the reactor with a hammer should shut it off safely, right?"` - -#### "u_has_any_trait" (array) -`true` if the player character has any trait or mutation in the array. Used to check multiple traits. - -#### "npc_has_any_trait" (array) -`true` if the NPC has any trait or mutation in the array. Used to check multiple traits. - -#### "u_any_trait" (string) -`true` if the player character has a specific trait. A simpler version of `u_has_any_trait` that only checks for one trait. - -#### "npc_has_trait" (string) -`true` if the NPC has a specific trait. A simpler version of `npc_has_any_trait` that only checks for one trait. - -#### "u_any_trait_flag" (string) -`true` if the player character has any traits with the specific trait flag. A more robust version of `u_has_any_trait`. - -#### "npc_has_trait_flag" (string) -`true` if the NPC has any traits with the specific trait flag. A more robust version of `npc_has_any_trait`. - -#### "npc_has_class" (array) -`true` if the NPC is a member of an NPC class. - -#### "u_has_strength" (int) -`true` if the player character's strength is at least the value of `u_has_strength`. - -#### "u_has_dexterity" (int) -`true` if the player character's dexterity is at least the value of `u_has_dexterity`. - -#### "u_has_intelligence" (int) -`true` if the player character's intelligence is at least the value of `u_has_intelligence`. - -#### "u_has_perception" (int) -`true` if the player character's perception is at least the value of `u_has_perception`. - -#### "u_has_item" (string) -`true` if the player character has something with `u_has_item`'s `item_id` in their inventory. - -#### "u_has_items" (dictionary) -`u_has_items` must be a dictionary with an `item` string and a `count` int. -`true` if the player character has at least `count` charges or counts of `item` in their inventory. - -#### "u_at_om_location" (string) -`true` if the player character is standing on an overmap tile with u_at_om_location's id. The special string "FACTION_CAMP_ANY" changes it to return true of the player is standing on a faction camp overmap tile. - -#### "npc_has_effect" (string) -`true` if the NPC is under the effect with npc_has_effect's `effect_id`. - -#### "u_has_effect" (string) -`true` if the player character is under the effect with u_has_effect's `effect_id`. - -#### "u_has_mission" (string) -`true` if the mission is assigned to the player character. +#### Boolean logic + +Condition | Type | Description +--- | --- | --- +"and" | array | `true` if every condition in the array is true. Can be used to create complex condition tests, like `"[INTELLIGENCE 10+][PERCEPTION 12+] Your jacket is torn. Did you leave that scrap of fabric behind?"` +"or" | array | `true` if every condition in the array is true. Can be used to create complex condition tests, like `"[STRENGTH 9+] or [DEXTERITY 9+] I'm sure I can handle one zombie."` +"not" | object | `true` if the condition in the object or string is false. Can be used to create complex conditions test by negating other conditions, for text such as
`"[INTELLIGENCE 7-] Hitting the reactor with a hammer should shut it off safely, right?"` + +#### Player conditions + +Condition | Type | Description +--- | --- | --- +"u_at_om_location" | string | `true` if the player character is standing on an overmap tile with u_at_om_location's id. The special string "FACTION_CAMP_ANY" changes it to return true of the player is standing on a faction camp overmap tile. +"u_any_trait" | string | `true` if the player character has a specific trait. A simpler version of `u_has_any_trait` that only checks for one trait. +"u_any_trait_flag" | string | `true` if the player character has any traits with the specific trait flag. A more robust version of `u_has_any_trait`. The special trait flag "MUTATION_THRESHOLD" checks to see if the player has crossed a mutation threshold. +"u_has_any_trait" | array | `true` if the player character has any trait or mutation in the array. Used to check multiple traits. +"u_has_strength" | int | `true` if the player character's strength is at least the value of `u_has_strength`. +"u_has_dexterity" | int | `true` if the player character's dexterity is at least the value of `u_has_dexterity`. +"u_has_intelligence" | int | `true` if the player character's intelligence is at least the value of `u_has_intelligence`. +"u_has_perception" | int | `true` if the player character's perception is at least the value of `u_has_perception`. +"u_has_item" | string | `true` if the player character has something with `u_has_item`'s `item_id` in their inventory. +"u_has_items" | dictionary | `u_has_items` must be a dictionary with an `item` string and a `count` int.
`true` if the player character has at least `count` charges or counts of `item` in their inventory. +"u_has_effect" | string | `true` if the player character is under the effect with u_has_effect's `effect_id`. +"u_has_mission" | string | `true` if the mission is assigned to the player character. +"u_has_cash" | int | `true` if the player character has at least `u_has_cash` cash available. Used to check if the PC can buy something. +"u_can_stow_weapon" | simple string | `true` if the player character is wielding a weapon and has enough space to put it away. +"u_has_weapon" | simple string | `true` if the player character is wielding a weapon. +"u_has_camp" | simple string | `true` is the player has one or more active base camps. + +#### Player-NPC conditions + +Condition | Type | Description +--- | --- | --- +"at_safe_space" | simple string | `true` if the NPC's current overmap location passes the is_safe() test. +"has_assigned_mission" | simple string | `true` if the player character has exactly one mission from the NPC. Can be used for texts like "About that job...". +"has_many_assigned_missions" | simple string | `true` if the player character has several mission from the NPC (more than one). Can be used for texts like "About one of those jobs..." and to switch to the "TALK_MISSION_LIST_ASSIGNED" topic. +"has_no_available_mission" | simple string | `true` if the NPC has no jobs available for the player character. +"has_available_mission" | simple string | `true` if the NPC has one job available for the player character. +"has_many_available_missions" | simple string | `true` if the NPC has several jobs available for the player character. +"mission_goal" | string | `true` if the NPC's current mission has the same goal as `mission_goal`. +"mission_complete" | simple string | `true` if the player has completed the NPC's current mission. +"mission_incomplete" | simple string | `true` if the player hasn't completed the NPC's current mission. +"npc_service" | int | `true` if the NPC does not have the "currently_busy" effect and the player character has at least npc_service cash available. Useful to check if the player character can hire an NPC to perform a task that would take time to complete. Functionally, this is identical to `"and": [ { "not": { "npc_has_effect": "currently_busy" } }, { "u_has_cash": service_cost } ]` +"npc_allies" | int | `true` if the player character has at least `npc_allies` number of NPC allies. +"npc_following" | simple string | `true` if the NPC is following the player character. + +#### NPC conditions + +Condition | Type | Description +--- | --- | --- +"npc_available" | simple string | `true` if the NPC does not have effect "currently_busy". +"npc_following" | simple string | `true` if the NPC is following the player character. +"npc_friend" | simple string | `true` if the NPC is friendly to the player character. +"npc_hostile" | simple string | `true` if the NPC is an enemy of the player character. +"npc_train_skills" | simple string | `true` if the NPC has one or more skills with more levels than the player. +"npc_train_styles" | simple string | `true` if the NPC knows one or more martial arts styles that the player does not know. +"npc_has_any_trait" | array | `true` if the NPC has any trait or mutation in the array. Used to check multiple traits. +"npc_has_class" | array | `true` if the NPC is a member of an NPC class. +"npc_has_effect" | string | `true` if the NPC is under the effect with npc_has_effect's `effect_id`. +"npc_has_trait" | string | `true` if the NPC has a specific trait. A simpler version of `npc_has_any_trait` that only checks for one trait. +"npc_has_trait_flag" | string | `true` if the NPC has any traits with the specific trait flag. A more robust version of `npc_has_any_trait`. The special trait flag "MUTATION_THRESHOLD" checks to see if the NPC has crossed a mutation threshold. +"npc_role_nearby" | string | `true` if there is an NPC with the same companion mission role as `npc_role_nearby` within 100 tiles. +"npc_has_weapon" | simple string | `true` if the NPC is wielding a weapon. + +#### NPC Follower AI rules +Condition | Type | Description +--- | --- | --- +"npc_aim_rule" | string | `true` if the NPC follower AI rule for aiming matches the string. +"npc_engagement_rule" | string | `true` if the NPC follower AI rule for engagement matches the string. +"npc_rule" | string | `true` if the NPC follower AI rule for that matches string is set. + +#### Environment + +Condition | Type | Description +--- | --- | --- +"days_since_cataclysm" | int | `true` if at least `days_since_cataclysm` days have passed since the Cataclysm. +"is_season" | string | `true` if the current season matches `is_season`, which must be one of "spring", "summer", "autumn", or "winter". +"is_day" | simple string | `true` if it is currently daytime. +"is_outside" | simple string | `true` if the NPC is on a tile without a roof. -#### "npc_allies" (int) -`true` if the player character has at least `npc_allies` number of NPC allies. - -#### "npc_service" (int) -`true` if the NPC does not have the "currently_busy" effect and the player character has at least -npc_service cash available. Useful to check if the player character can hire an NPC to perform a task that would take time to complete. Functionally, this is identical to `"and": [ { "not": { "npc_has_effect": "currently_busy" } }, { "u_has_cash": service_cost } ]` - -#### "u_has_cash" (int) -`true` if the player character has at least `u_has_cash` cash available. Used to check if the PC can buy something. - -#### "npc_role_nearby" (string) -`true` if there is an NPC with the same companion mission role as `npc_role_nearby` within 100 tiles. - -#### "days_since_cataclysm" (int) -`true` if at least `days_since_cataclysm` days have passed since the Cataclysm. - -#### "is_season" (string) -`true` if the current season matches `is_season`, which must be one of "spring", "summer", "autumn", or "winter". - -#### "has_assigned_mission" (simple string) -`true` if the player character has exactly one mission from the NPC. Can be used for texts like "About that job..." - -#### "has_many_assigned_missions" (simple string) -`true` if the player character has several mission from the NPC (more than one). Can be used for texts like "About one of those jobs..." and to switch to the "TALK_MISSION_LIST_ASSIGNED" topic. - -#### "has_no_available_mission" (simple string) -`true` if the NPC has no jobs available for the player character. - -#### "has_available_mission" (simple string) -`true` if the NPC has one job available for the player character. - -#### "has_many_available_missions" (simple string) -`true` if the NPC has several jobs available for the player character. - -#### "npc_available" (simple string) -`true` if the NPC does not have effect "currently_busy". - -#### "npc_following" (simple string) -`true` if the NPC is following the player character. - -#### "at_safe_space" (simple string) -`true` if the NPC's current overmap location passes the is_safe() test. - -#### "u_can_stow_weapon" (simple string) -`true` if the player character is wielding a weapon and has enough space to put it away. - -#### "u_has_weapon" (simple string) -`true` if the player character is wielding a weapon. - -#### "npc_has_weapon" (simple string) -`true` if the NPC is wielding a weapon. - -#### "is_day" (simple string) -`true` if it is currently daytime. - -#### "is_outside (simple string) -`true` if the NPC is on a tile without a roof. #### Sample responses with conditions ```C++ @@ -720,6 +737,16 @@ npc_service cash available. Useful to check if the player character can hire an "topic": "TALK_NONE", "condition": { "npc_has_effect": "infected" } }, +{ + "text": "I'm sorry for offending you. I predict you will feel better in exactly one hour.", + "topic": "TALK_NONE", + "effect": { "npc_add_effect": "deeply_offended", "duration": 600 } +}, +{ + "text": "Nice to meet you too.", + "topic": "TALK_NONE", + "effect": { "u_add_effect": "has_met_example_NPC", "duration": "PERMANENT" } +}, { "text": "[INT 11] I'm sure I can organize salvage operations to increase the bounty scavengers bring in!", "topic": "TALK_EVAC_MERCHANT_NO", @@ -760,9 +787,49 @@ npc_service cash available. Useful to check if the player character can hire an { "not": { "u_has_effect": "has_og_comm_freq" } } ] } +}, +{ + "text": "I killed them. All of them.", + "topic": "TALK_MISSION_SUCCESS", + "condition": { + "and": [ { "or": [ { "mission_goal": "KILL_MONSTER_SPEC" }, { "mission_goal": "KILL_MONSTER_TYPE" } ] }, "mission_complete" ] + }, + "switch": true +}, +{ + "text": "Glad to help. I need no payment.", + "topic": "TALK_NONE", + "effect": "clear_mission", + "mission_opinion": { "trust": 4, "value": 3 }, + "opinion": { "fear": -1, "anger": -1 } +}, +{ + "text": "Maybe you can teach me something as payment?", + "topic": "TALK_TRAIN", + "condition": { "or": [ "npc_train_skills", "npc_train_styles" ] }, + "effect": "mission_reward" +}, +{ + "truefalsetext": { + "true": "I killed him.", + "false": "I killed it.", + "condition": { "mission_goal": "ASSASSINATE" } + }, + "condition": { + "and": [ + "mission_incomplete", + { + "or": [ + { "mission_goal": "ASSASSINATE" }, + { "mission_goal": "KILL_MONSTER" }, + { "mission_goal": "KILL_MONSTER_SPEC" }, + { "mission_goal": "KILL_MONSTER_TYPE" } + ] + } + ] + }, + "trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 3 ] ] }, + "success": { "topic": "TALK_NONE" }, + "failure": { "topic": "TALK_MISSION_FAILURE" } } - - - ``` - diff --git a/doc/REGION_SETTINGS.md b/doc/REGION_SETTINGS.md index 3e605f311d3b8..b5dc9936b4e0e 100644 --- a/doc/REGION_SETTINGS.md +++ b/doc/REGION_SETTINGS.md @@ -4,12 +4,15 @@ The **region_settings** define the attributes for map generation that apply to a The general settings define the default overmap terrain and ground cover, as well as the factors that control forest and swamp growth. Additional sections are as follows: -| Section | Description | -| ---------------- | ------------------------------------------------------------ | -| `field_coverage` | Defines the flora that cover the `field` overmap terrain. | -| `city` | Defines the structural compositions of cities. | -| `map_extras` | Defines the map extra groups referenced by overmap terrains. | -| `weather` | Defines the base weather attributes for the region. | +| Section | Description | +| ------------------------------- | ------------------------------------------------------------------ | +| `field_coverage` | Defines the flora that cover the `field` overmap terrain. | +| `forest_mapgen_settings` | Defines flora (and "stuff") that cover the `forest` terrain types. | +| `forest_trail_settings` | Defines the overmap and local structure of forest trails. | +| `city` | Defines the structural compositions of cities. | +| `map_extras` | Defines the map extra groups referenced by overmap terrains. | +| `weather` | Defines the base weather attributes for the region. | +| `overmap_feature_flag_settings` | Defines operations on overmap features based on their flags. | Note that for the default region, all attributes and sections are required. @@ -261,6 +264,7 @@ trailheads, and some general tuning of the actual trail width/position in mapgen | `random_point_max` | Maximum # of random points from contiguous forest used to form trail system. | | `random_point_size_scalar` | Forest size is divided by this and added to the minimum number of random points. | | `trailhead_chance` | One in X chance a trailhead will spawn at end of trail near field. | +| `trailhead_road_distance` | Maximum distance trailhead can be from a road and still be created. | | `trail_center_variance` | Center of the trail in mapgen is offset in X and Y by a random amount between +/- variance | | `trail_width_offset_min` | Trail width in mapgen is offset by `rng(trail_width_offset_min, trail_width_offset_max)`. | | `trail_width_offset_max` | Trail width is mapgen offset by `rng(trail_width_offset_min, trail_width_offset_max)`. | @@ -279,6 +283,7 @@ trailheads, and some general tuning of the actual trail width/position in mapgen "random_point_max": 50, "random_point_size_scalar": 100, "trailhead_chance": 1, + "trailhead_road_distance": 6, "trail_center_variance": 3, "trail_width_offset_min": 1, "trail_width_offset_max": 3, @@ -384,12 +389,15 @@ The **weather** section defines the base weather attributes used for the region. ### Fields -| Identifier | Description | -| ------------------ | --------------------------------------------------------------------- | -| `base_temperature` | Base temperature for the region in degrees Celsius. | -| `base_humidity` | Base humidity for the region in relative humidity % | -| `base_pressure` | Base pressure for the region in millibars. | -| `base_acid` | Base acid for the region in ? units. Value >= 1 is considered acidic. | +| Identifier | Description | +| ------------------------------ | --------------------------------------------------------------------- | +| `base_temperature` | Base temperature for the region in degrees Celsius. | +| `base_humidity` | Base humidity for the region in relative humidity % | +| `base_pressure` | Base pressure for the region in millibars. | +| `base_acid` | Base acid for the region in ? units. Value >= 1 is considered acidic. | +| `base_wind` | Base wind for the region in mph units. Roughly the yearly average. | +| `base_wind_distrib_peaks` | How high the wind peaks can go. Higher values produce windier days. | +| `base_wind_season_variation` | How the wind varies with season. Lower values produce more variation | ### Example @@ -399,11 +407,42 @@ The **weather** section defines the base weather attributes used for the region. "base_temperature": 6.5, "base_humidity": 66.0, "base_pressure": 1015.0, + "base_acid": 0.0, + "base_wind": 5.7, + "base_wind_distrib_peaks": 30, + "base_wind_season_variation": 64, "base_acid": 0.0 } } ``` +## Overmap Feature Flag Settings + +The **overmap_feature_flag_settings** section defines operations that operate on the flags assigned to overmap features. +This is currently used to provide a mechanism for whitelisting and blacklisting locations on a per-region basis. + +### Fields + +| Identifier | Description | +| ----------------- | ------------------------------------------------------------------------------------------ | +| `clear_blacklist` | Clear all previously defined `blacklist`. | +| `blacklist` | List of flags. Any location with a matching flag will be excluded from overmap generation. | +| `clear_whitelist` | Clear all previously defined `whitelist`. | +| `whitelist` | List of flags. Only locations with a matching flag will be included in overmap generation. | + +### Example + +```json +{ + "overmap_feature_flag_settings": { + "clear_blacklist": false, + "blacklist": [ "FUNGAL" ], + "clear_whitelist": false, + "whitelist": [] + } +} +``` + # Region Overlay A **region_overlay** allows the specification of `region_settings` values which will be applied to @@ -432,4 +471,4 @@ All additional fields and sections are as defined for a `region_overlay`. } } }] -``` \ No newline at end of file +``` diff --git a/gfx/BlockheadTileset/tile_config.json b/gfx/BlockheadTileset/tile_config.json index 9ef7ca1c67584..dd30ee15178ac 100644 --- a/gfx/BlockheadTileset/tile_config.json +++ b/gfx/BlockheadTileset/tile_config.json @@ -433,6 +433,11 @@ "bg":1, "rotates":false }, + { + "id": [ "t_thconc_floor", "t_strconc_floor" ], + "bg":53, + "rotates":false + }, { "id":"t_concrete_wall", "fg":87, @@ -475,18 +480,36 @@ "bg":64, "rotates":false }, + { + "id":"t_door_lab_c", + "fg":66, + "bg":53, + "rotates":false + }, { "id":"t_door_b", "fg":68, "bg":64, "rotates":false }, + { + "id":"t_door_lab_b", + "fg":68, + "bg":53, + "rotates":false + }, { "id":"t_door_o", "fg":67, "bg":64, "rotates":false }, + { + "id":"t_door_lab_o", + "fg":67, + "bg":53, + "rotates":false + }, { "id":"t_door_locked_interior", "fg":69, @@ -511,6 +534,24 @@ "bg":64, "rotates":false }, + { + "id":"t_mdoor_frame", + "fg":70, + "bg":64, + "rotates":false + }, + { + "id":"t_door_lab_frame", + "fg":70, + "bg":53, + "rotates":false + }, + { + "id":"t_mdoor_lab_frame", + "fg":70, + "bg":53, + "rotates":false + }, { "id":"t_chaingate_l", "fg":94, @@ -552,12 +593,24 @@ "bg":65, "rotates":false }, + { + "id":"t_door_metal_lab_c", + "fg":72, + "bg":53, + "rotates":false + }, { "id":"t_door_metal_o", "fg":73, "bg":65, "rotates":false }, + { + "id":"t_door_metal_lab_o", + "fg":73, + "bg":53, + "rotates":false + }, { "id":"t_door_metal_locked", "fg":72, @@ -583,17 +636,29 @@ "rotates":false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_reinforced_door_glass_c" ], "fg":105, "bg":64, "rotates":false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_lab_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_lab_c" ], + "fg":105, + "bg":53, + "rotates":false + }, + { + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o" ], "fg":106, "bg":64, "rotates":false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg":106, + "bg":53, + "rotates":false + }, { "id":"t_portcullis", "rotates":false @@ -1175,7 +1240,13 @@ "rotates":false }, { - "id":"t_gates_control_concrete", + "id":"t_gates_mech_control_lab", + "fg":454, + "bg":53, + "rotates":false + }, + { + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab", "t_gates_control_brick", "t_gates_control_brick_lab" ], "fg":455, "rotates":false }, diff --git a/gfx/ChestHole16Tileset/tile_config.json b/gfx/ChestHole16Tileset/tile_config.json index b7122d5560d33..151e440a27408 100644 --- a/gfx/ChestHole16Tileset/tile_config.json +++ b/gfx/ChestHole16Tileset/tile_config.json @@ -21740,6 +21740,12 @@ "bg": 661, "rotates": false }, + { + "id": ["t_gates_control_metal_lab", "t_gates_control_brick_lab"], + "fg": 2976, + "bg": 659, + "rotates": false + }, { "id": "t_conveyor", "fg": 2977, @@ -23418,7 +23424,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 3874, "rotates": false }, @@ -23428,7 +23434,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": [3877, 3876, 3877, 3876], "bg": 659, "rotates": true @@ -23450,12 +23456,12 @@ "rotates": false }, { - "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c"], + "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_o" ], "fg": 3881, "rotates": false }, { - "id": ["t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o"], + "id": ["t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o", "t_reinforced_door_glass_lab_o" ], "fg": 3882, "rotates": false }, @@ -43112,6 +43118,12 @@ "bg": 660, "rotates": false }, + { + "id": "t_gates_mech_control_lab", + "fg": 2035, + "bg": 659, + "rotates": false + }, { "id": "t_radio_tower", "fg": 2096, @@ -43797,18 +43809,35 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_lab_frame", + "fg": 2002, + "bg": 659, + "rotates": true + }, { "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], "fg": 2004, "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o" ], + "fg": 2004, + "bg": 659, + "rotates": true + }, { "id": "t_door_o", "fg": [2937, 2936, 2937, 2936], "bg": 661, "rotates": true }, + { + "id": "t_door_lab_o", + "fg": [2937, 2936, 2937, 2936], + "rotates": true + }, { "id": "t_floor", "bg": 661, @@ -43819,6 +43848,11 @@ "fg": 2002, "bg": 661 }, + { + "id": "t_mdoor_lab_frame", + "fg": 2002, + "bg": 659 + }, { "id": "t_rdoor_b", "fg": 2103, @@ -43903,6 +43937,12 @@ "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], + "fg": 2003, + "bg": 659, + "rotates": true + }, { "id": "t_door_c_peep", "fg": 2006, @@ -43915,6 +43955,12 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_lab_c", + "fg": [2906, 2920, 2906, 2920], + "bg": 659, + "rotates": true + }, { "id": "t_column", "fg": 1974, @@ -48945,7 +48991,7 @@ ] }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 1997, "rotates": false }, @@ -49015,6 +49061,12 @@ "bg": 661, "rotates": false }, + { + "id": "t_gates_control_concrete_lab", + "fg": 2034, + "bg": 659, + "rotates": false + }, { "id": "t_monkey_bars", "fg": 2065, diff --git a/gfx/ChestHole32Tileset/tile_config.json b/gfx/ChestHole32Tileset/tile_config.json index b830f52121590..c7bc6621ff477 100644 --- a/gfx/ChestHole32Tileset/tile_config.json +++ b/gfx/ChestHole32Tileset/tile_config.json @@ -21746,6 +21746,12 @@ "bg": 661, "rotates": false }, + { + "id": ["t_gates_control_metal_lab", "t_gates_control_brick_lab"], + "fg": 2976, + "bg": 659, + "rotates": false + }, { "id": "t_conveyor", "fg": 2977, @@ -23424,7 +23430,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 3874, "rotates": false }, @@ -23434,7 +23440,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": [3877, 3876, 3877, 3876], "bg": 659, "rotates": true @@ -23456,7 +23462,7 @@ "rotates": false }, { - "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c"], + "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c" ], "fg": 3881, "rotates": false }, @@ -43110,6 +43116,12 @@ "bg": 660, "rotates": false }, + { + "id": "t_gates_mech_control_lab", + "fg": 2035, + "bg": 659, + "rotates": false + }, { "id": "t_radio_tower", "fg": 2096, @@ -43795,18 +43807,36 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_lab_frame", + "fg": 2002, + "bg": 659, + "rotates": true + }, { "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], "fg": 2004, "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o" ], + "fg": 2004, + "bg": 659, + "rotates": true + }, { "id": "t_door_o", "fg": [2937, 2936, 2937, 2936], "bg": 661, "rotates": true }, + { + "id": "t_door_lab_o", + "fg": [2937, 2936, 2937, 2936], + "bg": 659, + "rotates": true + }, { "id": "t_floor", "bg": 661, @@ -43817,6 +43847,11 @@ "fg": 2002, "bg": 661 }, + { + "id": "t_mdoor_lab_frame", + "fg": 2002, + "bg": 659 + }, { "id": "t_rdoor_b", "fg": 2103, @@ -43901,6 +43936,12 @@ "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], + "fg": 2003, + "bg": 659, + "rotates": true + }, { "id": "t_door_c_peep", "fg": 2006, @@ -43913,6 +43954,12 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_lab_c", + "fg": [2906, 2920, 2906, 2920], + "bg": 659, + "rotates": true + }, { "id": "t_column", "fg": 1974, @@ -48943,7 +48990,7 @@ ] }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 1997, "rotates": false }, @@ -49013,6 +49060,12 @@ "bg": 661, "rotates": false }, + { + "id": "t_gates_control_concrete_lab", + "fg": 2034, + "bg": 659, + "rotates": false + }, { "id": "t_monkey_bars", "fg": 2065, diff --git a/gfx/ChestHole32Tileset_iso/tile_config.json b/gfx/ChestHole32Tileset_iso/tile_config.json index 541664cb83721..ff8de334723cf 100644 --- a/gfx/ChestHole32Tileset_iso/tile_config.json +++ b/gfx/ChestHole32Tileset_iso/tile_config.json @@ -10476,7 +10476,7 @@ }, { "fg": 2034, - "id": "t_gates_control_concrete", + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab" ], "rotates": false }, { @@ -13530,7 +13530,7 @@ { "bg": 632, "fg": 2976, - "id": "t_gates_control_metal", + "id": [ "t_gates_control_metal", "t_gates_control_metal_lab" ], "rotates": false }, { @@ -18637,7 +18637,7 @@ { "bg": 660, "fg": 2035, - "id": ["t_gates_mech_control", "t_gates_control_brick"], + "id": ["t_gates_mech_control", "t_gates_control_brick", "t_gates_mech_control_lab", "t_gates_control_brick_lab" ], "rotates": false }, { @@ -18998,19 +18998,31 @@ { "bg": [ 5997, 5998 ], "fg": [ 5995, 5996 ], - "id": "t_door_frame", + "id": [ "t_door_frame", "t_door_lab_frame" ], "rotates": true }, { "bg": [ 5997, 5998 ], "fg": [ 2004, 4563 ], - "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o"], + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o" ], + "rotates": true + }, + { + "bg": [ 5843, 5844 ], + "fg": [ 2004, 4563 ], + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], "rotates": true }, { "bg": [ 5997, 5998, 5997, 5998 ], "fg": [ 2937, 2936, 2937, 2936 ], - "id": [ "t_door_o", "t_door_o_peep", "t_door_makeshift_o", "t_rdoor_o" ], + "id": [ "t_door_o", "t_door_o_peep", "t_door_makeshift_o", "t_rdoor_o", "t_door_lab_o" ], + "rotates": true + }, + { + "bg": [ 5843, 5844, 5843, 5844 ], + "fg": [ 2937, 2936, 2937, 2936 ], + "id": "t_door_lab_o", "rotates": true }, { @@ -19028,7 +19040,7 @@ { "bg": [ 5843, 5844, 5843, 5844 ], "fg": [ 2001, 2002, 2001, 2002 ], - "id": "t_mdoor_frame", + "id": [ "t_mdoor_frame", "t_mdoor_lab_frame" ], "multitile": true }, { @@ -19051,7 +19063,7 @@ ], "bg": 661, "fg": [ 2906, 2920, 2906, 2920 ], - "id": [ "t_door_locked_alarm", "t_door_locked_interior", "t_door_locked_peep", "t_door_locked", "t_door_c", "t_door_c_peep" ], + "id": [ "t_door_locked_alarm", "t_door_locked_interior", "t_door_locked_peep", "t_door_locked", "t_door_c", "t_door_c_peep", "t_door_lab_c" ], "multitile": true, "rotates": true }, @@ -19125,7 +19137,7 @@ { "bg": [ 5997, 5998 ], "fg": [ 2003, 4590 ], - "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_reinforced_glass_shutter", "t_reinforced_door_glass_c"], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_door_glass_lab_c", "t_door_glass_frosted_lab_c", "t_reinforced_glass_shutter", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c" ], "rotates": true }, { @@ -20237,7 +20249,7 @@ { "bg": [ 5997, 5998 ], "fg": [ 5819, 5820 ], - "id": [ "t_door_b", "t_door_b_peep" ], + "id": [ "t_door_b", "t_door_b_peep", "t_door_lab_b" ], "rotates": true }, { @@ -24019,7 +24031,7 @@ ], "fg": [ 5989, 5990, 5989, 5990], "bg": 659, - "id": [ "t_door_metal_c", "t_door_metal_pickable", "t_door_metal_c_peep" ], + "id": [ "t_door_metal_c", "t_door_metal_lab_c", "t_door_metal_pickable", "t_door_metal_c_peep" ], "multitile": true, "rotates": true }, @@ -24043,7 +24055,7 @@ ], "bg": [ 5843, 5844, 5843, 5844 ], "fg": [ 5991, 5992, 5991, 5992] , - "id": [ "t_door_metal_o", "t_door_metal_o_peep" ], + "id": [ "t_door_metal_o", "t_door_metal_o_peep", "t_door_metal_lab_o" ], "multitile": true, "rotates": true }, diff --git a/gfx/ChestHoleTileset/tile_config.json b/gfx/ChestHoleTileset/tile_config.json index 9bceea42ad165..20e49be7e7587 100644 --- a/gfx/ChestHoleTileset/tile_config.json +++ b/gfx/ChestHoleTileset/tile_config.json @@ -21752,6 +21752,12 @@ "bg": 661, "rotates": false }, + { + "id": ["t_gates_control_metal_lab", "t_gates_control_brick_lab"], + "fg": 2976, + "bg": 659, + "rotates": false + }, { "id": "t_conveyor", "fg": 2977, @@ -23430,7 +23436,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 3874, "rotates": false }, @@ -23440,7 +23446,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": [3877, 3876, 3877, 3876], "bg": 659, "rotates": true @@ -23462,12 +23468,12 @@ "rotates": false }, { - "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c"], + "id": ["t_reinforced_glass_shutter", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c" ], "fg": 3881, "rotates": false }, { - "id": ["t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o"], + "id": ["t_reinforced_glass_shutter_open", "t_reinforced_door_glass_o", "t_reinfoced_door_glass_lab_o" ], "fg": 3882, "rotates": false }, @@ -43109,6 +43115,12 @@ "bg": 660, "rotates": false }, + { + "id": "t_gates_mech_control_lab", + "fg": 2035, + "bg": 659, + "rotates": false + }, { "id": "t_radio_tower", "fg": 2096, @@ -43794,24 +43806,48 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_frame_lab", + "fg": 2002, + "bg": 659, + "rotates": true + }, { "id": [ "t_door_glass_o" ], "fg": 2004, "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_o" ], + "fg": 2004, + "bg": 659, + "rotates": true + }, { "id": [ "t_door_glass_frosted_o" ], "fg": 2004, "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_frosted_lab_o" ], + "fg": 2004, + "bg": 659, + "rotates": true + }, { "id": "t_door_o", "fg": [2937, 2936, 2937, 2936], "bg": 661, "rotates": true }, + { + "id": "t_door_lab_o", + "fg": [2937, 2936, 2937, 2936], + "bg": 659, + "rotates": true + }, { "id": "t_floor", "bg": 661, @@ -43822,6 +43858,11 @@ "fg": 2002, "bg": 661 }, + { + "id": "t_mdoor_lab_frame", + "fg": 2002, + "bg": 659 + }, { "id": "t_rdoor_b", "fg": 2103, @@ -43906,6 +43947,12 @@ "bg": 661, "rotates": true }, + { + "id": [ "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], + "fg": 2003, + "bg": 659, + "rotates": true + }, { "id": "t_door_c_peep", "fg": 2006, @@ -43918,6 +43965,12 @@ "bg": 661, "rotates": true }, + { + "id": "t_door_lab_c", + "fg": [2906, 2920, 2906, 2920], + "bg": 659, + "rotates": true + }, { "id": "t_column", "fg": 1974, @@ -48948,7 +49001,7 @@ ] }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 1997, "rotates": false }, @@ -49018,6 +49071,12 @@ "bg": 661, "rotates": false }, + { + "id": "t_gates_control_concrete_lab", + "fg": 2034, + "bg": 659, + "rotates": false + }, { "id": "t_monkey_bars", "fg": 2065, diff --git a/gfx/DeonTileset/tile_config.json b/gfx/DeonTileset/tile_config.json index 2fec5c6e712af..5bacbdd676bb9 100644 --- a/gfx/DeonTileset/tile_config.json +++ b/gfx/DeonTileset/tile_config.json @@ -329,6 +329,11 @@ "bg":1, "rotates":false }, + { + "id": [ "t_thconc_floor", "t_strconc_floor" ], + "bg": 53, + "rotates":false + }, { "id":"t_wall_metal", "fg":88, @@ -364,18 +369,36 @@ "bg":64, "rotates":false }, + { + "id":"t_door_lab_c", + "fg":66, + "bg":53, + "rotates":false + }, { "id":"t_door_b", "fg":68, "bg":64, "rotates":false }, + { + "id":"t_door_lab_b", + "fg":68, + "bg":53, + "rotates":false + }, { "id":"t_door_o", "fg":67, "bg":64, "rotates":false }, + { + "id":"t_door_lab_o", + "fg":67, + "bg":53, + "rotates":false + }, { "id":"t_door_locked_interior", "fg":69, @@ -400,6 +423,24 @@ "bg":64, "rotates":false }, + { + "id":"t_door_lab_frame", + "fg":70, + "bg":53, + "rotates":false + }, + { + "id":"t_mdoor_frame", + "fg":70, + "bg":64, + "rotates":false + }, + { + "id":"t_mdoor_lab_frame", + "fg":70, + "bg":53, + "rotates":false + }, { "id":"t_chaingate_l", "fg":94, @@ -447,6 +488,18 @@ "bg":65, "rotates":false }, + { + "id":"t_door_metal_lab_c", + "fg":72, + "bg":53, + "rotates":false + }, + { + "id":"t_door_metal_lab_o", + "fg":73, + "bg":53, + "rotates":false + }, { "id":"t_door_metal_locked", "fg":72, @@ -466,17 +519,29 @@ "rotates":false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_reinforced_door_glass_c" ], "fg":105, "bg":64, "rotates":false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_lab_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_lab_c" ], + "fg": 105, + "bg": 53, + "rotates":false + }, + { + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o" ], "fg":106, "bg":64, "rotates":false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg": 106, + "bg": 53, + "rotates":false + }, { "id":"t_portcullis", "rotates":false @@ -788,11 +853,15 @@ "rotates":false }, { - "id":"t_gates_mech_control", + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab" ], + "rotates":false + }, + { + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab" ], "rotates":false }, { - "id":"t_gates_control_concrete", + "id": [ "t_gates_control_brick", "t_gates_control_brick_lab" ], "rotates":false }, { diff --git a/gfx/HitButton_iso/tile_config.json b/gfx/HitButton_iso/tile_config.json index 48b875a7b45a2..ded3787c7c544 100644 --- a/gfx/HitButton_iso/tile_config.json +++ b/gfx/HitButton_iso/tile_config.json @@ -90,12 +90,12 @@ "fg": 18 }, { - "id": ["t_door_c", "t_door_makeshift_c", "t_door_locked", "t_door_locked_alarm", "t_door_locked_interior" ], + "id": ["t_door_c", "t_door_makeshift_c", "t_door_locked", "t_door_locked_alarm", "t_door_locked_interior", "t_door_lab_c" ], "multitile": true, "fg": [ 19, 20 ] }, { - "id": ["t_door_o", "t_door_o_peep", "t_door_curtain_o", "t_door_makeshift_o", "t_door_frame" ], + "id": ["t_door_o", "t_door_o_peep", "t_door_curtain_o", "t_door_makeshift_o", "t_door_frame", "t_door_lab_o", "t_door_lab_frame" ], "multitile": true, "fg": [ 21, 22 ] }, @@ -1937,7 +1937,7 @@ "fg": 525 }, { - "id": [ "t_door_b", "t_door_b_peep" ], + "id": [ "t_door_b", "t_door_b_peep", "t_door_lab_b" ], "multitile": true, "fg": [ 526 , 527 ] }, @@ -2063,12 +2063,12 @@ ] }, { - "id": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_pickable" ], + "id": [ "t_door_metal_c", "t_door_metal_locked", "t_door_metal_pickable", "t_door_metal_lab_c" ], "multitile": true, "fg": [ 587 , 588 ] }, { - "id": ["t_door_metal_o", "t_mdoor_frame" ], + "id": ["t_door_metal_o", "t_mdoor_frame", "t_mdoor_lab_frame", "t_door_metal_lab_o" ], "multitile": true, "fg": [ 589 , 590 ] }, @@ -2077,12 +2077,12 @@ "fg": 591 }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c", "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], "multitile": true, "fg": [ 592 , 593 ] }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o", "t_reinforced_door_glass_lab_o", "t_door_glass_lab_o", "t_door_glass_frosted_lab_o" ], "multitile": true, "fg": [ 594 , 595 ] }, @@ -2149,7 +2149,7 @@ "fg": 622 }, { - "id": ["t_gates_control_concrete", "t_gates_control_metal", "t_gates_mech_control", "t_switch_even" ], + "id": ["t_gates_control_concrete", "t_gates_control_metal", "t_gates_mech_control", "t_switch_even", "t_gates_control_concrete_lab", "t_gates_control_metal_lab", "t_gates_mech_control_lab", "t_gates_control_brick", "t_gates_control_brick_lab" ], "fg": 623 }, { diff --git a/gfx/HoderTileset/tile_config.json b/gfx/HoderTileset/tile_config.json index 5245d7d4e18fd..019d446d78757 100644 --- a/gfx/HoderTileset/tile_config.json +++ b/gfx/HoderTileset/tile_config.json @@ -154,6 +154,11 @@ "bg":86, "rotates":false }, + { + "id": [ "t_thconc_floor", "t_strconc_floor" ], + "bg": 82, + "rotates":false + }, { "id":"t_dirtmound", "bg":2, @@ -648,12 +653,12 @@ "rotates":false }, { - "id":"t_door_c", + "id": [ "t_door_c", "t_door_lab_c" ], "fg":74, "rotates":false }, { - "id":"t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg":78, "rotates":false }, @@ -663,6 +668,12 @@ "bg":11, "rotates":false }, + { + "id":"t_door_lab_o", + "fg":75, + "bg":82, + "rotates":false + }, { "id":"t_door_locked_interior", "fg":74, @@ -684,6 +695,24 @@ "bg":11, "rotates":false }, + { + "id":"t_mdoor_frame", + "fg":76, + "bg":11, + "rotates":false + }, + { + "id":"t_door_lab_frame", + "fg":76, + "bg":82, + "rotates":false + }, + { + "id":"t_mdoor_lab_frame", + "fg":76, + "bg":82, + "rotates":false + }, { "id":"t_chaingate_l", "fg":374, @@ -720,15 +749,15 @@ "rotates":false }, { - "id":"t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg":350, "rotates":false }, { - "id":"t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg":351, - "bg":82, - "rotates":false + "bg":82, + "rotates":false }, { "id":"t_door_metal_locked", @@ -754,16 +783,22 @@ "rotates":false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c", "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], "fg":358, "rotates":false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o" ], "fg":359, "bg":11, "rotates":false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg":359, + "bg":82, + "rotates":false + }, { "id":"t_portcullis", "rotates":false @@ -1359,7 +1394,7 @@ "rotates":false }, { - "id":"t_gates_mech_control", + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab", "t_gates_control_concrete_lab", "t_gates_control_brick_lab", "t_gates_control_metal_lab" ], "fg":447, "bg":82, "rotates":false diff --git a/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png b/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png index 239d26a6e4412..46275a79f3e4d 100644 Binary files a/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png and b/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png differ diff --git a/gfx/MSX++DeadPeopleEdition/15_tiles-connected_variants_32x32_27565-32764.png b/gfx/MSX++DeadPeopleEdition/15_tiles-connected_variants_32x32_27565-32764.png index 8d585e66862a1..fba70da58240e 100644 Binary files a/gfx/MSX++DeadPeopleEdition/15_tiles-connected_variants_32x32_27565-32764.png and b/gfx/MSX++DeadPeopleEdition/15_tiles-connected_variants_32x32_27565-32764.png differ diff --git a/gfx/MSX++DeadPeopleEdition/17_top_hats_32x32.png b/gfx/MSX++DeadPeopleEdition/17_top_hats_32x32.png index 3ef52e6cc6e45..ac4298cc5a37e 100644 Binary files a/gfx/MSX++DeadPeopleEdition/17_top_hats_32x32.png and b/gfx/MSX++DeadPeopleEdition/17_top_hats_32x32.png differ diff --git a/gfx/MSX++DeadPeopleEdition/1_tiles_32x32_0-5199.png b/gfx/MSX++DeadPeopleEdition/1_tiles_32x32_0-5199.png index 398957c15387f..2d57276d3f230 100644 Binary files a/gfx/MSX++DeadPeopleEdition/1_tiles_32x32_0-5199.png and b/gfx/MSX++DeadPeopleEdition/1_tiles_32x32_0-5199.png differ diff --git a/gfx/MSX++DeadPeopleEdition/2_expan_32x32_5200-5391.png b/gfx/MSX++DeadPeopleEdition/2_expan_32x32_5200-5391.png index bc67378637943..5eaf705fedb9e 100644 Binary files a/gfx/MSX++DeadPeopleEdition/2_expan_32x32_5200-5391.png and b/gfx/MSX++DeadPeopleEdition/2_expan_32x32_5200-5391.png differ diff --git a/gfx/MSX++DeadPeopleEdition/3_tree_64x80_5392-5471.png b/gfx/MSX++DeadPeopleEdition/3_tree_64x80_5392-5471.png index f7ab1f897af65..1c91a2774e6f7 100644 Binary files a/gfx/MSX++DeadPeopleEdition/3_tree_64x80_5392-5471.png and b/gfx/MSX++DeadPeopleEdition/3_tree_64x80_5392-5471.png differ diff --git a/gfx/MSX++DeadPeopleEdition/5_tiles_character_customization_32x32_9568-11567.png b/gfx/MSX++DeadPeopleEdition/5_tiles_character_customization_32x32_9568-11567.png index 688efe34f8498..6ab34459db957 100644 Binary files a/gfx/MSX++DeadPeopleEdition/5_tiles_character_customization_32x32_9568-11567.png and b/gfx/MSX++DeadPeopleEdition/5_tiles_character_customization_32x32_9568-11567.png differ diff --git a/gfx/MSX++DeadPeopleEdition/8_tiles-monster-variants_32x32_11652-16851.png b/gfx/MSX++DeadPeopleEdition/8_tiles-monster-variants_32x32_11652-16851.png index 5cdee7d285057..6640095926d9d 100644 Binary files a/gfx/MSX++DeadPeopleEdition/8_tiles-monster-variants_32x32_11652-16851.png and b/gfx/MSX++DeadPeopleEdition/8_tiles-monster-variants_32x32_11652-16851.png differ diff --git a/gfx/MSX++DeadPeopleEdition/9_tiles-connected_32x32_16852-22051.png b/gfx/MSX++DeadPeopleEdition/9_tiles-connected_32x32_16852-22051.png index b7e8708570fd2..03067ea58ee69 100644 Binary files a/gfx/MSX++DeadPeopleEdition/9_tiles-connected_32x32_16852-22051.png and b/gfx/MSX++DeadPeopleEdition/9_tiles-connected_32x32_16852-22051.png differ diff --git a/gfx/MSX++DeadPeopleEdition/tile_config.json b/gfx/MSX++DeadPeopleEdition/tile_config.json index f6146a9de8543..4607abbda3dab 100644 --- a/gfx/MSX++DeadPeopleEdition/tile_config.json +++ b/gfx/MSX++DeadPeopleEdition/tile_config.json @@ -391,7 +391,7 @@ "rotates": false }, { - "id": "44magnum", + "id": ["44magnum", "460_rowland", "460_fmj", "reloaded_460_fmj", "reloaded_460_rowland"], "fg": 49, "bg": 957, "rotates": false @@ -2034,15 +2034,6 @@ "id": "lsurvivor_armor", "fg": 265 }, - { - "id": "armor_nomad", - "fg": 266 - }, - { - "id": "overlay_worn_armor_nomad", - "fg": 266, - "rotates": false - }, { "id": "armor_plate", "fg": 267, @@ -2053,12 +2044,6 @@ "fg": 267, "rotates": false }, - { - "id": "armor_samurai", - "fg": 268, - "bg": 957, - "rotates": false - }, { "id": "hood_wsurvivor", "fg": 268 @@ -3188,11 +3173,6 @@ "id": "helmet_xlsurvivor", "fg": 426 }, - { - "id": "helmet_kabuto", - "fg": 427, - "bg": 957 - }, { "id": "helmet_larmor", "fg": 427 @@ -4990,16 +4970,7 @@ "id": "overlay_worn_helmet_motor", "fg": 645, "rotates": false - }, - { - "id": "overlay_worn_helmet_nomad", - "fg": 646, - "rotates": false - }, - { - "id": "helmet_nomad", - "fg": 646 - }, + }, { "id": "overlay_worn_helmet_plate", "fg": 647, @@ -7465,7 +7436,7 @@ "rotates": false }, { - "id": "45lc_casing", + "id": ["45lc_casing", "460_casing"], "fg": 1612, "bg": 957, "rotates": false @@ -9755,7 +9726,7 @@ "rotates": false }, { - "id": "sausage", + "id": ["sausage", "mannwurst"], "fg": 1325, "bg": 957, "rotates": false @@ -10029,7 +10000,7 @@ "rotates": false }, { - "id": ["suppressor", "riv_suppressor"], + "id": ["suppressor", "riv_suppressor", "mp5sd_suppressor"], "fg": 2257, "bg": 957, "rotates": false @@ -10434,7 +10405,7 @@ "rotates": false }, { - "id": "wheel_motorbike", + "id": ["wheel_motorbike", "wheel_bicycle_or", "wheel_motorbike_or", "wheel_slick", "wheel_wide_or"], "fg": 4187, "bg": 957, "rotates": false @@ -14108,6 +14079,12 @@ "fg": 1798, "bg": 962, "rotates": false + }, + { + "id": "manual_sojutsu", + "fg": 1798, + "bg": 962, + "rotates": false }, { "id": "manual_pistol", @@ -14996,7 +14973,7 @@ { "id": "mon_ant_larva", "fg": 2313, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15092,7 +15069,7 @@ { "id": "mon_centipede_giant", "fg": 2369, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15152,13 +15129,13 @@ { "id": "mon_creeper_hub", "fg": 2388, - "bg": 967, + "bg": 0, "rotates": false }, { "id": "mon_creeper_vine", "fg": 2390, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15260,13 +15237,13 @@ { "id": "mon_frog_giant", "fg": 2465, - "bg": 967, + "bg": 5237, "rotates": false }, { "id": "mon_fungal_fighter", "fg": 2473, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15308,13 +15285,13 @@ { "id": "mon_generator", "fg": 2490, - "bg": 967, + "bg": 0, "rotates": false }, { "id": "mon_giant_crayfish", "fg": 2493, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15338,7 +15315,7 @@ { "id": "mon_halfworm", "fg": 2501, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15416,7 +15393,7 @@ { "id": ["mon_laserturret", "mon_advturret_laser"], "fg": 2526, - "bg": 967, + "bg": 5239, "rotates": false }, { @@ -15464,7 +15441,7 @@ { "id": "mon_rabbit", "fg": 2569, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -15482,7 +15459,7 @@ { "id": "mon_rattlesnake", "fg": 2571, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -15496,16 +15473,10 @@ "fg": 2580, "rotates": false }, - { - "id": "mon_sewer_rat", - "fg": 2581, - "bg": 967, - "rotates": false - }, { "id": "mon_sewer_snake", "fg": 2582, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -15535,13 +15506,13 @@ { "id": "mon_sludge_crawler", "fg": 2595, - "bg": 967, + "bg": 0, "rotates": false }, { "id": "mon_slug_giant", "fg": 2598, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -15610,16 +15581,10 @@ "bg": 967, "rotates": false }, - { - "id": "mon_squirrel", - "fg": 2625, - "bg": 967, - "rotates": false - }, { "id": "mon_squirrel_red", "fg": 2625, - "bg": 967, + "bg": 5240, "rotates": false }, { @@ -15655,7 +15620,7 @@ { "id": "mon_triffid_young", "fg": 2640, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -15673,13 +15638,13 @@ { "id": ["mon_turret", "mon_turret_9mm"], "fg": 2643, - "bg": 967, + "bg": 5239, "rotates": false }, { "id": ["mon_turret_rifle", "mon_milturret_556"], "fg": 2644, - "bg": 967, + "bg": 5239, "rotates": false }, { @@ -16313,7 +16278,7 @@ { "id": "mon_zombie_sproglodyte", "fg": 2759, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -16325,7 +16290,7 @@ { "id": "mon_zombie_creepy", "fg": 2698, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -16343,7 +16308,7 @@ { "id": "mon_rattlesnake_giant", "fg": 2572, - "bg": 967, + "bg": 5236, "rotates": false }, { @@ -17941,11 +17906,21 @@ "fg": 3183, "bg": 985 }, + { + "id": "t_reinforced_door_glass_lab_o", + "fg": 3183, + "bg": 5010 + }, { "id": "t_reinforced_door_glass_c", "fg": 3182, "bg": 985 }, + { + "id": "t_reinforced_door_glass_lab_c", + "fg": 3182, + "bg": 5010 + }, { "id": "t_scrap_wall", "fg": 3221, @@ -18200,18 +18175,36 @@ "bg": 987, "rotates": false }, + { + "id": "t_door_lab_frame", + "fg": 3035, + "bg": 5010, + "rotates": false + }, { "id": "t_door_glass_o", "fg": 3037, "bg": 987, "rotates": false }, + { + "id": "t_door_glass_lab_o", + "fg": 3037, + "bg": 5010, + "rotates": false + }, { "id": "t_door_o", "fg": 3044, "bg": 987, "rotates": false }, + { + "id": "t_door_lab_o", + "fg": 3044, + "bg": 5010, + "rotates": false + }, { "id": "t_floor", "bg": 987, @@ -18223,6 +18216,12 @@ "bg": 987, "rotates": false }, + { + "id": "t_mdoor_frame", + "fg": 3120, + "bg": 5010, + "rotates": false + }, { "id": "t_rdoor_b", "fg": 3175, @@ -19256,6 +19255,12 @@ "bg": 993, "rotates": false }, + { + "id": "t_door_metal_lab_o", + "fg": 3042, + "bg": 5010, + "rotates": false + }, { "id": "t_door_metal_o_peep", "fg": 3042, @@ -19268,6 +19273,12 @@ "bg": 993, "rotates": false }, + { + "id": "t_gates_mech_control_lab", + "fg": 3071, + "bg": 5010, + "rotates": false + }, { "id": "t_radio_tower", "fg": 3166, @@ -20235,8 +20246,8 @@ "additional_tiles": [ { "id": "broken", - "fg": 3987, - "bg": 4134, + "fg": 23516, + "bg": 1005, "rotates": true } ] @@ -20290,7 +20301,7 @@ ] }, { - "id": ["vp_floodlight", "vp_xfloodlight"], + "id": ["vp_floodlight", "vp_xfloodlight", "vp_directed_floodlight"], "fg": 4021, "bg": 1005, "rotates": true, @@ -23360,10 +23371,6 @@ "id": "sweet_sausage", "fg": 1216 }, - { - "id": "bologna", - "fg": 1218 - }, { "id": "inj_vitb", "fg": 1224 @@ -23538,14 +23545,6 @@ "id": "frozen_burrito", "fg": 1252 }, - { - "id": "hfleshbologna", - "fg": 1253 - }, - { - "id": ["mannwurstgravy", "mannwurst_raw"], - "fg": 1253 - }, { "id": "mycus_fruit", "fg": 1254 @@ -26464,17 +26463,17 @@ "rotates": false }, { - "id": "floodlight", + "id": ["floodlight", "directed_floodlight"], "fg": 1739, "rotates": false }, { - "id": "headlight_reinforced", + "id": ["headlight_reinforced", "wide_headlight_reinforced", "car_wide_headlight"], "fg": 1739, "rotates": false }, { - "id": ["car_headlight", "vp_headlight", "vp_headlight_reinforced"], + "id": ["car_headlight", "vp_headlight", "vp_headlight_reinforced", "vp_wide_headlight_reinforced", "vp_wide_headlight"], "fg": 1739 }, { @@ -28245,6 +28244,11 @@ "id": "null", "fg": 0, "rotates": false + }, + { + "id": "fake_firestarter", + "fg": 0, + "rotates": false }, { "id": "molded_shovel", @@ -28357,8 +28361,9 @@ "rotates": false }, { - "id": "f_piano", + "id": "mon_squirrel", "fg": 4368, + "bg": 5240, "rotates": false }, { @@ -29935,7 +29940,7 @@ { "id": "mon_plague_nymph", "fg": 4626, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -29947,7 +29952,7 @@ { "id": "mon_triffid_sprig", "fg": 4628, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -30835,7 +30840,7 @@ { "id": "mon_locust_nymph", "fg": 4797, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -31308,7 +31313,7 @@ { "id": "mon_weasel", "fg": 2375, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -31338,7 +31343,7 @@ { "id": "mon_otter", "fg": 4879, - "bg": 967, + "bg": 5239, "rotates": false }, { @@ -31854,7 +31859,7 @@ { "id": ["mon_turret_bmg", "mon_milturret_50bmg"], "fg": 4953, - "bg": 967, + "bg": 5239, "rotates": false }, { @@ -31925,12 +31930,24 @@ "fg": 4965, "bg": 993, "rotates": false + }, + { + "id": "t_door_glass_frosted_lab_c", + "fg": 4965, + "bg": 5010, + "rotates": false }, { "id": "t_door_glass_frosted_o", "fg": 4966, "bg": 993, "rotates": false + }, + { + "id": "t_door_glass_frosted_lab_o", + "fg": 4966, + "bg": 5010, + "rotates": false }, { "id": "panacea", @@ -33405,12 +33422,6 @@ "id": "maid_point", "bg": 978, "rotates": false - }, - { - "id": "atlatl", - "fg": 1986, - "bg": 967, - "rotates": false }, { "id": ["bio_shock_absorber", "pseuso_bio_picklock", "null", "mon_null", "tr_null", "tr_temple_toggle", "tr_glow", "tr_hum", "tr_shadow", "tr_snake", "fd_null", "mon_null", "fd_null", "tr_null", "null", "vp_null", "tr_temple_toggle", "tr_glow", "tr_hum", "tr_shadow", "tr_snake", "TANK", "acid_spit", "candle_barrier_aftermath", "apparatus", "clairvoyance_plus_rod", "fire", "gloople_act", "gray_act", "money", "muscle", "oozle_act", "oxyacetylene", "pseuso_bio_picklock", "software", "toolset", "upstest", "vp_plating_acidchitin", "vp_plating_bone", "vp_plating_chitin", "vp_plating_diamond", "vp_plating_hard", "vp_plating_military", "vp_plating_spiked", "vp_plating_steel", "vp_plating_superalloy", "vp_plating_wood", "vp_gloople_plate", "vp_gray_plate", "vp_oozle_plate", "bog_iron_spot"], @@ -33640,7 +33651,7 @@ "fg": 2030 }, { - "id": "hk_mp5", + "id": ["hk_mp5", "hk_mp5sd"], "fg": 2031, "rotates": false }, @@ -34620,7 +34631,7 @@ "rotates": false }, { - "id": "overlay_wielded_hk_mp5", + "id": ["overlay_wielded_hk_mp5", "overlay_wielded_hk_mp5sd"], "fg": 2110, "rotates": false }, @@ -36448,7 +36459,7 @@ { "id": "mon_ant_larva_pk", "fg": 2314, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -36484,6 +36495,7 @@ { "id": "mon_ant_soldier_pk_weak", "fg": 2322, + "bg": 967, "rotates": false }, { @@ -36572,7 +36584,7 @@ { "id": "mon_bee_larvae", "fg": 2342, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -36620,7 +36632,7 @@ { "id": "mon_blob_small", "fg": 2353, - "bg": 967, + "bg": 22476, "rotates": false }, { @@ -36668,7 +36680,7 @@ { "id": "mon_centipede", "fg": 2368, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -36756,13 +36768,9 @@ { "id": "mon_dermatik_larva", "fg": 2404, - "bg": 967, + "bg": 0, "rotates": false }, - { - "id": "mon_wasp_larvae", - "fg": 2404 - }, { "id": "mon_dionaea", "fg": 2406, @@ -37042,6 +37050,7 @@ { "id": "mon_zombie_child_fungus", "fg": 4233, + "bg": 967, "rotates": false }, { @@ -37052,21 +37061,25 @@ { "id": "mon_ant_acid_larva", "fg": 4235, + "bg": 0, "rotates": false }, { "id": "mon_ant_acid", "fg": 4236, + "bg": 967, "rotates": false }, { "id": "mon_ant_acid_queen", "fg": 4237, + "bg": 967, "rotates": false }, { "id": "mon_ant_acid_soldier", "fg": 4238, + "bg": 967, "rotates": false }, { @@ -37122,6 +37135,7 @@ { "id": "mon_frog", "fg": 2464, + "bg": 5238, "rotates": false }, { @@ -37187,7 +37201,7 @@ { "id": "mon_gator", "fg": 2488, - "bg": 967, + "bg": 5236, "rotates": false }, { @@ -37199,7 +37213,7 @@ { "id": "mon_giant_cockroach_nymph", "fg": 2492, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -37417,7 +37431,7 @@ { "id": "mon_opossum", "fg": 2558, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -37493,6 +37507,7 @@ { "id": "mon_black_rat", "fg": 2581, + "bg": 967, "rotates": false }, { @@ -37514,7 +37529,7 @@ { "id": "mon_shadow_snake", "fg": 2584, - "bg": 967, + "bg": 5235, "rotates": false }, { @@ -37688,15 +37703,16 @@ "id": "!mon_turret_bmg", "fg": 2644 }, - { + { "id": "mon_turret_shockcannon", "fg": 2646, + "bg": 5239, "rotates": false }, { "id": "bot_turret_shockcannon", "fg": 2646, - "bg": 967, + "bg": 5239, "rotates": false }, { @@ -38445,6 +38461,11 @@ "fg": 3036, "rotates": false }, + { + "id": "t_door_glass_lab_c", + "fg": 3036, + "rotates": false + }, { "id": "t_door_makeshift_c", "fg": 3038, @@ -38455,6 +38476,11 @@ "fg": 3040, "rotates": true }, + { + "id": "t_door_metal_lab_c", + "fg": 3040, + "rotates": true + }, { "id": "t_door_metal_locked", "fg": 3040, @@ -40216,21 +40242,6 @@ "fg": 3640, "rotates": false }, - { - "id": "overlay_wielded_battleaxe", - "fg": 3640, - "rotates": false - }, - { - "id": "overlay_wielded_battleaxe_inferior", - "fg": 3640, - "rotates": false - }, - { - "id": "overlay_wielded_battleaxe_fake", - "fg": 3640, - "rotates": false - }, { "id": "overlay_wielded_banjo", "fg": 3641, @@ -41948,7 +41959,7 @@ }, { "id": "tr_ledge", - "fg": 3929 + "fg": 0 }, { "id": "tr_rollmat", @@ -44136,7 +44147,7 @@ "additional_tiles": [ { "id": "broken", - "fg": 3987, + "fg": 23518, "bg": 4146 } ] @@ -44149,7 +44160,7 @@ "additional_tiles": [ { "id": "broken", - "fg": 3987, + "fg": 23517, "bg": 4147 } ] @@ -44727,6 +44738,11 @@ "fg": 4017, "rotates": false }, + { + "id": "t_door_lab_c", + "fg": 4017, + "rotates": false + }, { "id": "t_door_locked", "fg": 4017, @@ -44747,6 +44763,11 @@ "fg": 4018, "rotates": false }, + { + "id": "t_door_lab_b", + "fg": 4018, + "rotates": false + }, { "id": "vp_flamethrower1", "fg": 4020, @@ -46393,7 +46414,7 @@ "rotates": true }, { - "id": "vp_wheel_motorbike", + "id": ["vp_wheel_motorbike", "vp_wheel_bicycle_or", "vp_wheel_motorbike_or", "vp_wheel_slick", "vp_wheel_wide_or"], "fg": 4187, "rotates": true }, @@ -47204,6 +47225,12 @@ "id": "corpse_mon_treent_green", "fg": 5422, "rotates": false + }, + { + "id": "mon_flying_polyp", + "fg": 5423, + "bg": 0, + "rotates": false }, { "id": "mon_nakedmolerat_giant", @@ -47248,6 +47275,31 @@ { "id": "mon_albino_penguin", "fg": 5432, "rotates": false }, { "id": "corpse_mon_albino_penguin", "fg": 5433, "rotates": false }, { "id": "mon_boomer_huge", "fg": 5434, "rotates": false }, + { "id": "mon_amigara_horror", "fg": 5435, "rotates": false }, + { "id": "corpse_mon_amigara_horror", "fg": 5436, "rotates": false }, + { "id": "mon_darkman", "fg": 5437, "rotates": false }, + { + "id": "mon_flesh_angel", + "fg": 5438, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_flesh_angel", + "fg": 5439, + "bg": 0, + "rotates": false + }, + { + "id": "mon_yugg", + "fg": 5440, + "rotates": false + }, + { + "id": "corpse_mon_yugg", + "fg": 5441, + "rotates": false + }, { "id": "mon_oni", "fg": 5449, @@ -47266,12 +47318,13 @@ { "id": "mon_turret_searchlight", "fg": 5456, + "bg": 0, "rotates": false }, { "id": "mon_blob_brain", "fg": 5457, - "bg": 967, + "bg": 0, "rotates": false }, { @@ -47280,11 +47333,6 @@ "rotates": false }, { - "id": "mon_yugg", - "fg": 5462, - "rotates": false - }, - { "id": "mon_kappabot", "fg": 5442, "rotates": false @@ -48095,7 +48143,65 @@ { "id": "overlay_mutation_FLARM_BLACKOUT", "fg": 10435, "rotates": false }, { "id": "overlay_mutation_FLLEG_BARBEDWIRE", "fg": 10436, "rotates": false }, { "id": "overlay_mutation_FRARM_FLAME", "fg": 10437, "rotates": false }, - { "id": "overlay_mutation_FRLEG_FLOWER", "fg": 10438, "rotates": false } + { "id": "overlay_mutation_FRLEG_FLOWER", "fg": 10438, "rotates": false }, + + { "id": "overlay_male_mutation_bio_ads", "fg": 10480, "rotates": false }, + { "id": "overlay_female_mutation_bio_ads", "fg": 10481, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_ads", "fg": 10482, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_ads", "fg": 10483, "rotates": false }, + + { "id": "overlay_male_mutation_bio_night_vision", "fg": 10484, "rotates": false }, + { "id": "overlay_female_mutation_bio_night_vision", "fg": 10485, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_night_vision", "fg": 10486, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_night_vision", "fg": 10487, "rotates": false }, + + { "id": "overlay_male_mutation_bio_infrared", "fg": 10488, "rotates": false }, + { "id": "overlay_female_mutation_bio_infrared", "fg": 10489, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_infrared", "fg": 10490, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_infrared", "fg": 10491, "rotates": false }, + + { "id": "overlay_male_mutation_bio_ods", "fg": 10492, "rotates": false }, + { "id": "overlay_female_mutation_bio_ods", "fg": 10493, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_ods", "fg": 10494, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_ods", "fg": 10495, "rotates": false }, + + { "id": "overlay_male_mutation_bio_adrenaline", "fg": 10496, "rotates": false }, + { "id": "overlay_female_mutation_bio_adrenaline", "fg": 10497, "rotates": false }, + { "id": "overlay_male_mutation_bio_advreactor", "fg": 10498, "rotates": false }, + { "id": "overlay_female_mutation_bio_advreactor", "fg": 10499, "rotates": false }, + { "id": "overlay_male_mutation_bio_evap", "fg": 10500, "rotates": false }, + { "id": "overlay_female_mutation_bio_evap", "fg": 10501, "rotates": false }, + { "id": "overlay_male_mutation_bio_purifier", "fg": 10502, "rotates": false }, + { "id": "overlay_female_mutation_bio_purifier", "fg": 10503, "rotates": false }, + { "id": "overlay_male_mutation_bio_alarm", "fg": 10504, "rotates": false }, + { "id": "overlay_female_mutation_bio_alarm", "fg": 10505, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_alarm", "fg": 10506, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_alarm", "fg": 10507, "rotates": false }, + { "id": "overlay_male_mutation_bio_blindfold", "fg": 10508, "rotates": false }, + { "id": "overlay_female_mutation_bio_blindfold", "fg": 10509, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_blindfold", "fg": 10510, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_blindfold", "fg": 10511, "rotates": false }, + { "id": "overlay_male_mutation_bio_sunglasses", "fg": 10512, "rotates": false }, + { "id": "overlay_female_mutation_bio_sunglasses", "fg": 10513, "rotates": false }, + { "id": "overlay_male_mutation_bio_armor_arms", "fg": 10514, "rotates": false }, + { "id": "overlay_female_mutation_bio_armor_arms", "fg": 10515, "rotates": false }, + { "id": "overlay_male_mutation_bio_night", "fg": 10516, "rotates": false }, + { "id": "overlay_female_mutation_bio_night", "fg": 10517, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_night", "fg": 10518, "rotates": false }, + { "id": "overlay_female_mutation_active_bio_night", "fg": 10519, "rotates": false }, + { "id": "overlay_male_mutation_bio_surgical_razor", "fg": 10520, "rotates": false }, + { "id": "overlay_female_mutation_bio_surgical_razor", "fg": 10521, "rotates": false }, + { "id": "overlay_male_mutation_bio_claws", "fg": 10521, "rotates": false }, + { "id": "overlay_female_mutation_bio_claws", "fg": 10522, "rotates": false }, + { "id": "overlay_male_mutation_bio_blood_anal", "fg": 10523, "rotates": false }, + { "id": "overlay_female_mutation_bio_blood_anal", "fg": 10524, "rotates": false }, + { "id": "overlay_male_mutation_bio_blood_filter", "fg": 10525, "rotates": false }, + { "id": "overlay_female_mutation_bio_blood_filter", "fg": 10526, "rotates": false }, + { "id": "overlay_male_mutation_bio_cable", "fg": 10527, "rotates": false }, + { "id": "overlay_female_mutation_bio_cable", "fg": 10528, "rotates": false }, + { "id": "overlay_male_mutation_active_bio_cable", "fg": 10529, "rotates": false }, + { "id": "overlay_female_mutation_bio_active_cable", "fg": 10530, "rotates": false } + ] }, { @@ -48849,7 +48955,48 @@ ], "bg": 967, "rotates": false + }, + { + "id": "mon_shadow", + "fg": [ + { "weight":1, "sprite":2583}, + { "weight":1, "sprite":12100}, + { "weight":1, "sprite":12101}, + { "weight":1, "sprite":12102}, + { "weight":1, "sprite":12103}, + { "weight":1, "sprite":12104}, + { "weight":1, "sprite":12105}, + { "weight":1, "sprite":12106}, + { "weight":1, "sprite":12107}, + { "weight":1, "sprite":12108}, + { "weight":1, "sprite":12109}, + { "weight":1, "sprite":12110}, + { "weight":1, "sprite":12111}, + { "weight":1, "sprite":12112}, + { "weight":1, "sprite":12113}, + { "weight":1, "sprite":12114}, + { "weight":1, "sprite":12115}, + { "weight":1, "sprite":12116}, + { "weight":1, "sprite":12117}, + { "weight":1, "sprite":12118}, + { "weight":1, "sprite":12119}, + { "weight":1, "sprite":12120}, + { "weight":1, "sprite":12121}, + { "weight":1, "sprite":12122}, + { "weight":1, "sprite":12123}, + { "weight":1, "sprite":12124}, + { "weight":1, "sprite":12125}, + { "weight":1, "sprite":12126}, + { "weight":1, "sprite":12127}, + { "weight":1, "sprite":12128}, + { "weight":1, "sprite":12129}, + { "weight":1, "sprite":12130}, + { "weight":1, "sprite":12131} + ], + "bg": 0, + "rotates": false } + ] }, { @@ -52273,6 +52420,269 @@ { "id": "unconnected", "fg": 17571 + } + ], + "rotates": false + }, + { + "id": "t_trunk", + "fg": 17582, + "bg": 1012, + "multitile": true, + "additional_tiles": [ + { + "id": "corner", + "fg": [17583, 17584, 17585, 17586], + "bg": 1012 + }, + { + "id": "t_connection", + "fg": [17584, 17585, 17584, 17585], + "bg": 1012 + }, + { + "id": "edge", + "fg": [17581, 17582], + "bg": 1012 + }, + { + "id": "end_piece", + "fg": [17583, 17584, 17585, 17586], + "bg": 1012 + }, + { + "id": "unconnected", + "fg": [ + { "weight":1, "sprite":17587}, + { "weight":1, "sprite":27676}, + { "weight":1, "sprite":27677}, + { "weight":1, "sprite":27678}, + { "weight":1, "sprite":27679}, + { "weight":1, "sprite":27680}, + { "weight":1, "sprite":27681}, + { "weight":1, "sprite":27682}, + { "weight":1, "sprite":27683} + ], + "bg": 1012 + } + ], + "rotates": false + }, + { + "id": "t_trunk_season_winter", + "fg": 17582, + "bg": 992, + "multitile": true, + "additional_tiles": [ + { + "id": "edge", + "fg": [17581, 17582], + "bg": 992 + }, + { + "id": "end_piece", + "fg": [17583, 17584, 17585, 17586], + "bg": 992 + }, + { + "id": "unconnected", + "fg": [ + { "weight":1, "sprite":17587}, + { "weight":1, "sprite":27676}, + { "weight":1, "sprite":27677}, + { "weight":1, "sprite":27678}, + { "weight":1, "sprite":27679}, + { "weight":1, "sprite":27680}, + { "weight":1, "sprite":27681}, + { "weight":1, "sprite":27682}, + { "weight":1, "sprite":27683} + ], + "bg": 992 + } + ], + "rotates": false + }, + { + "id": "f_pillow_fort", + "fg": 17588, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 17588 + }, + { + "id": "corner", + "fg": [17589, 17590, 17591, 17592] + }, + { + "id": "t_connection", + "fg": [17593, 17594, 17595, 17596] + }, + { + "id": "edge", + "fg": [17597, 17598] + }, + { + "id": "end_piece", + "fg": [17599, 17600, 17601, 17602] + }, + { + "id": "unconnected", + "fg": 17603 + } + ], + "rotates": false + }, + { + "id": "t_junk_wall", + "fg": 17604, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 17604, + "bg": 23384 + }, + { + "id": "corner", + "fg": [17605, 17606, 17607, 17608], + "bg": 23384 + }, + { + "id": "t_connection", + "fg": [17609, 17610, 17611, 17612], + "bg": 23384 + }, + { + "id": "edge", + "fg": [17613, 17614], + "bg": 23384 + }, + { + "id": "end_piece", + "fg": [17615, 17616, 17617, 17618], + "bg": 23384 + }, + { + "id": "unconnected", + "fg": 17619, + "bg": 23384 + } + ], + "rotates": false + } + , + { + "id": "t_junk_palisade", + "fg": 17620, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 17620, + "bg": 23384 + }, + { + "id": "corner", + "fg": [17621, 17622, 17623, 17624], + "bg": 23384 + }, + { + "id": "t_connection", + "fg": [17625, 17626, 17627, 17628], + "bg": 23384 + }, + { + "id": "edge", + "fg": [17629, 17630], + "bg": 23384 + }, + { + "id": "end_piece", + "fg": [17631, 17632, 17633, 17634], + "bg": 23384 + }, + { + "id": "unconnected", + "fg": 17635, + "bg": 23384 + } + ], + "rotates": false + }, + { + "id": "t_nanofab_body", + "fg": 17636, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 17636, + "bg": 23383 + }, + { + "id": "corner", + "fg": [17637, 17638, 17639, 17640], + "bg": 23383 + }, + { + "id": "t_connection", + "fg": [17641, 17642, 17643, 17644], + "bg": 23383 + }, + { + "id": "edge", + "fg": [17645, 17646], + "bg": 23383 + }, + { + "id": "end_piece", + "fg": [17647, 17648, 17649, 17650], + "bg": 23383 + }, + { + "id": "unconnected", + "fg": 17651, + "bg": 23383 + } + ], + "rotates": false + }, + { + "id": ["t_open_air", "t_open_air_rooved"], + "fg": 17652, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 17652, + "bg": 23383 + }, + { + "id": "corner", + "fg": [17653, 17654, 17655, 17656], + "bg": 23383 + }, + { + "id": "t_connection", + "fg": [17657, 17658, 17659, 17660], + "bg": 23383 + }, + { + "id": "edge", + "fg": [17661, 17662], + "bg": 23383 + }, + { + "id": "end_piece", + "fg": [17663, 17664, 17665, 17666], + "bg": 23383 + }, + { + "id": "unconnected", + "fg": 17667, + "bg": 23383 } ], "rotates": false @@ -54589,59 +54999,67 @@ { "id": "mon_turret_shot", "fg": 22753, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_turret_shot", "fg": 22754, + "bg": 5239, "rotates": true }, { "id": "bot_turret_shot", "fg": 22755, + "bg": 5239, "rotates": true }, { "id": "mon_turret_teargas", "fg": 22756, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_turret_teargas", "fg": 22757, + "bg": 5239, "rotates": true }, { "id": "bot_turret_teargas", "fg": 22758, + "bg": 5239, "rotates": true }, { "id": "mon_turret_beanbag", "fg": 22759, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_turret_beanbag", "fg": 22760, + "bg": 5239, "rotates": true }, { "id": "bot_turret_beanbag", "fg": 22761, + "bg": 5239, "rotates": true }, { "id": ["broken_turret_rifle", "broken_milturret_556"], "fg": 22762, + "bg": 5239, "rotates": true }, { "id": ["bot_rifleturret", "bot_milturret_556"], "fg": 22763, + "bg": 5239, "rotates": true }, { @@ -54652,43 +55070,49 @@ { "id": "mon_milturret_308", "fg": 22765, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_milturret_308", "fg": 22766, + "bg": 5239, "rotates": true }, { "id": "bot_milturret_308", "fg": 22767, + "bg": 5239, "rotates": true }, { "id": ["broken_turret_bmg", "broken_milturret_50bmg"], "fg": 22768, + "bg": 5239, "rotates": true }, { "id": ["bot_antimateriel", "bot_milturret_50bmg"], "fg": 22769, + "bg": 5239, "rotates": true }, { "id": "mon_milturret_8x40mm", "fg": 22770, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_milturret_8x40mm", "fg": 22771, + "bg": 5239, "rotates": true }, { "id": "bot_milturret_8x40mm", "fg": 22772, + "bg": 5239, "rotates": true }, { @@ -54704,39 +55128,44 @@ { "id": "mon_milturret_needle", "fg": 22775, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_milturret_needle", "fg": 22776, + "bg": 5239, "rotates": true }, { "id": "bot_milturret_needle", "fg": 22777, + "bg": 5239, "rotates": true }, { "id": "mon_milturret_40mm", "fg": 22778, - "bg": 967, + "bg": 5239, "rotates": true }, { "id": "broken_milturret_40mm", "fg": 22779, + "bg": 5239, "rotates": true }, { "id": "bot_milturret_40mm", "fg": 22780, + "bg": 5239, "rotates": true }, { "id": "mon_milturret_flame", "fg": 22781, - "bg": 967, + "bg": 5239, + "rotates": true }, { @@ -54762,7 +55191,7 @@ { "id": "mon_advturret_acid", "fg": 22786, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54778,7 +55207,7 @@ { "id": "mon_advturret_plasma", "fg": 22789, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54794,7 +55223,7 @@ { "id": "mon_advturret_rail", "fg": 22792, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54810,7 +55239,7 @@ { "id": "mon_advturret_lightning", "fg": 22795, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54826,7 +55255,7 @@ { "id": "mon_advturret_emp", "fg": 22798, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54842,7 +55271,7 @@ { "id": "mon_turret_disarmed", "fg": 22801, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54858,7 +55287,7 @@ { "id": "mon_milturret_disarmed", "fg": 22803, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54874,7 +55303,7 @@ { "id": "mon_advturret_disarmed", "fg": 22805, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -54890,7 +55319,7 @@ { "id": "mon_turret_water", "fg": 22807, - "bg": 967, + "bg": 5239, "rotates": true }, { @@ -57475,7 +57904,7 @@ "rotates": false }, { - "id": "corpse_mon_sewer_rat", + "id": "corpse_mon_black_rat", "fg": 23317, "rotates": false }, @@ -57570,7 +57999,7 @@ "rotates": false }, { - "id": "corpse_mon_zombie_soldier", + "id": ["corpse_mon_zombie_soldier", "corpse_mon_zombie_grenadier", "corpse_mon_zombie_grenadier_elite"], "fg": 23336, "rotates": false }, @@ -57773,13 +58202,1403 @@ "fg": 23366, "bg": 0, "rotates": false + }, + { + "id": "corpse_mon_zombie_necro", + "fg": 23367, + "rotates": false + }, + { + "id": "corpse_mon_cat", + "fg": 23368, + "rotates": false + }, + { + "id": "corpse_mon_fox_red", + "fg": 23369, + "rotates": false + }, + { + "id": "corpse_mon_fox_gray", + "fg": 23370, + "rotates": false + }, + { + "id": "corpse_mon_zombie_nullfield", + "fg": 23371, + "rotates": false + }, + { + "id": "corpse_mon_giant_cockroach", + "fg": 23372, + "rotates": false + }, + { + "id": "corpse_mon_pregnant_giant_cockroach", + "fg": 23373, + "rotates": false + }, + { + "id": "corpse_mon_giant_cockroach_nymph", + "fg": 23374, + "rotates": false + }, + { + "id": "corpse_mon_zombie_brute_grappler", + "fg": 23375, + "rotates": false + }, + { + "id": "corpse_mon_zombie_biter", + "fg": 23376, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_squirrel_red", + "fg": 23377, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_squirrel", + "fg": 23378, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_moose", + "fg": 23379, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_razorclaw", + "fg": 23380, + "bg": 0 + }, + { + "id": "corpse_mon_alpha_razorclaw", + "fg": 23381, + "bg": 0 + }, + { + "id": "corpse_mon_blank", + "fg": 23382, + "bg": 0 + }, + { + "id": "t_metal_floor", + "fg": 23383, + "bg": 0 + }, + { + "id": "t_junk_floor", + "fg": 23384, + "bg": 0 + }, + { + "id": "t_nanofab", + "fg": 23385, + "bg": 0 + }, + { + "id": "chem_formaldehyde", + "fg": 23386, + "bg": 0 + }, + { + "id": "chem_methanol", + "fg": 23387, + "bg": 0 + }, + { + "id": "fluid_preserved_brain", + "fg": 23388, + "bg": 0 + }, + { + "id": "human_brain_embalmed", + "fg": 23389, + "bg": 0 + },{ + "id": "meat_scrap", + "fg": 23390, + "bg": 0 + }, + { + "id": "meat_scrap_cooked", + "fg": 23391, + "bg": 0 + }, + { + "id": "nanomaterial", + "fg": 23392, + "bg": 0 + }, + { + "id": "standard_template_construct", + "fg": 23393, + "bg": 0 + }, + { + "id": "ruined_chunks", + "fg": 23394, + "bg": 0 + }, + { + "id": "steel_grille", + "fg": 23395, + "bg": 0 + }, + { + "id": "platinum_grille", + "fg": 23396, + "bg": 0 + }, + { + "id": "platinum_small", + "fg": 23397, + "bg": 0 + }, + { + "id": "pressure_cooker", + "fg": 23398, + "bg": 0 + }, + { + "id": "stick_fiber", + "fg": 23399, + "bg": 0 + }, + { + "id": "overlay_wielded_battleaxe", + "fg": 23400, + "rotates": false + }, + { + "id": "overlay_wielded_battleaxe_inferior", + "fg": 23401, + "rotates": false + }, + { + "id": "overlay_wielded_battleaxe_fake", + "fg": 23401, + "rotates": false + }, + { + "id": "mon_sewer_rat", + "fg": 23402, + "bg": 967, + "rotates": false + }, + { + "id": "mon_muskrat", + "fg": 23403, + "bg": 967, + "rotates": false + }, + { + "id": "corpse_mon_sewer_rat", + "fg": 23404, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_muskrat", + "fg": 23405, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_bat", + "fg": 23406, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_blood_sacrifice", + "fg": 23407, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_boomer_fungus", + "fg": 23408, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_broken_cyborg", + "fg": 23409, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_chud", + "fg": 23410, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_crawler", + "fg": 23411, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_dark_wyrm", + "fg": 23412, + "bg": 0, + "rotates": false + }, + { + "id": "helmet_kabuto", + "fg": 23413, + "bg": 0 + }, + { + "id": "armor_samurai", + "fg": 23414, + "bg": 957, + "rotates": false + }, + { + "id": "corpse_mon_dementia", + "fg": 23415, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_flamer", + "fg": 23416, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_flaming_eye", + "fg": 23417, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fungaloid_young", + "fg": 23418, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_giant_crayfish", + "fg": 23419, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_gozu", + "fg": 23420, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_halfworm", + "fg": 23421, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_homunculus", + "fg": 23422, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_human_snail", + "fg": 23423, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_one_eye", + "fg": 23424, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_slug_giant", + "fg": 23425, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_twisted_body", + "fg": 23426, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zolf", + "fg": 23427, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombear", + "fg": 23428, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_armored", + "fg": 23429, + "bg": 967, + "rotates": false + }, + { + "id": "corpse_mon_zombie_bio_op", + "fg": 23430, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_brute_ninja", + "fg": 23431, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_corrosive", + "fg": 23432, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_biollante_sprout", + "fg": 23433, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_biollante_sprig", + "fg": 23434, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_biollante_sprig", + "fg": 23434, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_bear_cub", + "fg": 23435, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_fiend", + "fg": 23436, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_fungus", + "fg": 23437, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_pig", + "fg": 23438, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_scorched", + "fg": 23439, + "bg": 0, + "rotates": false + }, + { + "id": ["mannwurstgravy", "sausagegravy"], + "fg": 23440, + "bg": 0, + "rotates": false + }, + { + "id": ["sausage_raw", "mannwurst_raw"], + "fg": 23441, + "bg": 0, + "rotates": false + }, + { + "id": ["sausage_cooked", "mannwurst_cooked"], + "fg": 23442, + "bg": 0, + "rotates": false + }, + { + "id": ["bratwurst_sausage", "mann_bratwurst"], + "fg": 23443, + "bg": 0, + "rotates": false + }, + { + "id": ["dias"], + "fg": 23444, + "bg": 0, + "rotates": false + }, + { + "id": ["bologna", "hfleshbologna"], + "fg": 23445 + }, + { + "id": "mon_wasp_larvae", + "fg": 23446, + "bg": 0, + "rotates": false + }, + { + "id": "analytical_set_basic", + "fg": 23447, + "bg": 0, + "rotates": false + }, + { + "id": "armor_nomad", + "fg": 266 + }, + { + "id": "overlay_worn_armor_nomad", + "fg": 23448, + "rotates": false + }, + { + "id": "helmet_nomad", + "fg": 646 + }, + { + "id": "overlay_worn_helmet_nomad", + "fg": 23449, + "rotates": false + }, + { + "id": "armor_nomad_light", + "fg": 23450 + }, + { + "id": "overlay_worn_armor_nomad_light", + "fg": 23451, + "rotates": false + }, + { + "id": "balance_small", + "fg": 23452, + "rotates": false + }, + { + "id": "brownie", + "fg": 23453, + "rotates": false + }, + { + "id": "cuvettes", + "fg": 23454, + "rotates": false + }, + { + "id": "glass_prism", + "fg": 23455, + "rotates": false + }, + { + "id": "glass_tube_small", + "fg": 23456, + "rotates": false + }, + { + "id": "hard_steel_armor", + "fg": 23457, + "rotates": false + }, + { + "id": "light_detector", + "fg": 23458, + "rotates": false + }, + { + "id": "llink", + "fg": 23459, + "rotates": false + }, + { + "id": "melting_point", + "fg": 23460, + "rotates": false + }, + { + "id": "offset_sight_rail", + "fg": 23461, + "rotates": false + }, + { + "id": "ph_meter", + "fg": 23462, + "rotates": false + }, + { + "id": "spectrophotometer", + "fg": 23463, + "rotates": false + }, + { + "id": "steel_armor", + "fg": 23464, + "rotates": false + }, + { + "id": "corpse_mon_zoose", + "fg": 23465, + "rotates": false + }, + { + "id": "corpse_mon_zombie_military_pilot", + "fg": 23466, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zougar", + "fg": 23467, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_chicken", + "fg": 23468, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_skittering_plague", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_plague_nymph", + "fg": 23470, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_plague_vector", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_bee", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_jumping", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "!corpse_mon_spider_jumping_giant", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "!corpse_mon_spider_trapdoor", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "!corpse_mon_spider_trapdoor_giant", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fly", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_mosquito_giant", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_fungus", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_larva", + "fg": 23470, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_queen", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_soldier", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_acid", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_larva_acid", + "fg": 23470, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_acid_queen", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_ant_acid_soldier", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_locust", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_locust_nymph", + "fg": 23470, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_biollante", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_sprig", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_young", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_queen", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_heart", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_vinebeast", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fungal_fighter", + "fg": 23469, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_child_fungus", + "fg": 23471, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_waif", + "fg": 23472, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_sproglodyte", + "fg": 23473, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_creepy", + "fg": 23474, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_zombie_child_scorched", + "fg": 23475, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fungal_fighter", + "fg": 23476, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_vinebeast", + "fg": 23477, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_queen", + "fg": 23478, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid", + "fg": 23479, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_young", + "fg": 23480, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_triffid_sprig", + "fg": 23481, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_biollante", + "fg": 23482, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_sewer_snake", + "fg": 23483, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_rattlesnake_giant", + "fg": 23484, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_rattlesnake", + "fg": 23485, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_gator", + "fg": 23486, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_frog_giant", + "fg": 23487, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_frog", + "fg": 23488, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_wolf", + "fg": 23489, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_weasel", + "fg": 23490, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_sheep", + "fg": 23491, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_sheep_lamb", + "fg": 23492, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_raccoon", + "fg": 23493, + "bg": 0, + "rotates": false + }, + { + "id": "coat_gut", + "fg": 23494, + "bg": 0, + "rotates": false }, + { + "id": "overlay_worn_coat_gut", + "fg": 23495, + "bg": 0, + "rotates": false + }, + { + "id": "helmet_szyszak", + "fg": 23496, + "bg": 0, + "rotates": false + }, + { + "id": "wings_ornamental", + "fg": 23497, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_rabbit", + "fg": 23498, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_pig", + "fg": 23499, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_pig_piglet", + "fg": 23500, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_otter", + "fg": 23501, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_opossum", + "fg": 23502, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_mink", + "fg": 23503, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_lemming", + "fg": 23504, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_horse", + "fg": 23505, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_hare", + "fg": 23506, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_groundhog", + "fg": 23507, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_grouse", + "fg": 23508, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_crow", + "fg": 23509, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_duck", + "fg": 23510, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_goose_canadian", + "fg": 23511, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_turkey", + "fg": 23512, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_pheasant", + "fg": 23513, + "bg": 0, + "rotates": false + }, + { + "id": "wind_turbine", + "fg": 23514, + "bg": 0, + "rotates": false + }, + { + "id": "vp_wind_turbine", + "fg": 23515, + "bg": 0, + "rotates": true + }, + { + "id": "corpse_mon_cockatrice", + "fg": 23519, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_chicken_chick", + "fg": 23520, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_grouse_chick", + "fg": 23521, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_crow_chick", + "fg": 23522, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_turkey_chick", + "fg": 23523, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_pheasant_chick", + "fg": 23524, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_cockatrice_chick", + "fg": 23525, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_duck_chick", + "fg": 23526, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_goose_canadian_chick", + "fg": 23527, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_blinky", + "fg": 23528, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_bluegill", + "fg": 23529, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_bowfin", + "fg": 23530, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_bullhead", + "fg": 23531, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_carp", + "fg": 23532, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_crayfish", + "fg": 23533, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_eel", + "fg": 23534, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_lbass", + "fg": 23535, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_lobster", + "fg": 23536, + "bg": 0, + "rotates": false + }, + { + "id": "t_reinforced_door_glass_lab_c", + "fg": 23537, + "bg": 5010 + }, + { + "id": "t_reinforced_door_glass_lab_o", + "fg": 23538, + "bg": 5010 + }, + { + "id": "t_door_glass_lab_c", + "fg": 23539, + "bg": 5010 + }, + { + "id": "t_door_glass_lab_o", + "fg": 23540, + "bg": 5010 + }, + { + "id": "t_door_glass_frosted_lab_c", + "fg": 23541, + "bg": 5010 + }, + { + "id": "t_door_glass_frosted_lab_o", + "fg": 23542, + "bg": 5010 + }, + { + "id": "t_door_metal_lab_c", + "fg": 23543, + "bg": 5010 + }, + { + "id": "t_door_metal_lab_o", + "fg": 23544, + "bg": 5010 + }, + { + "id": "t_door_lab_c", + "fg": 23545, + "bg": 5010 + }, + { + "id": "t_door_lab_b", + "fg": 23546, + "bg": 5010 + }, + { + "id": "t_door_lab_o", + "fg": 23547, + "bg": 5010 + }, + { + "id": "t_door_lab_frame", + "fg": 23548, + "bg": 5010 + }, + { + "id": "t_mdoor_lab_frame", + "fg": 23549, + "bg": 5010 + }, + { + "id": "t_gates_mech_control_lab", + "fg": 23550, + "bg": 5010 + }, + { + "id": "t_gates_control_concrete_lab", + "fg": 23551, + "bg": 5010 + }, + { + "id": "t_gates_control_brick_lab", + "fg": 23552, + "bg": 5010 + }, + { + "id": "t_gates_control_metal_lab", + "fg": 23553, + "bg": 5010 + }, + { + "id": "corpse_mon_fish_pbass", + "fg": 23554, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_perch", + "fg": 23555, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_pickerel", + "fg": 23556, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_pike", + "fg": 23557, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_salmon", + "fg": 23558, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_sbass", + "fg": 23559, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_sunfish", + "fg": 23560, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_trout", + "fg": 23561, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fish_whitefish", + "fg": 23562, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_sewer_fish", + "fg": 23563, + "bg": 0, + "rotates": false + }, { + "id": "corpse_mon_plague_nymph", + "fg": 23564, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_skittering_plague", + "fg": 23565, + "bg": 0, + "rotates": false + }, + + { + "id": "corpse_mon_plague_vector", + "fg": 23566, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_bee", + "fg": 23567, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_centipede_giant", + "fg": 23568, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_dragonfly_giant", + "fg": 23569, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_fly", + "fg": 23570, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_mosquito_giant", + "fg": 23571, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_web", + "fg": 23572, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_web_giant", + "fg": 23572, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_web_s", + "fg": 23573, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_widow", + "fg": 23574, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_widow_giant", + "fg": 23574, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_widow_giant_s", + "fg": 23575, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_wolf", + "fg": 23576, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_spider_wolf_giant", + "fg": 23576, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_wasp", + "fg": 23577, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_dermatik", + "fg": 23578, + "bg": 0, + "rotates": false + }, + { + "id": "corpse_mon_dermatik_larva", + "fg": 23579, + "bg": 0, + "rotates": false + }, + + { "id": "atlatl", "fg": 1986, "bg": 0, "rotates": false - } + } ] }, { @@ -57827,25 +59646,25 @@ "rotates": false }, { - "id": "t_tree_harvested_season_spring", + "id": ["t_tree_harvested_season_spring", "t_tree_oak_harvested_season_spring"], "fg": 32769, "bg": 32977, "rotates": false }, { - "id": ["t_tree_harvested_season_summer", "t_tree_harvested"], + "id": ["t_tree_harvested_season_summer", "t_tree_harvested", "t_tree_oak_harvested_season_summer", "t_tree_oak_harvested"], "fg": 32770, "bg": 32977, "rotates": false }, { - "id": "t_tree_harvested_season_autumn", + "id": ["t_tree_harvested_season_autumn", "t_tree_oak_harvested_season_autumn"], "fg": 32771, "bg": 32977, "rotates": false }, { - "id": "t_tree_harvested_season_winter", + "id": ["t_tree_harvested_season_winter", "t_tree_oak_harvested_season_winter"], "fg": 32772, "bg": 32978, "rotates": false @@ -59158,7 +60977,15 @@ "id": "overlay_worn_firehelmet", "fg": 33170, "rotates": false - } + }, + { + "id": "overlay_worn_helmet_kabuto", + "fg": 33171, + "rotates": false + }, + { "id": "overlay_mutation_HORNS_POINTED", "fg": 33172, "rotates": false }, + { "id": "overlay_worn_helmet_szyszak", "fg": 33173, "rotates": false }, + { "id": "overlay_worn_wings_ornamental", "fg": 33174, "rotates": false } ] } ] diff --git a/gfx/MShock24TilesetModded/tile_config.json b/gfx/MShock24TilesetModded/tile_config.json index a742db5a7a27b..5242bbe2930d0 100644 --- a/gfx/MShock24TilesetModded/tile_config.json +++ b/gfx/MShock24TilesetModded/tile_config.json @@ -14528,7 +14528,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": 2120, "bg": 650, "rotates": false @@ -14540,7 +14540,7 @@ "rotates": false }, { - "id": "t_gates_mech_control", + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab" ], "fg": 2148, "bg": 650, "rotates": false @@ -15319,18 +15319,36 @@ "bg": 652, "rotates": false }, + { + "id": "t_door_lab_frame", + "fg": 2113, + "bg": 650, + "rotates": false + }, { "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], "fg": 2115, "bg": 652, "rotates": false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg": 2115, + "bg": 650, + "rotates": false + }, { "id": "t_door_o", "fg": 2121, "bg": 652, "rotates": false }, + { + "id": "t_door_lab_o", + "fg": 2121, + "bg": 650, + "rotates": false + }, { "id": "t_floor", "bg": 652, @@ -15342,6 +15360,12 @@ "bg": 652, "rotates": false }, + { + "id": "t_mdoor_lab_frame", + "fg": 2187, + "bg": 650, + "rotates": false + }, { "id": "t_rdoor_b", "fg": 2226, @@ -21079,7 +21103,7 @@ ] }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 2101, "rotates": false }, @@ -21109,7 +21133,7 @@ "rotates": false }, { - "id": "t_door_c", + "id": [ "t_door_c", "t_door_lab_c" ], "fg": 2109, "rotates": false }, @@ -21148,7 +21172,7 @@ "fg": 2112 }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_door_glass_lab_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_lab_c" ], "fg": 2114, "rotates": false }, @@ -21158,7 +21182,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 2118, "rotates": true }, @@ -21212,17 +21236,17 @@ "rotates": false }, { - "id": "t_gates_control_brick", + "id": [ "t_gates_control_brick", "t_gates_control_brick_lab" ], "fg": 2146, "rotates": false }, { - "id": "t_gates_control_concrete", + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab" ], "fg": 2147, "rotates": false }, { - "id": "t_gates_control_metal", + "id": [ "t_gates_control_metal", "t_gates_control_metal_lab" ], "fg": 2147 }, { diff --git a/gfx/MShock32TilesetModded/tile_config.json b/gfx/MShock32TilesetModded/tile_config.json index cf33971f342ff..e24851ccf96b9 100644 --- a/gfx/MShock32TilesetModded/tile_config.json +++ b/gfx/MShock32TilesetModded/tile_config.json @@ -14528,7 +14528,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": 2120, "bg": 650, "rotates": false @@ -14540,7 +14540,7 @@ "rotates": false }, { - "id": "t_gates_mech_control", + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab" ], "fg": 2148, "bg": 650, "rotates": false @@ -15320,17 +15320,35 @@ "rotates": false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": "t_door_lab_frame", + "fg": 2113, + "bg": 650, + "rotates": false + }, + { + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o" ], "fg": 2115, "bg": 652, "rotates": false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg": 2115, + "bg": 650, + "rotates": false + }, { "id": "t_door_o", "fg": 2121, "bg": 652, "rotates": false }, + { + "id": "t_door_lab_o", + "fg": 2121, + "bg": 650, + "rotates": false + }, { "id": "t_floor", "bg": 652, @@ -15342,6 +15360,12 @@ "bg": 652, "rotates": false }, + { + "id": "t_mdoor_lab_frame", + "fg": 2187, + "bg": 650, + "rotates": false + }, { "id": "t_rdoor_b", "fg": 2226, @@ -21079,7 +21103,7 @@ ] }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 2101, "rotates": false }, @@ -21109,7 +21133,7 @@ "rotates": false }, { - "id": "t_door_c", + "id": [ "t_door_c", "t_door_lab_c" ], "fg": 2109, "rotates": false }, @@ -21148,7 +21172,7 @@ "fg": 2112 }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_lab_c", "t_door_glass_frosted_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_lab_c", "t_reinforced_door_glass_c" ], "fg": 2114, "rotates": false }, @@ -21158,7 +21182,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 2118, "rotates": true }, @@ -21212,17 +21236,17 @@ "rotates": false }, { - "id": "t_gates_control_brick", + "id": [ "t_gates_control_brick", "t_gates_control_brick_lab" ], "fg": 2146, "rotates": false }, { - "id": "t_gates_control_concrete", + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab" ], "fg": 2147, "rotates": false }, { - "id": "t_gates_control_metal", + "id": [ "t_gates_control_metal", "t_gates_control_metal_lab" ], "fg": 2147 }, { diff --git a/gfx/MshockXotto+/tile_config.json b/gfx/MshockXotto+/tile_config.json index 947f3a21c233d..9375e78a27047 100644 --- a/gfx/MshockXotto+/tile_config.json +++ b/gfx/MshockXotto+/tile_config.json @@ -17519,11 +17519,21 @@ "fg": 3183, "bg": 985 }, + { + "id": "t_reinforced_door_glass_lab_o", + "fg": 3183, + "bg": 993 + }, { "id": "t_reinforced_door_glass_c", "fg": 3182, "bg": 985 }, + { + "id": "t_reinforced_door_glass_lab_c", + "fg": 3182, + "bg": 993 + }, { "id": "t_scrap_wall", "fg": 3221, @@ -17739,18 +17749,36 @@ "bg": 987, "rotates": false }, + { + "id": "t_door_lab_frame", + "fg": 3035, + "bg": 993, + "rotates": false + }, { "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], "fg": 3037, "bg": 987, "rotates": false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o" ], + "fg": 3037, + "bg": 993, + "rotates": false + }, { "id": "t_door_o", "fg": 3044, "bg": 987, "rotates": false }, + { + "id": "t_door_lab_o", + "fg": 3044, + "bg": 993, + "rotates": false + }, { "id": ["t_floor", "t_secretdoor_brick_wall_o", "t_secretdoor_wall_o", "t_secretdoor_concrete_wall_o", "t_secretdoor_bookcase_o"], "bg": 987, @@ -17762,6 +17790,12 @@ "bg": 987, "rotates": false }, + { + "id": "t_mdoor_lab_frame", + "fg": 3120, + "bg": 993, + "rotates": false + }, { "id": "t_rdoor_b", "fg": 3175, @@ -18624,7 +18658,7 @@ "rotates": false }, { - "id": "t_door_metal_o", + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], "fg": 3042, "bg": 993, "rotates": false @@ -18636,7 +18670,7 @@ "rotates": false }, { - "id": ["t_gates_mech_control", "t_outs_bridge_control", "t_ins_bridge_control"], + "id": [ "t_gates_mech_control", "t_outs_bridge_control", "t_ins_bridge_control", "t_gates_mech_control_lab" ], "fg": 3071, "bg": 993, "rotates": false @@ -31883,7 +31917,7 @@ "rotates": false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_frosted_c", "t_door_glass_lab_c", "t_door_glass_frosted_lab_c" ], "fg": 3036, "rotates": false }, @@ -31893,7 +31927,7 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], "fg": 3040, "rotates": true }, @@ -31959,17 +31993,17 @@ "fg": 3068 }, { - "id": "t_gates_control_brick", + "id": [ "t_gates_control_brick", "t_gates_control_brick_lab" ], "fg": 3069, "rotates": false }, { - "id": ["t_gates_control_concrete", "t_reinforced_glass_control", "t_containment_control"], + "id": ["t_gates_control_concrete", "t_reinforced_glass_control", "t_containment_control", "t_gates_control_concrete_lab" ], "fg": 3070, "rotates": false }, { - "id": "t_gates_control_metal", + "id": [ "t_gates_control_metal", "t_gates_control_metal_lab" ], "fg": 3070 }, { @@ -38041,7 +38075,7 @@ "rotates": false }, { - "id": "t_door_c", + "id": [ "t_door_c", "t_door_lab_c" ], "fg": 4017, "rotates": false }, @@ -38061,7 +38095,7 @@ "rotates": false }, { - "id": "t_door_b", + "id": [ "t_door_b", "t_door_lab_b" ], "fg": 4018, "rotates": false }, diff --git a/gfx/RetroASCIITileset/fallback.png b/gfx/RetroASCIITileset/fallback.png new file mode 100644 index 0000000000000..355abadd5d132 Binary files /dev/null and b/gfx/RetroASCIITileset/fallback.png differ diff --git a/gfx/RetroASCIITileset/retroasciitiles.png b/gfx/RetroASCIITileset/retroasciitiles.png index cff574f093630..388c2c603acb2 100644 Binary files a/gfx/RetroASCIITileset/retroasciitiles.png and b/gfx/RetroASCIITileset/retroasciitiles.png differ diff --git a/gfx/RetroASCIITileset/tile_config.json b/gfx/RetroASCIITileset/tile_config.json index dd49eebb3a3c5..9d2ef24387136 100644 --- a/gfx/RetroASCIITileset/tile_config.json +++ b/gfx/RetroASCIITileset/tile_config.json @@ -1,116 +1,192 @@ { - "tile_info": - [ - { - "height": 10, - "width": 10 - } - ], - "tiles-new": [ + "tile_info": [ { - "file": "retroasciitiles.png", - "transparency": { "R": 0, "G": 0, "B": 0 }, - "tiles": - [ + "height": 10, + "width": 10 + } + ], + "tiles-new": [ + { + "file": "retroasciitiles.png", + "transparency": { + "R": 0, + "G": 0, + "B": 0 + }, + "tiles": [ + { + "id": "player_female", + "fg": 1, + "rotates": false + }, + { + "id": "player_male", + "fg": 2, + "rotates": false + }, + { + "id": [ + "npc_female", + "npc_male" + ], + "fg": 3 + }, { - "id": "infrared_creature", - "fg": 2831 + "id": "infrared_creature", + "fg": 4 }, { - "id":"highlight_item", - "fg":368, - "rotates":false + "id": "footstep", + "fg": 5, + "rotates": false + }, + { + "id": "unknown", + "fg": 6, + "rotates": false + }, + { + "id": [ + "cursor", + "line_target", + "line_trail" + ], + "fg": 7 + }, + { + "id": "highlight_item", + "fg": 8, + "rotates": false + }, + { + "id": "animation_hit", + "bg": 9 + }, + { + "id": "animation_line", + "bg": 10 + }, + { + "id": "lighting_boomered_light", + "fg": 11, + "rotates": false + }, + { + "id": "lighting_boomered_dark", + "fg": 12, + "rotates": false + }, + { + "id": "lighting_lowlight_light", + "fg": 13, + "rotates": false + }, + { + "id": "lighting_lowlight_dark", + "fg": 14, + "rotates": false + }, + { + "id": "lighting_hidden", + "fg": 0, + "bg": 0, + "rotates": false + }, + { + "id": "weather_rain_drop", + "bg": 15 + }, + { + "id": "weather_snowflake", + "bg": 16 + } + ] + }, + { + "file": "fallback.png", + "tiles": [], + "ascii": [ + { + "offset": 0, + "bold": false, + "color": "BLACK" }, { - "id":"footstep", - "fg":316, - "rotates":false + "offset": 256, + "bold": true, + "color": "WHITE" }, { - "id":"unknown", - "fg":54, - "rotates":false + "offset": 512, + "bold": false, + "color": "WHITE" }, { - "id":"animation_hit", - "bg":315 + "offset": 768, + "bold": true, + "color": "BLACK" }, { - "id":"line_target", - "fg":288 + "offset": 1024, + "bold": false, + "color": "RED" }, { - "id":"line_trail", - "bg":288 + "offset": 1280, + "bold": false, + "color": "GREEN" }, { - "id":"animation_line", - "bg":49 + "offset": 1536, + "bold": false, + "color": "BLUE" }, { - "id":"cursor", - "fg":272 + "offset": 1792, + "bold": false, + "color": "CYAN" }, { - "id":"lighting_boomered_light", - "fg":50, - "rotates":false + "offset": 2048, + "bold": false, + "color": "MAGENTA" }, { - "id":"lighting_boomered_dark", - "fg":51, - "rotates":false + "offset": 2304, + "bold": false, + "color": "YELLOW" }, { - "id":"lighting_lowlight_light", - "fg":52, - "rotates":false + "offset": 2560, + "bold": true, + "color": "RED" }, { - "id":"lighting_lowlight_dark", - "fg":53, - "rotates":false + "offset": 2816, + "bold": true, + "color": "GREEN" }, { - "id":"lighting_hidden", - "fg":0, - "bg":0, - "rotates":false + "offset": 3072, + "bold": true, + "color": "BLUE" }, { - "id":"weather_rain_drop", - "bg":13 + "offset": 3328, + "bold": true, + "color": "CYAN" }, { - "id":"player_male", - "fg":193, - "rotates":false + "offset": 3584, + "bold": true, + "color": "MAGENTA" }, { - "id":"player_female", - "fg":194, - "rotates":false + "offset": 3840, + "bold": true, + "color": "YELLOW" } - ], - "ascii": - [ -{ "offset": 1744, "color": "BLACK" }, -{ "offset": 2000, "bold": true, "color": "WHITE" }, -{ "offset": 2256, "color": "WHITE" }, -{ "offset": 2512, "bold": true, "color": "BLACK" }, -{ "offset": 2768, "color": "RED" }, -{ "offset": 3024, "color": "GREEN" }, -{ "offset": 3280, "color": "BLUE" }, -{ "offset": 3536, "color": "CYAN" }, -{ "offset": 3792, "color": "MAGENTA" }, -{ "offset": 4048, "color": "YELLOW" }, -{ "offset": 4304, "bold": true, "color": "RED" }, -{ "offset": 4560, "bold": true, "color": "GREEN" }, -{ "offset": 4816, "bold": true, "color": "BLUE" }, -{ "offset": 5072, "bold": true, "color": "CYAN" }, -{ "offset": 5328, "bold": true, "color": "MAGENTA" }, -{ "offset": 5584, "bold": true, "color": "YELLOW" } - ] + ] } - ] + ] } diff --git a/gfx/RetroDaysTileset/tile_config.json b/gfx/RetroDaysTileset/tile_config.json index 0b2f6484a9add..464a30e74fa66 100644 --- a/gfx/RetroDaysTileset/tile_config.json +++ b/gfx/RetroDaysTileset/tile_config.json @@ -12,7 +12,7 @@ "tiles": [ { "id": "player_female", - "fg": 1, + "fg": 2785, "rotates": false }, { @@ -22,7 +22,7 @@ }, { "id": "npc_female", - "fg": 3, + "fg": 2786, "rotates": false }, { @@ -397,7 +397,7 @@ }, { "id": "mon_zombie_scientist", - "fg": 63, + "fg": 2787, "rotates": false }, { @@ -2824,7 +2824,6 @@ "vp_seat", "vp_seat_nocargo", "vp_folding_seat", - "vp_saddle", "vp_reclining_seat" ], "fg": 451, @@ -2837,6 +2836,18 @@ } ] }, + { + "id": "vp_saddle", + "fg": 2751, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 423 + } + ] + }, { "id": "vp_bed", "fg": 452, @@ -3136,6 +3147,126 @@ } ] }, + { + "id": "vp_stowboard_nw", + "fg": 2859, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 423 + } + ] + }, + { + "id": "vp_stowboard_ne", + "fg": 2860, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 423 + } + ] + }, + { + "id": "vp_stowboard_sw", + "fg": 2861, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 423 + } + ] + }, + { + "id": "vp_stowboard_se", + "fg": 2862, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 423 + } + ] + }, + { + "id": "vp_hdstowboard_horizontal", + "fg": 2863, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, + { + "id": "vp_hdstowboard_vertical", + "fg": 2864, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, + { + "id": "vp_hdstowboard_nw", + "fg": 2865, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, + { + "id": "vp_hdstowboard_ne", + "fg": 2866, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, + { + "id": "vp_hdstowboard_sw", + "fg": 2867, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, + { + "id": "vp_hdstowboard_se", + "fg": 2868, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "broken", + "fg": 508 + } + ] + }, { "id": "vp_halfboard_cross", "fg": 473, @@ -3602,6 +3733,7 @@ }, { "id": [ + "vp_alternator_bicycle", "vp_alternator_motorbike", "vp_alternator_car", "vp_alternator_truck" @@ -5619,6 +5751,16 @@ "fg": 679, "rotates": false }, + { + "id": "meat_scrap", + "fg": 2871, + "rotates": false + }, + { + "id": "meat_scrap_cooked", + "fg": 2872, + "rotates": false + }, { "id": [ "fish_bait_bread", @@ -6811,7 +6953,8 @@ "gloves_liner", "gloves_wraps", "winter_gloves_army", - "long_glove_white" + "long_glove_white", + "gloves_golf" ], "fg": 830, "rotates": false @@ -6917,11 +7060,6 @@ "fg": 846, "rotates": false }, - { - "id": "hat_ball", - "fg": 847, - "rotates": false - }, { "id": [ "hat_boonie", @@ -7023,6 +7161,16 @@ "fg": 862, "rotates": false }, + { + "id": "hat_golf", + "fg": 2891, + "rotates": false + }, + { + "id": "hat_ball", + "fg": 2892, + "rotates": false + }, { "id": "helmet_bone", "fg": 863, @@ -7650,6 +7798,11 @@ "fg": 953, "rotates": false }, + { + "id": "basket_laundry", + "fg": 2884, + "rotates": false + }, { "id": "straw_basket", "fg": 954, @@ -8290,7 +8443,6 @@ "irradiated_cranberries" ], "fg": 1043, - "bg": 1044, "rotates": false }, { @@ -8456,6 +8608,7 @@ "manual_pistol", "textbook_computer", "textbook_firstaid", + "booklet_firstaid", "manual_dodge", "novel_crime", "novel_experimental", @@ -8647,7 +8800,8 @@ "plays_book", "mag_tailor", "mag_fabrication", - "mag_fieldrepair" + "mag_fieldrepair", + "manual_dodge_kid" ], "fg": 1056, "rotates": false @@ -9035,11 +9189,28 @@ "buckwheat_cooked", "heroin", "tobacco", - "dogfood" + "dogfood", + "coffee_raw", + "f_woodchips", + "feces_roach" ], "fg": 1098, "rotates": false }, + { + "id": [ + "feces_manure", + "feces_dog", + "feces_cow" + ], + "fg": 2886, + "rotates": false + }, + { + "id": "feces_bird", + "fg": 2887, + "rotates": false + }, { "id": [ "can_coconut", @@ -9101,6 +9272,11 @@ "fg": 1103, "rotates": false }, + { + "id": "ruined_chunks", + "fg": 2870, + "rotates": false + }, { "id": "chili_pepper", "fg": 1104, @@ -9149,10 +9325,7 @@ "rotates": false }, { - "id": [ - "coffee_raw", - "sugar_fried" - ], + "id": "sugar_fried", "fg": 1111, "rotates": false }, @@ -9333,7 +9506,6 @@ { "id": [ "fetus", - "fat", "bacon" ], "fg": 1131, @@ -9570,11 +9742,17 @@ "onigiri", "seed_garlic", "material_rocksalt", - "material_limestone" + "material_limestone", + "fat" ], "fg": 1160, "rotates": false }, + { + "id": "fat_tainted", + "fg": 2869, + "rotates": false + }, { "id": "meal_chitin_piece", "fg": 1161, @@ -10104,7 +10282,6 @@ "cereal", "cereal2", "cereal3", - "fat_tainted", "can_peach" ], "fg": 1221, @@ -10454,6 +10631,11 @@ "fg": 1251, "rotates": false }, + { + "id": "golf_tee", + "fg": 2890, + "rotates": false + }, { "id": [ "veggy", @@ -10907,6 +11089,11 @@ "fg": 1311, "rotates": false }, + { + "id": "golf_ball", + "fg": 2889, + "rotates": false + }, { "id": "plastic_bag_vac", "fg": 1312, @@ -12619,6 +12806,11 @@ "fg": 1572, "rotates": false }, + { + "id": "golf_bag", + "fg": 2888, + "rotates": false + }, { "id": [ "m249", @@ -12826,15 +13018,15 @@ }, { "id": [ - "shotgun_sawn", + "pipe_shotgunsawn", "pipe__gun_44" ], "fg": 1587, "rotates": false }, { - "id": "pipe_shotgunsawn", - "fg": 1588, + "id": "shotgun_sawn", + "fg": 2760, "rotates": false }, { @@ -13703,6 +13895,11 @@ "fg": 1697, "rotates": false }, + { + "id": "fiber_mat", + "fg": 2885, + "rotates": false + }, { "id": "cow_bell", "fg": 1698, @@ -15500,12 +15697,13 @@ "rotates": false }, { - "id": [ - "seat", - "saddle" - ], + "id": "seat", "fg": 451, - "bg": 2, + "rotates": false + }, + { + "id": "saddle", + "fg": 2751, "rotates": false }, { @@ -15519,7 +15717,10 @@ "rotates": false }, { - "id": "basket", + "id": [ + "basket", + "bike_basket" + ], "fg": 522, "rotates": false }, @@ -15653,6 +15854,11 @@ "bg": 1981, "rotates": false }, + { + "id": "t_woodchips", + "bg": 2876, + "rotates": false + }, { "id": "t_dirt_season_winter", "bg": 1982, @@ -15766,7 +15972,6 @@ { "id": "t_underbrush_season_summer", "fg": 2003, - "bg": 1981, "rotates": false }, { @@ -15792,7 +15997,6 @@ "t_underbrush_harvested_spring_season_summer" ], "fg": 2007, - "bg": 1981, "rotates": false }, { @@ -15803,7 +16007,6 @@ "t_underbrush_harvested_spring_season_autumn" ], "fg": 2008, - "bg": 1981, "rotates": false }, { @@ -15813,13 +16016,11 @@ "t_underbrush_harvested_spring_season_winter" ], "fg": 2009, - "bg": 1981, "rotates": false }, { "id": "t_underbrush_harvested_winter_season_winter", "fg": 2010, - "bg": 1981, "rotates": false }, { @@ -15830,7 +16031,6 @@ "t_underbrush_harvested_spring_season_spring" ], "fg": 2011, - "bg": 1981, "rotates": false }, { @@ -15856,31 +16056,26 @@ { "id": "t_shrub_season_summer", "fg": 2016, - "bg": 1981, "rotates": false }, { "id": "t_shrub_season_autumn", "fg": 2017, - "bg": 1981, "rotates": false }, { "id": "t_shrub_season_winter", "fg": 2018, - "bg": 1981, "rotates": false }, { "id": "t_shrub_season_spring", "fg": 2019, - "bg": 1981, "rotates": false }, { "id": "t_shrub_fungal", "fg": 2020, - "bg": 1981, "rotates": false }, { @@ -16073,31 +16268,26 @@ { "id": "t_tree_young", "fg": 2049, - "bg": 1981, "rotates": false }, { "id": "t_tree_young_season_spring", "fg": 2050, - "bg": 1981, "rotates": false }, { "id": "t_tree_young_season_autumn", "fg": 2051, - "bg": 1981, "rotates": false }, { "id": "t_tree_young_season_winter", "fg": 2052, - "bg": 1981, "rotates": false }, { "id": "t_tree", "fg": 2053, - "bg": 1981, "rotates": false }, { @@ -16109,7 +16299,6 @@ "t_tree_pear_harvested" ], "fg": 2054, - "bg": 1981, "rotates": false }, { @@ -16121,7 +16310,6 @@ "t_tree_apricot_season_autumn" ], "fg": 2055, - "bg": 1981, "rotates": false }, { @@ -16135,7 +16323,6 @@ "t_tree_apricot_season_winter" ], "fg": 2056, - "bg": 1981, "rotates": false }, { @@ -16144,7 +16331,6 @@ "t_tree_plum" ], "fg": 2057, - "bg": 1981, "rotates": false }, { @@ -16159,7 +16345,6 @@ "t_tree_apricot_season_spring" ], "fg": 2058, - "bg": 1981, "rotates": false }, { @@ -16168,7 +16353,6 @@ "t_tree_pear" ], "fg": 2059, - "bg": 1981, "rotates": false }, { @@ -16177,7 +16361,6 @@ "t_tree_apricot" ], "fg": 2060, - "bg": 1981, "rotates": false }, { @@ -16186,19 +16369,16 @@ "t_tree_apricot_harvested" ], "fg": 2061, - "bg": 1981, "rotates": false }, { "id": "t_tree_pine", "fg": 2062, - "bg": 1981, "rotates": false }, { "id": "t_tree_deadpine", "fg": 2063, - "bg": 1981, "rotates": false }, { @@ -16209,7 +16389,6 @@ "t_tree_maple_season_summer" ], "fg": 2064, - "bg": 1981, "rotates": false }, { @@ -16219,7 +16398,6 @@ "t_tree_hickory_harvested_season_autumn" ], "fg": 2065, - "bg": 1981, "rotates": false }, { @@ -16232,7 +16410,6 @@ "t_tree_willow_season_winter" ], "fg": 2066, - "bg": 1981, "rotates": false }, { @@ -16243,49 +16420,41 @@ "t_tree_maple_season_spring" ], "fg": 2067, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_season_autumn", "fg": 2068, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_season_spring", "fg": 2069, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_season_summer", "fg": 2070, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_season_winter", "fg": 2071, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_harvested_season_autumn", "fg": 2072, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_harvested_season_spring", "fg": 2073, - "bg": 1981, "rotates": false }, { "id": "t_tree_birch_harvested_season_summer", "fg": 2074, - "bg": 1981, "rotates": false }, { @@ -16296,55 +16465,46 @@ "t_tree_blackjack_harvested_season_autumn" ], "fg": 2046, - "bg": 1981, "rotates": false }, { "id": "t_tree_maple_season_autumn", "fg": 2075, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_season_autumn", "fg": 2076, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_season_spring", "fg": 2077, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_season_summer", "fg": 2078, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_harvested_season_autumn", "fg": 2079, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_harvested_season_spring", "fg": 2080, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_harvested_season_summer", "fg": 2081, - "bg": 1981, "rotates": false }, { "id": "t_tree_willow_harvested_season_winter", "fg": 2082, - "bg": 1981, "rotates": false }, { @@ -16751,6 +16911,11 @@ } ] }, + { + "id": "t_rootcellar", + "bg": 2877, + "rotates": false + }, { "id": [ "t_pit_spiked", @@ -16896,89 +17061,193 @@ "fg": 1979, "rotates": false }, - { - "id": "t_wall_log_half", - "fg": 2161, - "bg": 1981, - "rotates": false - }, - { - "id": "t_wall_log_chipped", - "fg": 2162, - "bg": 1981, - "rotates": false - }, - { - "id": "t_wall_log_broken", - "fg": 2163, - "bg": 1981, - "rotates": false - }, - { - "id": "t_palisade", - "fg": 2164, - "bg": 1981, - "rotates": false - }, - { - "id": [ - "t_palisade_gate", - "t_fencegate_c" - ], - "fg": 2165, - "bg": 1981, - "rotates": false - }, { "id": [ - "t_palisade_gate_o", - "t_fencegate_o" + "t_wall_log_half", + "t_wall_half" ], - "fg": 2166, - "bg": 1981, - "rotates": false - }, - { - "id": "t_concrete_wall", - "fg": 2167, - "bg": 1981, - "rotates": false, + "fg": 2837, + "rotates": true, "multitile": true, "additional_tiles": [ { "id": "center", - "fg": 2167 + "fg": 2838 }, { "id": "corner", - "fg": 2168 + "fg": 2839 }, { "id": "edge", - "fg": 2167 + "fg": 2840 }, { "id": "end_piece", - "fg": 2167 + "fg": 2841 }, { "id": "t_connection", - "fg": 2169 + "fg": 2842 + }, + { + "id": "unconnected", + "fg": 2837 + } + ] + }, + { + "id": [ + "t_wall_log_chipped", + "t_wall_wood_chipped" + ], + "fg": 2852, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2853 + }, + { + "id": "corner", + "fg": 2854 + }, + { + "id": "edge", + "fg": 2855 + }, + { + "id": "end_piece", + "fg": 2856 + }, + { + "id": "t_connection", + "fg": 2857 }, { "id": "unconnected", + "fg": 2852 + } + ] + }, + { + "id": [ + "t_wall_log_broken", + "t_wall_wood_broken" + ], + "fg": 2776, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2849 + }, + { + "id": "corner", + "fg": 2850 + }, + { + "id": "edge", + "fg": 2851 + }, + { + "id": "end_piece", + "fg": 2851 + }, + { + "id": "t_connection", + "fg": 2849 + }, + { + "id": "unconnected", + "fg": 2776 + } + ] + }, + { + "id": "t_palisade", + "fg": [ + 2778, + 2777, + 2778, + 2777 + ], + "rotates": true + }, + { + "id": "t_palisade_gate", + "fg": [ + 2165, + 2779, + 2165, + 2779 + ], + "rotates": true + }, + { + "id": "t_palisade_gate_o", + "fg": [ + 2166, + 2780, + 2166, + 2780 + ], + "rotates": true + }, + { + "id": "t_concrete_wall", + "fg": 2790, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2791 + }, + { + "id": "corner", + "fg": 2168 + }, + { + "id": "edge", "fg": 2167 + }, + { + "id": "end_piece", + "fg": 2792 + }, + { + "id": "t_connection", + "fg": 2169 + }, + { + "id": "unconnected", + "fg": 2790 } ] }, + { + "id": [ + "t_secretdoor_concrete_wall_c", + "t_sliding_concrete_wall_c" + ], + "fg": 2167, + "rotates": true + }, + { + "id": "t_secretdoor_concrete_wall_o", + "fg": 2540, + "rotates": true + }, { "id": [ "t_wall_metal", "t_scrap_wall" ], - "fg": 2170, - "bg": 1981, - "rotates": false, + "fg": 2805, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -16995,7 +17264,7 @@ }, { "id": "end_piece", - "fg": 2170 + "fg": 2806 }, { "id": "t_connection", @@ -17003,26 +17272,23 @@ }, { "id": "unconnected", - "fg": 2170 + "fg": 2805 } ] }, { "id": "t_chaingate_l", "fg": 2174, - "bg": 1981, "rotates": false }, { "id": "t_chaingate_c", "fg": 2175, - "bg": 1981, "rotates": false }, { "id": "t_chaingate_o", "fg": 2176, - "bg": 1981, "rotates": false }, { @@ -17031,50 +17297,82 @@ "t_fence_h", "t_fence_v" ], - "fg": 2177, - "bg": 1981, + "fg": 2756, "rotates": true, "multitile": true, "additional_tiles": [ { "id": "center", - "fg": 2177, - "bg": 1981 + "fg": 2752 }, { "id": "corner", - "fg": 2178, - "bg": 1981 + "fg": [ + 2753, + 2754, + 2755, + 2756 + ] }, { "id": "edge", - "fg": 2179, - "bg": 1981 + "fg": [ + 2757, + 2758, + 2757, + 2758 + ] }, { "id": "end_piece", - "fg": 2180, - "bg": 1981 + "fg": [ + 2757, + 2758, + 2761, + 2756 + ] }, { "id": "t_connection", - "fg": 2181, - "bg": 1981 + "fg": [ + 2758, + 2754, + 2752, + 2755 + ] }, { "id": "unconnected", - "fg": 2182, - "bg": 1981 + "fg": 2756 } ] }, + { + "id": "t_fencegate_c", + "fg": [ + 2781, + 2782, + 2781, + 2782 + ], + "rotates": true + }, + { + "id": "t_fencegate_o", + "fg": [ + 2783, + 2784, + 2783, + 2784 + ], + "rotates": true + }, { "id": [ "t_chainfence_posts", "t_support_s" ], "fg": 2183, - "bg": 1981, "rotates": false }, { @@ -17087,9 +17385,8 @@ "t_wall_glass_alarm", "t_reinforced_glass" ], - "fg": 2185, - "bg": 2184, - "rotates": false, + "fg": 2807, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17106,7 +17403,7 @@ }, { "id": "end_piece", - "fg": 2185 + "fg": 2808 }, { "id": "t_connection", @@ -17114,15 +17411,14 @@ }, { "id": "unconnected", - "fg": 2185 + "fg": 2807 } ] }, { "id": "t_reinforced_glass_shutter", - "fg": 2189, - "bg": 2184, - "rotates": false, + "fg": 2809, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17139,7 +17435,7 @@ }, { "id": "end_piece", - "fg": 2189 + "fg": 2810 }, { "id": "t_connection", @@ -17147,15 +17443,14 @@ }, { "id": "unconnected", - "fg": 2189 + "fg": 2809 } ] }, { "id": "t_reinforced_glass_shutter_open", - "fg": 2193, - "bg": 2184, - "rotates": false, + "fg": 2811, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17172,7 +17467,7 @@ }, { "id": "end_piece", - "fg": 2193 + "fg": 2812 }, { "id": "t_connection", @@ -17180,12 +17475,15 @@ }, { "id": "unconnected", - "fg": 2193 + "fg": 2811 } ] }, { - "id": "t_door_c", + "id": [ + "t_door_c", + "t_door_lab_c" + ], "fg": 2197, "bg": 2184, "rotates": false @@ -17199,7 +17497,8 @@ { "id": [ "t_door_b", - "t_door_b_peep" + "t_door_b_peep", + "t_door_lab_b" ], "fg": 2199, "bg": 2184, @@ -17208,7 +17507,8 @@ { "id": [ "t_door_o", - "t_door_o_peep" + "t_door_o_peep", + "t_door_lab_o" ], "fg": 2200, "bg": 2184, @@ -17233,7 +17533,9 @@ { "id": [ "t_door_glass_c", - "t_door_glass_frosted_c" + "t_door_glass_frosted_c", + "t_door_glass_lab_c", + "t_door_glass_frosted_lab_c" ], "fg": 2203, "bg": 2184, @@ -17242,7 +17544,9 @@ { "id": [ "t_door_glass_o", - "t_door_glass_frosted_o" + "t_door_glass_frosted_o", + "t_door_glass_lab_o", + "t_door_glass_frosted_lab_o" ], "fg": 2204, "bg": 2184, @@ -17363,7 +17667,7 @@ "t_metal_floor", "t_scrap_floor" ], - "bg": 2222, + "bg": 2767, "rotates": false }, { @@ -17380,31 +17684,26 @@ "t_pavement_y_bg_dp" ], "fg": 2224, - "bg": 2223, "rotates": false }, { "id": "t_gas_pump", "fg": 2225, - "bg": 2223, "rotates": false }, { "id": "t_gas_pump_smashed", "fg": 2226, - "bg": 2223, "rotates": false }, { "id": "t_radio_tower", "fg": 2227, - "bg": 2223, "rotates": false }, { "id": "t_manhole_cover", "fg": 2228, - "bg": 2223, "rotates": false }, { @@ -17421,9 +17720,8 @@ "t_wall", "t_wall_w" ], - "fg": 2230, - "bg": 1044, - "rotates": false, + "fg": 2793, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17440,7 +17738,7 @@ }, { "id": "end_piece", - "fg": 2230 + "fg": 2794 }, { "id": "t_connection", @@ -17448,15 +17746,31 @@ }, { "id": "unconnected", - "fg": 2230 + "fg": 2793 } ] }, + { + "id": [ + "t_secretdoor_onetime", + "t_secretdoor_wall_c", + "t_sliding_wall_c" + ], + "fg": 2230, + "rotates": true + }, + { + "id": [ + "t_secretdoor_wall_o", + "t_sliding_wall_o" + ], + "fg": 2541, + "rotates": true + }, { "id": "t_wall_r", - "fg": 2234, - "bg": 1044, - "rotates": false, + "fg": 2795, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17473,7 +17787,7 @@ }, { "id": "end_piece", - "fg": 2234 + "fg": 2796 }, { "id": "t_connection", @@ -17481,15 +17795,14 @@ }, { "id": "unconnected", - "fg": 2234 + "fg": 2795 } ] }, { "id": "t_wall_b", - "fg": 2238, - "bg": 1044, - "rotates": false, + "fg": 2797, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17506,7 +17819,7 @@ }, { "id": "end_piece", - "fg": 2238 + "fg": 2798 }, { "id": "t_connection", @@ -17514,15 +17827,14 @@ }, { "id": "unconnected", - "fg": 2238 + "fg": 2797 } ] }, { "id": "t_wall_g", - "fg": 1588, - "bg": 1044, - "rotates": false, + "fg": 2799, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17539,7 +17851,7 @@ }, { "id": "end_piece", - "fg": 1588 + "fg": 2800 }, { "id": "t_connection", @@ -17547,15 +17859,14 @@ }, { "id": "unconnected", - "fg": 1588 + "fg": 2799 } ] }, { "id": "t_wall_y", - "fg": 2245, - "bg": 1044, - "rotates": false, + "fg": 2801, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17572,7 +17883,7 @@ }, { "id": "end_piece", - "fg": 2245 + "fg": 2802 }, { "id": "t_connection", @@ -17580,15 +17891,14 @@ }, { "id": "unconnected", - "fg": 2245 + "fg": 2801 } ] }, { "id": "t_wall_p", - "fg": 2249, - "bg": 1044, - "rotates": false, + "fg": 2803, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -17605,7 +17915,7 @@ }, { "id": "end_piece", - "fg": 2249 + "fg": 2804 }, { "id": "t_connection", @@ -17613,14 +17923,41 @@ }, { "id": "unconnected", - "fg": 2249 + "fg": 2803 } ] }, { "id": "t_scrap_wall_halfway", - "bg": 2253, - "rotates": false + "fg": 2825, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2826 + }, + { + "id": "corner", + "fg": 2827 + }, + { + "id": "edge", + "fg": 2828 + }, + { + "id": "end_piece", + "fg": 2829 + }, + { + "id": "t_connection", + "fg": 2830 + }, + { + "id": "unconnected", + "fg": 2825 + } + ] }, { "id": [ @@ -17898,7 +18235,10 @@ "rotates": false }, { - "id": "f_chair", + "id": [ + "f_chair", + "f_stool" + ], "fg": 2298, "rotates": false }, @@ -18047,6 +18387,11 @@ "fg": 2325, "rotates": false }, + { + "id": "f_firering", + "fg": 2878, + "rotates": false + }, { "id": "f_floor_canvas", "fg": 2326, @@ -18176,7 +18521,7 @@ }, { "id": "f_robotic_arm", - "fg": 2348, + "fg": 2881, "rotates": false }, { @@ -18201,15 +18546,37 @@ "fg": 2351, "rotates": false }, - { - "id": "f_sandbag_half", - "fg": 2352, - "rotates": false - }, { "id": "f_sandbag_wall", - "fg": 2353, - "rotates": false + "fg": 2759, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2763 + }, + { + "id": "corner", + "fg": 2813 + }, + { + "id": "edge", + "fg": 2814 + }, + { + "id": "end_piece", + "fg": 2815 + }, + { + "id": "t_connection", + "fg": 2816 + }, + { + "id": "unconnected", + "fg": 2759 + } + ] }, { "id": "f_shackle", @@ -18337,6 +18704,16 @@ } ] }, + { + "id": "f_tourist_table", + "fg": 2883, + "rotates": false + }, + { + "id": "tourist_table", + "fg": 2882, + "rotates": false + }, { "id": [ "f_tatami", @@ -18350,6 +18727,11 @@ "fg": 2377, "rotates": false }, + { + "id": "f_mailbox", + "fg": 2879, + "rotates": false + }, { "id": "f_trashcan", "fg": 2378, @@ -18430,9 +18812,8 @@ }, { "id": "t_wall_glass", - "fg": 2391, - "bg": 2297, - "rotates": false, + "fg": 2858, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -18449,7 +18830,7 @@ }, { "id": "end_piece", - "fg": 2391 + "fg": 2765 }, { "id": "t_connection", @@ -18457,7 +18838,7 @@ }, { "id": "unconnected", - "fg": 2391 + "fg": 2858 } ] }, @@ -18539,114 +18920,209 @@ "rotates": false }, { - "id": [ - "t_bars", - "t_reb_cage" - ], - "fg": 2405, - "rotates": false, + "id": [ + "t_bars", + "t_reb_cage" + ], + "fg": 2405, + "rotates": false, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 437 + }, + { + "id": "corner", + "fg": 439 + }, + { + "id": "edge", + "fg": 440 + }, + { + "id": "end_piece", + "fg": 440 + }, + { + "id": "t_connection", + "fg": 2406 + }, + { + "id": "unconnected", + "fg": 2405 + } + ] + }, + { + "id": "t_window_bars", + "fg": 440, + "rotates": false, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 437 + }, + { + "id": "corner", + "fg": 439 + }, + { + "id": "edge", + "fg": 440 + }, + { + "id": "end_piece", + "fg": 440 + }, + { + "id": "t_connection", + "fg": 2406 + }, + { + "id": "unconnected", + "fg": 440 + } + ] + }, + { + "id": "t_border_rock", + "fg": 2407, + "rotates": false + }, + { + "id": "f_pillow_fort", + "fg": 2893, + "rotates": true, "multitile": true, "additional_tiles": [ { "id": "center", - "fg": 437 + "fg": 2894 }, { "id": "corner", - "fg": 439 + "fg": [ + 2895, + 2896, + 2897, + 2898 + ] }, { "id": "edge", - "fg": 440 + "fg": [ + 2899, + 2893, + 2899, + 2893 + ] }, { "id": "end_piece", - "fg": 440 + "fg": [ + 2900, + 2893, + 2901, + 2893 + ] }, { "id": "t_connection", - "fg": 2406 + "fg": [ + 2902, + 2903, + 2904, + 2905 + ] }, { "id": "unconnected", - "fg": 2405 + "fg": 2893 } ] }, { - "id": "t_window_bars", - "fg": 440, - "rotates": false, + "id": "t_brick_wall", + "fg": 2768, + "rotates": true, "multitile": true, "additional_tiles": [ { "id": "center", - "fg": 437 + "fg": 2769 }, { "id": "corner", - "fg": 439 + "fg": 2770 }, { "id": "edge", - "fg": 440 + "fg": 2771 }, { "id": "end_piece", - "fg": 440 + "fg": 2772 }, { "id": "t_connection", - "fg": 2406 + "fg": 2773 }, { "id": "unconnected", - "fg": 440 + "fg": 2768 } ] }, { - "id": "t_border_rock", - "fg": 2407, - "rotates": false + "id": [ + "t_secretdoor_brick_wall_c", + "t_sliding_brick_wall_c" + ], + "fg": 2771, + "rotates": true }, { - "id": "t_brick_wall", - "fg": 2408, - "rotates": false, + "id": "t_secretdoor_brick_wall_o", + "fg": 2539, + "rotates": true + }, + { + "id": [ + "t_brick_wall_halfway", + "f_sandbag_half" + ], + "fg": 2817, + "rotates": true, "multitile": true, "additional_tiles": [ { "id": "center", - "fg": 2409 + "fg": 2818 }, { "id": "corner", - "fg": 2410 + "fg": 2819 }, { "id": "edge", - "fg": 2408 + "fg": 2820 }, { "id": "end_piece", - "fg": 2408 + "fg": 2821 }, { "id": "t_connection", - "fg": 2411 + "fg": 2822 }, { "id": "unconnected", - "fg": 2408 + "fg": 2817 } ] }, - { - "id": "t_brick_wall_halfway", - "fg": 2412, - "rotates": false - }, { "id": "t_bulk_tank", "fg": 2413, @@ -18670,6 +19146,11 @@ "fg": 2416, "rotates": false }, + { + "id": "f_autodoc", + "fg": 2880, + "rotates": false + }, { "id": [ "t_chainfence_v", @@ -18944,7 +19425,10 @@ "rotates": false }, { - "id": "t_door_metal_c", + "id": [ + "t_door_metal_c", + "t_door_metal_lab_c" + ], "fg": 2451, "rotates": false }, @@ -18962,7 +19446,10 @@ "rotates": false }, { - "id": "t_door_frame", + "id": [ + "t_door_frame", + "t_door_lab_frame" + ], "fg": 2200, "rotates": false }, @@ -19069,7 +19556,10 @@ "id": [ "t_gates_mech_control", "t_gates_control_concrete", - "t_gates_control_brick" + "t_gates_control_brick", + "t_gates_mech_control_lab", + "t_gates_control_concrete_lab", + "t_gates_control_brick_lab" ], "fg": 2465, "rotates": false @@ -19221,7 +19711,9 @@ "id": [ "t_mdoor_frame", "t_door_metal_o", - "t_door_metal_o_peep" + "t_door_metal_o_peep", + "t_mdoor_lab_frame", + "t_door_metal_lab_o" ], "fg": 2487, "rotates": false @@ -19468,12 +19960,18 @@ "rotates": false }, { - "id": "t_reinforced_door_glass_c", + "id": [ + "t_reinforced_door_glass_c", + "t_reinforced_door_glass_lab_c" + ], "fg": 2524, "rotates": false }, { - "id": "t_reinforced_door_glass_o", + "id": [ + "t_reinforced_door_glass_o", + "t_reinforced_door_glass_lab_o" + ], "fg": 2525, "rotates": false }, @@ -19483,8 +19981,8 @@ "t_sconc_wall", "t_strconc_wall" ], - "fg": 2526, - "rotates": false, + "fg": 2774, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -19501,7 +19999,7 @@ }, { "id": "end_piece", - "fg": 2526 + "fg": 2775 }, { "id": "t_connection", @@ -19509,7 +20007,7 @@ }, { "id": "unconnected", - "fg": 2526 + "fg": 2774 } ] }, @@ -19519,8 +20017,35 @@ "t_sconc_wall_halfway", "t_strconc_wall_halfway" ], - "fg": 2530, - "rotates": false + "fg": 2831, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2832 + }, + { + "id": "corner", + "fg": 2833 + }, + { + "id": "edge", + "fg": 2834 + }, + { + "id": "end_piece", + "fg": 2835 + }, + { + "id": "t_connection", + "fg": 2836 + }, + { + "id": "unconnected", + "fg": 2831 + } + ] }, { "id": "t_rope_up", @@ -19564,49 +20089,6 @@ "fg": 2538, "rotates": false }, - { - "id": [ - "t_secretdoor_brick_wall_c", - "t_sliding_brick_wall_c" - ], - "fg": 2408, - "rotates": true - }, - { - "id": "t_secretdoor_brick_wall_o", - "fg": 2539, - "rotates": true - }, - { - "id": [ - "t_secretdoor_concrete_wall_c", - "t_sliding_concrete_wall_c" - ], - "fg": 2167, - "rotates": true - }, - { - "id": "t_secretdoor_concrete_wall_o", - "fg": 2540, - "rotates": true - }, - { - "id": [ - "t_secretdoor_onetime", - "t_secretdoor_wall_c", - "t_sliding_wall_c" - ], - "fg": 2230, - "rotates": true - }, - { - "id": [ - "t_secretdoor_wall_o", - "t_sliding_wall_o" - ], - "fg": 2541, - "rotates": true - }, { "id": "t_sewage_pipe", "fg": 2542, @@ -19717,8 +20199,8 @@ "t_wall_log", "t_wall_wood" ], - "fg": 2561, - "rotates": false, + "fg": 2788, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -19735,7 +20217,7 @@ }, { "id": "end_piece", - "fg": 2564 + "fg": 2789 }, { "id": "t_connection", @@ -19743,29 +20225,14 @@ }, { "id": "unconnected", - "fg": 2561 + "fg": 2788 } ] }, - { - "id": "t_wall_wood_broken", - "fg": 2163, - "rotates": false - }, - { - "id": "t_wall_wood_chipped", - "fg": 2162, - "rotates": false - }, - { - "id": "t_wall_half", - "fg": 2161, - "rotates": false - }, { "id": "t_wall_wattle", - "fg": 2566, - "rotates": false, + "fg": 2764, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -19782,7 +20249,7 @@ }, { "id": "end_piece", - "fg": 2569 + "fg": 2766 }, { "id": "t_connection", @@ -19790,19 +20257,46 @@ }, { "id": "unconnected", - "fg": 2566 + "fg": 2764 } ] }, { "id": "t_wall_wattle_broken", - "fg": 2571, - "rotates": false + "fg": 2762, + "rotates": true }, { "id": "t_wall_wattle_half", - "fg": 2572, - "rotates": false + "fg": 2843, + "rotates": true, + "multitile": true, + "additional_tiles": [ + { + "id": "center", + "fg": 2844 + }, + { + "id": "corner", + "fg": 2845 + }, + { + "id": "edge", + "fg": 2846 + }, + { + "id": "end_piece", + "fg": 2847 + }, + { + "id": "t_connection", + "fg": 2848 + }, + { + "id": "unconnected", + "fg": 2843 + } + ] }, { "id": "t_water_pump", @@ -19820,8 +20314,8 @@ }, { "id": "t_window_bars_alarm", - "fg": 2575, - "rotates": false, + "fg": 2823, + "rotates": true, "multitile": true, "additional_tiles": [ { @@ -19838,7 +20332,7 @@ }, { "id": "end_piece", - "fg": 2575 + "fg": 2824 }, { "id": "t_connection", @@ -19846,7 +20340,7 @@ }, { "id": "unconnected", - "fg": 2575 + "fg": 2823 } ] }, @@ -19990,7 +20484,10 @@ "rotates": false }, { - "id": "tr_cot", + "id": [ + "tr_cot", + "f_fiber_mat" + ], "fg": 2601, "rotates": false }, @@ -20855,6 +21352,113 @@ "fg": 2727 } ] + }, + { + "id": "overlay_mutation_bio_armor_legs", + "fg": 2733 + }, + { + "id": "overlay_male_mutation_bio_armor_legs", + "fg": 2734 + }, + { + "id": "overlay_mutation_bio_armor_torso", + "fg": 2735 + }, + { + "id": "overlay_male_mutation_bio_armor_torso", + "fg": 2736 + }, + { + "id": "overlay_mutation_bio_armor_arms", + "fg": 2737 + }, + { + "id": "overlay_male_mutation_bio_armor_arms", + "fg": 2738 + }, + { + "id": "overlay_mutation_bio_armor_head", + "fg": 2739 + }, + { + "id": "overlay_male_mutation_bio_armor_head", + "fg": 2740 + }, + { + "id": "overlay_mutation_bio_blaster", + "fg": 2741 + }, + { + "id": "overlay_male_mutation_bio_blaster", + "fg": 2742 + }, + { + "id": "overlay_mutation_bio_deformity", + "fg": 2743 + }, + { + "id": "overlay_male_mutation_bio_deformity", + "fg": 2744 + }, + { + "id": [ + "overlay_mutation_active_bio_blindfold", + "overlay_mutation_active_bio_scent_vision" + ], + "fg": 2745 + }, + { + "id": [ + "overlay_male_mutation_active_bio_blindfold", + "overlay_male_mutation_active_bio_scent_vision" + ], + "fg": 2746 + }, + { + "id": "overlay_mutation_active_bio_night_vision", + "fg": 2747 + }, + { + "id": "overlay_male_mutation_active_bio_night_vision", + "fg": 2748 + }, + { + "id": "overlay_mutation_active_bio_infrared", + "fg": 2749 + }, + { + "id": "overlay_male_mutation_active_bio_infrared", + "fg": 2750 + }, + { + "id": "overlay_mutation_THRESH_TROGLOBITE", + "fg": 2873 + }, + { + "id": "overlay_male_mutation_THRESH_TROGLOBITE", + "fg": 2874 + }, + { + "id": "overlay_mutation_THRESH_MOUSE", + "fg": 2875 + } + ] + }, + { + "file": "tiles_20x20.png", + "sprite_width": 20, + "sprite_height": 20, + "sprite_offset_x": -5, + "sprite_offset_y": -10, + "tiles": [ + { + "id": "overlay_mutation_THRESH_CATTLE", + "fg": 2913 + }, + { + "id": "overlay_male_mutation_THRESH_CATTLE", + "fg": 2914 } ] }, @@ -20944,5 +21548,80 @@ } ] } + ], + "overlay_ordering": [ + { + "id": [ + "bio_armor_legs", + "bio_armor_torso", + "bio_armor_arms" + ], + "order": 500 + }, + { + "id": "bio_armor_head", + "order": 505 + }, + { + "id": "bio_blaster", + "order": 510 + }, + { + "id": "bio_deformity", + "order": 515 + }, + { + "id": [ + "active_bio_blindfold", + "active_bio_scent_vision" + ], + "order": 520 + }, + { + "id": "active_bio_night_vision", + "order": 521 + }, + { + "id": "active_bio_infrared", + "order": 522 + }, + { + "id": [ + "THRESH_SLIME", + "THRESH_PLANT", + "THRESH_INSECT", + "THRESH_SPIDER", + "THRESH_CEPHALOPOD", + "THRESH_FISH", + "THRESH_TROGLOBITE", + "THRESH_RAPTOR", + "THRESH_BIRD", + "THRESH_MOUSE", + "THRESH_RAT", + "THRESH_LUPINE", + "THRESH_FELINE", + "THRESH_BEAST", + "THRESH_CHIMERA", + "THRESH_MEDICAL", + "THRESH_ELFA", + "THRESH_ALPHA", + "THRESH_MARLOSS", + "THRESH_MYCUS" + ], + "order": 5000 + }, + { + "id": "INT_UP_4", + "order": 5500 + }, + { + "id": [ + "THRESH_LIZARD", + "THRESH_CATTLE", + "THRESH_URSINE" + ], + "order": 7000 + } ] -} \ No newline at end of file +} + diff --git a/gfx/RetroDaysTileset/tiles.png b/gfx/RetroDaysTileset/tiles.png index 352d3193d6916..07b2aa2d67e46 100644 Binary files a/gfx/RetroDaysTileset/tiles.png and b/gfx/RetroDaysTileset/tiles.png differ diff --git a/gfx/RetroDaysTileset/tiles_20x20.png b/gfx/RetroDaysTileset/tiles_20x20.png new file mode 100644 index 0000000000000..c725461bfab48 Binary files /dev/null and b/gfx/RetroDaysTileset/tiles_20x20.png differ diff --git a/gfx/ThuztorTileset@/tile_config.json b/gfx/ThuztorTileset@/tile_config.json index e6c939e7e8cd3..9adcbdf262cf8 100644 --- a/gfx/ThuztorTileset@/tile_config.json +++ b/gfx/ThuztorTileset@/tile_config.json @@ -225,6 +225,16 @@ "fg":32, "rotates":false }, + { + "id": "t_thconc_floor", + "fg":32, + "rotates":false + }, + { + "id": "t_strconc_floor", + "fg":32, + "rotates":false + }, { "id":"t_floor_red", "bg":23, @@ -346,23 +356,41 @@ "rotates":false }, { - "id":"t_door_c", + "id": "t_door_c", "fg":49, "bg":23, "rotates":false }, { - "id":"t_door_o", + "id": "t_door_lab_c", + "fg":49, + "bg":32, + "rotates":false + }, + { + "id": "t_door_o", "fg":50, "bg":23, "rotates":false }, + { + "id": "t_door_lab_o", + "fg":50, + "bg":32, + "rotates":false + }, { "id":"t_door_b", "fg":51, "bg":23, "rotates":false }, + { + "id":"t_door_lab_b", + "fg":51, + "bg":32, + "rotates":false + }, { "id":"t_door_locked_interior", "fg":52, @@ -387,6 +415,24 @@ "bg":23, "rotates":false }, + { + "id":"t_mdoor_frame", + "fg":54, + "bg":23, + "rotates":false + }, + { + "id":"t_mdoor_frame_lab", + "fg":54, + "bg":32, + "rotates":false + }, + { + "id":"t_door_frame_lab", + "fg":54, + "bg":32, + "rotates":false + }, { "id":"t_door_boarded", "fg":55, @@ -1564,12 +1610,24 @@ "bg":23, "rotates":false }, + { + "id":"t_door_metal_lab_c", + "fg":225, + "bg":32, + "rotates":false + }, { "id":"t_door_metal_o", "fg":226, "bg":23, "rotates":false }, + { + "id":"t_door_metal_lab_o", + "fg":226, + "bg":32, + "rotates":false + }, { "id":"t_door_metal_locked", "fg":227, @@ -1595,13 +1653,13 @@ "rotates":false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], + "id": [ "t_door_glass_c", "t_door_glass_lab_c", "t_door_glass_frosted_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c" ], "fg":231, "bg":32, "rotates":false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_o", "t_door_glass_lab_o", "t_door_glass_frosted_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_o", "t_reinforced_door_glass_lab_o" ], "fg":232, "bg":32, "rotates":false @@ -12849,7 +12907,13 @@ "rotates":false }, { - "id":"t_gates_mech_control", + "id":"t_gates_control_concrete_lab", + "fg":1834, + "bg" :32, + "rotates":false + }, + { + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab", "t_gates_control_brick_lab" ], "fg":1835, "bg":32, "rotates":false diff --git a/gfx/TsuTileset/tile_config.json b/gfx/TsuTileset/tile_config.json index 8dd52429483a4..52d4ef02a3380 100644 --- a/gfx/TsuTileset/tile_config.json +++ b/gfx/TsuTileset/tile_config.json @@ -186,6 +186,11 @@ "bg":3, "rotates":false }, + { + "id": [ "t_thconc_floor", "t_strconc_floor" ], + "bg": 82, + "rotates":false + }, { "id":"f_rubble", "fg":83, @@ -607,13 +612,13 @@ "rotates":false }, { - "id":"t_door_c", + "id": [ "t_door_c", "t_door_lab_c" ], "fg":74, "rotates":false }, { - "id":"t_door_b", - "fg":78, + "id": [ "t_door_b", "t_door_lab_b" ], + "fg": 78, "rotates":false }, { @@ -622,6 +627,12 @@ "bg":11, "rotates":false }, + { + "id": "t_door_lab_o", + "fg": 75, + "bg": 82, + "rotates":false + }, { "id":"t_door_locked_interior", "fg":74, @@ -638,11 +649,29 @@ "rotates":false }, { - "id":"t_door_frame", + "id": "t_door_frame", "fg":76, "bg":11, "rotates":false }, + { + "id": "t_mdoor_frame", + "fg":76, + "bg":11, + "rotates":false + }, + { + "id": "t_mdoor_lab_frame", + "fg": 76, + "bg": 82, + "rotates":false + }, + { + "id": "t_door_lab_frame", + "fg": 76, + "bg": 82, + "rotates":false + }, { "id":"t_chaingate_l", "fg":374, @@ -679,15 +708,15 @@ "rotates":false }, { - "id":"t_door_metal_c", - "fg":350, + "id": [ "t_door_metal_c", "t_door_metal_lab_c" ], + "fg": 350, "rotates":false }, { - "id":"t_door_metal_o", - "fg":351, - "bg":82, - "rotates":false + "id": [ "t_door_metal_o", "t_door_metal_lab_o" ], + "fg": 351, + "bg": 82, + "rotates":false }, { "id":"t_door_metal_locked", @@ -713,16 +742,22 @@ "rotates":false }, { - "id": [ "t_door_glass_c", "t_door_glass_frosted_c" ], - "fg":358, + "id": [ "t_door_glass_c", "t_door_glass_lab_c", "t_door_glass_frosted_c", "t_door_glass_frosted_lab_c", "t_reinforced_door_glass_c", "t_reinforced_door_glass_lab_c" ], + "fg": 358, "rotates":false }, { - "id": [ "t_door_glass_o", "t_door_glass_frosted_o" ], + "id": [ "t_door_glass_o", "t_door_glass_frosted_o", "t_reinforced_door_glass_o" ], "fg":359, "bg":11, "rotates":false }, + { + "id": [ "t_door_glass_lab_o", "t_door_glass_frosted_lab_o", "t_reinforced_door_glass_lab_o" ], + "fg": 359, + "bg": 82, + "rotates":false + }, { "id":"t_portcullis", "rotates":false @@ -1288,15 +1323,21 @@ "rotates":false }, { - "id":"t_gates_mech_control", - "fg":447, - "bg":82, - "rotates":false + "id": [ "t_gates_mech_control", "t_gates_mech_control_lab" ], + "fg": 447, + "bg": 82, + "rotates":false }, { - "id":"t_gates_control_concrete", - "bg":82, - "fg":447, + "id": [ "t_gates_control_concrete", "t_gates_control_concrete_lab" ], + "bg": 82, + "fg": 447, + "rotates":false + }, + { + "id": [ "t_gates_control_brick", "t_gates_control_brick_lab" ], + "bg": 82, + "fg": 447, "rotates":false }, { diff --git a/json_blacklist b/json_blacklist index f17486c3dee04..b159e79e9139f 100644 --- a/json_blacklist +++ b/json_blacklist @@ -1,13 +1,3 @@ -data/fontdata.json -data/json/bionics.json -data/json/construction.json -data/json/doll_speech.json -data/json/dreams.json -data/json/effects.json -data/json/gates.json -data/json/health_msgs.json -data/json/item_actions.json -data/json/itemgroups/ammo.json data/json/itemgroups/books.json data/json/itemgroups/clothing.json data/json/itemgroups/drugs.json @@ -24,17 +14,10 @@ data/json/itemgroups/monster_drops.json data/json/itemgroups/supplies.json data/json/itemgroups/tools.json data/json/itemgroups/vending_machines.json -data/json/items/ammo.json -data/json/items/ammo_types.json data/json/items/armor/bandolier.json data/json/items/armor/boots.json data/json/items/armor/holster.json data/json/items/chemicals_and_resources.json -data/json/items/comestibles/brewing.json -data/json/items/comestibles/carnivore.json -data/json/items/comestibles/med.json -data/json/items/comestibles/mutagen.json -data/json/items/comestibles/protein.json data/json/items/containers.json data/json/items/fake.json data/json/items/generic/ammolink.json @@ -174,7 +157,6 @@ data/json/npcs/hints.json data/json/npcs/items_generic.json data/json/npcs/missiondef.json data/json/npcs/NC_ARSONIST.json -data/json/npcs/NC_BARTENDER.json data/json/npcs/NC_BOUNTY_HUNTER.json data/json/npcs/NC_COWBOY.json data/json/npcs/NC_DEBUG.json @@ -216,11 +198,8 @@ data/json/recipes/armor/other.json data/json/recipes/armor/storage.json data/json/recipes/armor/suit.json data/json/recipes/armor/torso.json -data/json/recipes/chem/fuel.json data/json/recipes/electronics/parts.json data/json/recipes/electronics/toolmod.json -data/json/recipes/food/brewing.json -data/json/recipes/food/distill.json data/json/recipes/food/dry.json data/json/recipes/food/pasta.json data/json/recipes/other/containers.json @@ -277,8 +256,6 @@ data/json/vehicles/vans_busses.json data/legacy/1/obsolete.json data/legacy/4/boots.json data/legacy/5/vehicle_parts.json -data/mods/alt_map_key/modinfo.json -data/mods/alt_map_key/overmap_terrain.json data/mods/Animatronics/animatronics.json data/mods/Animatronics/bankrupt_pizzeria.json data/mods/Animatronics/dead_animatronics.json @@ -320,9 +297,6 @@ data/mods/Craft_Gunpowder/cgp_ranged.json data/mods/Craft_Gunpowder/cgp_recipes.json data/mods/default.json data/mods/DeoxyMod/Deoxy_vehicle_parts.json -data/mods/DinoMod/dinosaur.json -data/mods/DinoMod/fieldoffice.json -data/mods/DinoMod/regional_overlay.json data/mods/EW_Pack/ew_ammo_handloaded.json data/mods/EW_Pack/ew_ammo.json data/mods/EW_Pack/ew_ammo_t.json diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index 5aaefcb6b5b06..0f78112f122e9 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.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-04 11:59+0800\n" +"POT-Creation-Date: 2019-01-25 21:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2381,6 +2381,46 @@ msgstr "" msgid "reloaded 4.6x30mm" msgstr "" +#: lang/json/AMMO_from_json.py +msgid ".460 Rowland HCFN" +msgstr "" + +#. ~ Description for .460 Rowland HCFN +#: lang/json/AMMO_from_json.py +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 "" + +#: lang/json/AMMO_from_json.py +msgid ".460 Rowland" +msgstr "" + +#. ~ Description for .460 Rowland +#: lang/json/AMMO_from_json.py +msgid "" +".460 Rowland ammunition with 185gr JHP bullets. The .460 Rowland round is " +"designed to emulate hard-hitting .44 magnum in common autoloading pistols. " +"Like the .44, .460 rowland has exceptional power - and recoil. It is almost " +"dimensionally identical to .45ACP, save for having a longer case and deeper " +"seated bullets to prevent ammunition mix-ups." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .460 Rowland FMJ" +msgstr "" + +#. ~ Description for reloaded .460 Rowland FMJ +#: lang/json/AMMO_from_json.py +msgid "" +"A brass-jacketed variant of the .460 Rowland round. This increases " +"penetration slightly at the cost of reduced damage from expansion." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .460 Rowland" +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".50 BMG tracer" msgstr "" @@ -4775,6 +4815,20 @@ msgid "" "travels. It has a lot of storage space." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -5352,7 +5406,7 @@ msgstr "" #. ~ Description for spear strap #: lang/json/ARMOR_from_json.py msgid "" -"A cloth strap tied around the torso for toting spears while keeping your " +"A leather strap tied around the torso for toting spears while keeping your " "hands free. You have to duck to get through doors while one's in it, " "though. Activate to holster/draw a weapon." msgstr "" @@ -5806,6 +5860,19 @@ msgid "" "from rain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -16962,34 +17029,34 @@ msgid "Spice" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" +msgid "Riesling" +msgid_plural "Riesling" msgstr[0] "" msgstr[1] "" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" msgstr[0] "" msgstr[1] "" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" msgstr[0] "" msgstr[1] "" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and pasta." @@ -17016,7 +17083,8 @@ msgstr[1] "" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17027,7 +17095,9 @@ msgstr[1] "" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17038,7 +17108,9 @@ msgstr[1] "" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17049,7 +17121,9 @@ msgstr[1] "" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17060,7 +17134,9 @@ msgstr[1] "" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17155,7 +17231,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17164,7 +17241,9 @@ msgstr "" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's " +"drink of choice." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17198,7 +17277,8 @@ msgstr[1] "" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17259,8 +17339,9 @@ msgstr[1] "" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17272,8 +17353,8 @@ msgstr[1] "" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17322,7 +17403,7 @@ msgstr[1] "" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" @@ -17392,8 +17473,8 @@ msgstr "" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" #: lang/json/COMESTIBLE_from_json.py @@ -18454,7 +18535,10 @@ msgstr[1] "" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18486,8 +18570,8 @@ msgstr[1] "" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18548,7 +18632,9 @@ msgstr "" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who " +"need to stay up late working." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18662,7 +18748,8 @@ msgstr "" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18671,8 +18758,7 @@ msgstr "" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." +msgid "Hot tea with cold milk." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18770,7 +18856,9 @@ msgstr "" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves " +"of the tea plant /Camellia sinensis/." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18821,7 +18909,7 @@ msgstr "" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." +msgid "A minimally seasoned sauce of cooked tomatoes." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18843,7 +18931,9 @@ msgstr[1] "" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18852,7 +18942,7 @@ msgstr "" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." +msgid "A viscous paste of tomato, salt, and vinegar." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18863,7 +18953,9 @@ msgstr[1] "" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or /" +"Sinapis/), vinegar, salt, and spices." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18907,7 +18999,9 @@ msgstr[1] "" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze " +"ferment too long." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18929,7 +19023,9 @@ msgstr[1] "" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." +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 "" #: lang/json/COMESTIBLE_from_json.py @@ -20101,7 +20197,9 @@ msgstr[1] "" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20373,12 +20471,12 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20750,7 +20848,9 @@ msgstr "" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20760,8 +20860,9 @@ msgstr "" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -21239,8 +21340,8 @@ msgstr "" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" #: lang/json/COMESTIBLE_from_json.py @@ -22390,6 +22491,22 @@ msgid "" "it boosts the body's resistance against them. One dose lasts twelve hours." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -23871,67 +23988,67 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -23939,23 +24056,23 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" msgstr[0] "" msgstr[1] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "" @@ -23990,12 +24107,12 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" +msgid "handful of cherries" +msgid_plural "handful of cherries" msgstr[0] "" msgstr[1] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "" @@ -24010,12 +24127,12 @@ msgid "A handful of large, purple plums. Healthy and good for your digestion." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" +msgid "handful of grapes" +msgid_plural "handful of grapes" msgstr[0] "" msgstr[1] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "" @@ -24068,12 +24185,12 @@ msgid "A large and very sweet fruit." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "" @@ -24116,10 +24233,12 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "" @@ -24175,7 +24294,7 @@ msgstr "" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." +msgid "Crisp white cabbage." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -24264,7 +24383,7 @@ msgstr "" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." +msgid "Comes from the gourd family. Not tasty but very juicy." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -24701,6 +24820,10 @@ msgstr[1] "" msgid "Some blackberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -24712,6 +24835,10 @@ msgstr[1] "" msgid "Some blueberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -24723,6 +24850,10 @@ msgstr[1] "" msgid "Some cranberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -24734,6 +24865,10 @@ msgstr[1] "" msgid "Some huckleberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -24745,6 +24880,10 @@ msgstr[1] "" msgid "Some mulberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -24756,6 +24895,10 @@ msgstr[1] "" msgid "Some elderberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -24767,6 +24910,10 @@ msgstr[1] "" msgid "Some raspberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -24778,6 +24925,10 @@ msgstr[1] "" msgid "Some strawberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -24789,6 +24940,10 @@ msgstr[1] "" msgid "Some grape seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -26279,6 +26434,15 @@ msgstr "" msgid "This is definitely not how grandma used to bake them." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "" @@ -27708,6 +27872,19 @@ msgstr[1] "" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -31369,8 +31546,7 @@ msgstr[1] "" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" #: lang/json/GENERIC_from_json.py @@ -31974,7 +32150,8 @@ msgid "" "massive underground complex." msgstr "" -#: lang/json/GENERIC_from_json.py +#: lang/json/GENERIC_from_json.py src/cata_tiles.cpp +#: src/options.cpp msgid "software" msgid_plural "softwares" msgstr[0] "" @@ -32963,6 +33140,17 @@ msgid "" "Useful for a vehicle." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "wind turbine" +msgid_plural "wind turbines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wind turbine +#: lang/json/GENERIC_from_json.py +msgid "A small turbine that can convert wind into electric power." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py msgid "reinforced solar panel" @@ -33976,6 +34164,17 @@ msgstr[1] "" msgid "A complete guide to Zui Quan." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -34681,6 +34880,19 @@ msgstr[1] "" msgid "An empty casing from a 4.6x30mm round." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid ".460 rowland casing" +msgid_plural ".460 rowland casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .460 rowland casing +#: lang/json/GENERIC_from_json.py +msgid "" +"An empty casing from a .460 Rowland round. It looks deceptively like " +"a .45ACP casing." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "5x50mm hull" msgid_plural "5x50mm hulls" @@ -35978,6 +36190,361 @@ msgid_plural "belt ammo links" msgstr[0] "" msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -38071,17 +38638,6 @@ msgid "" "A standard 7-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "LW-12 magazine" -msgstr "" - -#. ~ Description for LW-12 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"A 12-round polymer magazine for use with the Leadworks LLC L39-45 and " -"L39B-45 pistols." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "M1911 extended magazine" msgstr "" @@ -38187,6 +38743,17 @@ msgid "" "4.6x30mm round." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "LW-12 magazine" +msgstr "" + +#. ~ Description for LW-12 magazine +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A 12-round polymer magazine for use with the Leadworks LLC L39-45 and " +"L39B-45 pistols." +msgstr "" + #: lang/json/MAGAZINE_from_json.py msgid "ammo belt .50 BMG" msgstr "" @@ -39319,6 +39886,15 @@ msgid "" "other gun mods." msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "" @@ -40987,6 +41563,10 @@ msgid "" "clumsily moves around, but attacks with a large reserve of acid." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "" @@ -46577,6 +47157,12 @@ msgid_plural "boulder anvils" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -47861,34 +48447,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -47928,8 +48486,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "" "A lightweight handheld cordless circular saw. Spins a circular blade fast " -"enough to cut wood, metal, zombies, or in an emergency, pizza. The blade, " -"while effective in combat, is hard to hit with due to its small size." +"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 @@ -49266,7 +49824,7 @@ msgstr[1] "" #. ~ Description for hammer #: lang/json/TOOL_from_json.py msgid "" -"This is a demagnetized steel hammer with a wooden grip. With a hammer, " +"This is a demagnetized steel claw hammer with a wooden grip. With a hammer, " "nails, and two by fours in your inventory, you could board up adjacent doors " "and windows. It has myriad other uses as well." msgstr "" @@ -49428,8 +49986,8 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "" "This is an ice axe with hammer on its head, a multi-purpose hiking and " -"climbing tool used by mountaineers. It is sturdy enough, so you can use it " -"to pry open closed doors or lift manhole covers." +"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 @@ -52784,6 +53342,158 @@ msgid "" "Some cars can be driven remotely." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper " +"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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a " +"liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a " +"substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely " +"measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -53996,6 +54706,14 @@ msgid_plural "inactive military robots" msgstr[0] "" msgstr[1] "" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and " +"deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -54639,6 +55357,17 @@ msgstr "" msgid "A car wheel." msgstr "" +#: lang/json/WHEEL_from_json.py +msgid "racing wheel" +msgstr "" + +#. ~ Description for racing wheel +#: lang/json/WHEEL_from_json.py +msgid "" +"A wide, smooth wheel intended for racing. The slick surface provides better " +"speed on pavement but penalizes off-road speed." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "armored wheel" msgstr "" @@ -54657,7 +55386,8 @@ msgstr "" msgid "A small wheel from a common garden wheelbarrow." msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/WHEEL_from_json.py +#: lang/json/vehicle_part_from_json.py msgid "bicycle wheel" msgstr "" @@ -54666,6 +55396,11 @@ msgstr "" msgid "A bicycle wheel." msgstr "" +#. ~ Description for bicycle wheel +#: lang/json/WHEEL_from_json.py +msgid "A wide, studded, bicycle wheel intended for off-road biking." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of casters" msgid_plural "sets of casters" @@ -54686,7 +55421,8 @@ msgstr "" msgid "A simple metal wheel." msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/WHEEL_from_json.py +#: lang/json/vehicle_part_from_json.py msgid "motorbike wheel" msgstr "" @@ -54695,6 +55431,11 @@ msgstr "" msgid "A motorbike wheel." msgstr "" +#. ~ Description for motorbike wheel +#: lang/json/WHEEL_from_json.py +msgid "A motorbike wheel, studded for improved off-road performance." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "large steel drum" msgstr "" @@ -54739,6 +55480,17 @@ msgstr "" msgid "A wide wheel. \\o/ This wide." msgstr "" +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "off-road wide wheel" +msgstr "" + +#. ~ Description for off-road wide wheel +#: lang/json/WHEEL_from_json.py +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 "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wooden cart wheel" msgstr "" @@ -54922,6 +55674,10 @@ msgstr "" msgid "Stop field dressing?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop skinning?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop quartering?" msgstr "" @@ -54950,6 +55706,10 @@ msgstr "" msgid "Stop training?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "" @@ -55006,6 +55766,14 @@ msgstr "" msgid "Stop planting seeds?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "" @@ -55110,10 +55878,22 @@ msgstr "" msgid "Stop cutting your hair?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop programming override?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr "" @@ -55185,6 +55965,10 @@ msgstr "" msgid ".45" msgstr "" +#: lang/json/ammunition_type_from_json.py +msgid ".460" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".454" msgstr "" @@ -57997,6 +58781,17 @@ msgstr "" msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you " +"have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "" @@ -59310,21 +60105,6 @@ msgstr "" msgid "The ceiling collapses on you!" msgstr "" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "" - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "" @@ -59866,6 +60646,15 @@ msgstr "" msgid "You feel incredible! You could take on the world!" msgstr "" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "" @@ -59885,26 +60674,25 @@ msgid "You've been struck by lightning, and feel... different." msgstr "" #: lang/json/effects_from_json.py -msgid "Story Denied" +msgid "Religious Offence" msgstr "" -#. ~ Description of effect 'Story Denied'. +#. ~ Description of effect 'Religious Offence'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you " -"have it." +"AI tag used when you offended an NPC with a specific conversation option. " +"This is a bug if you have it." msgstr "" #: lang/json/effects_from_json.py -msgid "Religious Offence" +msgid "I got whisky" msgstr "" -#. ~ Description of effect 'Religious Offence'. +#. ~ Description of effect 'I got whisky'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you offended an NPC with a specific conversation option. " -"This is a bug if you have it." +"AI tag: This merc is happy with the whisky you brought. This is a bug if " +"you have it." msgstr "" #: lang/json/effects_from_json.py @@ -62908,12 +63696,11 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"Developed by Leadworks as a companion sidearm to the L523 modular system, " -"this massive autorevolver fires the powerful .223 round, but suffers high " -"recoil as a result. It has a weighted barrel to make recoil more manageable " -"and a 5-chamber cylinder. Holographics and laser sights built in for " -"additional accuracy. Similar to other Leadworks products it doesn't accept " -"third-party modifications." +"The logical extension of Leadworks' autorevolver series, this massive " +"'sidearm' fires 5.56 NATO to share ammo with a soldier's rifle. The muzzle " +"flash and report of this 5-shot revolver are incredible, producing " +"ballistics similar to .357 Magnum. Similar to other Leadworks products it " +"doesn't accept third-party modifications." msgstr "" #: lang/json/gun_from_json.py @@ -62933,13 +63720,15 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py src/item_factory.cpp msgid "semi-auto" msgstr "" #: lang/json/gun_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py #: lang/json/gunmod_from_json.py -#: src/item_factory.cpp src/turret.cpp +#: lang/json/gunmod_from_json.py src/item_factory.cpp +#: src/turret.cpp msgid "auto" msgstr "" @@ -63772,70 +64561,6 @@ msgid "" "caliber." msgstr "" -#: lang/json/gun_from_json.py -msgid "L2031 Enforcer" -msgid_plural "L2031 Enforcer" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"An \"autorevolver\", this Leadworks LLC six-shooter combines the ease-of-" -"action of a semi-auto with the ease-of-reloading and style of a revolver. " -"It achieved overnight stardom when it appeared in \"Treasure Trail\", a " -"popular space-Western series. Comes with built in holographic and laser " -"sights. Similar to other Leadworks products it doesn't accept third-party " -"modifications." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "L1820 Long Ranger" -msgid_plural "L1820 Long Ranger" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Numbered to bridge the gap between the USian Frontier and modern Civil " -"Defense needs, the Leadworks Long Ranger was designed to give Enforcer users " -"(or anyone using .45 caliber cartridges) a little extra reach while using " -"the same ammunition. Synthetic furniture cost it some charm points from the " -"legendary Winchester rifles it was based upon, but users agree that the " -"forty-five's punch with the reach of a rifle is worth it. Comes with built " -"in holographic and laser sights. Similar to other Leadworks products it " -"doesn't accept third-party modifications." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "L39B-45" -msgid_plural "L39B-45s" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"After the success of the 9x19mm model, Leadworks LLC released an L39B " -"chambered in .45. It soon earned a reputation as one of the most " -"intimidating guns on the market, for firer and target alike. Come with " -"built in red dot and laser sights. Similar to other Leadworks products it " -"doesn't accept third-party modifications." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "L39-45" -msgid_plural "L39-45s" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Capitalizing on the L39B-45's reputation as one of the most intimidating " -"pistols on the market, Leadworks LLC manufactured a semiautomatic model as " -"well. Locking it semi-auto reduced cost and improved performance. Comes " -"with built in red dot and laser sights. Similar to other Leadworks products " -"it doesn't accept third-party modifications." -msgstr "" - #: lang/json/gun_from_json.py msgid "M1911" msgid_plural "M1911s" @@ -63932,6 +64657,72 @@ msgid "" "pistol with a very high capacity, best used against armored opponents." msgstr "" +#: lang/json/gun_from_json.py +msgid "L39-460" +msgid_plural "L39-460s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"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." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "L39B-45" +msgid_plural "L39B-45s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"After the success of their 9x19mm machine pistol, Leadworks LLC developed " +"the L39B-460 from their .460 Rowland semi-autos, intending them to be used " +"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." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "L2031 Enforcer" +msgid_plural "L2031 Enforcer" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"An \"autorevolver\", this Leadworks LLC six-shooter combines the ease-of-" +"action of a semi-auto with the ease-of-reloading and style of a revolver. " +"In addition to ubiquitous .45 ACP, the Enforcer also fires powerful .460 " +"Rowland, offering .44 Magnum performance in a smaller package. It achieved " +"overnight stardom when it appeared in \"Treasure Trail\", a popular space-" +"Western series. Comes with built in holographic and laser sights. Similar " +"to other Leadworks products it doesn't accept third-party modifications." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "L1820 Long Ranger" +msgid_plural "L1820 Long Ranger" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"The Leadworks Long Ranger was designed to give Enforcer users (or anyone " +"using .460/.45 caliber cartridges) a little extra reach while using the same " +"ammunition. Loaded with powerful .460 Rowland ammunition, this rifle offers " +"a competitive replacement to the AR-15 in politically restrictive climates, " +"but was met with disgust from lever action purists because of its synthetic " +"furniture and built in holographic and laser sights. Similar to other " +"Leadworks products it doesn't accept third-party modifications." +msgstr "" + #: lang/json/gun_from_json.py msgid "Barrett M107A1" msgid_plural "Barrett M107A1" @@ -64408,6 +65199,24 @@ msgid "" "Its high degree of accuracy and low recoil are universally praised." msgstr "" +#: lang/json/gun_from_json.py +msgid "H&K MP5SD" +msgid_plural "H&K MP5SDs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Despite its integrated silencer element, it has the same length and shape as " +"an unsilenced submachine gun. Unlike most conventional silenced submachine " +"guns, it fires standard ammunition types with the same effect. The use of " +"special subsonic ammunition is not necessary. The integrated silencer " +"element suppresses the muzzle flash extremely effectively, as a result of " +"which the weapon is also excellent for night operations using low-light " +"amplifiers. No wonder the MP5SD is one of the most accurate silenced " +"submachine guns of its type." +msgstr "" + #: lang/json/gun_from_json.py msgid "Kel-Tec SUB-2000" msgid_plural "Kel-Tec SUB-2000" @@ -67225,6 +68034,40 @@ msgid "" "accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -67322,6 +68165,16 @@ msgid "" "generally safe levels." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "mp5sd integral suppressor" +msgid_plural "mp5sd integral suppressors" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "The integrated suppressor for the mp5sd." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "compact suppressor" msgid_plural "compact suppressors" @@ -70026,6 +70879,12 @@ msgstr "" msgid "Prevents repairing of this item even if otherwise suitable tools exist." msgstr "" +#: lang/json/json_flag_from_json.py +msgid "" +"forces calories and vitamins to be the ones defined in the json, instead of " +"inheriting from ingredients" +msgstr "" + #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" @@ -72229,13 +73088,13 @@ msgid "Analyze blood" msgstr "" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" +msgid "Bonesetting Treatment" msgstr "" #. ~ Sign @@ -72398,6 +73257,13 @@ msgstr "" msgid "it works." msgstr "" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -73578,6 +74444,36 @@ msgid "" "armor, +Perception fire armor." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "" @@ -76587,6 +77483,97 @@ msgid "" "labs. I wonder what was really going on down there." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Bring Jenny a motor for her compressor." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yeah, if you want to risk your neck out there and bring me what I need, I'm " +"not gonna say no. I can't, like, pay you or anything though, you know that " +"right?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Before I get anything going, I'm going to need to set up a compressor. I " +"have a lot of the stuff for that, but I need a large tank for air, and a " +"good sized electric motor - about 10 kg or so. I'm also going to need a 60 " +"liter tank, after that." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Great! Bring it to me when you find one." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. Thanks for offering anyway." +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 "" + +#: lang/json/mission_def_from_json.py +msgid "Any sign of a motor I can use?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's exactly what I need! Want to talk about that tank now?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Huh. This isn't going to work like I thought." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No worries. Let me know if you want to try again." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Jenny a tank for her compressor." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Now that I've got that motor, I can get my compressor mostly built. I will " +"need a tank though." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"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 "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It needs to be a good strong tank, like a big propane tank or something... " +"you could look at fuel storage tanks and things, as long as they're durable " +"enough. Heck, if you get some sheet metal you could probably even weld a " +"good one together." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Any sign of a tank I can use?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Hey, this is perfect, \"tanks\" a bunch. Okay, I'm sorry for that. Anyway, " +"now that I've got the parts, I might be able to build a proof of concept. " +"First I gotta get this thing up and running, and argue with the bean " +"counters about letting me draw power to run it." +msgstr "" + +#: 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 "" + #: lang/json/monster_attack_from_json.py src/monattack.cpp #, c-format, no-python-format msgid "The %1$s impales your torso!" @@ -76678,6 +77665,10 @@ msgstr "" msgid "Enjoyed a hot meal" msgstr "" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "" @@ -76888,6 +77879,10 @@ msgstr "" msgid "Barfed" msgstr "" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "" @@ -77649,8 +78644,8 @@ msgstr "" #. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" -"You heal faster when sleeping and will even recover small amount of HP when " -"not sleeping." +"You heal faster when sleeping and will even recover a small amount of HP " +"when not sleeping." msgstr "" #: lang/json/mutation_from_json.py @@ -77833,7 +78828,7 @@ msgstr "" #. ~ Description for Good Memory #: lang/json/mutation_from_json.py msgid "" -"You have a an exceptional memory, and find it easy to remember things. Your " +"You have an exceptional memory, and find it easy to remember things. Your " "skills will erode slightly slower than usual, and you can remember more " "terrain." msgstr "" @@ -78006,6 +79001,18 @@ msgid "" "unique pleasure to you." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You " +"can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -78132,7 +79139,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" #: lang/json/mutation_from_json.py @@ -78164,7 +79171,7 @@ msgstr "" #. ~ Description for Pretty #: lang/json/mutation_from_json.py msgid "" -"You are a sight to behold. NPCs who care about such thing will react more " +"You are a sight to behold. NPCs who care about such things will react more " "kindly to you." msgstr "" @@ -78199,9 +79206,8 @@ msgstr "" #. ~ Description for Near-Sighted #: lang/json/mutation_from_json.py msgid "" -"Without your glasses, your seeing radius is severely reduced! However, " -"while wearing glasses this trait has no effect, and you are guaranteed to " -"start with a pair." +"Without glasses, your seeing radius is severely reduced! However, you are " +"guaranteed to start with a pair of glasses." msgstr "" #: lang/json/mutation_from_json.py @@ -78210,7 +79216,7 @@ msgstr "" #. ~ Description for Slow Healer #: lang/json/mutation_from_json.py -msgid "You heal a little slower than most; sleeping will heal less lost HP." +msgid "You heal a little slower than most; sleeping will heal less HP." msgstr "" #: lang/json/mutation_from_json.py @@ -78221,7 +79227,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your health recovery through sleeping is severely impaired and causes you to " -"recover only a third of usual HP over time." +"recover only a third of usual HP." msgstr "" #: lang/json/mutation_from_json.py @@ -78232,7 +79238,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You recover barely any health through sleeping - it will heal only one tenth " -"of usual HP over time." +"of usual HP." msgstr "" #: lang/json/mutation_from_json.py @@ -78284,7 +79290,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You simply can not carry as much as people with a similar strength could. " +"You simply cannot carry as much as people with a similar strength could. " "Your maximum weight carried is reduced by 35%." msgstr "" @@ -78407,7 +79413,7 @@ msgstr "" #. ~ Description for Lactose Intolerance #: lang/json/mutation_from_json.py msgid "" -"You, like 75 percent of the world, cannot tolerate milk or milk based " +"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 due to nausea." msgstr "" @@ -78607,7 +79613,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "During moments of great stress or under the effects of stimulants, you may " -"find your hands shaking uncontrollably, severely reducing your dexterity." +"find your hands shaking uncontrollably, severely reducing your Dexterity." msgstr "" #. ~ Description for Hoarder @@ -78678,7 +79684,7 @@ msgstr "" #. ~ Description for Wool Allergy #: lang/json/mutation_from_json.py msgid "" -"You are badly allergic to wool, and can not wear any clothing made of the " +"You are badly allergic to wool, and cannot wear any clothing made of the " "substance." msgstr "" @@ -78712,7 +79718,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " -"easily, and typically use an umbrella and a sunglasses when going out in the " +"easily, and typically use an umbrella and sunglasses when going out in the " "sun." msgstr "" @@ -78752,6 +79758,17 @@ msgid "" "you heal much slower. Stacks with Glass Jaw." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "" @@ -78790,7 +79807,7 @@ msgstr "" #. ~ Description for Cephalopod Eyes #: lang/json/mutation_from_json.py msgid "" -"Your eyes still bulge, yet your pupils look Different somehow. Water " +"Your eyes still bulge, yet your pupils look different somehow. Water " "doesn't seem to cause any trouble at all, though." msgstr "" @@ -79203,8 +80220,8 @@ msgstr "" #. ~ Description for Lynx Fur #: lang/json/mutation_from_json.py msgid "" -"Your fur's grown out significantly around your cheeks and neck. It provides " -"minor protection against attacks." +"Your fur has grown out significantly around your cheeks and neck. It " +"provides minor protection against attacks." msgstr "" #: lang/json/mutation_from_json.py @@ -79226,7 +80243,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've grown a chitin exoskeleton, much like that of an insect. It provides " -"considerable physical protection, but reduces your dexterity by 1. Somewhat " +"considerable physical protection, but reduces your Dexterity by 1. Somewhat " "reduces wet effects." msgstr "" @@ -79238,7 +80255,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've grown a chitin exoskeleton made of thick, stiff plates. It provides " -"excellent physical protection, but reduces your dexterity by 1 and encumbers " +"excellent physical protection, but reduces your Dexterity by 1 and encumbers " "all body parts but your eyes and mouth. Greatly reduces wet effects." msgstr "" @@ -79499,7 +80516,7 @@ msgstr "" msgid "" "Your index fingers have grown into huge talons. After a bit of practice, " "you find that this does not affect your dexterity, but allows for a deadly " -"unarmed attack. They also prevent you from wearing gloves." +"unarmed attack. They also prevent wearing gloves." msgstr "" #: lang/json/mutation_from_json.py @@ -79586,7 +80603,7 @@ msgstr "" #. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" -"Your body produces low-level pheromones which puts mammals at ease. They " +"Your body produces low-level pheromones which put mammals at ease. They " "will be less likely to attack or flee from you." msgstr "" @@ -79720,7 +80737,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your eyes are compound, like those of an insect. This increases your " -"perception by 2 so long as you aren't wearing eyewear." +"Perception by 2 so long as you aren't wearing eyewear." msgstr "" #: lang/json/mutation_from_json.py @@ -79745,7 +80762,7 @@ msgstr "" msgid "" "You have grown large, curved, and wickedly sharp talons in place of your big " "toes. Fortunately, they don't get in the way of your movement. " -"Unfortunately, they do prevent you from wearing footgear." +"Unfortunately, they do prevent wearing footgear." msgstr "" #: lang/json/mutation_from_json.py @@ -79767,7 +80784,7 @@ msgstr "" msgid "" "Your feet have fused into hooves. This allows kicking attacks to do much " "more damage, provides natural armor, and removes the need to wear shoes; " -"however, you can not wear shoes of any kind. Reduces wet effects." +"however, you cannot wear shoes of any kind. Reduces wet effects." msgstr "" #: lang/json/mutation_from_json.py @@ -79976,8 +80993,7 @@ msgstr "" #: lang/json/mutation_from_json.py 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 you from wearing any " -"headwear." +"to make a strong bashing headbutt attack, but prevent wearing any headwear." msgstr "" #: lang/json/mutation_from_json.py @@ -79998,8 +81014,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You have a pair of long, pointed horns, like those of an antelope. They " -"allow you to make a strong piercing headbutt attack, but prevent you from " -"wearing any headwear the is not made of fabric." +"allow you to make a strong piercing headbutt attack, but prevent wearing " +"headwear that is not made of fabric." msgstr "" #: lang/json/mutation_from_json.py @@ -80019,9 +81035,9 @@ msgstr "" #. ~ Description for Antlers #: lang/json/mutation_from_json.py msgid "" -"You have a huge rack of antlers, like those of a moose. They prevent you " -"from hearing headwear that is not made of fabric, but provide a weak " -"headbutt attack." +"You have a huge rack of antlers, like those of a moose. They allow you to " +"make a weak headbutt attack, but prevent wearing headwear that is not made " +"of fabric." msgstr "" #: lang/json/mutation_from_json.py @@ -80043,7 +81059,7 @@ msgstr "" msgid "" "You have a pair of antennae. They allow you to detect the presence of " "monsters up to a few tiles away, even if you can't see or hear them, but " -"prevent you from wearing headwear that is not made of fabric." +"prevent wearing headwear that is not made of fabric." msgstr "" #: lang/json/mutation_from_json.py @@ -80349,8 +81365,8 @@ msgstr "" msgid "" "You've had a revelation: by killing the weaker creatures, who would only die " "anyway, you preserve resources for those better able to survive. You are " -"less bothered by death of others: their own weakness invited these fates " -"upon them." +"less bothered by the deaths of others: their own weakness invited these " +"fates upon them." msgstr "" #: lang/json/mutation_from_json.py lang/json/npc_class_from_json.py @@ -80361,8 +81377,8 @@ msgstr "" #. ~ Description for Hunter #: lang/json/mutation_from_json.py msgid "" -"Your brain has a lot more in common with predatory animal than a human, " -"making it easier to control misplaced reactions to death of your prey. " +"Your brain has a lot more in common with a predatory animal than a human, " +"making it easier to control misplaced reactions to the death of your prey. " "Additionally, combat skills, which you use to hunt, are easier to learn and " "maintain." msgstr "" @@ -80387,8 +81403,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your mind and brain have adapted to your new place in the world: as one on " -"top the food chain. You can effortlessly master and maintain combat skills, " -"but your critical thinking has atrophied further." +"top of the food chain. You can effortlessly master and maintain combat " +"skills, but your critical thinking has atrophied further." msgstr "" #: lang/json/mutation_from_json.py @@ -80397,7 +81413,7 @@ msgstr "" #. ~ Description for Sapiovore #: lang/json/mutation_from_json.py -msgid "The hairless apes are as good eating as any other meat." +msgid "The hairless apes make as good eating as any other meat." msgstr "" #: lang/json/mutation_from_json.py @@ -80456,8 +81472,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "A set of insect-like mandibles have grown around your mouth. They allow you " -"to eat faster and provide a slicing unarmed attack, but prevent you from " -"wearing mouthwear. Slightly reduces wet effects." +"to eat faster and provide a slicing unarmed attack, but prevent wearing " +"mouthwear. Slightly reduces wet effects." msgstr "" #: lang/json/mutation_from_json.py @@ -80808,7 +81824,7 @@ msgstr "" #. ~ Description for Insanely Smart #: lang/json/mutation_from_json.py msgid "" -"Your skull bulges noticeably with your impressive brain. Intelligence + 7" +"Your skull bulges noticeably due to your impressive brain. Intelligence + 7" msgstr "" #: lang/json/mutation_from_json.py @@ -81137,7 +82153,7 @@ msgstr "" #. ~ Description for Glorious #: lang/json/mutation_from_json.py msgid "" -"You are incredibly beautiful. People cannot help themselves for your " +"You are incredibly beautiful. People cannot help themselves due to your " "charms, and will do whatever they can to please you." msgstr "" @@ -81160,7 +82176,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your face resembles that of a bull, with a significant snout. It looks " -"fearsome but prevents you from wearing mouthgear." +"fearsome but prevents wearing mouthgear." msgstr "" #: lang/json/mutation_from_json.py @@ -81171,8 +82187,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your jaw and nose have extended into a wolfish muzzle. It lends itself to " -"biting in combat and looks impressive, but prevents you from wearing " -"mouthgear." +"biting in combat and looks impressive, but prevents wearing mouthgear." msgstr "" #: lang/json/mutation_from_json.py @@ -81193,7 +82208,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your jaw and nose have extended into a bearish muzzle. You could bite with " -"it, and it looks impressive, but it prevents you from wearing mouthgear." +"it, and it looks impressive, but it prevents wearing mouthgear." msgstr "" #: lang/json/mutation_from_json.py @@ -81225,8 +82240,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your face and jaws are a shorter version of those found on alligators. They " -"look NASTY-as do the bite wounds they can inflict-but prevent you from " -"wearing mouthgear." +"look NASTY--as do the bite wounds they can inflict--but prevent wearing " +"mouthgear." msgstr "" #: lang/json/mutation_from_json.py @@ -81386,7 +82401,7 @@ msgstr "" #. ~ Description for Very Sleepy #: lang/json/mutation_from_json.py msgid "" -"You find yourself needing to sleep quite often. You'll spend about half " +"You find yourself needing to sleep quite often. You'll spend about half of " "your time in or around bed." msgstr "" @@ -81475,7 +82490,7 @@ msgstr "" #. ~ Description for Webbed Hands #: lang/json/mutation_from_json.py msgid "" -"Your hands and feet are heavily webbed, reducing your dexterity by 1 and " +"Your hands and feet are heavily webbed, reducing your Dexterity by 1 and " "causing problems with gloves. However, you can swim much faster. Slightly " "decreases wet penalties." msgstr "" @@ -81499,7 +82514,7 @@ msgstr "" #. ~ Description for Broad Paws #: lang/json/mutation_from_json.py msgid "" -"Your paws are much larger now. Manual dexterity is is difficult: permanent " +"Your paws are much larger now. Manual dexterity is difficult: permanent " "hand encumbrance of 20, serious problems crafting, and no gloves. But you " "can swim more effectively." msgstr "" @@ -81787,8 +82802,8 @@ msgstr "" #. ~ Description for Roots #: lang/json/mutation_from_json.py msgid "" -"It's about time you started developing a root system. When reading, fishing " -"from, waiting, or otherwise being stationary for a while on diggable " +"It's about time you started developing a root system. When reading, " +"fishing, waiting, or otherwise being stationary for a while on diggable " "terrain, you'll extract nutrients and water from the soil." msgstr "" @@ -81990,7 +83005,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your arms have transformed into tentacles, resulting in a bonus of 1 to " -"dexterity, permanent hand encumbrance of 30, and inability to wear gloves. " +"Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. " "Somewhat decreases wet penalties." msgstr "" @@ -82022,7 +83037,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your arms have transformed into four tentacles, resulting in a bonus of 1 to " -"dexterity, permanent hand encumbrance of 30, and inability to wear gloves. " +"Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. " "You can make up to 3 extra attacks with them. Somewhat decreases wet " "penalties." msgstr "" @@ -82035,7 +83050,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Your arms have transformed into eight tentacles, resulting in a bonus of 1 " -"to dexterity, permanent hand encumbrance of 30, and inability to wear " +"to Dexterity, permanent hand encumbrance of 30, and inability to wear " "gloves. You can make up to 7 extra attacks with them. Somewhat decreases " "wet penalties." msgstr "" @@ -82098,7 +83113,7 @@ msgstr "" #. ~ Description for Bird #: lang/json/mutation_from_json.py msgid "" -"You're sure you'll fly someday. In the meantime, there's still nests to " +"You're sure you'll fly someday. In the meantime, there are still nests to " "build." msgstr "" @@ -82491,7 +83506,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You were just through with the administrative formalities for your residency " -"when the cataclysm struck. \"Your\" hospital was overrun and evacuated, but " +"when the Cataclysm struck. \"Your\" hospital was overrun and evacuated, but " "there's always work for a good doctor." msgstr "" @@ -82502,7 +83517,7 @@ msgstr "" #. ~ Description for Skater #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the cataclysm, " +"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 "" @@ -82514,7 +83529,7 @@ msgstr "" #: lang/json/mutation_from_json.py 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 were." +"the Cataclysm struck. Time to see just how good you really are." msgstr "" #: lang/json/mutation_from_json.py @@ -82614,6 +83629,24 @@ msgstr "" msgid "Has Level 2 Construction Built" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "" @@ -82771,11 +83804,24 @@ msgid "" "it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Survivor Story" +msgstr "" + +#. ~ Description for Survivor Story #. ~ Description for Survivor +#. ~ Description for Survivor Story +#. ~ Description for Survivor +#. ~ Description for Survivor Story #: lang/json/mutation_from_json.py msgid "This NPC could tell you about how they survived the cataclysm" msgstr "" +#. ~ Description for Survivor Story +#: lang/json/mutation_from_json.py +msgid "cop3" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Agriculture Training" msgstr "" @@ -83340,20 +84386,33 @@ msgstr "" msgid "I'm bugged - I shouldn't talk to you." msgstr "" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py -#: lang/json/npc_from_json.py -msgid "Captive" +#: lang/json/npc_class_from_json.py +msgid "Beggar" msgstr "" #: lang/json/npc_class_from_json.py -msgid "I got captured by those jerks." +msgid "Mercenary" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Fighting for the all-mighty dollar." 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 "" +#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_from_json.py +msgid "Captive" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I got captured by those jerks." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "I got locked up those yahoos." msgstr "" @@ -83660,6 +84719,38 @@ msgstr "" msgid "Psycho" msgstr "" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "refugee" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Jenny Forcette" +msgstr "" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "" @@ -84839,75 +85930,83 @@ msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" +msgid "veterinarian clinic" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "animal pound" +msgid "museum" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "animal shelter" +msgid "mortuary" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "antique store" +msgid "laundromat" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "arcade" +msgid "jewelry store" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "bowling alley" +msgid "2-story motel" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "boxing gym" +msgid "Large Office Tower" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "dojo" +msgid "home improvement store" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "fire station" +msgid "animal pound" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "gardening supply" +msgid "animal shelter" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" +msgid "antique store" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" +msgid "arcade" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" +msgid "bowling alley" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "laundromat" +msgid "boxing gym" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "noname" +msgid "fitness gym" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "mortuary" +msgid "dojo" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "museum" +msgid "fire station" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" +msgid "gardening supply" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "abandoned drive-through" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "noname" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -85147,14 +86246,6 @@ msgstr "" msgid "projects" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "" @@ -85271,6 +86362,34 @@ msgstr "" msgid "regional dump" msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -89447,6 +90566,112 @@ msgid "" "commercial robots, but you never thought your survival might depend on it." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -92294,7 +93519,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" #: lang/json/snippet_from_json.py @@ -92318,22 +93543,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" @@ -92342,7 +93565,7 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "" #: lang/json/snippet_from_json.py @@ -92358,17 +93581,15 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"There is often more then one way to achieve something. Think outside of the " -"box." +msgid "There's usually more than one way to do things. Think outside the box." msgstr "" #: lang/json/snippet_from_json.py @@ -92399,12 +93620,13 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" #: lang/json/snippet_from_json.py @@ -92414,8 +93636,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" #: lang/json/snippet_from_json.py @@ -92438,15 +93659,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" +msgid "Why walk when you can use a car? Or a tank?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" #: lang/json/snippet_from_json.py @@ -92499,7 +93720,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" @@ -92531,9 +93752,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" #: lang/json/snippet_from_json.py @@ -92557,7 +93776,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -92574,9 +93793,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -92592,17 +93809,76 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -97222,6 +98498,67 @@ msgstr "" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "" +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "" @@ -97686,7 +99023,7 @@ msgstr "" msgid "fella" msgstr "" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "" @@ -98366,6 +99703,34 @@ msgstr "" msgid "" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Can I get out and walk? This vehicle is too small." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "How about we make the next vehicle a convertible?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "This vehicle is too small." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm not a cortionist!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can't fit in your tiny human vehicle." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "This sucks. I'm too big." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I don't like being a mutant crammed into your tiny little vehicle." +msgstr "" + #: lang/json/snippet_from_json.py msgid " Fire in the hole!" msgstr "" @@ -98762,6 +100127,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "" @@ -98778,6 +100155,10 @@ msgstr "" msgid "What's that noise?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "" @@ -98787,7 +100168,7 @@ msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py @@ -98795,7 +100176,7 @@ msgid "Did you hear that? Sounded like" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -98931,6 +100312,10 @@ msgstr "" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "" @@ -98943,10 +100328,6 @@ msgstr "" msgid "Z's" msgstr "" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -102250,20 +103631,20 @@ msgstr "" msgid "Never mind, I'm not interested." msgstr "" -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp #: src/game.cpp -#: src/game.cpp src/handle_action.cpp #: src/handle_action.cpp #: src/handle_action.cpp src/iexamine.cpp #: src/iexamine.cpp #: src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp -#: src/iuse_actor.cpp src/npctalk.cpp #: src/npctalk.cpp -#: src/pickup.cpp src/player.cpp +#: src/npctalk.cpp src/pickup.cpp src/player.cpp #: src/player.cpp -#: src/veh_interact.cpp +#: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "" @@ -102361,6 +103742,42 @@ msgstr "" msgid "I can't leave the shelter without equipment." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Relax and chat with me for a while..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now, we've got a moment, I was just thinking it's been a month or so " +"since... since all this, how are you coping with it all?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh you know, not bad, not bad..." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I don't know, look for supplies and other survivors I guess." msgstr "" @@ -103323,6 +104740,36 @@ msgstr "" msgid "Interesting..." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Mind if we just chat for a bit?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "It's fine, we've got a moment." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Good point, let's find a more appropriate place." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You're right. Forget I said anything, let's get moving." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you want to talk about?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, never mind." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I'm not in charge here, you're looking for someone else..." msgstr "" @@ -103622,6 +105069,267 @@ msgid "" "yourself among the most powerful men left in the world." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical " +"condition, don't have any useful skills, and I'm terrified of and " +"violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just " +"want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further " +"damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit " +"here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help " +"us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us " +"squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "" @@ -104260,6 +105968,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -104304,6 +106020,66 @@ msgstr "" msgid "This an error! npc allies 2 test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "" @@ -104316,6 +106092,10 @@ msgstr "" msgid "This is a complex nested test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a conditional trial response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is a u_add_effect - infection response" msgstr "" @@ -104348,10 +106128,38 @@ msgstr "" msgid "This is a multi-effect response" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How did you come to be a merc working for the Free Merchants, anyway?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, you got your whisky. Tell me that story." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's " @@ -104592,6 +106400,51 @@ msgid "" "some more. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before , I was a cop. I got shot just a couple days before " +"everything went down... I made a bad call in a drug bust and a scumbag got " +"me right in the gut, it was barely stopped by my vest. I took some pretty " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do when you found out about the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first I wanted to help. The riots, fighting in the streets, it was too " +"much for me to just sit in my house and hear about it on the news. Then a " +"buddy of mine called me from just off the front lines. He'd been hurt and " +"he wasn't making much sense, but what he told me... well, you can imagine " +"the kind of stuff he told me. Everything the worst of the internet was " +"making up, and more. Instead of packing up to try to volunteer back onto " +"active duty, I took his advice and packed up to leave. My house was on the " +"edge of town and the riots hadn't reached it yet, but from what I'd heard it " +"was smarter to get out than to hold tight. I slipped out that night, took " +"my quad out, and camped a few days in the woods, waiting for it to blow " +"over. It never did." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it like, surviving out there with an injury?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly, probably better than it sounds. I had a good bug-out bag, a nice " +"tent, a lot of good stuff. I hadn't suffered any internal organ damage, my " +"stomach muscles were just really badly bruised, and I'd already had some " +"good time to recover. I think it kept me from doing anything too stupid, " +"and believe me there was a high chance of that. For a long time I had these " +"Rambo visions of rushing into town and saving everyone, but I was still too " +"immobile. By the time I had my strength back, it wasn't an option... we " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I was just sittin' in lockup. They took me in the night before, for a " @@ -104617,6 +106470,40 @@ msgid "" "and they kept trying to arrest me." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How did you keep from getting arrested?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for in the first place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Kept outta their line of sight, is a big part of it. Don't let those " +" flyin' cameras get you, you know? If they do, they call for backup " +"from the big guns, and then, well, I hope you like gettin' tazed and shoved " +"in the back of a van. I kept my head down until I got past the worst of it, " +"but then one of the eyebots recognized me and I had to book it. I " +"was just lucky the bots it called had blown their wad on some giant-ass " +"slime beast and were tryin' to get me with their short range shit. I wound " +"up on the edge of town layin' low under an abandoned RV for a few hours, " +"then slipped out in the night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Bullshit, that's what. The assholes busted me on possession, wasn't even my " +"fuckin' stash. I don't do crack, man, that shit's nasty, I was just " +"carryin' it for my buddy Johnny. Y'know, this might be a hellhole " +"now, but if I've seen the last power-trippin' asshole cop, it might all be " +"worth it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was lucky for . I was squatting in a warehouse out " @@ -104626,6 +106513,48 @@ msgid "" "about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I " +"had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good " +"with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "" "OK, this is gonna sound crazy but I, like, I knew this was going to happen. " @@ -104740,6 +106669,38 @@ msgid "" "monsters. I guess I was getting desperate." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "And that's it? You spent months just living off the land?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Not exactly. After a while, I got brave. I started venturing towards the " +"outskirts of town, picking off zombies here and there. I learned about " +"travelling in at night to avoid all but those shadow-zombies, and " +"that got me pretty far. Eventually I cleared out a cozy little nook for " +"myself and started really feeling comfortable. I guess I got a bit " +"complacent." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Complacent?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I thought I had those damned figured out. I got braver, started " +"heading out by day more and more. One of those screamer zombies spotted me " +"and called in a horde, with a giant beasty at the head of it, the " +"size of a volkswagen and all covered in bone plates. I know when I'm " +"outclassed. The big guy was held back by his own horde of buddies, and I " +"managed to book it back to my place. I closed the windows, locked it down, " +"but it was too late. The giant followed me and just started hammering right " +"through the walls. I grabbed what I could and made for the horizon. Last I " +"saw of my squat, it was collapsing on the bastard. For all I know, it died " +"in the crash, but I am not going back to find out." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Same as most people who didn't get killed straight up during the riots. I " @@ -104781,6 +106742,54 @@ msgid "" "to make it out. I never looked back." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How did you survive after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sheer luck I guess. I went the absolute wrong way, into town, and wound up " +"stuck in the subway system. I spent a few days living off vending machine " +"food. Not the best eating, but I pulled through. At least there weren't so " +"many zombies down there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What got you out of the subway?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Straight up hunger. I didn't have any great light source down there, and I " +"didn't have much food. I was slipping up and down to the station to buy " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Straight up hunger. I didn't have any great light source down there, and I " +"didn't have much food. I was slipping up and down to the station to buy " +"from the vending machines, but once I ran out of cash I had to think of " +"something else. I started raiding the surrounding area by night, and built " +"a decent little base under there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I didn't meet you in the subway though. You left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I had it pretty good there, but eventually I just started going a bit " +"nuts. Always dark, a bit cold, living off scavenged junk food... a soul can " +"only live like that for so long. When the weather above ground got warmer " +"and the daylight hours got longer I decided to get a bit braver. I'd " +"learned enough about the that I was able to live pretty well after " +"that. I've camped a few places, scavenged berries and whatnot, lived a " +"pretty good life compared to those first few months." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They were shipping me with a bunch of evacuees over to a refugee center, " @@ -104898,7 +106907,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's a story for another day. I don't really like thinking about it." +msgid "Maybe another time. I don't really like thinking about it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -104916,14 +106925,59 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from " -"the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " +"the UK. I was here doing my PhD at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flea-ridden " "little motel on the side of the road. When I got up for whatever was going " "to pass for breakfast, the fat bloody proprietor was sitting at his desk, " "wearing the same grubby clothes from the night before. I thought he had " "just slept there, but when he looked at me... well, you know what those Zed-" "eyes look like. He lunged, and I reacted without thinking. Smacked him on " -"the head with my tablet." +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you studying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wandered for a little while around the grounds, letting the adrenaline " +"fade, hoping for some kind of idea what to do. I was out in the middle of " +"nowhere, and I didn't know the area at all. I wasn't certain if I should " +"head back to Hanover, and try to get my belongings, or stay out where I " +"was. Finally, I decided to rest a while until I knew what was going on. " +"The internet told me most of what I needed; I'm sure you saw Twitter in " +"those days. Even if I'd thought it wise to go back all the way to New " +"Hampshire, I was far too scared." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of the motel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yes. Simple hunger. The vending machines sold only peanuts and biscuits. " +"I wasn't about to rely on that for survival. I stayed long enough to " +"realize no one was going to come for me, then packed up what I could and " +"drove off. Eventually my car was caught in a downpour of acid rain that " +"stripped the tires and left me to carry on on foot, living the life of a " +"hunter gatherer. Honestly, I think I eat better this way than I did as a " +"grad student." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was in biochemistry. Specifically, if you're interested, I was studying " +"the folding of non-standard nucleic acids into enzyme-like structures. It " +"sounds more interesting than it was; most of my time was spent cursing at " +"computer screens and wishing we had more information on threose chains at " +"unusual temperatures and pressures for modeling." msgstr "" #: lang/json/talk_topic_from_json.py @@ -105143,6 +107197,21 @@ msgid "" "just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was at work at the hospital, when it all went down. It's a bit of a " +"blur. For a while there were weird reports, stuff that sounded unbelievable " +"about patients getting back up after dying, but mostly things were business " +"as usual. Then, towards the end, stuff just skyrocketed. We thought it was " +"a Chinese attack, and that's what we were being told. People coming in " +"crazed, covered in wounds from bullets and bites. About halfway through my " +"shift I... well, I broke." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a " @@ -105163,10 +107232,18 @@ msgstr "" msgid "Suck it up. If we're going to work together I need to know you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What was it that 'broke' you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Sorry... I'll let you be." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "A young mother. I know she was a mother, because I delivered her baby. " @@ -105543,7 +107620,21 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Just another tale of love and loss. Not something I like to tell." +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You said you lost someone." msgstr "" #: lang/json/talk_topic_from_json.py @@ -105731,6 +107822,103 @@ msgid "" "hit in the head really hard. Or both. Both seems likely." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days, " +"but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids " +"around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember " +"Bugs Bunny but I don't remember any time I sat down and watched a Bugs Bunny " +"show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it? " +"Who I am now started two days into it. I was on the run from a big-ass hell " +"zombie, running like I'd always been doing, when I found a steel baseball " +"bat just laying on the ground. I took it as a sign and beat that 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of " +"us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get " +"mad. Who I was is gone. Dead. I don't give a shit about your 'healthy', " +"don't ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't even know about right away. I was way out, away " @@ -105941,7 +108129,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." +msgid "[$1000] You have a deal." msgstr "" #: lang/json/talk_topic_from_json.py @@ -105964,6 +108152,14 @@ msgstr "" msgid "Thanks! What was it you were saying before?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks! " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice try. You want the maps, you pay up." msgstr "" @@ -105976,6 +108172,125 @@ msgstr "" msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying " +"to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The " +"other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -106157,6 +108472,163 @@ msgstr "" msgid "I'm sorry about 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm not looking for a friend, but I've paid my dues and earned my way. You " +"gotta pony up too. We're stuck with each other for a bit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Don't mouth off to me. I know where everyone else working for me comes " +"from. If I'm going to let you stand behind me with a loaded gun, you're " +"going to toe the line too." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is this enough whisky for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. Let's talk business, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine, have it your way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No dice. You asked me to come along. This is what you get. If you don't " +"like it, I'll take my fee and go back to the center. Ain't hard to find " +"contracts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine, then. Let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have it your way." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +", you're just gonna keep badgering me about this forever, aintcha. " +"Fine. Bring me a bottle of single malt, we share a drink, I tell you the " +"story." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll get back to you on that." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, yeah, this is a good choice. Hold on to it for me, let's have a drink " +"later. Right now we're practically swimming in good whisky, but some day " +"the last bottle will get drunk. It's gonna be a long time before any of us " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "You owe me a story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Mostly I just wanted to get some scotch out of you. There really ain't much " +"of a story. I was in the marines, years ago. After that, did security " +"contract work. I was out guarding some dump of a warehouse when the " +"apocalypse rolled through town. I was out on the edge of town, armed, and " +"know when to not pick a fight, so I didn't get killed. Wound up recruited " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why was a guy with your skillset guarding a warehouse? Must've been some " +"warehouse." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was working for the Free Merchants like?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was working for the Old Guard like?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for that. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Hadn't thought about it in ages, but now that you mention it, that was " +"a weird job. It was just a boarded up warehouse in the middle of nowhere, " +"and I was not a cheap contractor in those days. Coulda got any fat 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Fucking dull. Caravan patrols were a bit more fun, for a while, but a guy " +"can only eat so much road dust. Guarding that pile of bricks full of sad-" +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why was someone with your skillset guarding a warehouse? Must've been some " +"warehouse." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Good work, and some fun stuff, but risky. Without a few hands at my side " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -106282,6 +108754,364 @@ msgid "" "lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I " +"had cold feet though. Anyway we were getting hitched at the church. Lucky " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff " +"from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hello again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice meeting you. What are you doing on that computer?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Jenny. What are you up to these days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice meeting you. I'd best get going, though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry Jenny, I can't stay to chat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just puttering around. I'm still a bit too shell-shocked to do very much. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What's it like living here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Good luck with that. I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Living here? Yeah, I guess I live here now. It's... it's weird. We're " +"crowded into this tiny space, I don't know these people, but we're sharing " +"bathrooms and we've all been through the same stuff. It's not great. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me anything about the other refugees here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know the other folks very well yet. There's Boris, Garry, and Stan, " +"they seem to keep to each other. They've gone through something, but I " +"haven't pried. Dana and her husband lost their baby, that was a big deal " +"right when they arrived. There's that counsellor lady with the unusual " +"name, she's nice enough. Fatima just showed up a little while ago, but I've " +"been trying to get to know her better, I think we've at least got our " +"professional stuff in common a bit. I haven't really spoken much to anyone " +"else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was that you said about living here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I recently came into possession of this mold for making high-calibre air " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you planning?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, these things are a standard .30 calibre. They should be compatible " +"with any similar rifle barrel. It would be pretty easy to repurpose some " +"rifle parts into large air weapons that we could use without relying on " +"gunpowder, and without so much noise. I'm still drawing up an actual design " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's been over a month now, so I guess I'm starting to get used to it. " +"Things were pretty rough after Sean died, but it wasn't our first big loss " +"and it won't be the last I guess. I've made a couple friends, and in a " +"weird way we're all like family. We were all hoping they'd let us " +"downstairs sooner than this though. We're never quite sure if there's going " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said you were planning?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"About a month ago, I got a mold for making high-calibre air rifle bullets. " +"I've been designing some turrets that would use a central air system to " +"power pneumatic rifle turrets around the center. It's a lot easier than " +"trying to make gunpowder!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about those turrets." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds interesting, talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They're pretty big. This isn't something you'd carry around with you. They " +"fire .30 cal bullets using compressed air that we'd make inside the basement " +"and then pipe up to individual storage tanks for the guns that would be good " +"for a few hundred shots each. The design should be capable of auto or semi-" +"auto fire, at a range that's pretty comparable to a gunpowder-based weapon. " +"It takes out some of the most limited parts of ranged weapons: no gunpowder, " +"no brass casings, just lead that we melt into my mold. It's not soundless, " +"but it's not as loud as a chemical weapon. There are tons of advantages. " +"Only trouble is, I can't convince the Free Merchants to give me the parts I " +"need." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there some way I can help you get the stuff you need?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's good and there's bad. We're all pretty sick of being cooped up in " +"here for months, never knowing if there's going to be food to eat or not. " +"It's starting to look like they're never going to let us go down to the " +"secure basement, and none of us have slept well since we were brought in. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's getting bad. We've been stuck in here for months, nothing changing, " +"nothing improving. We can't go outside, we don't have enough to eat, and we " +"didn't choose to be with each other. I don't know how long we can stay like " +"this before somebody snaps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"For better or worse, we're a community now. Fatima and I work together a " +"fair bit, and I consider Dana, Draco, and Aleesha my friends, and so of " +"course I've gotten to know Dana's husband Pedro too. The Borichenkos are " +"their own sweet brand of messed up, like all of us. The Singhs have each " +"other, and keep mostly to themselves. Vanessa and I don't see eye to eye, " +"but I'm still glad she's here. Uyen and Rhyzaea are always bickering about " +"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 "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about the Free Merchants?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about Fatima?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What has made you friends with Dana, Draco, and Aleesha?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about the Borichenkos?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about the Singhs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about the others?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said earlier?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They run this place, and they don't run a charity. We get paid for working " +"around the place, maintaining it, what have you, and we trade cash for " +"food. The thing is, supply and demand and all... there's a lot more cash " +"than food around. It's easier to buy a laptop than a piece of beef jerky, " +"and there's no sign of that getting better. The balance is way off right " +"now, a hard day of work barely gets you enough to fill your belly. I " +"shouldn't bitch too much though. I don't know much better way to run it, " +"although rumour is that the folks living downstairs have it a lot easier " +"than we do. I try not to think too much on that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Fatima's a sweety, but she's a total dork. I know, I know, it's backwards " +"for the engineer to call the heavy duty mechanic a nerd, but hey. I call it " +"like it is. She and I have been doing some odd jobs around the upstairs " +"here, fixing up old machinery and things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, Dana lost her baby right after , in a bus rollover. " +"She was lucky to make it out alive. She and Pedro had one of the rougher " +"trips here, I guess. We just kinda click as friends, I'm grateful there's " +"someone else here I can really get along with. Her husband, Pedro, is still " +"pretty shellshocked. He doesn't talk much. I like him though, when he " +"opens up he's just hilarious. Draco is just a cantankerous old fart who " +"hasn't actually got old yet, give him twenty years and he'll be there. I " +"like grumpy people. We also have pretty similar taste in music. Aleesha's " +"a sweet kid, and we've all kind of adopted her, but she seems to hang out " +"with me and Dana the most. She's a great artist, and she's full of crazy " +"ideas. I guess I like her because of all of us, she seems to have the most " +"hope that there's a future to be had." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't get to know Boris, Garry, and Stan so well for the first while. " +"They kinda kept to themselves. Boris and Garry had just lost their son, you " +"know. It's pretty lucky that Stan was with them, he's Boris' little " +"brother. Together, they're a pretty good team. I feel bad for thinking " +"they were standoffish before. They probably do the most to pull their " +"weight around here whenever there's work to be done." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but " +"I'm not totally sure. He seems nice enough, but he's a man of few words. I " +"can't get a good bead on them. I've learned not to pry too much though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The Singhs are really shy, and I think they feel pretty bad about making it " +"through this together. They're the only complete family I've seen since " +". That has to feel really weird, and I think it's made them " +"stick really close together. I think... I think they also just don't really " +"like any of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I really can't get a bead on them. They never really talk to anyone outside " +"of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Vanessa... I'm doing my best, I really am, but we just do not get along. " +"One of these days one of us is probably going to brain the other with a tire " +"iron, and I'm just grateful I spend more time around the tire irons. Uyen " +"and Rhyzaea are both excellent people, and I genuinely like them, but I " +"can't stand this ongoing political bullshit they've got going on. Alonso is " +"just a... he's... there's no polite word for what he is. A lot of the " +"others are fine with it, and okay, sure, I guess. John is a walking " +"stereotype, but he's a great poker buddy. I admit I kinda like him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Vanessa... well, she's nice, I guess. I gotta say, she kinda drives me " +"nuts, but we're in this together so I try not to be too harsh. Uyen and " +"Rhyzaea both seem to want to run the show here, but I try to stay out of " +"those politics and just focus on building stuff. I don't see much good " +"coming of it. Alonso is fine, he's clearly interested in me, and also in " +"every other single woman here. Not my thing, in a group this small. John " +"is a walking stereotype, I imagine there must be more depth to him, but I " +"haven't seen it yet." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -107656,6 +110486,44 @@ msgstr "" msgid " phase-strikes %s" msgstr "" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "" @@ -111318,6 +114186,10 @@ msgstr "" msgid "Bicycle" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Dirt bike" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "Electric Bicycle" msgstr "" @@ -112156,6 +115028,13 @@ msgid "" "exposed to the sun. Clouds will slow the recharge speed even more." msgstr "" +#. ~ Description for wind turbine +#: lang/json/vehicle_part_from_json.py +msgid "" +"A small wind turbine. Will slowly recharge the vehicle's electrical power " +"when exposed to the wind." +msgstr "" + #. ~ Description for reinforced solar panel #: lang/json/vehicle_part_from_json.py msgid "" @@ -113265,6 +116144,14 @@ msgstr "" msgid "wheel (steerable)" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "racing slick" +msgstr "" + +#: lang/json/vehicle_part_from_json.py +msgid "racing slick (steerable)" +msgstr "" + #. ~ Description for armored wheel #: lang/json/vehicle_part_from_json.py msgid "A very strong, armored metal wheel." @@ -113290,6 +116177,14 @@ msgstr "" msgid "bicycle wheel (steerable)" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "off-road bicycle wheel" +msgstr "" + +#: lang/json/vehicle_part_from_json.py +msgid "off-road bicycle wheel (steerable)" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "casters" msgstr "" @@ -113310,6 +116205,14 @@ msgstr "" msgid "motorbike wheel (steerable)" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "off-road motorbike wheel" +msgstr "" + +#: lang/json/vehicle_part_from_json.py +msgid "off-road motorbike wheel (steerable)" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "small wheel (steerable)" msgstr "" @@ -113337,6 +116240,10 @@ msgstr "" msgid "wide wheel (steerable)" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "off-road wide wheel (steerable)" +msgstr "" + #. ~ Description for wooden cart wheel #: lang/json/vehicle_part_from_json.py msgid "A wooden wheel." @@ -114216,7 +117123,7 @@ 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 board." +"A living blob, existing in a super-cooled state. It acts as a boat hull." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -115044,6 +117951,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -115079,6 +117992,10 @@ msgstr "" msgid "This corpse is already field dressed." msgstr "" +#: src/activity_handlers.cpp +msgid "This corpse is already skinned." +msgstr "" + #: src/activity_handlers.cpp msgid "This corpse is too small to quarter without damaging." msgstr "" @@ -115228,6 +118145,26 @@ msgstr "" msgid "You remove guts and excess parts, preparing the corpse for later use." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You skin the %s." +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "You carefully remove the hide from the %s" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "The %s is challenging to skin, but you get a good hide from it." +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "With a few deft slices you take the skin from the %s" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "You finish dissecting the %s." @@ -115465,7 +118402,7 @@ msgid "Repeat once" msgstr "" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" +msgid "Repeat until reinforced" msgstr "" #: src/activity_handlers.cpp @@ -115476,11 +118413,24 @@ msgstr "" msgid "Repeat until success/failure/level up" msgstr "" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "" + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "" @@ -115488,9 +118438,14 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" #: src/activity_handlers.cpp src/player.cpp @@ -115545,6 +118500,11 @@ msgstr "" msgid "%s finishes with you..." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "" @@ -115620,6 +118580,11 @@ msgstr "" msgid "You finish filling up %s." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "" @@ -115628,6 +118593,20 @@ msgstr "" msgid "You give your hair a trim." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "" + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "" + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "" @@ -115636,10 +118615,54 @@ msgstr "" msgid "You tilled every tile you could." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "" +#: src/activity_handlers.cpp +msgid "Override ready, choose an endpoint to hack." +msgstr "" + +#: src/activity_handlers.cpp src/iuse.cpp +msgid "No enemy robots in range." +msgstr "" + +#: src/activity_handlers.cpp src/game.cpp +msgid "Never mind" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "You unleash your override attack on the %s." +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "You successfully override the %s's IFF protocols!" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "The %s short circuits as you attempt to reprogram it!" +msgstr "" + +#: src/activity_handlers.cpp +msgid "...and turns friendly!" +msgstr "" + +#: src/activity_handlers.cpp +msgid "...but the robot refuses to acknowledge you as an ally!" +msgstr "" + #: src/activity_item_handling.cpp #, c-format msgid "You put your %1$s in the %2$s's %3$s." @@ -116855,6 +119878,10 @@ msgstr "" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "" +#: src/artifact.cpp +msgid "dead" +msgstr "" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "" @@ -117742,6 +120769,11 @@ msgstr "" msgid "Feels Like: %s." msgstr "" +#: src/bionics.cpp src/iuse.cpp +#, c-format +msgid "Wind Direction: From the %s." +msgstr "" + #: src/bionics.cpp src/mutation.cpp msgid "Perform which function:" msgstr "" @@ -118138,7 +121170,7 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" +msgid "Bionic Power: %i/%i" msgstr "" #: src/bionics_ui.cpp @@ -118479,6 +121511,18 @@ msgstr "" msgid "Year %1$d, %2$s, day %3$d %4$s" msgstr "" +#: src/cata_tiles.cpp +msgid "direct3d" +msgstr "" + +#: src/cata_tiles.cpp +msgid "opengl" +msgstr "" + +#: src/cata_tiles.cpp +msgid "opengles2" +msgstr "" + #: src/cata_utility.cpp src/options.cpp msgid "mph" msgstr "" @@ -119569,9 +122613,8 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "" #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" #: src/computer.cpp @@ -120475,6 +123518,62 @@ msgstr "" msgid "You can't finish it all!" msgstr "" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "" @@ -120962,7 +124061,8 @@ msgstr "" #: src/crafting_gui.cpp msgid "" "The default is to search result names. Some single-character prefixes can " -"be used with a colon (:) to search in other ways.\n" +"be used with a colon (:) to search in other ways. Additional filters are " +"separated by commas (,).\n" "\n" "Examples:\n" msgstr "" @@ -120985,6 +124085,13 @@ msgstr "" msgid " %c:%s%.*s %s\n" msgstr "" +#: src/crafting_gui.cpp +msgid "" +"\n" +"You can use arrow keys to go through search history\n" +"\n" +msgstr "" + #: src/crafting_gui.cpp src/newcharacter.cpp #: src/overmap_ui.cpp msgid "Search:" @@ -121650,6 +124757,11 @@ msgstr "" msgid "Remove mission without proper cleanup" msgstr "" +#: src/debug_menu.cpp +#, c-format +msgid "Drew %d times in %.3f seconds. (%.3f fps average)" +msgstr "" + #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" @@ -126933,7 +130045,7 @@ msgid "Overmap editor" msgstr "" #: src/game.cpp -msgid "Draw benchmark (5 seconds)" +msgid "Draw benchmark (X seconds)" msgstr "" #: src/game.cpp @@ -126952,6 +130064,10 @@ msgstr "" msgid "Crash game (test crash handling)" msgstr "" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "" @@ -127106,8 +130222,7 @@ msgid "Set turn to? (One day is %i turns)" msgstr "" #: src/game.cpp -#, c-format -msgid "Drew %d times in %.3f seconds. (%.3f fps average)" +msgid "Enter benchmark length (in milliseconds):" msgstr "" #: src/game.cpp @@ -127233,27 +130348,38 @@ msgstr "" msgid "Time: ???" msgstr "" +#: src/game.cpp src/item.cpp +msgid "Location: " +msgstr "" + #: src/game.cpp msgid "Underground" msgstr "" #: src/game.cpp -msgid "Weather:" +msgid "Weather :" msgstr "" #: src/game.cpp -msgid "Temperature:" +msgid "Temp :" msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" +msgid "Moon : " msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "" +#: src/game.cpp +msgid "Deaf!" +msgstr "" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -127559,6 +130685,11 @@ msgstr "" msgid "Attach bag" msgstr "" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "" @@ -127633,6 +130764,11 @@ msgstr "" msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "" @@ -127697,10 +130833,6 @@ msgstr "" msgid "Use which item?" msgstr "" -#: src/game.cpp src/iuse.cpp -msgid "Never mind" -msgstr "" - #: src/game.cpp src/npctalk.cpp msgid "You may be attacked! Proceed?" msgstr "" @@ -128236,6 +131368,14 @@ msgid "" "better effects." msgstr "" +#: src/game.cpp +msgid "" +"Skinning a corpse is an involved and careful process that usually takes some " +"time. You need skill and an appropriately sharp and precise knife to do a " +"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 "" + #: src/game.cpp msgid "Quarter corpse" msgstr "" @@ -128385,63 +131525,6 @@ msgstr "" msgid "You're not wielding anything." msgstr "" -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "" - -#: src/game.cpp -msgid "Unload what?" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "" - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -128898,6 +131981,11 @@ msgstr "" msgid "You can't drag things up and down stairs." msgstr "" +#: src/game.cpp +#, c-format +msgid "There's a %s in the way!" +msgstr "" + #: src/game.cpp msgid "" "There is a LOT of heat coming out of there, even the stairs have melted " @@ -129912,10 +133000,6 @@ msgstr "" msgid "Yes, and save game before sleeping." msgstr "" -#: src/handle_action.cpp -msgid "No." -msgstr "" - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "" @@ -129993,6 +133077,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "" @@ -130363,12 +133467,21 @@ msgid "Clear up that %s?" msgstr "" #: src/iexamine.cpp -msgid "If only you had a crowbar..." +msgid "If only you had something to pry with..." msgstr "" #: src/iexamine.cpp #, c-format -msgid "Pry that %s?" +msgid "The %s is closed tightly." +msgstr "" + +#: src/iexamine.cpp +msgid "Leave it alone" +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Use your %s" msgstr "" #: src/iexamine.cpp @@ -130535,6 +133648,16 @@ msgstr "" msgid "This electronic safe looks too complicated to open." msgstr "" +#: src/iexamine.cpp +#, c-format +msgid "The %s is locked..." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "Use the %s" +msgstr "" + #: src/iexamine.cpp msgid "Create camp" msgstr "" @@ -130737,9 +133860,22 @@ msgstr "" msgid "The seed blossoms into a flower-looking fungus." msgstr "" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." msgstr "" #: src/iexamine.cpp @@ -130756,6 +133892,11 @@ msgstr "" msgid "Use which fertilizer?" msgstr "" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "" @@ -132574,10 +135715,6 @@ msgstr "" msgid "Used on: " msgstr "" -#: src/item.cpp -msgid "Location: " -msgstr "" - #: src/item.cpp msgid "Incompatible with mod location: " msgstr "" @@ -133564,6 +136701,22 @@ msgstr "" msgid "You need an UPS to run the %s!" msgstr "" +#: src/item.cpp +#, c-format +msgctxt "item name" +msgid "skinned %s corpse" +msgid_plural "skinned %s corpses" +msgstr[0] "" +msgstr[1] "" + +#: src/item.cpp +#, c-format +msgctxt "item name" +msgid "skinned %s carcass" +msgid_plural "skinned %s carcasses" +msgstr[0] "" +msgstr[1] "" + #: src/item.cpp #, c-format msgctxt "item name" @@ -133588,6 +136741,22 @@ msgid_plural "%s corpses" msgstr[0] "" msgstr[1] "" +#: src/item.cpp +#, c-format +msgctxt "item name" +msgid "skinned %s corpse of %s" +msgid_plural "skinned %s corpses of %s" +msgstr[0] "" +msgstr[1] "" + +#: src/item.cpp +#, c-format +msgctxt "item name" +msgid "skinned %s carcass of %s" +msgid_plural "skinned %s carcasses of %s" +msgstr[0] "" +msgstr[1] "" + #: src/item.cpp #, c-format msgctxt "item name" @@ -134629,10 +137798,6 @@ msgstr "" msgid "But you can't touch this." msgstr "" -#: src/iuse.cpp -msgid "There's nothing to pry there." -msgstr "" - #: src/iuse.cpp msgid "" "You attempt to pry open your wallet but alas. You are just too miserly." @@ -134682,6 +137847,15 @@ msgstr "" msgid "You pry, but cannot pry open the window." msgstr "" +#: src/iuse.cpp +msgid "There's nothing to pry there." +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "You can't get sufficient leverage to open that with your %s." +msgstr "" + #: src/iuse.cpp msgid "You break the glass." msgstr "" @@ -135935,7 +139109,7 @@ msgid "Welcome to hackPRO!:" msgstr "" #: src/iuse.cpp -msgid "Override IFF protocols" +msgid "Prepare IFF protocol override" msgstr "" #: src/iuse.cpp @@ -135947,34 +139121,7 @@ msgid "Set friendly robots to combat mode" msgstr "" #: src/iuse.cpp -msgid "Choose an endpoint to hack." -msgstr "" - -#: src/iuse.cpp -msgid "No enemy robots in range." -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "You start reprogramming the %s into an ally." -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "You successfully override the %s's IFF protocols!" -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "The %s short circuits as you attempt to reprogram it!" -msgstr "" - -#: src/iuse.cpp -msgid "...and turns friendly!" -msgstr "" - -#: src/iuse.cpp -msgid "...but the robot refuses to acknowledge you as an ally!" +msgid "You start preparing your override." msgstr "" #: src/iuse.cpp @@ -136066,12 +139213,7 @@ msgid "No music on device" msgstr "" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" +msgid "View recipes on E-ink screen" msgstr "" #: src/iuse.cpp @@ -136141,12 +139283,7 @@ msgid "You turned on music on your %s." msgstr "" #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." +msgid "List recipes:" msgstr "" #: src/iuse.cpp @@ -137502,15 +140639,6 @@ msgstr "" msgid "Your tool does not have enough charges to do that." msgstr "" -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "" - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -139322,6 +142450,10 @@ msgstr "" msgid "Diggable. " msgstr "" +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "" @@ -143020,9 +146152,41 @@ msgstr "" msgid "It is nearly dead!" msgstr "" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" +msgid "This is a %s. %s %s" msgstr "" #: src/monster.cpp @@ -143823,11 +146987,9 @@ msgstr "" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "" - -#: src/newcharacter.cpp -msgid "Sort by:" +msgid "" +"Sort by: %1$s (Press %2$s to " +"change)" msgstr "" #: src/newcharacter.cpp @@ -144956,6 +148118,14 @@ msgstr "" msgid "Tell all your allies to guard" msgstr "" +#: src/npctalk.cpp +msgid "Tell all your allies to stay awake" +msgstr "" + +#: src/npctalk.cpp +msgid "Tell all your allies to relax and sleep when tired" +msgstr "" + #: src/npctalk.cpp msgid "Tell all your allies to follow" msgstr "" @@ -144982,6 +148152,14 @@ msgstr "" msgid "Guard here!" msgstr "" +#: src/npctalk.cpp +msgid "Stay awake!" +msgstr "" + +#: src/npctalk.cpp +msgid "We're safe! Take a nap if you're tired." +msgstr "" + #: src/npctalk.cpp msgid "Follow me!" msgstr "" @@ -145024,6 +148202,10 @@ msgstr "" msgid " If you are interested, I have another job for you." msgstr "" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "" @@ -145158,17 +148340,17 @@ msgstr "" #: src/npctalk.cpp #, c-format -msgid "Dex %d - %d" +msgid " Dex %d - %d" msgstr "" #: src/npctalk.cpp #, c-format -msgid "Int %d - %d" +msgid " Int %d - %d" msgstr "" #: src/npctalk.cpp #, c-format -msgid "Per %d - %d" +msgid " Per %d - %d" msgstr "" #: src/npctalk.cpp src/sidebar.cpp @@ -145187,6 +148369,34 @@ msgstr "" msgid "Not tired" msgstr "" +#: src/npctalk.cpp +msgid ". Will need sleep in " +msgstr "" + +#: src/npctalk.cpp +msgid "" +"\n" +"Will need water in " +msgstr "" + +#: src/npctalk.cpp +msgid "" +"\n" +"Thirsty" +msgstr "" + +#: src/npctalk.cpp +msgid "" +"\n" +"Will need food in " +msgstr "" + +#: src/npctalk.cpp +msgid "" +"\n" +"Hungry" +msgstr "" + #: src/npctalk.cpp msgid "No, just no..." msgstr "" @@ -145411,15 +148621,15 @@ msgstr "" msgid "%s ( cost $%d )" msgstr "" +#. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d" +msgid "%s: %d -> %d (cost $%d)" msgstr "" -#. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d (cost $%d)" +msgid "%s: %d -> %d" msgstr "" #: src/npctalk.cpp @@ -145599,11 +148809,11 @@ msgid "You can bash obstacles." msgstr "" #: src/npctalk.cpp -msgid "Sleep when you feel tired." +msgid "Stay awake." msgstr "" #: src/npctalk.cpp -msgid "Stay awake." +msgid "Sleep when you feel tired." msgstr "" #: src/npctalk.cpp @@ -145623,18 +148833,18 @@ msgid "Smash zombie corpses." msgstr "" #: src/npctalk.cpp -msgid "Close the doors." +msgid "Leave doors open." msgstr "" #: src/npctalk.cpp -msgid "Leave doors open." +msgid "Close the doors." msgstr "" #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "" -#: src/npctalk.cpp +#: src/npctalk.cpp src/npctalk_funcs.cpp #, c-format msgid "Pickup rules for %s" msgstr "" @@ -145704,7 +148914,7 @@ msgstr "" msgid "%s has abandoned the camp." msgstr "" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "" @@ -145727,16 +148937,18 @@ msgctxt "punctuation" msgid "!" msgstr "" +#. ~ %1$c is an option letter and shouldn't be translated, %2$s is translated response text #: src/npctalk.cpp #, c-format msgctxt "talk option" -msgid "%1$c: [%2$s %3$d%%] %4$s" +msgid "%1$c: %2$s" msgstr "" +#. ~ %1$c is an option letter and shouldn't be translated, %2$s is translated trial type, %3$d is a number, and %4$s is the translated response text #: src/npctalk.cpp #, c-format msgctxt "talk option" -msgid "%1$c: %2$s" +msgid "%1$c: [%2$s %3$d%%] %4$s" msgstr "" #: src/npctalk.cpp @@ -145773,6 +148985,23 @@ msgstr "" msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "" @@ -145844,10 +149073,6 @@ msgstr "" msgid "It is too heavy for me to carry." msgstr "" -#: src/npctalk.cpp -msgid "Select a follower" -msgstr "" - #: src/npctalk_funcs.cpp msgid "Reward" msgstr "" @@ -145925,6 +149150,16 @@ msgstr "" msgid "%s gives you a decent shave..." msgstr "" +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -145971,6 +149206,10 @@ msgstr "" msgid "Pay:" msgstr "" +#: src/npctalk_funcs.cpp +msgid "Select a follower" +msgstr "" + #: src/npctrade.cpp msgid "" "TAB key to switch lists, letters to pick items, Enter to finalize, Esc to " @@ -146994,6 +150233,14 @@ msgstr "" msgid "Windowed borderless" msgstr "" +#: src/options.cpp +msgid "Renderer" +msgstr "" + +#: src/options.cpp +msgid "Set which renderer to use. Requires restart." +msgstr "" + #: src/options.cpp msgid "Software rendering" msgstr "" @@ -147014,6 +150261,16 @@ msgid "" "rendering. Requires restart." msgstr "" +#: src/options.cpp +msgid "Use color modulated textures" +msgstr "" + +#: src/options.cpp +msgid "" +"If true, tries to use color modulated textures to speed-up ASCII drawing. " +"Requires restart." +msgstr "" + #: src/options.cpp msgid "Scaling mode" msgstr "" @@ -147912,12 +151169,12 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" msgstr "" #: src/output.cpp @@ -148250,6 +151507,10 @@ msgstr "" msgid "Load or unload a vehicle" msgstr "" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -148412,6 +151673,11 @@ msgstr "" msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "" + #: src/player.cpp msgid "your" msgstr "" @@ -148641,22 +151907,22 @@ msgstr "" msgid "Final Stats:" msgstr "" -#: src/player.cpp src/sidebar.cpp +#: src/player.cpp #, c-format msgid "Str %d" msgstr "" -#: src/player.cpp src/sidebar.cpp +#: src/player.cpp #, c-format msgid "Dex %d" msgstr "" -#: src/player.cpp src/sidebar.cpp +#: src/player.cpp #, c-format msgid "Int %d" msgstr "" -#: src/player.cpp src/sidebar.cpp +#: src/player.cpp #, c-format msgid "Per %d" msgstr "" @@ -148715,7 +151981,7 @@ msgstr "" #: src/player.cpp #, c-format -msgid "Power: %d/%d" +msgid "Bionic Power: %d/%d" msgstr "" #: src/player.cpp @@ -148802,6 +152068,14 @@ msgstr "" msgid "The sound of your voice is almost completely muffled!" msgstr "" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "" @@ -149465,10 +152739,6 @@ msgstr "" msgid "This place is dangerous, you shouldn't be here." msgstr "" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "" - #: src/player.cpp msgid "That's not true, is it?" msgstr "" @@ -150380,6 +153650,53 @@ msgstr "" msgid " can't place items here!" msgstr "" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "" + +#: src/player.cpp +msgid "Unload what?" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "" + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -150848,6 +154165,10 @@ msgstr "" msgid "You resume your task." msgstr "" +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "" @@ -151087,7 +154408,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" +msgid "Bionic Power: %1$d" msgstr "" #: src/player_display.cpp @@ -151607,14 +154928,6 @@ msgstr "" msgid "You wheeze and gasp for air." msgstr "" -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "" - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "" @@ -152282,11 +155595,11 @@ msgid "" msgstr "" #: src/sidebar.cpp -msgid "POWER" +msgid "STA " msgstr "" #: src/sidebar.cpp -msgid "Stm" +msgid "STA:" msgstr "" #: src/sidebar.cpp @@ -152384,15 +155697,6 @@ msgstr "" msgid "Freezing!%s" msgstr "" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "" - #: src/sidebar.cpp msgid "Parched" msgstr "" @@ -152431,7 +155735,23 @@ msgid "Pain %d" msgstr "" #: src/sidebar.cpp -msgid "Stm " +#, c-format +msgid "Str %02d" +msgstr "" + +#: src/sidebar.cpp +#, c-format +msgid "Dex %02d" +msgstr "" + +#: src/sidebar.cpp +#, c-format +msgid "Int %02d" +msgstr "" + +#: src/sidebar.cpp +#, c-format +msgid "Per %02d" msgstr "" #: src/sidebar.cpp @@ -152451,6 +155771,10 @@ msgctxt "movement-type" msgid "R" msgstr "" +#: src/sidebar.cpp +msgid "Pwr " +msgstr "" + #: src/sounds.cpp msgid "Your eardrums suddenly ache!" msgstr "" @@ -154020,9 +157344,9 @@ msgstr "" msgid "Lost connection with the vehicle due to distance!" msgstr "" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" +#, c-format +msgid "a loud BANG! from the %s" msgstr "" #: src/vehicle.cpp @@ -154728,17 +158052,22 @@ msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." +msgid "the %s bang as it starts" msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." +msgid "the %s making a long beep" msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." +msgid "the %s clicking once" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s rapidly clicking" msgstr "" #: src/vehicle_use.cpp @@ -154748,7 +158077,7 @@ msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." +msgid "the %s clanking and grinding" msgstr "" #: src/vehicle_use.cpp @@ -154769,6 +158098,11 @@ msgstr "" msgid "You honk the horn, but nothing happens." msgstr "" +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "" diff --git a/lang/po/de.po b/lang/po/de.po index d443f98ed3957..9cf06f31d8f13 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -12,15 +12,15 @@ # MinerMax555 , 2018 # Tarnath , 2018 # Phil Mait , 2018 -# Vlasov Vitaly , 2018 # Wuzzy , 2018 +# Vlasov Vitaly , 2019 # Pupsi , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Pupsi , 2019\n" "Language-Team: German (https://www.transifex.com/cataclysm-dda-translators/teams/2217/de/)\n" @@ -572,7 +572,7 @@ msgstr "Mittelgroßer Ersatzfiltereinsatz für Luftfilterungsmasken." #: lang/json/AMMO_from_json.py msgid "chemical mask cartridge" -msgstr "" +msgstr "Chemikalienschutzmaskeneinsatz" #. ~ Description for chemical mask cartridge #: lang/json/AMMO_from_json.py @@ -5776,6 +5776,23 @@ msgstr "" "Ein selbstgemachtes Outfit aus vorkatastrophischer Kleidung, ausgelegt für " "lange Reisen. Es hat viel Lagerplatz." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "leichte Nomadenkleidung" +msgstr[1] "leichte Nomadenkleidungen" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"Ein leichtes, selbstgemachtes Outfit aus vorkatastrophischer Kleidung, " +"welches für lange Sommerreisen ausgelegt ist. Es bietet weniger Lagerplatz " +"und Rüstung verglichen mit als herkömmlicher Nomadenbekleidung." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -6415,8 +6432,8 @@ msgid "" msgstr "" "Ein Stoffriemen, der um den Torso gebunden wird, um Speere mitzuführen, " "während du deine Hände freihälst. Du musst dich jedoch ducken, um durch " -"Türen zu gehen, wenn sich in ihm ein Speer befindet. Aktiviere dies, um eine" -" Waffe einzuhalftern oder hinauszuziehen." +"Türen zu gehen, wenn sich in ihm ein Speer befindet. Aktivieren, um eine " +"Waffe einzuhalftern oder hinauszuziehen." #: lang/json/ARMOR_from_json.py msgid "bowler hat" @@ -6943,6 +6960,19 @@ msgstr "" "Eine Plastikjacke mit einer Kapuze und zwei sehr tiefen Taschen. Bietet " "Schutz vor Regen." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -7059,8 +7089,8 @@ msgstr "Eine goldene Krone für den Herrscher der Überlebenden." #: lang/json/ARMOR_from_json.py msgid "cuirass" msgid_plural "cuirasses" -msgstr[0] " Kürass" -msgstr[1] " Kürasse" +msgstr[0] "Kürass" +msgstr[1] "Kürasse" #. ~ Description for cuirass #: lang/json/ARMOR_from_json.py @@ -12838,8 +12868,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "hazmat suit" msgid_plural "hazmat suits" -msgstr[0] "Chemikalienschutzanzug" -msgstr[1] "Chemikalienschutzanzüge" +msgstr[0] "Schutzanzug" +msgstr[1] "Schutzanzüge" #. ~ Description for hazmat suit #: lang/json/ARMOR_from_json.py @@ -14013,7 +14043,7 @@ msgstr "" "Ein Lederhalfter, groß genug für ein Gewehr oder eine andere große " "Feuerwaffe. Er ist dafür ausgelegt, am Rücken festgezurrt zu werden. " "Obgleich er am Anfang etwas ungewohnt zu benutzen ist, wird es mit mehr " -"Übung viel leichter fallen, ihn zu benutzen. Aktiviere dies, um eine Waffe " +"Übung viel leichter fallen, ihn zu benutzen. Aktivieren, um eine Waffe " "einzustecken bzw. zu ziehen." #: lang/json/ARMOR_from_json.py @@ -14062,8 +14092,8 @@ msgid "" "holster/draw a gun." msgstr "" "Ein Lederriemen, der an der Hüfte getragen wird, um pistolengroße " -"Feuerwaffen zu halten. Aktiviere dies, um eine Feuerwaffe zu ziehen oder " -"wieder einzustecken." +"Feuerwaffen zu halten. Aktivieren, um eine Feuerwaffe zu ziehen oder wieder " +"einzustecken." #: lang/json/ARMOR_from_json.py msgid "fast draw holster" @@ -14078,7 +14108,7 @@ msgid "" " gun." msgstr "" "Ein bequemer Halfter für kleine Feuerwaffen; aus ihm kann man die Waffe " -"schnell ziehen. Aktiviere dies, um eine Feuerwaffe zu ziehen oder wieder " +"schnell ziehen. Aktivieren, um eine Feuerwaffe zu ziehen oder wieder " "einzustecken. " #: lang/json/ARMOR_from_json.py @@ -14870,9 +14900,9 @@ msgid "" "are integrated into your nervous system. Whilst active, the CQB module will" " improve your hand to hand combat skills." msgstr "" -"Bionikprozessoren und Datenbanken, geladen mit Kampfkunstprogrammen, sind in" -" dein Nervensystem integriert. Wenn es aktiviert ist, wird dieses " -"Nahkampfmodul deinen Nahkampf verbessern." +"Bionikprozessoren und Datenbanken, bestückt mit Kampfkunstprogrammen, sind " +"in dein Nervensystem integriert. Wenn aktiviert, wird dieses Modul deinen " +"Nahkampf-Fertigkeiten verbessern." #: lang/json/BIONIC_ITEM_from_json.py msgid "Wired Reflexes CBM" @@ -19032,7 +19062,7 @@ msgid "" "survivalcraft assume some proficiency." msgstr "" "Ein bunter Digest, das dem Wandern und der Wildnisfotografie gewidmet ist. " -"Die Fotos sind wunderschön, jedoch setzt die Terminilogie in den Abschitten " +"Die Fotos sind wunderschön, jedoch setzt die Terminologie in den Abschitten " "über das Überleben ein gewisses Sachverständnis voraus." #: lang/json/BOOK_from_json.py @@ -19974,34 +20004,34 @@ msgid "Spice" msgstr "Gewürz" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" +msgid "Riesling" +msgid_plural "Riesling" msgstr[0] "Riesling" -msgstr[1] "Riesling" +msgstr[1] "Rieslinge" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "Ein Schaum- und Weißwein, gemacht aus der weltnobelsten Weintraube." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" msgstr[0] "Chardonnay" -msgstr[1] "Chardonnay" +msgstr[1] "Chardonnays" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "Amerikas beliebtester Wein, und das aus gutem Grund." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" msgstr[0] "Cabernet Sauvignon" -msgstr[1] "Cabernet Sauvignon" +msgstr[1] "Cabernet Sauvignons" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -20033,8 +20063,11 @@ msgstr[1] "Whiskys" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "Von, mit und für echte Oberste aus dem Süden gemacht!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" +"Ein destillierter Getreidealkohol, hergestellt aus, von und für echte " +"Oberste des Südens!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -20044,8 +20077,10 @@ msgstr[1] "Wodkas" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "In der Sowjetunion trinkt der Wodka dich!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -20055,8 +20090,12 @@ msgstr[1] "Gin" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Leicht nach Holunderbeeren riechender Alkohol." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" +"Eine Spirituose, die die Wacholderbeere in ihr aromatisches Zentrum stellt. " +"Riecht schwach nach Wacholder und überwiegend nach Alkohol." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -20066,10 +20105,13 @@ msgstr[1] "Rum" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." msgstr "" -"Wenn du das hier trinkst, fühlst du dich vielleicht wie ein Pirat. Oder auch" -" nicht." +"Eine destilliertes Spirituose, die aus fermentierter Melasse hergestellt " +"wird. Wenn du das hier trinkst, fühlst du dich vielleicht wie ein Pirat. " +"Oder auch nicht." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -20079,8 +20121,10 @@ msgstr[1] "Tequila" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "Iss nicht den Wurm! Warte, da ist kein Wurm in dieser Flasche." +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -20183,10 +20227,9 @@ msgstr[1] "Long Island Iced Tea" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" -"Ein Gemisch aus verschiedenen, sehr aromatischen alkoholischen Getränken. " -"Der Geschmack ist jedoch nicht erkennbar." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -20194,8 +20237,10 @@ msgstr "Screwdriver" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "Des heimlich betrunkenen Mechanikers Getränk der Wahl." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -20230,10 +20275,9 @@ msgstr[1] "Bier" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"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 "" -"Am besten kalt in einem Glas und einer Limone serviert – aber so viel Glück " -"hast du nicht." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -20301,11 +20345,10 @@ msgstr[1] "selbstgemachter Schnaps" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"Nur der stärkste reinste gute alte Fusel. Lässt dich garantiert dieses ganze" -" Katastrophenzeugs vergessen, oder dich in deinen Tagträumereien versenken." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -20316,11 +20359,9 @@ msgstr[1] "Pilsener" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Ein Pilsener, der aus Europa importiert wurde. Am besten kalt in einem Glas " -"serviert – aber so viel Glück hast du nicht." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -20374,11 +20415,9 @@ msgstr[1] "Belgisches Bier" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" -"Ein würziges und nahrhaftes Ale, das von Mönchen in Belgien gebraut wird. Am" -" besten in einem Kelch serviert." #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -20454,11 +20493,9 @@ msgstr "Calimocho" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Nicht so schlecht, wie einige es sich vorstellen könnten, ist dieses Getränk" -" ziemlich beliebt unter jungen und/oder armen Leuten in einigen Ländern." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -20903,8 +20940,12 @@ msgstr[1] "Fleischfetzen" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "Es ist nicht viel, aber zur Not wird es schon reichen." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "" +"Ein winziges Stück essbaren Fleisches. Nicht viel, aber zur Not wird es " +"schon reichen." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -20914,8 +20955,17 @@ msgstr[1] "Schlachtabfälle" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "Igitt!" +msgid "" +"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." +msgstr "" +"Igitt. Dies ist ein Durcheinander bestehend aus Dreck, Exkrementen, " +"Bindegewebe und anderen Bestandteilen wie Haaren und Krallen, die beim " +"Schlachten übrig geblieben sind. Denk nicht einmal darüber nach, das Zeug zu" +" essen und entsorge es mit Bedacht, damit du nicht versehentlich Ungeziefer " +"anlockst." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -20923,8 +20973,12 @@ msgstr "gekochtes Fleisch" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Frisch gekochtes Fleisch. Sehr nahrhaft." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" +"Dies ist ein Stück frisch gekochtes Fleisch. Es ist sättigend und nahrhaft, " +"aber ungewürzt und dadurch etwas fad." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -20939,11 +20993,13 @@ msgstr "rohe Innereien" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Nicht gekochte innere Organe und Eingeweide. Unappetitlich zum Essen aber " -"voll mit wichtigen Vitaminen." +"Innereien sind ungekochte innere Organe und Eingeweide. Sie sind voller " +"lebenswichtiger Vitamine, aber für die meisten Menschen sind sie eher etwas " +"Ekliges, zumindest dann, wenn sie nicht sehr sorgfältig zubereitet werden." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -20954,10 +21010,13 @@ msgstr[1] "gekochte Innereien" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Frisch gekochte Eingeweide. Unappetitlich, aber voller lebenswichtiger " -"Vitamine." +"Das frisch gekochte Fleisch diverser Organe und Innereien. Es ist voller " +"lebenswichtiger Vitamine, aber für die meisten Menschen jedoch eher etwas " +"Ekliges, zumindest dann, wenn es nicht sehr sorgfältig zubereitet wurde." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -20968,11 +21027,13 @@ msgstr[1] "eingelegte Innereien" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Gekochte, in Pökel eingelegte Innereien. Voller wichtiger Vitamine, schmeckt" -" besser als es riecht." +"Eine gepökelte Masse bestehend aus Eingeweiden und dem Fleisch diverser " +"Organe. Vollgepackt mit lebenswichtigen Vitaminen. Obwohl es wie eine " +"Laborprobe aussieht, ist es in der Tat sehr wohlschmeckend." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -20983,11 +21044,11 @@ msgstr[1] "Doseninnereien" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Frisch gekochte Eingeweide, dosenkonserviert. Unappetitlich, aber voll mit " -"wichtigen Vitaminen." +"Das frisch gekochte und in Dosen konservierte Fleisch von Organen und " +"Eingeweiden. Unappetitlich, aber angereichert mit lebenswichtigen Vitaminen." #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -21057,9 +21118,13 @@ msgstr "Rauchfleisch" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." msgstr "" -"Leckeres Fleisch, das stark geräuchert wurde, für die lange Konservierung." +"Leckeres Fleisch, das zum Zwecke der Konservierung stark geräuchert wurde. " +"Es könnte noch länger geräuchert werden, um ihm vollständig das Wasser zu " +"entziehen und somit zu dehydrieren." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -21069,10 +21134,13 @@ msgstr[1] "Räucherfische" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." msgstr "" -"Ein leckerer Fisch, der durchgeräuchert wurde, für die langfristige " -"Haltbarkeit." +"Leckerer Fisch, der zum Zwecke der Konservierung stark geräuchert wurde. Er " +"könnte noch länger geräuchert werden, um ihm vollständig das Wasser zu " +"entziehen und somit zu dehydrieren." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -21081,31 +21149,47 @@ msgstr "geräucherter Gimpel" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" "Eine stark geräucherte Portion Menschenfleisch. Hält für eine sehr lange " -"Zeit und schmeckt sehr gut, wenn du es so magst." +"Zeit und schmeckt - wenn du so etwas magst - ziemlich gut." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "rohe Lunge" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "rohes Lungenstück" +msgstr[1] "rohe Lungenstücke" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "Die Lunge eines Tieres. Sie ist irgendwie schwammartig." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"Ein Teil einer Tierlunge. Sie ist schwammig, rosa und verdirbt auch sehr " +"schnell. Bei richtiger Zubereitung kann sie eine Delikatesse sein - bei " +"unsachgemäßer Zubereitung handelt es sich jedoch um ein zähes Stück " +"geschmacklosen Bindegewebes." #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "gekochte Lunge" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "gekochtes Lungenstück" +msgstr[1] "gekochte Lungenstücke" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" -"Sie sieht nicht viel schmackhafter aus, aber mögliche Parasiten sind nun " -"alle abgetötet." +"Auf diese Weise zubereitet, ist es lediglich ein zähes, graues Stück " +"geschmacklosen Bindegewebes. Es sieht nicht schmackhafter aus als in seiner " +"rohen Gestalt, aber zumindest wurden alle Parasiten durch das Kochen " +"abgetötet." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -21113,8 +21197,15 @@ msgstr "rohe Leber" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "Die Leber eines Tieres." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Eine Tierleber. Obwohl viele die Konsistenz nicht mögen, zählt sie doch zu " +"den vitaminreicheren Teilen des Tieres. Sie eignet sich gut für Würstchen, " +"ist aber vielleicht etwas weniger appetitlich, wenn man sie als solches " +"kocht." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -21122,8 +21213,15 @@ msgstr "gekochte Leber" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "Randvoll mit B-Vitaminen!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "" +"Voll mit B-Vitaminen! Gekochte Leber ist gar nicht so schlecht, je nachdem, " +"wie du so zu ihrer Konsistenz stehst. Diese schlichte Art der Zubereitung " +"ist aber wahrscheinlich die am wenigsten raffinierte Art, eine Leber zu " +"verarbeiten." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -21144,8 +21242,13 @@ msgstr[1] "gekochte Gehirne" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "Jetzt kannst du die Zombies nachahmen, die du so sehr liebst!" +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 "" +"Jetzt kannst du endlich die Zombies nachahmen, die du sooo sehr liebst! Ein " +"Gehirn als Nahrung zuzubereiten ist eine wahre Herausforderung, und die " +"gewählte Art scheint nicht der beste Weg der Zubereitung zu sein." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -21153,8 +21256,12 @@ msgstr "rohe Niere" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "Die Niere eines Tieres." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "" +"Die Niere eines Tieres. Die Zubereitung ist eine wahre Herausforderung, wenn" +" du nicht gerade möchtest, dass deine Küche danach stark nach Urin stinkt." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -21171,9 +21278,12 @@ msgstr "rohes Bries" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." msgstr "" -"Bries besteht aus der Thymusdrüse oder Bauchspeicheldrüse eines Tieres." +"Bries besteht aus der Thymusdrüse oder Bauchspeicheldrüse eines Tieres. Eine" +" wahre Delikatesse, wenn sie richtig zubereitet werden." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -21263,12 +21373,13 @@ msgstr "verpesteter Knochen" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" -"Ein verdorbener und spröder Knochen irgendeiner unnatürlichen Kreatur oder " -"so. Kann zur Herstellung nützlicher Gegenstände, wie zum Beispiel Holzkohle," -" verwendet werden. Du könntest ihn essen, doch das würde dich vergiften." +"Ein verdorbener und spröder Knochen einer unnatürlichen Kreatur oder " +"vergleichbaren Wesens. Kann zur Herstellung nützlicher Gegenstände wie " +"Holzkohle oder Klebstoff verwendet werden. Du könntest ihn auch essen, was " +"dich aber mit Sicherheit auch vergiften wird." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -21621,8 +21732,11 @@ msgstr[1] "Kaffee" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Kaffee. Das morgentliche Ritual der vorapokalyptischen Welt." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -21655,11 +21769,9 @@ msgstr[1] "Kondensmilch" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" -"Kalbsnahrung, aufbereitet für erwachsene Menschen. Diese Milch wurde gesüßt " -"und verdickt, was sie zu einer süßen Zugabe zu allen Lebensmitteln macht." #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -21728,8 +21840,10 @@ msgstr "Energy-Drink" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Beliebt unter denen, die spät für die Arbeit wach bleiben müssen." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -21853,15 +21967,14 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" -msgstr "Kaffeemilch" +msgstr "Milchkaffee" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." msgstr "" -"Kaffeemilch ist sozusagen das offizielle morgentliche Getränk in vielen " -"Ländern." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -21869,11 +21982,8 @@ msgstr "Milchtee" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "" -"Milchtee wird üblicherweise am Morgen konsumiert und ist in vielen Ländern " -"verbreitet." +msgid "Hot tea with cold milk." +msgstr "Heißer Tee mit kalter Milch." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -21983,8 +22093,10 @@ msgstr "Tee" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Tee, das Getränk für Gentlemen auf der ganzen Welt." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -22041,8 +22153,8 @@ msgstr "rote Soße" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Tomatensauce, mmmh, lecker." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -22064,8 +22176,10 @@ msgstr[1] "Mayonnaise" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "Gute alte Mayo. Sie schmeckt super auf Sandwichs." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -22073,8 +22187,8 @@ msgstr "Ketchup" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "Guter alter Ketchup, schmeckt prima auf Hot Dogs." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -22084,8 +22198,10 @@ msgstr[1] "Senf" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "Guter alter Senf. Er schmeckt super auf Hamburgern." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -22133,8 +22249,10 @@ msgstr[1] "Essig" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Schockierend säuerlicher weißer Essig." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -22155,10 +22273,10 @@ msgstr[1] "Sirupe" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." +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 "" -"Ein extrem zuckeriger teerartiger Sirup, mit einem leicht bitterem " -"Nachgeschmack." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -23486,8 +23604,10 @@ msgstr[1] "Ahornsirupe" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Süß und lecker, echter Vermontener Ahornsirup." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -23799,14 +23919,13 @@ msgstr "" "verderben." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "frittiertes Hähnchen" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." msgstr "" -"Eine Handvoll mit frittiertem Hühnchen. So schlecht, dass es wieder gut ist." #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -23976,8 +24095,9 @@ msgstr "Rohwurst" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "Eine deftige Rohwurst, zum Räuchern vorbereitet." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "" +"Eine deftige Rohwurst, die zum Räuchern oder Kochen vorbereitet wurde." #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -23990,6 +24110,15 @@ msgstr "" "Eine deftige Wurst, die für eine lange Konservierung gepökelt und geräuchert" " wurde." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "geckochte Wurst" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "Eine deftige geckochte Wurst." + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "Mannwurst" @@ -24016,6 +24145,21 @@ msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "" "Eine süße und leckere Wurst. Iss sie lieber, so lange sie noch frisch ist." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "Bratwurst" +msgstr[1] "Bratwürste" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" +"Eine typisch deutsche Wurst aus fein gehacktem Fleisch, die in der Pfanne " +"gebraten oder geröstet wird. Am besten heiß und frisch genießen." + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "Fleisch royale" @@ -24203,8 +24347,10 @@ msgstr "Aufschnitt" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Leckerer Aufschnitt. Kann kalt gegessen werden." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -24213,11 +24359,10 @@ msgstr "Fleischwurst" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" -"Eine Art Aufschnitt, kommt in vorgeschnittener Form. Sein Vorname ist nicht " -"»Oskar«. Kann kalt gegessen werden." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -24761,11 +24906,9 @@ msgstr "Menschenfleischwurst" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Eine Art Aufschnitt, gemacht aus Menschenfleisch, kommt in vorgeschnittener " -"Form. Sein Vorname könnte »Oskar« gewesen sein. Kann kalt gegessen werden." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -25017,8 +25160,41 @@ msgstr "Rohmannwurst" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "Eine deftige rohe Menschenfleischwurst, zum Räuchern vorbereitet." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" +"Eine deftige rohe Menschenfleischwurst, die zum Räuchern oder Kochen " +"vorbereitet wurde." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "gekochte Mannwurst" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" +"Eine deftige gekochte Menschenfleischwurst: Sie riecht so lecker wie " +"menschenmöglich." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "Mannbrat" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" +"Eine typisch deutsche Wurst aus fein gehackten Menschen, die in der Pfanne " +"gebraten oder geröstet wird. Am besten heiß und frisch genießen. Du kannst " +"im Übrigen jeden verfügbaren Menschen verarbeiten - es müssen nicht zwingend" +" Deutsche sein." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -26103,6 +26279,22 @@ msgstr "" "Widerstandsfähigkeit des Körpers gegen sie. Eine Dosis reicht für zwölf " "Stunden." +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -27319,7 +27511,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "deep fried tripe" -msgstr "frittierte Kuttelnv" +msgstr "frittierte Kutteln" #: lang/json/COMESTIBLE_from_json.py msgid "leverpostej" @@ -27805,67 +27997,67 @@ msgstr "" "Sehr saure Zitrusfrucht. Kann gegessen werden, wenn du wirklich willst." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "Blaubeere" -msgstr[1] "Blaubeeren" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Sie sind blau, was aber nicht heißt, dass sie besoffen sind." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "Erdbeere" -msgstr[1] "Erdbeeren" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Leckere saftige Beere. Oft wild in Feldern gefunden." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "Cranberry" -msgstr[1] "Cranberrys" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "Saure rote Beeren. Gut für deine Gesundheit." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "Himbeere" -msgstr[1] "Himbeeren" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Eine süße rote Beere." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "Heidelbeere" -msgstr[1] "Heidelbeeren" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "Heidelbeeren, werden oft mit Blaubeeren verwechselt." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "Maulbeere" -msgstr[1] "Maulbeeren" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -27875,12 +28067,12 @@ msgstr "" "die geschmacksintensivste Sorten der Welt sein. " #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "Holunderbeere" -msgstr[1] "Holunderbeeren" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" @@ -27888,12 +28080,12 @@ msgstr "" "Geschmack. " #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "Hagebutte" -msgstr[1] "Hagebutten" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "Die Frucht einer bestäubten Rose." @@ -27930,12 +28122,12 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Eine Zitrusfrucht, dessen Gemack von sauer zu halbsüß reicht." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "Kirsche" -msgstr[1] "Kirschen" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Eine rote süße Frucht, welche in Bäumen wächst." @@ -27952,12 +28144,12 @@ msgstr "" "Eine handvoll großer violetter Pflaumen. Gesund und gut für deine Verdauung." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "Traube" -msgstr[1] "Trauben" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "Eine Rispe saftiger Weintrauben." @@ -28011,12 +28203,12 @@ msgid "A large and very sweet fruit." msgstr "Eine große und sehr süße Frucht." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "Brombeere" -msgstr[1] "Brombeeren" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "Eine dunklere Cousine der Himbeere." @@ -28062,10 +28254,12 @@ msgstr "" "Eine große braune und flauschige Beere. Ihr leckeres Inneres ist grün." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "Aprikose" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Eine weichhäutige Frucht, verwandt zur Pfirsich." @@ -28126,8 +28320,8 @@ msgstr "Kohl" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "Ein herzhafter Kopf aus knusprigem Weißkohl." +msgid "Crisp white cabbage." +msgstr "Knackiger Weißkohl." #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -28224,7 +28418,7 @@ msgstr "Gurke" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." +msgid "Comes from the gourd family. Not tasty but very juicy." msgstr "" "Sie kommt aus der Familie der Kürbisgewächse. Nicht sehr lecker, aber sehr " "saftig." @@ -28706,6 +28900,10 @@ msgstr[1] "Brombeersamen" msgid "Some blackberry seeds." msgstr "Einige Brombeersamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "Brombeere" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -28717,6 +28915,10 @@ msgstr[1] "Blaubeersamen" msgid "Some blueberry seeds." msgstr "Ein paar Blaubeersamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "Blaubeere" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -28728,6 +28930,10 @@ msgstr[1] "Cranberrysamen" msgid "Some cranberry seeds." msgstr "Einige Cranberrysamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "Cranberry" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -28739,6 +28945,10 @@ msgstr[1] "Heidelbeersamen" msgid "Some huckleberry seeds." msgstr "Einige Heidelbeersamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "Heidelbeere" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -28750,6 +28960,10 @@ msgstr[1] "Maulbeersamen" msgid "Some mulberry seeds." msgstr "Einige Maulbeersamen" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "Maulbeere" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -28761,6 +28975,10 @@ msgstr[1] "Holunderbeersamen" msgid "Some elderberry seeds." msgstr "Einige Holunderbeersamen" +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "Holunderbeere" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -28772,6 +28990,10 @@ msgstr[1] "Himbeeresamen" msgid "Some raspberry seeds." msgstr "Einige Himbeeresamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "Himbeere" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -28783,6 +29005,10 @@ msgstr[1] "Erdbeersamen" msgid "Some strawberry seeds." msgstr "Einige Erdbeersamen." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "Erdbeere" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -28794,6 +29020,10 @@ msgstr[1] "Traubenkerne" msgid "Some grape seeds." msgstr "Einige Traubenkerne" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "Traube" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -30418,6 +30648,17 @@ msgstr "»besonderer« Brownie" msgid "This is definitely not how grandma used to bake them." msgstr "Er ist eindeutig nicht nach Großmutters Rezept gebacken worden." +#: lang/json/COMESTIBLE_from_json.py +msgid "brownie" +msgstr "Brownie" + +#. ~ Description for brownie +#: lang/json/COMESTIBLE_from_json.py +msgid "A rich chocolate brownie, just like how grandma used to bake them." +msgstr "" +"Ein reichhaltiger Schokoladen-Brownie, genau wie Oma sie früher gebacken " +"hat." + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "faseriger Stängel" @@ -32052,6 +32293,19 @@ msgstr[1] "Gefahrenstofffässer" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "Ein gelbes Fass, vorgesehen für die Aufbewahrung von Gefahrenstoffen." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -32675,7 +32929,7 @@ msgstr[1] "wenn du das siehst, ist es ein Bug" #: lang/json/GENERIC_from_json.py msgid "muscle" -msgstr "Muskel" +msgstr "Muskelkraft" #: lang/json/GENERIC_from_json.py msgid "a smoking device and a source of flame" @@ -35084,6 +35338,36 @@ msgstr "" " zu verhindern - kann nicht ohne vorherigen Anschluss an ein kompatibles " "Ventil geöffnet werden." +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "Hartstahlplatte" +msgstr[1] "Hartstahlplatten" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" +"Eine Panzerplatte aus sehr dickem Stahl, die speziell für den Einsatz in " +"einer kugelsicheren Weste entwickelt wurde." + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "Stahlplatte" +msgstr[1] "Stahlplatten" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" +"Eine Stahlpanzerplatte, die speziell für die Verwendung in einer " +"kugelsicheren Weste entwickelt wurde." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -36237,11 +36521,8 @@ msgstr[1] "Steine in Socken" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -"Eine Socke mit einem Stein im Ende davon. Wahrhaft eine Waffe der " -"Verzweiflung." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -38034,7 +38315,23 @@ msgid "" "without reducing its effectiveness." msgstr "" "Ein Fahrzeugscheinwerfer, um den ein Käfig gebaut wurde, um ihn vor Schäden " -"zu schützen, ohne seine Effizienz einzubüßen." +"zu schützen, ohne dabei seine Effizienz zu beeinträchtigen." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "verstärkter Weitwinkelscheinwerfer" +msgstr[1] "verstärkte Weitwinkelscheinwerfer" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" +"Ein Fahrzeugscheinwerfer mit weitem Winkel, um den ein Käfig gebaut wurde, " +"um ihn vor Schäden zu schützen, ohne dabei seine Effizienz zu " +"beeinträchtigen." #: lang/json/GENERIC_from_json.py msgid "storage battery case" @@ -38478,6 +38775,21 @@ msgid "A large and heavy light designed to illuminate wide areas." msgstr "" "Eine große und schwere Leuchte, um breite und weite Gebiete zu beleuchten." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "gerichtete Dachlampe" +msgstr[1] "gerichtete Dachlampen" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" +"Eine große und schwere Leuchte, die eine große Fläche in einem " +"halbkreisförmigen Kegel ausleuchten soll." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -38740,6 +39052,17 @@ msgstr[1] "Autoscheinwerfer" msgid "A vehicle headlight to light up the way." msgstr "Ein Fahrzeugscheinwerfer, um den Weg auszuleuchten." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "Weitwinkelscheinwerfer" +msgstr[1] "Weitwinkelscheinwerfer" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "Ein Fahrzeugscheinwerfer mit weitem Winkel, um den Weg auszuleuchten." + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -38781,7 +39104,7 @@ msgstr[1] "militärische Landkarten" #. ~ Use action message for military operations map. #: lang/json/GENERIC_from_json.py msgid "You add roads and facilities to your map." -msgstr "Du fügst deiner Karte Straßen und Einrichtungen hinzu." +msgstr "Du fügst deiner Karte Straßen und militärische Einrichtungen hinzu." #. ~ Description for military operations map #: lang/json/GENERIC_from_json.py @@ -38827,7 +39150,7 @@ msgstr[1] "Straßenkarten" #. ~ Use action message for road map. #: lang/json/GENERIC_from_json.py msgid "You add roads and points of interest to your map." -msgstr "Du fügst Straßen und interessante Orte deiner Karte hinzu." +msgstr "Du fügst deiner Karte Straßen und Sehenswürdigkeiten hinzu." #. ~ Description for road map #: lang/json/GENERIC_from_json.py @@ -39190,6 +39513,17 @@ msgstr[1] "Zui Quan und du" msgid "A complete guide to Zui Quan." msgstr "Ein vollständiger Führer über Zui Quan." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -40681,8 +41015,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "telescopic cantilever" msgid_plural "telescopic cantilevers" -msgstr[0] "ausziehbarer Kragträger" -msgstr[1] "ausziehbare Kragträger" +msgstr[0] "Teleskopausleger" +msgstr[1] "Teleskopausleger" #. ~ Description for telescopic cantilever #: lang/json/GENERIC_from_json.py @@ -40690,9 +41024,8 @@ msgid "" "A small steel telescoping cantilever. If attached to a frame it could be " "used to lift up to 3.5 metric tonnes." msgstr "" -"Ein kleiner ausziehbarer Kragträger aus Stahl. Wenn er an einen Rahmen " -"befestigt wird, könnte er benutzt werden, um bis zu 3,5 metrische Tonnen zu " -"heben." +"Ein kleiner Teleskopausleger aus Stahl. Wenn er an einen Rahmen befestigt " +"wird, könnte er benutzt werden, um bis zu 3,5 metrische Tonnen anzuheben." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "pallet lifter" @@ -41314,6 +41647,56 @@ msgstr[1] "kaputte neue Animatronikhasen" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Ein kaputter Animatronikhase. Schlaff und leblos." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "Holz-Bootsrumpf" +msgstr[1] "Holz-Bootsrümpfe" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" +"Ein Holzbrett, dazu gedacht, um ein Boot über Wasser zu halten. Versehe ein " +"Fahrzeug solange mit Bootsrümpfe, bis es schwimmt. Befestige dann Ruder oder" +" einen Motor, um das Boot in Fahrt zu bringen." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "Kunststoff-Bootsrumpf" +msgstr[1] "Kunststoff-Bootsrümpfe" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Eine starre Kunststoffplatte, dazu gedacht, um ein Boot über Wasser zu " +"halten. Versehe ein Fahrzeug solange mit Bootsrümpfe, bis es schwimmt. " +"Befestige dann Ruder oder einen Motor, um das Boot in Fahrt zu bringen." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "Kohlefaser-Bootsrumpf" +msgstr[1] "Kohlefaser-Bootsrümpfe" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Eine Kohlefaserplatte, dazu gedacht, um ein Boot über Wasser zu halten. " +"Versehe ein Fahrzeug solange mit Bootsrümpfe, bis es schwimmt. Befestige " +"dann Ruder oder einen Motor, um das Boot in Fahrt zu bringen." + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -41325,6 +41708,28 @@ msgstr[1] "Paar Ruder" msgid "Oars for a boat." msgstr "Ruder für ein Boot." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "aufblasbares Segment" +msgstr[1] "aufblasbares Segment" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Ein aufblasbares Bootsegment." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "aufblasbarer Airbag" +msgstr[1] "aufblasbarer Airbag" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Ein aufblasbarer Airbag." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -41436,6 +41841,361 @@ msgid_plural "belt ammo links" msgstr[0] "Munitionsgurtglied" msgstr[1] "Munitionsgurtglieder" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -42141,9 +42901,9 @@ msgid "" " integrated heating elements modern mess kits have." msgstr "" "Eine kompakte militärische Pfanne mit Einsatz, dafür gedacht, Nahrung über " -"ein Feuer oder einem tragbaren Herd zu erhitzen. Er ist flacher als ein " -"richtiger Topf oder eine Pfanne und es fehlen die integrierten Heizelemente," -" die moderne Campinggeschirre haben." +"einem Feuer oder tragbaren Herd zu erhitzen. Flacher als ein richtiger Topf " +"oder eine Pfanne und es fehlen die integrierten Heizelemente, die moderne " +"Campinggeschirre haben." #: lang/json/GENERIC_from_json.py msgid "makeshift pot" @@ -42207,8 +42967,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken light auto armor" msgid_plural "broken light auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputte leichte Auto-Rüstung" +msgstr[1] "kaputte leichte Auto-Rüstungen" #. ~ Description for broken light auto armor #. ~ Description for broken basic auto armor @@ -42222,20 +42982,20 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken basic auto armor" msgid_plural "broken basic auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputte basis Auto-Rüstung" +msgstr[1] "kaputte basis Auto-Rüstungen" #: lang/json/GENERIC_from_json.py msgid "broken heavy auto armor" msgid_plural "broken heavy auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputte schwere Auto-Rüstung" +msgstr[1] "kaputte schwere Auto-Rüstungen" #: lang/json/GENERIC_from_json.py msgid "dead craftbuddy" msgid_plural "dead craftbuddys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputter Bastelfreund" +msgstr[1] "kaputte Bastelfreunde" #. ~ Description for dead craftbuddy #: lang/json/GENERIC_from_json.py @@ -42434,8 +43194,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken bee-bot" msgid_plural "broken bee-bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputter Bienenboter" +msgstr[1] "kaputte Bienenboter" #. ~ Description for broken bee-bot #: lang/json/GENERIC_from_json.py @@ -42443,6 +43203,8 @@ msgid "" "A broken beehive robot, now still and bee-less. Could be stripped down or " "re-crafted." msgstr "" +"Ein kaputter Bienenstockroboter, jetzt still und leblos. Er könnte noch für " +"seine Bestandteile demontiert, oder wieder aufgebaut werden." #: lang/json/GENERIC_from_json.py msgid "broken medical bot" @@ -42712,8 +43474,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken robo-gaurdian" msgid_plural "broken robo-gaurdians" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kaputter Roboter-Wächter" +msgstr[1] "kaputte Roboter-Wächter" #. ~ Description for broken robo-gaurdian #. ~ Description for broken robo-protector @@ -42924,8 +43686,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "robot carrier" msgid_plural "robot carriers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Roboterträger" +msgstr[1] "Roboterträger" #. ~ Description for robot carrier #: lang/json/GENERIC_from_json.py @@ -45259,6 +46021,15 @@ msgstr "" "Ersetzt Schusswaffen mit generischen Typen. Achtung: Kann Probleme mit " "anderen Waffen-Mods bereiten." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "Manuelle Bionikinstallation" @@ -47277,6 +48048,10 @@ msgstr "" "aufgeblähten Körper zusammenzuhalten. Er bewegt sich tollpatschig umher, " "aber greift mit einer großen Säurereserve an." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "Der korrosive Zombie speit einen Klumpen Säure!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "Kriechzombie" @@ -51369,7 +52144,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "craftbuddy" -msgstr "" +msgstr "Bastelfreund" #. ~ Description for craftbuddy #: lang/json/MONSTER_from_json.py @@ -51379,10 +52154,14 @@ msgid "" "its user. In it's deactivated state, the craft buddy is useable as a " "toolbench and multipurpose workstation." msgstr "" +"Eine mobile Werkbank, die von Arbeitern in Bergwerken, auf Bohrinseln und an" +" anderen abgelegenen Orten verwendet wird. Im aktiven Zustand folgt der " +"Bastelfreund seinem Benutzer. Im deaktivierten Zustand kann er als Werkbank " +"und als Mehrzweckarbeitsplatz verwendet werden." #: lang/json/MONSTER_from_json.py msgid "automated armor" -msgstr "" +msgstr "automatisierte Rüstung" #. ~ Description for automated armor #: lang/json/MONSTER_from_json.py @@ -51396,18 +52175,18 @@ msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "light auto armor" msgid_plural "light auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "leichte Auto-Rüstung" +msgstr[1] "leichte Auto-Rüstungen" #: lang/json/MONSTER_from_json.py msgid "auto armor" -msgstr "" +msgstr "Auto-Rüstung" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "heavy auto armor" msgid_plural "heavy auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "schwere Auto-Rüstung" +msgstr[1] "schwere Auto-Rüstungen" #: lang/json/MONSTER_from_json.py msgid "floating lantern" @@ -51594,7 +52373,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bee bot" -msgstr "" +msgstr "Bienenboter" #. ~ Description for bee bot #: lang/json/MONSTER_from_json.py @@ -51932,7 +52711,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "robo-gaurdian" -msgstr "" +msgstr "Roboter-Wächter" #. ~ Description for robo-gaurdian #: lang/json/MONSTER_from_json.py @@ -52311,11 +53090,20 @@ msgid_plural "fedoras" msgstr[0] "Fedora" msgstr[1] "Fedoras" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "Tippen" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Du kippst deine Fedora." +#, no-python-format +msgid "You tip your %s." +msgstr "" +"Mit Eleganz und Lässigkeit vollziehst du das Antippen deiner Kopfbedeckung " +"(%s)." #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -53210,7 +53998,7 @@ msgid "" " out. Don't panic." msgstr "" "Dies ist ein großes, triefnasses Handtuch. Wenn du ein bisschen wartest, " -"sollte es austrocknen. Keine Panik." +"sollte es wieder trocknen. Und denk dran: Keine Panik!" #: lang/json/TOOL_ARMOR_from_json.py msgid "soiled towel" @@ -53934,6 +54722,12 @@ msgid_plural "boulder anvils" msgstr[0] "Felsamboss" msgstr[1] "Felsambosse" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "Bionikanzünder" +msgstr[1] "Bionikanzünder" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -55499,42 +56293,6 @@ msgstr "" "Dies ist ein kleiner Metalltank, der Holzkohle enthalten kann. Eine " "Zündflamme wurde angebracht. Du könntest ihn benutzen, um Nahrung zu kochen." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "Chemiebaukasten" -msgstr[1] "Chemiebaukästen" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Dies ist ein in einer Kiste aufbewahrter Chemiebausatz. Er enthält " -"Glasbehälter, Schläuche, Metalldraht, eine Heizplatte und eine Schutzbrille." -" Er könnte für die Fertigung einiger Chemieprojekte benutzt werden – wenn du" -" so großen Wert darauf legst." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "einfacher Chemiebaukasten" -msgstr[1] "einfache Chemiebaukästen" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"Dies ist ein einfacher Chemiebaukasten. Er enthält Glasbehälter, Schläuche " -"und eine Schutzbrille. Er könnte für die Fertigung einiger Chemieprojekte " -"benutzt werden – wenn du so großen Wert darauf legst. Aber du benötigst eine" -" Hitzequelle." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -60518,9 +61276,9 @@ msgid "" "Though it is fairly large, it weighs next to nothing. Air seems to gather " "around it." msgstr "" -"Dies ist ein Stein mit lauter Spiralen drauf und Löchern an seinem Umfang. " -"Obwohl er ziemlich groß ist, wiegt kaum etwas mehr als nichts. Es scheint " -"sich Luft um ihn zu versammeln." +"Ein Stein, der mit Spiralen übersät und am Rand mit Löchern versehen ist. " +"Obwohl er an sich ziemlich groß ist, wiegt er fast nichts. Luft scheint sich" +" um ihn zu sammeln." #. ~ Description for wakizashi #: lang/json/TOOL_from_json.py @@ -61371,6 +62129,166 @@ msgstr "" "Eine Fernsteuerung für echte Autos. Kann Geräte an Bord ein und ausschalten." " Einige Autos können über die Fernsteuerung gefahren werden." +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "Chemiebaukasten" +msgstr[1] "Chemiebaukästen" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Dies ist ein in einer Kiste aufbewahrter Chemiebausatz. Er enthält " +"Glasbehälter, Schläuche, Metalldraht, eine Heizplatte und eine Schutzbrille." +" Er könnte für die Fertigung einiger Chemieprojekte benutzt werden – wenn du" +" so großen Wert darauf legst." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "einfacher Chemiebaukasten" +msgstr[1] "einfache Chemiebaukästen" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"Dies ist ein einfacher Chemiebaukasten. Er enthält Glasbehälter, Schläuche " +"und eine Schutzbrille. Er könnte für die Fertigung einiger Chemieprojekte " +"benutzt werden – wenn du so großen Wert darauf legst. Aber du benötigst eine" +" Hitzequelle." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -61869,8 +62787,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive advanced railgon turret" msgid_plural "inactive advanced railgon turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "inaktiver fortschrittlicher Schienengewehrgeschützturm" +msgstr[1] "inaktive fortschrittliche Schienengewehrgeschütztürme" #. ~ Description for inactive advanced railgon turret #: lang/json/TOOL_from_json.py @@ -62261,8 +63179,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive craftbuddy" msgid_plural "inactive craftbuddys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "inaktiver Bastelfreund" +msgstr[1] "inaktive Bastelfreunde" #. ~ Description for inactive craftbuddy #: lang/json/TOOL_from_json.py @@ -62283,8 +63201,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "basic auto armor" msgid_plural "basic auto armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "basis Auto-Rüstung" +msgstr[1] "basis Auto-Rüstungen" #: lang/json/TOOL_from_json.py msgid "inactive hack" @@ -62518,8 +63436,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive bee-bot" msgid_plural "inactive bee-bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "inkativer Bienenboter" +msgstr[1] "inkative Bienenboter" #. ~ Description for inactive bee-bot #: lang/json/TOOL_from_json.py @@ -62713,11 +63631,19 @@ msgid_plural "inactive military robots" msgstr[0] "inaktiver Militärroboter" msgstr[1] "inaktive Militärroboter" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "inaktiver Roboter-Wächter" +msgstr[1] "inaktive Roboter-Wächter" #. ~ Description for inactive robo-gaurdian #: lang/json/TOOL_from_json.py @@ -63323,6 +64249,11 @@ msgid "" "map. An external mechanism allows it to be attached to a vehicle to render " "it mobile." msgstr "" +"Sozusagen ein Tornado in der Box. Das Innere dieses harmlosen Tanks enthält " +"entweder den Höhepunkt menschlicher Innovation im Bereich saubere Energie " +"oder eine Massenvernichtungswaffe, die die Zivilisation - oder, was von ihr " +"übrig geblieben ist - von der Karte tilgen kann. Ein externer Mechanismus " +"ermöglicht die Anbringung an einem Fahrzeug." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex generator" @@ -63339,6 +64270,12 @@ msgid "" "map. An external mechanism allow it to be hooked up to a battery to store " "the power generated." msgstr "" +"Sozusagen ein Tornado in der Box. Das Innere dieses harmlosen Tanks enthält " +"entweder den Höhepunkt menschlicher Innovation im Bereich saubere Energie " +"oder eine Massenvernichtungswaffe, die die Zivilisation - oder, was von ihr " +"übrig geblieben ist - von der Karte tilgen kann. Ein externer Mechanismus " +"ermöglicht den Anschluss an eine Batterie, um die damit erzeugte Energie zu " +"speichern." #: lang/json/TOOL_from_json.py msgid "control chip" @@ -63552,46 +64489,6 @@ msgstr "" "Ein hölzernes Wagenrad mit Metallbändern für längere Haltbarkeit, " "selbstgemacht." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "aufblasbares Segment" -msgstr[1] "aufblasbares Segment" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Ein aufblasbares Bootsegment." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "aufblasbarer Airbag" -msgstr[1] "aufblasbarer Airbag" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Ein aufblasbarer Airbag." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "Bootsbrett" -msgstr[1] "Bootsbrett" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"Ein Holzbrett, dass das Boot über Wasser hält. Um ein Fahrzeug in ein Boot " -"zu verwandeln, platziere diesen Gegenstand so, wie du Räder an ein Auto " -"befestigen würdest. Bringe anschließend Ruder oder einen Motor an, um das " -"Boot fahrtüchtig zu machen." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "Gelatinöse Gleiskette" @@ -63831,6 +64728,10 @@ msgstr "Fahrzeuginteraktion abbrechen?" msgid "Stop training?" msgstr "Training abbrechen?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "Erste Hilfe abbrechen?" @@ -63887,6 +64788,14 @@ msgstr "Mit dem Pflügen des Ackerbau-Zielfelds aufhören?" msgid "Stop planting seeds?" msgstr "Mit dem Pflanzen der Samen aufhören?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "Mit dem Ernten der Ackerbau-Felder aufhören?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "Mit dem Düngen der Ackerbau-Felder aufhören?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "Inventarinteraktion abbrechen?" @@ -63991,10 +64900,18 @@ msgstr "Mit Rasieren aufhören?" msgid "Stop cutting your hair?" msgstr "Mit dem Haarschnitt aufhören?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "Mit dem Versuch einzuschlafen aufhören?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -64192,7 +65109,7 @@ msgstr "Kreislaufatemfilter" #: lang/json/ammunition_type_from_json.py msgid "hazmat mask cartridge" -msgstr "Chemikalienschutzmaskeneinsatz" +msgstr "Schutzmaskeneinsatz" #: lang/json/ammunition_type_from_json.py msgid ".300" @@ -64505,9 +65422,9 @@ msgid "" "are surgically integrated into your nervous system. Whilst active, the CQB " "module will improve your hand to hand combat skills." msgstr "" -"Bionikprozessoren und Datenbanken, geladen mit Kampfkunstprogrammen, sind in" -" dein Nervensystem chirurgisch integriert. Wenn es aktiviert ist, wird " -"dieses Nahkampfmodul deinen Nahkampf verbessern." +"Bionikprozessoren und Datenbanken, bestückt mit Kampfkunstprogrammen, sind " +"chirurgisch in dein Nervensystem integriert. Wenn aktiviert, wird dieses " +"Modul deinen Nahkampf-Fertigkeiten verbessern." #: lang/json/bionic_from_json.py msgid "Bionic-Induced Deformity" @@ -65433,7 +66350,7 @@ msgstr "Torso" #: lang/json/bodypart_from_json.py msgid "Dodging and melee is hampered." -msgstr "Das Ausweichen und der Nahkampf sind behindert." +msgstr "Das Ausweichen und der Nahkampf werden entsprechend beeinträchtigt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp src/character.cpp #: src/debug_menu.cpp @@ -65479,7 +66396,7 @@ msgstr "Augen" #: lang/json/bodypart_from_json.py msgid "Ranged combat is hampered." -msgstr "Der Fernkampf wird behindert." +msgstr "Der Fernkampf wird entsprechend beeinträchtigt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "Eyes" @@ -65498,7 +66415,7 @@ msgstr "Mund" #: lang/json/bodypart_from_json.py msgid "Running is slowed." -msgstr "Das Rennen ist verlangsamt." +msgstr "Das Rennen wird entsprechend verlangsamt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "Mouth" @@ -65517,7 +66434,7 @@ msgstr "linker Arm" #: lang/json/bodypart_from_json.py msgid "Melee and ranged combat is hampered." -msgstr "Nah- und Fernkampf sind behindert." +msgstr "Der Nah- und der Fernkampf werden entsprechend beeinträchtigt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Arm" @@ -65559,7 +66476,7 @@ msgstr "linke Hand" #: lang/json/bodypart_from_json.py msgid "Manual tasks are slowed." -msgstr "Handarbeiten sind verlangsamt." +msgstr "Das Arbeiten mit den Händen wird entsprechend verlangsamt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Hand" @@ -65593,7 +66510,7 @@ msgstr "linkes Bein" #: lang/json/bodypart_from_json.py msgid "Running and swimming are slowed." -msgstr "Laufen und Schwimmen sind verlangsamt." +msgstr "Das Laufen und Schwimmen werden entsprechend verlangsamt." #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Leg" @@ -65667,7 +66584,7 @@ msgstr "Blinddarm" #: lang/json/bodypart_from_json.py msgid "It's inflamed." -msgstr "Es ist entzündet." +msgstr "Ist entzündet." #: lang/json/construction_from_json.py msgid "Deconstruct Furniture" @@ -65922,7 +66839,7 @@ msgstr "Bücherregal bauen" #: lang/json/construction_from_json.py msgid "Build Locker" -msgstr "Schrank bauen" +msgstr "Spind bauen" #: lang/json/construction_from_json.py msgid "Build Metal Rack" @@ -66204,7 +67121,7 @@ msgstr "Flechtwerkwand bauen" #: lang/json/construction_from_json.py msgid "Build Thatched Roof" -msgstr " Reetdach bauen" +msgstr "Reetdach bauen" #: lang/json/construction_from_json.py msgid "Repair Wattle-and-Daub Wall" @@ -67266,6 +68183,17 @@ msgstr "" "KI-Kennzeichen für NPCs, die man um Trainingsstunden gebeten hat. Es ist ein" " Bug, wenn du es hast." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Info abgefragt" @@ -68661,24 +69589,6 @@ msgstr "Du bist erschöpft." msgid "The ceiling collapses on you!" msgstr "Die Decke bricht auf dich herab!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Stammzellenbehandlung" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"Du spürst, wie sich deine Gedärme in eigenartige Richungen verlagern, sobald" -" die Behandlung beginnt." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "" -"Dir wird puriertes Knochenmark und Zahnschmelz in deinen Augapfel injiziert." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "Krampflösende Medizin eingenommen" @@ -68736,8 +69646,8 @@ msgid "" "You have been grabbed by an attack.\n" "You are being held in place and cannot dodge, and blocking is very difficult." msgstr "" -"Du wurdest von einem Angriff ergriffen. \n" -"Du wirst festgehalten, kannst nicht ausweichen und das Blockieren ist sehr schwer." +"Du wurdest von einer Attacke ergriffen.\n" +"Du wirst festgehalten, kannst nicht ausweichen und das Blocken wird auch stark schwer." #: lang/json/effects_from_json.py msgid "Lacking Sleep" @@ -69265,17 +70175,28 @@ msgstr "" "Du fühlst dich unglaublich! Du könntest es mit der ganzen Welt aufnehmen!" #: lang/json/effects_from_json.py -msgid "Discharge" +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." msgstr "" +#: lang/json/effects_from_json.py +msgid "Discharge" +msgstr "Entladen" + #. ~ Description of effect 'Discharge'. #: lang/json/effects_from_json.py msgid "You've been recently affected by an electromagnetic pulse." msgstr "" +"Du wurdest unlängst von den Effekten eines elektromagnetischen Impules " +"betroffen." #: lang/json/effects_from_json.py msgid "Supercharged" -msgstr "" +msgstr "Hochaufgeladen" #. ~ Description of effect 'Supercharged'. #: lang/json/effects_from_json.py @@ -69289,13 +70210,12 @@ msgstr "Geschichte abgelehnt" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" -"Ein KI-Marker, der verwendet wird, wenn du bereits einen NPC nach Details in" -" seiner Überlebensgeschichte gefragt hast, und er oder sie diese jetzt nicht" -" erneut erzählen möchten. Diesen Status zu sehen, ist an sich ein Bug." +"KI-Tag: Du hast bereits einen NPC nach Details dazu befragt und er oder sie " +"möchte dich nicht noch einmal informieren. Dies ist ein BUG und sollte an " +"sich nicht im Spiel sichtbar sein." #: lang/json/effects_from_json.py msgid "Religious Offence" @@ -70764,7 +71684,7 @@ msgstr "Mach dich schick für den Ball oder andere Angelegenheiten." #: lang/json/furniture_from_json.py msgid "locker" -msgstr "Schrank" +msgstr "Spind" #. ~ Description for locker #: lang/json/furniture_from_json.py @@ -71460,7 +72380,8 @@ msgid "" "It's only as skilled as its operator." msgstr "" "Ein chirurgischer Apparat, der für die Installation und Deinstallation von " -"Bioniken benutzt wird. Er ist nur so erfahren wie sein Bediener." +"Bioniken benutzt wird. Seine Effizienz ist abhängig von den Fertigkeiten " +"seines Bedieners." #: lang/json/furniture_from_json.py msgid "Autodoc operation couch" @@ -72113,7 +73034,7 @@ msgstr[1] "Streckbögen" msgid "A test item that is both a ranged weapon and a reach weapon" msgstr "" "Ein Testgegenstand, der sowohl eine Fernwaffe als auch eine Waffe mit einem " -"Streckangriff ist" +"Distanzangriff ist" #: lang/json/gun_from_json.py msgid "BB gun" @@ -78291,6 +79212,41 @@ msgstr "" "Ein gewichteter Präzisions-Abzugs-Bausatz, welcher die Treffgenauigkeit " "einer Feuerwaffe geringfügig verbessert." +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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 "AR15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -78461,6 +79417,18 @@ msgstr "" "ist dafür gedacht, verwendet zu werden, wenn ein Zielfernrohr oder eine " "andere Modifikation die Verwendung einer Primärvisierung verhindert." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "versetzte Visierschiene" +msgstr[1] "versetzte Visierschienen" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" +"Eine zusätzliche Schiene, die um 45° versetzt moniert ist, um eine " +"Sekundäroptik aufzunehmen." + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -81243,7 +82211,7 @@ msgstr "Sprühen" #: lang/json/item_action_from_json.py msgid "Fill pit / tamp ground" -msgstr "Grube füllen / Boden stopfen" +msgstr "Grube füllen/Boden stopfen" #. ~ Mutation class name #: lang/json/item_action_from_json.py lang/json/mutation_category_from_json.py @@ -81555,8 +82523,8 @@ msgid "" "This piece of clothing has a wide collar that can keep your " "mouth warm if it is unencumbered." msgstr "" -"Dieses Kleidungsstück hat einen weiten Kragen , der deinen " -"Mund warmhalten kann, sofern dieser frei ist." +"Dieses Kleidungsstück hat einen weiten Kragen, der deinen Mund " +"warmhalten kann, sofern dieser frei ist." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -81771,7 +82739,7 @@ msgstr "Äußere Bekleidungsschicht." #: lang/json/json_flag_from_json.py msgid "This gear is generally worn over clothing." msgstr "" -"Diese Ausrüstung wird üblicherweise über Kleidung getragen." +"Diese Ausrüstung wird üblicherweise über der Kleidung getragen." #: lang/json/json_flag_from_json.py msgid "" @@ -81796,6 +82764,8 @@ msgid "" "Can be worn comfortably by mutants with Tiny or Unassuming. Too small for " "anyone else." msgstr "" +"Kann bequem von Mutanten mit den Mutationen »Winzig« oder »Anspruchslos« " +"getragen werden. Für alle anderen einfach viel zu klein." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -82283,16 +83253,10 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" -"Falls sich der Schwerpunkt deines Fahrzeugs zwischen all den Bootsbrettern " -"befindet und du keine Räder hast, wird das Fahrzeug in der Lage sein, zu " -"schwimmen und sich über dem Wasser fortzubewegen, falls es einen aktiven " -"Motor oder einen Motor mit genug Strom hat, um das Fahrzeug bewegen zu " -"können." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -82366,12 +83330,12 @@ msgstr "" #: lang/json/keybinding_from_json.py lang/json/keybinding_from_json.py #: src/input.cpp src/messages.cpp msgid "Scroll up" -msgstr "Nach oben rollen" +msgstr "Hochscrollen" #: lang/json/keybinding_from_json.py lang/json/keybinding_from_json.py #: src/input.cpp src/messages.cpp msgid "Scroll down" -msgstr "Nach unten rollen" +msgstr "Runterscrollen" #: lang/json/keybinding_from_json.py msgid "Pan up" @@ -82431,11 +83395,11 @@ msgstr "Alle auswählen" #: lang/json/keybinding_from_json.py msgid "Scroll item info up" -msgstr "Ggnstd.-Beschreibung n. oben scrollen" +msgstr "Gegenstandsbeschreibung hochscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll item info down" -msgstr "Ggnstd.-Beschreibung n. unten scrollen" +msgstr "Gegenstandsbeschreibung runterscrollen" #: lang/json/keybinding_from_json.py src/game.cpp src/inventory_ui.cpp msgid "Previous item" @@ -82815,11 +83779,11 @@ msgstr "Sortierreihenfolge umschalten" #: lang/json/keybinding_from_json.py msgid "Scroll description up" -msgstr "Beschreibung nach oben scrollen" +msgstr "Beschreibung hochscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll description down" -msgstr "Beschreibung nach unten scrollen" +msgstr "Beschreibung runterscrollen" #: lang/json/keybinding_from_json.py msgid "Install part" @@ -82867,19 +83831,19 @@ msgstr "Ein Fahrzeugteil neu beschriften" #: lang/json/keybinding_from_json.py msgid "Scroll up through fuel list" -msgstr "Treibstoffliste nach oben scrollen" +msgstr "Treibstoffliste hochscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll down through fuel list" -msgstr "Treibstoffliste nach unten scrollen" +msgstr "Treibstoffliste runterscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll up through vehicle part descriptions" -msgstr "Fahrzeugteilbeschr. nach oben scrollen" +msgstr "Fahrzeugteilebeschreibung hochscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll down through vehicle part descriptions" -msgstr "Fahrzeugteilbeschr. nach unten scrollen" +msgstr "Fahrzeugteilebeschreibung runterscrollen" #: lang/json/keybinding_from_json.py msgid "Scroll up through vehicle overview" @@ -82891,7 +83855,7 @@ msgstr "Fahrzeugübersicht runterscrollen" #: lang/json/keybinding_from_json.py msgid "Toggle unavailable constructions" -msgstr "nicht verfügbare Baupläne anzeigen/verbergen" +msgstr "Nicht verfügbare Baupläne anzeigen/verbergen" #: lang/json/keybinding_from_json.py msgid "Scroll to previous stage" @@ -82987,7 +83951,7 @@ msgstr "Aktivieren/untersuchen umschalten" #: lang/json/keybinding_from_json.py src/npcmove.cpp msgid "Pause" -msgstr "Pause" +msgstr "Warten" #: lang/json/keybinding_from_json.py msgid "Toggle Map Memory" @@ -83057,7 +84021,7 @@ msgstr "Schlachten" msgid "Chat with NPC" msgstr "Mit NPC reden" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Umschauen" @@ -83668,6 +84632,14 @@ msgstr "Kühltruhe umschalten" msgid "Toggle headlights" msgstr "Scheinwerfer umschalten" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "Weitwinkelscheinwerfer umschalten" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "gerichtete Dachlampen umschalten" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Dachlampen umschalten" @@ -84082,14 +85054,14 @@ msgid "Analyze blood" msgstr "Blut analysieren" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Mister Stammzelle" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "Stammzellenbehandlung" +msgid "Bonesetting Treatment" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -84257,6 +85229,15 @@ msgstr ", und waren hier!" msgid "it works." msgstr "es geht." +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" +"Dem Namen der Leichenhalle folgt eine hastig geschriebene Notiz: »Ich hafte " +"nicht, wenn Ihre Angehörigen nicht tot bleiben.«" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -84544,7 +85525,7 @@ msgstr " Pfad" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLEASE No fish cleaning or dishwashing." -msgstr "" +msgstr "BITTE - Hier keine Fische ausnehmen oder Geschirr spülen." #. ~ Sign #: lang/json/mapgen_from_json.py @@ -85557,6 +86538,36 @@ msgstr "" "+Stärke Schlagpanzerung, +Geschick Säurepanzerung, +Intelligenz " "Elektropanzerung, +Wahrnehmung Feuerpanzerung." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "Sōjutsu" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Mittelalterliche Schwertkunst" @@ -89418,6 +90429,10 @@ msgstr "%s genossen" msgid "Enjoyed a hot meal" msgstr "Eine warme Mahlzeit genossen" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Musik" @@ -89628,6 +90643,10 @@ msgstr "Frisch rasiert" msgid "Barfed" msgstr "Erbrochen" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "Ein Feuer entfachen" @@ -90845,6 +91864,18 @@ msgstr "" "Obwohl du immer noch die negativen Wirkungen von Schmerzen erfährst bringt " "er auch einen einzigartigen Genuss." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -90998,10 +92029,8 @@ msgstr "Nahkampfwaffentraining" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" -"Du hast den Kampf mit Nahkampfwaffen geübt. Du beginnt mit deiner Auswahl " -"zwischen Eskrima, Fechten, Pencak Silat oder Niten Ichi-Ryu." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -91758,6 +92787,17 @@ msgstr "" "niedriger als gewöhnlich und du wirst dich viel langsamer heilen. Addiert " "sich zu Glaskinn." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Spröde Haut" @@ -92118,6 +93158,11 @@ msgid "" "moderate amount, but provides powerful armor across our body, nullifies wet " "effects, and provides complete protection from fire." msgstr "" +"Wir haben die dichten Amphibolefasern der Mykus-Kerntürmen mit dem robusten," +" anpassungsfähigen Fleisch lokaler Physiologie gekreuzt. Dies reduziert " +"unsere Geschwindigkeit um einen geringen Betrag, bietet aber eine starke " +"Rüstung für den gesamten Körper, macht jegliche Nässeeffekte zunichte und " +"bietet zudem einen vollständigen Schutz vor Feuer." #: lang/json/mutation_from_json.py msgid "Mycogenesis" @@ -92564,7 +93609,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Mycus Provenance" -msgstr "" +msgstr "Mykus-Ursprung" #. ~ Description for Mycus Provenance #: lang/json/mutation_from_json.py @@ -95951,7 +96996,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Diminutive" -msgstr "" +msgstr "Diminutiv" #. ~ Description for Diminutive #: lang/json/mutation_from_json.py @@ -95959,6 +97004,8 @@ msgid "" "So much food, everywhere! And nobody's even guarding it anymore! These are" " good times." msgstr "" +"Überall gibt es sooo viel zu essen! Und das Beste ist, niemand scheint es zu" +" bewacht! Das sind wirklich herrliche Zeiten." #: lang/json/mutation_from_json.py msgid "Marloss Gateway" @@ -96051,10 +97098,15 @@ 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 "" +"Wie bei einem echten Fisch haben auch deine Augen keine Augenlider und sind " +"stattdessen von einer durchscheinenden und schützenden Membran bedeckt, " +"welche Reizstoffe und Wasser abhält und zudem eine geringe Rüstung bietet. " +"Du kannst nun auch mit offenen Augen schlafen! Aktiviere diese Mutation, um " +"dich bei Feindannäherung wecken zu lassen." #: lang/json/mutation_from_json.py msgid "Aqueous Repose" -msgstr "" +msgstr "Wässrige Rast" #. ~ Description for Aqueous Repose #: lang/json/mutation_from_json.py @@ -96062,6 +97114,9 @@ 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 "" +"Unter Wasser einzuschlafen gestaltet sich für dich recht einfach und unter " +"Wasser brauchst du vergleichsweise auch weniger Schlaf. Du kannst aufgrund " +"deiner Mutation auch unter Wasser essen, aber nicht trinken." #: lang/json/mutation_from_json.py msgid "Toxic Flesh" @@ -96078,7 +97133,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Freshwater Osmosis" -msgstr "" +msgstr "Süßwasserosmose" #. ~ Description for Freshwater Osmosis #: lang/json/mutation_from_json.py @@ -96087,10 +97142,14 @@ msgid "" "your body through osmosis. While submerged in fresh water, any thirst you " "might have will be slaked." msgstr "" +"Deine Kiemen und Haut sind in höchstem Maße für Feuchtigkeit durchlässig. " +"Dadurch kannst du deinen Körper mittels Osmose mit Flüssigkeit versorgen. " +"Bist du von Süßwasser umgeben, wird jeglicher Durst, den du haben könntest, " +"umgehend gestillt." #: lang/json/mutation_from_json.py msgid "Electroreceptors" -msgstr "" +msgstr "Elektrorezeptoren" #. ~ Description for Electroreceptors #: lang/json/mutation_from_json.py @@ -96100,6 +97159,11 @@ msgid "" " allowing you to see robots and creatures charged with electricity through " "walls, but being shocked will seriously mess you up." msgstr "" +"Ein Netz geleegefüllter Elektrorezeptoren, wie das eines Hais, hat sich in " +"deinem Gesicht und Nase gebildet. Die Empfindlichkeit dieser Rezeptoren " +"gegenüber Magnetfeldern erlaubt es dir, Roboter und elektrisch aufgeladene " +"Kreaturen durch Wände hindurch wahrzunehmen. Elektroschocks haben jedoch " +"eine verstärkte Wirkung und werden dich ordentlich aus der Bahn werfen." #: lang/json/mutation_from_json.py msgid "Shark Teeth" @@ -96375,6 +97439,24 @@ msgstr "Neue Auswahlmöglichkeiten könnten jetzt verfügbar sein!" msgid "Has Level 2 Construction Built" msgstr "Baute Bauwerk der Stufe 2" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "Starting NPC" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "Marker für starting NPCs" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "Static NPC" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "Marker für static NPCs" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "Debug: Perfekte Sicht" @@ -96551,6 +97633,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "This NPC could tell you about how they survived the cataclysm" msgstr "" +"Dieser NPC könnte dir etwas über das Überleben in der Welt kurz nach und " +"während der Katastrophe erzählen." #: lang/json/mutation_from_json.py msgid "Agriculture Training" @@ -97210,6 +98294,10 @@ msgstr "Apis" msgid "I'm bugged - I shouldn't talk to you." msgstr "Ich bin verwanzt – ich sollte nicht mit dir Reden." +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "Bettler" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -97573,6 +98661,30 @@ msgstr "Bandit" msgid "Psycho" msgstr "Psycho" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "Bettler" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "Reena Sandhu" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "Dino Dave" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "Luo Meizhen" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "Brandon Garder" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "Yusuke Taylor" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "Plünderer" @@ -97878,7 +98990,7 @@ msgstr "Motel" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" -msgstr "ruiniertes Blockhaus" +msgstr "zerstörte Hütte" #: lang/json/overmap_terrain_from_json.py msgid "barn" @@ -98748,8 +99860,36 @@ msgid "trailhead" msgstr "Ausgangspunkt" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "verlassener Drive-Through" +msgid "veterinarian clinic" +msgstr "Tierklinik" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "Museum" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "Leichenhaus" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "Waschsalon" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "Juwelier" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "2-stöckiges Motel" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "großer Büroturm" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "Heimwerkergeschäft" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -98775,6 +99915,10 @@ msgstr "Bowlingbahnen" msgid "boxing gym" msgstr "Boxstudio" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "Fitnessstudio" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "Dojo" @@ -98788,37 +99932,13 @@ msgid "gardening supply" msgstr "Gärtnereibedarf" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "Fitnessstudio" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "Heimwerkergeschäft" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "Juwelier" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "Waschsalon" +msgid "abandoned drive-through" +msgstr "verlassener Drive-Through" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "Noname" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "Leichenhaus" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "Museum" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "Tierklinik" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "Bankrotte Pizzeria" @@ -99056,14 +100176,6 @@ msgstr "Schule" msgid "projects" msgstr "Sozialwohnungen" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "2-stöckiges Motel" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "großer Büroturm" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "Mechanikergarage" @@ -99118,7 +100230,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "private park" -msgstr "" +msgstr "private Parkanlage" #: lang/json/overmap_terrain_from_json.py msgid "small dump" @@ -99150,36 +100262,74 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "survivor's bunker" -msgstr "" +msgstr "Überlebendenbunker" #: lang/json/overmap_terrain_from_json.py msgid "survivor's camp" -msgstr "" +msgstr "Überlebendenlager" #: lang/json/overmap_terrain_from_json.py msgid "public art piece" -msgstr "" +msgstr "öffentlicher Kunstgegenstand" #: lang/json/overmap_terrain_from_json.py msgid "public space" -msgstr "" +msgstr "öffentlicher Raum" #: lang/json/overmap_terrain_from_json.py msgid "car showroom" -msgstr "" +msgstr "Autohaus" #: lang/json/overmap_terrain_from_json.py msgid "car dealership" -msgstr "" +msgstr "Autohändler" #: lang/json/overmap_terrain_from_json.py msgid "tire shop" -msgstr "" +msgstr "Reifengeschäft" #: lang/json/overmap_terrain_from_json.py msgid "regional dump" msgstr "regionale Mülldeponie" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "Vagabund" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Die Umstände zwangen dich ohne Zuhause, Familie oder Freunde auf " +"Wanderschaft zu gehen. Aber die Welt, die du kanntest, existiert nicht mehr " +"und vielleicht werden sich die Erfahrungen und Kenntnisse, auf die du dich " +"bisher beim Überleben verlassen hast, in dieser neuen Welt als vorteilhaft " +"erweisen." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "Vagabund" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Die Umstände zwangen dich ohne Zuhause, Familie oder Freunde auf " +"Wanderschaft zu gehen. Aber die Welt, die du kanntest, existiert nicht mehr " +"und vielleicht werden sich die Erfahrungen und Kenntnisse, auf die du dich " +"bisher beim Überleben verlassen hast, in dieser neuen Welt als vorteilhaft " +"erweisen." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -104367,6 +105517,112 @@ msgstr "" "Zweckentfremden kommerzieller Roboter, aber du hättest nie gedacht, dass " "einmal dein Überleben davon abhängen würde." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -107722,7 +108978,7 @@ msgstr "" "Brennstoff vorhanden ist." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" "Backöfen können auch ohne Elektrizität nützliche Feuerstellen darstellen." @@ -107754,28 +109010,25 @@ msgstr "" "dir doch selbst einen schönen Rübenkeller." #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" -"Bist du gestorben? Das ist ein Teil der Spielerfahrung. Versuchen es, mit " -"dem was du gelernt hast, einfach noch einmal." +"Sterben ist Teil der Spielerfahrung. Versuchen es, mit dem was du gelernt " +"hast, einfach noch einmal." #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" -"Einfrierende Nahrung? Dann lege sie einfach in die Nähe eines Feuers oder " -"erhitzen sie in einer Pfanne." +"Gefrorenes Essen? Dann lege es einfach in die Nähe eines Feuers oder " +"erhitzen es in einer Pfanne." #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" -"Die Temperaturen in unterirdische Höhlen und Kellern sind immer recht kühl, " -"erreichen oder unterschreiten aber nie den Gefrierpunkt." +"Unterirdische Räume wie Keller oder Höhlen bleiben das ganze Jahr über kühl." #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" "Fürchtest du dich vor wilden Tieren. Schrei einfach, bis sie die Flucht " @@ -107788,10 +109041,9 @@ msgstr "" "du gut zu deinem eigenen Vorteil nutzen." #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "" -"Die Tür ist nicht der einzige Weg hinein oder, wenn es darauf ankommt, " -"hinaus." +"Für die meisten Orte ist die Tür nicht der einzige Weg hinein oder hinaus." #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -107810,22 +109062,23 @@ msgstr "" "doch herauszufinden, was sie genau tun." #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" -"Gefährliche Orte sind nicht gleichbedeutend mit einer guten Beute. Benutze " -"deinen Verstand." +"Nur weil ein Ort gefährlich ist, heißt das nicht, dass es sich lohnt dort zu" +" plündern." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" -"Reinkommen ist in der Regel nicht das Problem. Halte dir aber auch immer " -"einen Ausweg offen und lass dich nach Möglichkeit nicht einkesseln." +"Wenn du irgendwo einbrichst, stell sicher, dass du auch weißt, wie du wieder" +" herauskommst." #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." -msgstr "Oft gibt es mehr als einen Weg zum Erfolg. Denke unkonventionell!" +"There's usually more than one way to do things. Think outside the box." +msgstr "" +"Normalerweise gibt es mehr als einen Weg, Dinge zu tun. Denke " +"unkonventionell!" #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." @@ -107863,17 +109116,16 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"Lust auf neue Haustiere? Dann entsorg doch deine verrotteten Nahrungsmittel " -"einfach in deinen eigenen vier Wänden." +"Verrottetes Essen zieht normalerweise Ungeziefer an, und Ungeziefer wurden " +"in letzter Zeit viiiiieeeel größer..." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" -"Medizin hilft dir beim Überleben. Aber achte, um eine Abhängigkeit zu " -"vermeiden, auf die richtige Dosierungen." #: lang/json/snippet_from_json.py msgid "" @@ -107884,11 +109136,10 @@ msgstr "" "versprechen, was du gerade brauchst." #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -"Im Laufe der Zeit heilen Wunden. Bandagieren und Desinfizieren kann den " -"Prozess zudem beschleunigen." +"Wunden heilen im Laufe der Zeit. Bandagen und Desinfektionsmittel können den" +" Heilungsprozess zudem beschleunigen." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -107917,19 +109168,17 @@ msgstr "" "haben einen reichen Tisch für dich gedeckt." #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" "Rohe Nahrung und Wasser aus unsicheren Quellen können nicht gesund sein, " -"oder nicht?" +"nicht wahr?" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "" -"Warum denn den ganzen Tag bis zur nächsten Stadt laufen, wenn du doch ein " -"Fahrzeug klar machen könntest?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "Warum gehen, wenn du ein Auto benutzen kannst? Oder einen Panzer?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" "Bedenke, dass das Essen aus der Zeit vor der Katastrophe nicht ewig haltbar " "sein wird." @@ -107999,7 +109248,7 @@ msgstr "Der immer gleiche Trott kann tödlich enden. Bleib wachsam!" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" "Die meisten Medikamente wirken nicht sofort, nimm also nicht gleich die " @@ -108043,12 +109292,10 @@ msgstr "" "oder Möbel. Dann findet sich schon was." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -"Lebensmittelhaltbarkeit ist keine feste Größe. Lagerbedingungen, vor allem " -"Temperatur, haben enormen Einfluss auf die tatsächliche Haltbarkeit." +"Temperatur hat einen Einfluss auf die Haltbarkeit von Lebensmitteln. Je " +"kälter, desto besser." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -108076,7 +109323,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -108097,12 +109344,8 @@ msgstr "" "es doch sowieso nicht mehr." #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." -msgstr "" -"Eine beeinträchtigte Bewegungsgeschwindigkeit bedingt durch schwieriges " -"Gelände kann auch zu deinem Vorteil eingesetzt werden." +msgid "Terrain that slows you down will also slow down your enemies." +msgstr "Gelände, das dich verlangsamt, verlangsamt auch deine Feinde." #: lang/json/snippet_from_json.py msgid "" @@ -108121,13 +109364,14 @@ msgstr "" "Spiel aufpeppen. Versuch es doch mit ein wenig Rollenspiel!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" "Ein geretteter Überlebender ist gleichsam ein gewonnener Freund. Zumindest " "meistens..." #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" "Neu bei Cataclysm? Wirf einen Blick in das Menü für die Tastenbelegung und " "lerne dort einige Grundlagen kennen." @@ -108136,6 +109380,84 @@ msgstr "" msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "Erwarte das Unerwartete, auch wenn es die spanische Inquisition ist." +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" +"Niemand hat den Verkauffsautomaten mitgeteilt, dass die Welt zu Ende " +"gegangen ist. Spare dir die Geldkarten!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" +"Es muss doch ein paar richtig coole Sachen in diesen streng geheimen " +"Untergrundlabors geben, richtig?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" +"Setz einen Regentrichter über einen Krug oder ein Fass, um dadurch ganz " +"nebenher Regenwasser zu sammeln." + +#: 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 "" +"Die Zahl der Zombies in einer Stadt ist groß, aber begrenzt. Du kannst sie " +"(irgendwann) allesamt töten." + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" +"Hast du »nur« alles, was nicht festgenagelt war, mitgenommen? Dann geh " +"zurück und hol noch die Nägeln!" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" +"Im Pause-Menü kannst du deine eigenen Regeln für den Sicherheitsmodus " +"erstellen." + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "Auch die beste Waffe der Welt ist ohne passende Munition nutzlos." + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" +"Die meisten Zombies gehen einfach durch Autos hindurch, nicht um sie herum. " +"Denk daran, wenn du vor ihnen wegläufst." + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" +"Wenn du drinnen mit einem gebrochenen Bein festsitzt, lies einfach einige " +"Bücher, um dir lehrreich die Zeit zu vertreiben." + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "Bestimmte Leichen können, wenn du sie sezierst, Bioniken einbringen." + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" +"Sei nicht zu gierig. Die Menge deiner Beute spielt, wenn du tot bist, auch " +"keine Rolle mehr." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -112111,6 +113433,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"red blue yellow berry seed sap bloom flowers tower mycus mycus mycus.\"" msgstr "" +"»rote blaue gelbe - Beere Samen Saft - Blüte Blumen Turm - Mykus Mykus " +"Mykus«" #: lang/json/snippet_from_json.py msgid "" @@ -114282,6 +115606,67 @@ msgstr "Wasser … Ist hier eine Oase in der Nähe?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "Wusstest du, dass Wassermangel schneller tötet als Schlafentzug?" +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "verdammt" @@ -114746,7 +116131,7 @@ msgstr "Kamerad" msgid "fella" msgstr "Typ" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "du" @@ -115497,15 +116882,15 @@ msgstr "Fick mich! Ein " #: lang/json/snippet_from_json.py msgid "Watch out for that" -msgstr "" +msgstr "Achte auf" #: lang/json/snippet_from_json.py msgid "Watch out! I see a" -msgstr "" +msgstr "Achtung! Ich sehe " #: lang/json/snippet_from_json.py msgid ", a" -msgstr "" +msgstr ", " #: lang/json/snippet_from_json.py msgid ", I'm doomed! There's a " @@ -115513,15 +116898,15 @@ msgstr ", ich bin verdammt! Da ist ein " #: lang/json/snippet_from_json.py msgid ", here comes a " -msgstr "" +msgstr ", hier kommt " #: lang/json/snippet_from_json.py msgid "Look out for that" -msgstr "" +msgstr "Gib Acht auf " #: lang/json/snippet_from_json.py msgid "Hey! Over there! I see a" -msgstr "" +msgstr "Hey! Da drüben! Sehe ich" #: lang/json/snippet_from_json.py msgid "Incoming" @@ -115529,15 +116914,15 @@ msgstr "Feindkontakt" #: lang/json/snippet_from_json.py msgid "Are we fighting? There's a" -msgstr "" +msgstr "Kämpfen wir? Da ist" #: lang/json/snippet_from_json.py msgid "Hey, ! " -msgstr "" +msgstr "Hey, ! " #: lang/json/snippet_from_json.py msgid "Look out! A" -msgstr "" +msgstr "Achtung! " #: lang/json/snippet_from_json.py msgid "Look sharp! Things are heating up." @@ -115769,7 +117154,7 @@ msgstr "Hey, ! Ich habe" #: lang/json/snippet_from_json.py msgid "! Watch my back while I kill" -msgstr "" +msgstr "! Halte mir den Rücken frei, ich töte" #: lang/json/snippet_from_json.py msgid "I'm your huckleberry," @@ -115781,7 +117166,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "! I'm gonna kill you," -msgstr "" +msgstr "! Ich werde dich töten," #: lang/json/snippet_from_json.py msgid "Watch you bleed out," @@ -115793,7 +117178,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "! This is the end," -msgstr "" +msgstr "! Das ist das Ende," #: lang/json/snippet_from_json.py msgid "I can take on" @@ -115809,11 +117194,11 @@ msgstr "!" #: lang/json/snippet_from_json.py msgid "I'ma cut those fuckin' tentacles off, bitch!" -msgstr "" +msgstr "Ich hack diese verfickten Tentakeln ab, Bitch!" #: lang/json/snippet_from_json.py msgid "Watch you bleed out!" -msgstr "" +msgstr "Pass auf, du verblutest!" #: lang/json/snippet_from_json.py msgid "Is this Reno? Because I need to watch you die!" @@ -115823,6 +117208,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "Das hört sich schlecht an." @@ -115840,23 +117237,27 @@ msgid "What's that noise?" msgstr "Was ist das für ein Lärm?" #: lang/json/snippet_from_json.py -msgid "I hear something moving - sounded like" +msgid "Is something over there?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "I hear something moving - sounded like" +msgstr "Ich höre, dass sich etwas bewegt - es klingt nach" + #: lang/json/snippet_from_json.py msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" -msgstr "" +msgstr "Hast du das gehört? Es klang wie" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -115992,6 +117393,10 @@ msgstr "wandelnde Leiche" msgid " " msgstr " " +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "Untoten" @@ -116004,10 +117409,6 @@ msgstr "Zombies" msgid "Z's" msgstr "Z's" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "Todes" - #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -119233,1916 +120634,644 @@ msgid "Clothing Store" msgstr "Bekleidungsgeschäft" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"Ich weiß es nicht mehr. Ich habe keine Ahnung, was los ist. " -"Ich tue nur, was ich kann, um am Leben zu bleiben. Die Welt zerfiel und ich " -"stümperte in ihr herum, bis ich dich traf." +msgid "That sure is a shiny badge you got there!" +msgstr "Das ist wirklich eine glänzende Dienstmarke, die Sie da haben!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "Huh." +msgid "Heh, you look important." +msgstr "Hey, du siehst wichtig aus." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" +msgid "I'm actually new." +msgstr "Ich bin eigentlich neu hier." #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "Das kann ich respektieren." +msgid "What are you doing here?" +msgstr "Was machst du hier?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" -"Um ehrlich zu sein... ich erinnere mich nicht wirklich. Ich erinnere mich " -"vage an Details aus meinem Leben, bevor die Welt so war wie sie jetzt ist, " -"aber an die Apokalypse selbst? Es ist alles verschwommen. Ich weiß nicht " -"genau, wie ich dahin gekommen bin, wo ich jetzt bin, oder wie das alles " -"passiert ist. Ich glaube, mir ist etwas sehr Schlimmes passiert. Oder " -"vielleicht wurde ich einfach hart am Kopf getroffen. Oder beides. Beides " -"scheint wahrscheinlich." +msgid "Heard anything about the outside world?" +msgstr "Irgendwas von der Welt da draußen gehört?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" -"Meine Geschichte. Huh. Sie ist an sich nichts Besonderes. Ich hatte " -"Gefährten, aber sie sind auferstanden, um beim Herrn zu sein. Ich verstehe " -"nicht, warum ER nicht auch mich zu sich geholt hat, aber ich denke, es wird " -"sich alles rechtzeitig aufklären." +msgid "Is there any way I can join your group?" +msgstr "Gibt es irgendeine Möglichkeit, eurer Gruppe beizutreten?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "Meinst du im religiösen Sinn oder...?" +msgid "What's with your ears?" +msgstr "Was ist mit deinen Ohren?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "Irgendwas, wobei ich helfen kann?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "Gut, tschüss." #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" +"Dann sind wir wohl schon zu zweit. Sozusagen. Aber ich glaub nicht, dass wir" +" offen sind. Wir sind rammelvoll, ist schon fast eine Menschenmenge da " +"unten. Hast du den Händer am Eingang gesehen? Den solltest du fragen." #: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "Was ist, wenn du falsch liegst?" - -#: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "Was wirst du dann tun?" +msgid "Sucks..." +msgstr "Nicht gut …" #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" +"Nun, es gibt einen Typen da unten, der eine funktionierende pneumatische " +"Kanone hat. Sie verschießt Metall wie … wie eine Kanone ohne den Knall. " +"Verdammt gutes Preis-/Leistungsverhältnis. Es gibt keine Knappheit an " +"improvisierten Waffen, die du anfertigen kannst. Das ganz große Ding scheint" +" allerdings der forschreitende Bau von Befestigungen zu sein. Nur sehr " +"wenige dieser Monster scheinen durch einen Zaun oder eine Wand, die aus " +"diesem Zeug gebaut wurde, durchbrechen zu können." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "Was wirst du dann tun?" +msgid "Well, then..." +msgstr "Na dann …" #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"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 "" +"Jedenfalls nichts optimistisches. Wir hatten mal eine auf der Straße mit " +"einem Amateurfunkerradio, aber sie ist fort und mit ihr das Ding. Pech!" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" +msgid "Nothing optimistic?" +msgstr "Nichts optimistisches?" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" +"Die meisten Notfalllager haben sich mittlerweile aufgelöst. Die Städte sind " +"voller Mobs und die Wälder voller glühender Augen und Zombies. Es passiert " +"schon einiger verrückter Mist da draußen, und alle mit einem Funkgerät " +"scheinen sich wohl dazu genötigt zu sehen, ihre letzten grausamen Momente zu" +" dokumentieren." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "" +msgid "I feel bad for asking." +msgstr "Es tut mir leid, dass ich gefragt habe." #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" +"Ich weiß nicht. Ich meine, ob du dich nützlich machen kannst. Aber das ist " +"heutzutage eine vage Sache geworden. Es hängt davon ab, wen du fragst. Der " +"Händler will mich eindeutig nicht hier haben, wenn ich nicht verkaufe, aber " +"… einige Leute scheinen damit davonzukommen." #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." msgstr "" +"Genauso, wie ich deins gekriegt habe, glaub ich. Sag besser kein Wort davon," +" einige Leute hier schauen auf Leute wie uns herab." #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "Psst. Einige Leute hier hassen … Mutationen. Dies war ein Unfall." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"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 "" +msgid "Sorry to ask" +msgstr "Es tut mir leid, dass ich frage." #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "" +msgid "You're disgusting." +msgstr "Du bist ekelerregend." #: lang/json/talk_topic_from_json.py msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and I heard the next " -"day that he'd come back from the dead! Just like in my dream, only it was a" -" different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" +"Ich fackel Gebäude ab und verkauf den Freien Händlern die Materialien. " +"Ehrlich! Wenn du verbrannte Trümmerteile statt Vorstädte siehst, oder wenn " +"du sogar den Haufen Bewehrungsstab, der zum Verkauf steht, siehst, dann ist " +"das wahrscheinlich von mir. Sie konnten mich gut über Wasser halten, denke " +"ich. Ich verkauf dir einen Molotowcocktail oder zwei, wenn du willst." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" +msgid "I'll buy." +msgstr "Ich kaufe." #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "" +msgid "Who needs rebar?" +msgstr "Wer braucht Bewehrungsstab?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" +msgid "As if you're one to talk. Screw You." +msgstr "Als ob man mit dir reden könnte. Geh zum Teufel!" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "" +msgid "Screw You!" +msgstr "Geh zum Teufel!" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" +msgid "Another survivor! We should travel together." +msgstr "Noch ein Überlebender! Wir sollten zusammen reisen." #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "" +msgid "What are you doing?" +msgstr "Was machst du gerade?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "" +msgid "Care to trade?" +msgstr "Willst du handeln?" #: 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 "" +msgid "&Put away weapon." +msgstr "&Waffe weglegen." #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "Wie hast du auf der Flucht überlebt?" +msgid "&Drop weapon." +msgstr "Waffe fallen lassen." #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" +msgid "Don't worry, I'm not going to hurt you" +msgstr "Keine Sorge, ich werde dir nicht weh tun" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" +msgid "Drop your weapon!" +msgstr "Lass deine Waffe fallen!" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "Was ist mit deiner ursprünglichen Crew passiert?" +msgid "Get out of here or I'll kill you." +msgstr "Verschwinde von hier, sonst töte ich dich." #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" +msgid "Hey there, ." +msgstr "Hey, ." -#: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "" +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "Tschüss." #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"Es ist nichts Besonderes an mir, ich weiß nicht, warum ich überlebt habe. " -"Ich wurde mit einer Handvoll anderen evakuiert, aber wir waren spät dran und" -" konnten an der zweite Evakuierungswelle ins FEMA-Zentrum nicht mehr " -"teilnehmen. Dann wurden wir von den Toten angegriffen... Ich war die " -"Einzige, die es geschafft hat. Ich habe nie zurückgeblickt." +msgid "Hello there." +msgstr "Hallo." #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" +msgid "Okay, no sudden movements..." +msgstr "Okay, keine plötzlichen Bewegungen!" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" +msgid "Keep your distance!" +msgstr "Bleib fern!" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "" +msgid "Calm down. I'm not going to hurt you." +msgstr "Ruhig Blut. Ich habe nicht vor, dich zu verletzen." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "Aber Bienen sind normalerweise nicht aggressiv..." +msgid "Screw you, no." +msgstr "Geh zum Teufel! Nein." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" +msgid "&Put hands up." +msgstr "&Hände hoch!" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" -"Aber Bienen sind normalerweise nicht aggressiv... Meinst du vielleicht " -"Wespen?" +msgid "*drops his weapon." +msgstr "*lässt seine Waffe fallen." #: 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 "" -"Entschuldige, wenn ich nicht angehalten habe, um zu fragen, welche " -"Art von Killer-Insekten es genau waren." +msgid "*drops_her_weapon." +msgstr "*lässt ihre Waffe fallen." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "Entschuldigung! Könntest du mir mehr über sie erzählen?" +msgid "Now get out of here" +msgstr "Jetzt verschwinde von hier" #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "Richtig. Es tut uns leid." +msgid "Now get out of here, before I kill you." +msgstr "Jetzt verschwinde von hier, bevor ich dich töte." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" +msgid "Okay, I'm going." +msgstr "Okay, ich komme." #: 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 "" -"Das ist ein bisschen viel verlangt. Ich denke, die Kurzfassung ist, dass ich" -" zu meiner sogenannten eigenen Sicherheit in ein FEMA-Lager evakuiert wurde," -" aber zum Glück habe ich es da heraus geschafft." +msgid "About that job..." +msgstr "Über diese Aufgabe …" #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "Erzähl mir mehr über das FEMA-Lager." +msgid "About one of those jobs..." +msgstr "Über eine dieser Aufgaben …" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "Wie bist du rausgekommen?" +msgid "What's the matter?" +msgstr "Worum geht’s?" #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" +msgid "I don't care." +msgstr "Ist mir egal." #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "Was ist danach geschehen?" +msgid "I see." +msgstr "Ich verstehe." -#: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "Oh, okay." #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" +msgid "Never mind, I'm not interested." +msgstr "Vergiss es, ich bin nicht interessiert." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "Ach, schon gut." #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" -"Das ist eine Geschichte für einen anderen Tag. Ich denke nicht gern darüber " -"nach." +msgid "I'll do it!" +msgstr "Ich mach’s!" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "Es tut uns leid. Erzähl mir mehr über das FEMA-Lager." +msgid "Not interested." +msgstr "Bin nicht interessiert." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Tut mir leid, dass ich gefragt habe.. " +msgid "Not a problem." +msgstr "Kein Problem." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Tut mir leid, dass ich gefragt habe.. " +msgid "Got any advice?" +msgstr "Hast du irgendwelche Ratschläge?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" +msgid "Can you share some equipment?" +msgstr "Kann du mir etwas von deinem Equipment geben?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" +msgid "I'll be back soon!" +msgstr "Ich werde schon bald wieder zurück sein!" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "Komm schon, lass mich nicht so in der Luft hängen." +msgid "Sounds good, thanks." +msgstr "Klingt gut, danke." #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" +msgid "Sounds good. Bye!" +msgstr "Klingt gut. Tschüss!" #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "Was ist passierte, als du raus gegangen bist?" +msgid "I'm sorry." +msgstr "Tut mir leid." #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" +msgid "Whatever. Bye." +msgstr "Wie auch immer. Tschüss." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" -"Danke, dass du mir das alles erzählt hast. " +msgid "Well, um, sorry." +msgstr "Nun, ähm, tschuldigung." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Danke, dass du mir das alles erzählt hast. " +msgid "I'm sorry. I did what I could." +msgstr "Es tut mir leid. Ich hab getan, was in meiner Macht stand." #: 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 "" -"Vor dem Ende der Welt war nichts Besonderes. Als die Toten anfingen sich zu " -"erheben, rüstete ich mich aus und begann damit, sie wieder unter die Erde zu" -" bringen." +msgid "Sure, here you go!" +msgstr "Sicher, bitte sehr!" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "Wie ging das aus?" +msgid "Thank you." +msgstr "Danke." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Cool. " +msgid "Thanks, bye." +msgstr "Danke, tschüss." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Cool. " +msgid "Well, I guess it's just us." +msgstr "Also, ich glaub, es gibt nur noch uns." #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" +msgid "At least we've got shelter." +msgstr "Wenigstens haben wir eine Unterkunft." #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "Was herausgefunden?" +msgid "What should we do now?" +msgstr "Was sollten wir nun tun?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Schon gut. " +msgid "Any tips?" +msgstr "Irgendwelche Tipps?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "Kann ich irgendetwas für dich tun?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Schon gut. " +msgid "Want to travel with me?" +msgstr "Willst du mit mir reisen?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "Lass uns handeln!" #: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" +msgid "I can't leave the shelter without equipment." +msgstr "Ich kann den Unterschlupf nicht ohne Ausrüstung verlassen." #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Relax and chat with me for a while..." msgstr "" -"Es ist gut, dass du deine Berufung gefunden hast. " -"" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Es ist gut, dass du deine Berufung gefunden hast. " +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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 "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" -"Na ja, ich komme überhaupt nicht aus dieser Gegend. Ich fuhr aus dem Süden " -"herauf, um meinen Sohn zu besuchen, als alles passierte. Ich war gerade in " -"einem Motel, als ein Militärkonvoi durchfuhr und uns aufforderte ins nächste" -" FEMA-Lager zu evakuieren." #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "Erzähl mir von deinem Sohn." +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "Du warst also in einem der FEMA-Lager?" +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "Was hast du vorher gesagt?" +msgid "Oh you know, not bad, not bad..." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " +msgid "I don't know, look for supplies and other survivors I guess." msgstr "" +"Keine Ahnung, uns nach Vorräten und anderen Überlebenden umsehen, vermute " +"ich." #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "Wo bist du dann hingegangen?" +msgid "Maybe we should start boarding up this place." +msgstr "" +"Vielleicht sollten wir damit anfangen, diesen Ort zu verbarrikadieren." #: lang/json/talk_topic_from_json.py msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." msgstr "" +"Ich denke, es könnte wirklich nützlich sein, wenn man ein fahrtüchtiges Auto" +" hat, wenn wir schnell von hier verschwinden wollen." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Das ist schon eine Geschichte. " - -#: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Das ist schon eine Geschichte. " +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 "" +"Wir könnten uns nach einem dieser Bauernhöfe da draußen umsehen. Sie können " +"viel Nahrung bieten und sind nicht in der Nähe der Städte." #: lang/json/talk_topic_from_json.py msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" +"Wir sollten wahrscheinlich fern vor den Städten bleiben, selbst, wenn es " +"dort Unmengen nützliches Zeugs gibt." #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "Was ist mit dir passiert?" +msgid "Hmm, okay." +msgstr "Hmm, okay." #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "Was ist mit deinem Unterschlupf?" +msgid "Not until I get some antibiotics..." +msgstr "Nicht, bevor ich ein paar Antibiotika kriege." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" +msgid "You asked me recently; ask again later." +msgstr "Du hast mich erst kürzlich gefragt; frag später nach." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "Bist du dort angekommen" +msgid "Why should I travel with you?" +msgstr "Warum sollte ich mit dir reisen?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" +msgid "Understood. I'll get those antibiotics." +msgstr "Verstanden. Ich hol diese Antibiotika." #: 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 "" +msgid "Right, right, I'll ask later." +msgstr "Richtig, richtig. Ich frag später nochmal." #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "Könntest du mir diese Geschichte noch einmal erzählen?" +msgid "I can keep you safe." +msgstr "Ich kann dich beschützen." #: 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 "" +msgid "You can keep me safe." +msgstr "Du kannst mich beschützen." #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "Klingt so, als hätte es nicht geklappt." +msgid "We're friends, aren't we?" +msgstr "Wir sind Freunde, oder?" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "Hey, ich wäre wirklich daran interessiert, diese Karten zu sehen." +msgid "I'll kill you if you don't." +msgstr "Wenn du es nicht tust, werd ich dich töten." #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" +msgid "You got it, I'm with you!" +msgstr "Alles klar, ich komme mit." #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "Warum hast du deinen Bunker verlassen?" +msgid "Awesome!" +msgstr "Großartig!" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" +msgid "Okay, let's go!" +msgstr "In Ordnung, los geht’s!" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Danke, dass du es mir erzählt hast. " +msgid "Yeah... I don't think so." +msgstr "Hmm … Ich glaube nicht." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Danke, dass du es mir erzählt hast. " +msgid "You're really leaving?" +msgstr "Willst du wirklich gehen?" #: 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 "" +msgid "Yeah, I'm sure. Bye." +msgstr "Ja, ich bin mir sicher. Tschüss." #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "[2000 €] Wir sind im Geschäft." +msgid "Nah, I'm just kidding." +msgstr "Ach was, ich mach nur Scherze." -#: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "Was gibt’s?" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" +msgid "How much further?" +msgstr "Wie weit noch?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "Entschuldigung, wenn ich das Thema wechsle. Was hast du zuvor gesagt?" +msgid "I'd like to lead for a while." +msgstr "Ich will für eine Weile die Führung übernehmen." #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "Gut. Hier sind sie." +msgid "Step aside. I'm leader now." +msgstr "Geh zur Seite! Ich führe nun." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "Los geht’s!" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "Vielen Dank! Was hast du vorher noch gesagt?" +msgid "Alright. You can lead now." +msgstr "In Ordnung. Du übernimmst die Führung." #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "Netter Versuch. Du willst die Karten, dann bezahl auch dafür." +msgid "Good. Something else..." +msgstr "Gut. Noch etwas …" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "Gut. Was hast du vorher noch gesagt?" +msgid "Alright, let's go." +msgstr "In Ordnung, lass uns gehen." #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" -"Von der Apokalypse wusste ich gar nicht sofort. Ich war weit weg vom " -"Schlimmsten. Mein Auto brach auf der Autobahn zusammen und ich wartete " -"stundenlang auf den Abschleppdienst. Ich kampierte schließlich in den " -"Büschen abseits der Straße. Zum Glück, weil ein Sattelschlepper vorbeifuhr -" -" toter Fahrer, weißt du - und aus meinem Auto eine Schleuderpartie machte. " -"Ich fühle mich schlecht für die Bastarde, die in den Städten waren, als die " -"Apokalypse hereinbrach." +msgid "Okay, okay." +msgstr "Okay, okay." #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "Wie hast du da draußen überlebt?" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "Auf keinen Fall! Ich würde alleine zurückgelassen werden." #: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "Was hast du in den ersten Tagen gesehen?" +msgid "Fine." +msgstr "Gut." #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" +msgid "I'm on watch." +msgstr "Ich bin auf Wache." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "Ich möchte, dass du mich begleitest." #: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" +msgid "See you around." +msgstr "Wir sehen uns." #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" +msgid "I really don't feel comfortable doing so..." +msgstr "Damit fühl ich mich nicht so ganz wohl …" #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "Was ist nach dem sauren Nebel passiert?" +msgid "I'll give you some space." +msgstr "Ich lass dir deinen Freiraum." #: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" +msgid "I'd prefer to keep that to myself." +msgstr "Ich behalte das lieber für mich." #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "Was ist mit deiner Freundin passiert?" +msgid "I understand..." +msgstr "Ich verstehe …" #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" +msgid "Okay, here you go." +msgstr "In Ordnung. Hier." #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "Ich glaube, sie wussten es nicht." +msgid "Thank you!" +msgstr "Danke!" #: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" +msgid "Thanks! But can I have some more?" +msgstr "Danke! Aber kann ich noch mehr haben?" #: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "War sie tot?" +msgid "Thanks, see you later!" +msgstr "Danke, bis später!" #: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" +msgid "Okay, okay, sorry." +msgstr "In Ordnung, in Ordnung. Tschuldigung." #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "Das ist schrecklich. " +msgid "Seriously, give me more stuff!" +msgstr "Ernsthaft, gib mir mehr Zeug!" #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "Das ist schrecklich. " +msgid "Okay, fine, bye." +msgstr "Okay. Tschüss." #: 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 "" +msgid "Alright, let's begin." +msgstr "In Ordnung, lass uns anfangen!" #: 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 "" +msgid "Sounds good." +msgstr "Klingt gut." #: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "Das tut mir leid." +msgid "Okay. Lead the way." +msgstr "Gut, übernimm die Führung." #: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "Erzähl mir von diesen Pflanzenmonstern." +msgid "No, we'll be okay here." +msgstr "Nein, wir sind hier okay." #: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" +msgid "On second thought, never mind." +msgstr "Wenn ich darüber nachdenke, vergiss es." #: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" -"Ja, das verstehe ich. Manchmal habe ich das Gefühl, dass meine Existenz erst" -" kurz nach der Katastrophe begann." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "Es tut mir leid, dass du jemanden verloren hast." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" -"Nur eine weitere Geschichte von Liebe und Verlust. Nichts, was ich " -"gern erzähle." - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -msgstr "Es könnte helfen, es von der Seele zu bekommen." - -#: lang/json/talk_topic_from_json.py -msgid "Suck it up. If we're going to work together I need to know you." -msgstr "" -"Schlucks runter. Wenn wir zusammenarbeiten wollen, muss ich dich kennen." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "Schon gut. Entschuldige, dass ich es angesprochen habe." - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "Ok." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "Was ist passiert?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "Du musst eine Scheiße gesehen haben." - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "Ich nehme an, zu Hause war es schlecht." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "Du musst auf dem Weg dorthin eine Scheiße gesehen haben." - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "Hast du es ins Haus geschafft?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "Was geschah danach?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "Wo ist Buck jetzt?" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Ich sehe wo das hinführt. " - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Ich sehe wo das hinführt. " - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Es tut mir leid wegen Buck. " - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Es tut mir leid wegen Buck " - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "Okay, bitte erzähl weiter." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" -"Wenn ich so darüber nachdenke, dann lass uns über etwas anderes sprechen." - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "Glühwürmchen, ich hab's verstanden." - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "In welcher Beziehung steht das zu dem, was ich dich gefragt habe?" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "Ich muss jetzt los." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" -"Ich glaube, ich sehe da einige Zombies kommen. Wir sollten uns kurz fassen." - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "Halt den Mund, du alter Furz." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "Was hast du gesehen?" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "Wir müssen jetzt wirklich, wiiiirklich gehen." - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "Zum Teufel, halt den Mund!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "Danke für die Geschichte!" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "." - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "Das ist wirklich eine glänzende Dienstmarke, die Sie da haben!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Hey, du siehst wichtig aus." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "Ich bin eigentlich neu hier." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "Was machst du hier?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "Irgendwas von der Welt da draußen gehört?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "Gibt es irgendeine Möglichkeit, eurer Gruppe beizutreten?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "Was ist mit deinen Ohren?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "Irgendwas, wobei ich helfen kann?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Gut, tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" -"Dann sind wir wohl schon zu zweit. Sozusagen. Aber ich glaub nicht, dass wir" -" offen sind. Wir sind rammelvoll, ist schon fast eine Menschenmenge da " -"unten. Hast du den Händer am Eingang gesehen? Den solltest du fragen." - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Nicht gut …" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"Nun, es gibt einen Typen da unten, der eine funktionierende pneumatische " -"Kanone hat. Sie verschießt Metall wie … wie eine Kanone ohne den Knall. " -"Verdammt gutes Preis-/Leistungsverhältnis. Es gibt keine Knappheit an " -"improvisierten Waffen, die du anfertigen kannst. Das ganz große Ding scheint" -" allerdings der forschreitende Bau von Befestigungen zu sein. Nur sehr " -"wenige dieser Monster scheinen durch einen Zaun oder eine Wand, die aus " -"diesem Zeug gebaut wurde, durchbrechen zu können." - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Na dann …" - -#: 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 "" -"Jedenfalls nichts optimistisches. Wir hatten mal eine auf der Straße mit " -"einem Amateurfunkerradio, aber sie ist fort und mit ihr das Ding. Pech!" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "Nichts optimistisches?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"Die meisten Notfalllager haben sich mittlerweile aufgelöst. Die Städte sind " -"voller Mobs und die Wälder voller glühender Augen und Zombies. Es passiert " -"schon einiger verrückter Mist da draußen, und alle mit einem Funkgerät " -"scheinen sich wohl dazu genötigt zu sehen, ihre letzten grausamen Momente zu" -" dokumentieren." - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "Es tut mir leid, dass ich gefragt habe." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"Ich weiß nicht. Ich meine, ob du dich nützlich machen kannst. Aber das ist " -"heutzutage eine vage Sache geworden. Es hängt davon ab, wen du fragst. Der " -"Händler will mich eindeutig nicht hier haben, wenn ich nicht verkaufe, aber " -"… einige Leute scheinen damit davonzukommen." - -#: 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 "" -"Genauso, wie ich deins gekriegt habe, glaub ich. Sag besser kein Wort davon," -" einige Leute hier schauen auf Leute wie uns herab." - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "Psst. Einige Leute hier hassen … Mutationen. Dies war ein Unfall." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "Es tut mir leid, dass ich frage." - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "Du bist ekelerregend." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"Ich fackel Gebäude ab und verkauf den Freien Händlern die Materialien. " -"Ehrlich! Wenn du verbrannte Trümmerteile statt Vorstädte siehst, oder wenn " -"du sogar den Haufen Bewehrungsstab, der zum Verkauf steht, siehst, dann ist " -"das wahrscheinlich von mir. Sie konnten mich gut über Wasser halten, denke " -"ich. Ich verkauf dir einen Molotowcocktail oder zwei, wenn du willst." - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "Ich kaufe." - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "Wer braucht Bewehrungsstab?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "Als ob man mit dir reden könnte. Geh zum Teufel!" - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Geh zum Teufel!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "Noch ein Überlebender! Wir sollten zusammen reisen." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "Was machst du gerade?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "Willst du handeln?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&Waffe weglegen." - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "Waffe fallen lassen." - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "Keine Sorge, ich werde dir nicht weh tun" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "Lass deine Waffe fallen!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "Verschwinde von hier, sonst töte ich dich." - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Hey, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "Tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "Hallo." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Okay, keine plötzlichen Bewegungen!" - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "Bleib fern!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "Ruhig Blut. Ich habe nicht vor, dich zu verletzen." - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "Geh zum Teufel! Nein." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&Hände hoch!" - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*lässt seine Waffe fallen." - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*lässt ihre Waffe fallen." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "Jetzt verschwinde von hier" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "Jetzt verschwinde von hier, bevor ich dich töte." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "Okay, ich komme." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "Über diese Aufgabe …" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "Über eine dieser Aufgaben …" - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "Worum geht’s?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "Ist mir egal." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "Ich verstehe." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "Oh, okay." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "Vergiss es, ich bin nicht interessiert." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "Ach, schon gut." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "Ich mach’s!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "Bin nicht interessiert." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "Kein Problem." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "Hast du irgendwelche Ratschläge?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "Kann du mir etwas von deinem Equipment geben?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "Ich werde schon bald wieder zurück sein!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Klingt gut, danke." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Klingt gut. Tschüss!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Tut mir leid." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Wie auch immer. Tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Nun, ähm, tschuldigung." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Es tut mir leid. Ich hab getan, was in meiner Macht stand." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "Sicher, bitte sehr!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Danke." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Danke, tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Also, ich glaub, es gibt nur noch uns." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "Wenigstens haben wir eine Unterkunft." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "Was sollten wir nun tun?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "Irgendwelche Tipps?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "Kann ich irgendetwas für dich tun?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "Willst du mit mir reisen?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "Lass uns handeln!" - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "Ich kann den Unterschlupf nicht ohne Ausrüstung verlassen." - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "" -"Keine Ahnung, uns nach Vorräten und anderen Überlebenden umsehen, vermute " -"ich." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -msgstr "" -"Vielleicht sollten wir damit anfangen, diesen Ort zu verbarrikadieren." - -#: 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 "" -"Ich denke, es könnte wirklich nützlich sein, wenn man ein fahrtüchtiges Auto" -" hat, wenn wir schnell von hier verschwinden wollen." - -#: 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 "" -"Wir könnten uns nach einem dieser Bauernhöfe da draußen umsehen. Sie können " -"viel Nahrung bieten und sind nicht in der Nähe der Städte." - -#: 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 "" -"Wir sollten wahrscheinlich fern vor den Städten bleiben, selbst, wenn es " -"dort Unmengen nützliches Zeugs gibt." - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "Hmm, okay." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Nicht, bevor ich ein paar Antibiotika kriege." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Du hast mich erst kürzlich gefragt; frag später nach." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "Warum sollte ich mit dir reisen?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "Verstanden. Ich hol diese Antibiotika." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "Richtig, richtig. Ich frag später nochmal." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "Ich kann dich beschützen." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "Du kannst mich beschützen." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "Wir sind Freunde, oder?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "Wenn du es nicht tust, werd ich dich töten." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "Alles klar, ich komme mit." - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "Großartig!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "In Ordnung, los geht’s!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "Hmm … Ich glaube nicht." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "Willst du wirklich gehen?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "Ja, ich bin mir sicher. Tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "Ach was, ich mach nur Scherze." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "Was gibt’s?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "Wie weit noch?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "Ich will für eine Weile die Führung übernehmen." - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "Geh zur Seite! Ich führe nun." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "Los geht’s!" - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "In Ordnung. Du übernimmst die Führung." - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "Gut. Noch etwas …" - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "In Ordnung, lass uns gehen." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "Okay, okay." - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "Auf keinen Fall! Ich würde alleine zurückgelassen werden." - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "Gut." - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "Ich bin auf Wache." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "Ich möchte, dass du mich begleitest." - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "Wir sehen uns." - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "Damit fühl ich mich nicht so ganz wohl …" - -#: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." -msgstr "Ich lass dir deinen Freiraum." - -#: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "Ich behalte das lieber für mich." - -#: lang/json/talk_topic_from_json.py -msgid "I understand..." -msgstr "Ich verstehe …" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "In Ordnung. Hier." - -#: lang/json/talk_topic_from_json.py -msgid "Thank you!" -msgstr "Danke!" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" -msgstr "Danke! Aber kann ich noch mehr haben?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" -msgstr "Danke, bis später!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." -msgstr "In Ordnung, in Ordnung. Tschuldigung." - -#: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" -msgstr "Ernsthaft, gib mir mehr Zeug!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." -msgstr "Okay. Tschüss." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "In Ordnung, lass uns anfangen!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good." -msgstr "Klingt gut." - -#: lang/json/talk_topic_from_json.py -msgid "Okay. Lead the way." -msgstr "Gut, übernimm die Führung." - -#: lang/json/talk_topic_from_json.py -msgid "No, we'll be okay here." -msgstr "Nein, wir sind hier okay." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, never mind." -msgstr "Wenn ich darüber nachdenke, vergiss es." - -#: lang/json/talk_topic_from_json.py -msgid "Hello marshal." -msgstr "Hallo, Marshal!" +msgid "Hello marshal." +msgstr "Hallo, Marshal!" #: lang/json/talk_topic_from_json.py msgid "What is this place?" @@ -122435,33 +122564,295 @@ msgstr "" " lebenden Menschen zu machen." #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "Kann ich dir helfen, Marshal?" +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning sir, how can I help you?" -msgstr "Guten Morgen, wie kann ich helfen?" +msgid "Please, help me. I need food." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Guten Morgen, wie kann ich helfen?" +msgid "Get away from me." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " -"from you." +"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 "" -"[MISSION] Der Händer vom Flüchtlingslager hat mich geschickt, um eine " -"Prognose von dir zu erhalten." #: lang/json/talk_topic_from_json.py -msgid "I heard you were setting up an outpost out here." +msgid "Why don't you go somewhere else?" msgstr "" -"Ich hab davon gehört, dass du hier draußen einen Außenposten errichtest." #: lang/json/talk_topic_from_json.py -msgid "What's your job here?" -msgstr "Was ist deine Aufgabe hier?" +msgid "Why don't you scavenge your own food?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "Nein." + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "Was machst du hier draußen?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Can I help you, marshal?" +msgstr "Kann ich dir helfen, Marshal?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning sir, how can I help you?" +msgstr "Guten Morgen, wie kann ich helfen?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning ma'am, how can I help you?" +msgstr "Guten Morgen, wie kann ich helfen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " +"from you." +msgstr "" +"[MISSION] Der Händer vom Flüchtlingslager hat mich geschickt, um eine " +"Prognose von dir zu erhalten." + +#: lang/json/talk_topic_from_json.py +msgid "I heard you were setting up an outpost out here." +msgstr "" +"Ich hab davon gehört, dass du hier draußen einen Außenposten errichtest." + +#: lang/json/talk_topic_from_json.py +msgid "What's your job here?" +msgstr "Was ist deine Aufgabe hier?" #: lang/json/talk_topic_from_json.py msgid "" @@ -122749,6 +123140,10 @@ msgstr "" "Ich weiß nicht, was du tun könntest. Ich hab alles versucht. Gib mir nur " "etwas Zeit …" +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "Ok." + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -123194,6 +123589,14 @@ msgstr "Das ist eine NPC-Wesenszug-Testantwort." msgid "This is a npc short trait test response." msgstr "Das ist eine NPC-Kurzer-Wesenszug-Testantwort." +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "Das ist eine Wesenszug-Flag-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "Das ist eine NPC Wesenszug-Flag-Testantwort." + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "Das ist eine NPC-Effekt-Testantwort." @@ -123238,6 +123641,66 @@ msgstr "Das ist eine NPC-Verbündeten-1-Testantwort." msgid "This an error! npc allies 2 test response." msgstr "Das ist eine error! NPC-Verbündeten-2-Testantwort." +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "Das ist eine Jahreszeit-(Frühling)-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "Dies ist eine 30-Tage-seit-der-Katastrophe-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "Das ist eine Jahreszeit-(Sommer)-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "Dies ist eine 120-Tage-seit-der-Katastrophe-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "Das ist eine Jahreszeit-(Herbst)-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "Dies ist eine 210-Tage-seit-der-Katastrophe-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "Das ist eine Jahreszeit-(Winter)-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "Dies ist eine 300-Tage-seit-der-Katastrophe-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "Das ist eine Tag-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "Das ist eine Nacht-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "Dies ist eine Switch-1-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "Dies ist eine Switch-2-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "Dies ist eine Switch-default-1-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "Dies ist eine Switch-default-2-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "Das ist eine weitere Standard-Testantwort." + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "Das ist eine or trait Testantwort." @@ -123282,6 +123745,30 @@ msgstr "Das ist eine Du-Hast-Geld-Ausgegeben-Testantwort" msgid "This is a multi-effect response" msgstr "Das ist eine multi_effect-Testantwort" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "Das ist eine Du-Verkaufst-Gegenstand-Plastikflasche-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "Das ist eine Du-hast-Gegenstand-Bier-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "Das ist eine Du-hast-Gegenstand-Glasflasche-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "Das ist eine Du-hast-Gegenstände-Bier-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "Testfehler! Das ist eine Du-hast-Gegenstände-Testantwort." + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -123297,6 +123784,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -123314,6 +123809,154 @@ msgid "" "I'll ever know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "Okay, bitte erzähl weiter." + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "" +"Wenn ich so darüber nachdenke, dann lass uns über etwas anderes sprechen." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "Glühwürmchen, ich hab's verstanden." + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "In welcher Beziehung steht das zu dem, was ich dich gefragt habe?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "Ich muss jetzt los." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "" +"Ich glaube, ich sehe da einige Zombies kommen. Wir sollten uns kurz fassen." + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "Halt den Mund, du alter Furz." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "Was hast du gesehen?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "Wir müssen jetzt wirklich, wiiiirklich gehen." + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "Zum Teufel, halt den Mund!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "Danke für die Geschichte!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"Ich weiß es nicht mehr. Ich habe keine Ahnung, was los ist. " +"Ich tue nur, was ich kann, um am Leben zu bleiben. Die Welt zerfiel und ich " +"stümperte in ihr herum, bis ich dich traf." + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "Huh." + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -123325,6 +123968,10 @@ msgid "" "against a town in riot. Then things really got fucked up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "Was ist passiert?" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -123400,6 +124047,350 @@ msgid "" " about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "Wie hast du auf der Flucht überlebt?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "Was ist mit deiner ursprünglichen Crew passiert?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"Es ist nichts Besonderes an mir, ich weiß nicht, warum ich überlebt habe. " +"Ich wurde mit einer Handvoll anderen evakuiert, aber wir waren spät dran und" +" konnten an der zweite Evakuierungswelle ins FEMA-Zentrum nicht mehr " +"teilnehmen. Dann wurden wir von den Toten angegriffen... Ich war die " +"Einzige, die es geschafft hat. Ich habe nie zurückgeblickt." + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "Aber Bienen sind normalerweise nicht aggressiv..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" +"Aber Bienen sind normalerweise nicht aggressiv... Meinst du vielleicht " +"Wespen?" + +#: 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 "" +"Entschuldige, wenn ich nicht angehalten habe, um zu fragen, welche " +"Art von Killer-Insekten es genau waren." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "Entschuldigung! Könntest du mir mehr über sie erzählen?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "Richtig. Es tut uns leid." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" + +#: 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 "" +"Das ist ein bisschen viel verlangt. Ich denke, die Kurzfassung ist, dass ich" +" zu meiner sogenannten eigenen Sicherheit in ein FEMA-Lager evakuiert wurde," +" aber zum Glück habe ich es da heraus geschafft." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "Erzähl mir mehr über das FEMA-Lager." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "Wie bist du rausgekommen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "Was ist danach geschehen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "" +"Das ist eine Geschichte für einen anderen Tag. Ich denke nicht gern darüber " +"nach." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "Es tut uns leid. Erzähl mir mehr über das FEMA-Lager." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Tut mir leid, dass ich gefragt habe.. " + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Tut mir leid, dass ich gefragt habe.. " + #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from" @@ -123413,6 +124404,144 @@ msgid "" " on the head with my tablet." msgstr "" +#: 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 "" +"Vor dem Ende der Welt war nichts Besonderes. Als die Toten anfingen sich zu " +"erheben, rüstete ich mich aus und begann damit, sie wieder unter die Erde zu" +" bringen." + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "Wie ging das aus?" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Cool. " + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Cool. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "Was herausgefunden?" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "Schon gut. " + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "Schon gut. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" +"Es ist gut, dass du deine Berufung gefunden hast. " +"" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "Es ist gut, dass du deine Berufung gefunden hast. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" +"Na ja, ich komme überhaupt nicht aus dieser Gegend. Ich fuhr aus dem Süden " +"herauf, um meinen Sohn zu besuchen, als alles passierte. Ich war gerade in " +"einem Motel, als ein Militärkonvoi durchfuhr und uns aufforderte ins nächste" +" FEMA-Lager zu evakuieren." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "Erzähl mir von deinem Sohn." + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "Du warst also in einem der FEMA-Lager?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "Was hast du vorher gesagt?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "Wo bist du dann hingegangen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Das ist schon eine Geschichte. " + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Das ist schon eine Geschichte. " + #: lang/json/talk_topic_from_json.py msgid "" "I was at school. I'm a senior. We'd heard about riots... It started with " @@ -123487,6 +124616,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "Das tut mir leid." + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -123510,6 +124643,15 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +msgstr "Es könnte helfen, es von der Seele zu bekommen." + +#: lang/json/talk_topic_from_json.py +msgid "Suck it up. If we're going to work together I need to know you." +msgstr "" +"Schlucks runter. Wenn wir zusammenarbeiten wollen, muss ich dich kennen." + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -123563,6 +124705,11 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "Was hast du da oben auf dem Dach gesehen?" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" +"Danke, dass du mir das alles erzählt hast. " + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -123627,6 +124774,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Danke, dass du es mir erzählt hast. " + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -123664,6 +124815,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "Was geschah danach?" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -123760,6 +124915,247 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "Komm schon, lass mich nicht so in der Luft hängen." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "Was ist passierte, als du raus gegangen bist?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Danke, dass du mir das alles erzählt hast. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"My wife made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My husband made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "Erzähl mir von diesen Pflanzenmonstern." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" +"Ja, das verstehe ich. Manchmal habe ich das Gefühl, dass meine Existenz erst" +" kurz nach der Katastrophe begann." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "Es tut mir leid, dass du jemanden verloren hast." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" +"Nur eine weitere Geschichte von Liebe und Verlust. Nichts, was ich " +"gern erzähle." + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "Schon gut. Entschuldige, dass ich es angesprochen habe." + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "Du musst eine Scheiße gesehen haben." + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "Ich nehme an, zu Hause war es schlecht." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "Du musst auf dem Weg dorthin eine Scheiße gesehen haben." + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "Hast du es ins Haus geschafft?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -123811,10 +125207,509 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "Das kann ich respektieren." + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" +"Um ehrlich zu sein... ich erinnere mich nicht wirklich. Ich erinnere mich " +"vage an Details aus meinem Leben, bevor die Welt so war wie sie jetzt ist, " +"aber an die Apokalypse selbst? Es ist alles verschwommen. Ich weiß nicht " +"genau, wie ich dahin gekommen bin, wo ich jetzt bin, oder wie das alles " +"passiert ist. Ich glaube, mir ist etwas sehr Schlimmes passiert. Oder " +"vielleicht wurde ich einfach hart am Kopf getroffen. Oder beides. Beides " +"scheint wahrscheinlich." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" +"Von der Apokalypse wusste ich gar nicht sofort. Ich war weit weg vom " +"Schlimmsten. Mein Auto brach auf der Autobahn zusammen und ich wartete " +"stundenlang auf den Abschleppdienst. Ich kampierte schließlich in den " +"Büschen abseits der Straße. Zum Glück, weil ein Sattelschlepper vorbeifuhr -" +" toter Fahrer, weißt du - und aus meinem Auto eine Schleuderpartie machte. " +"Ich fühle mich schlecht für die Bastarde, die in den Städten waren, als die " +"Apokalypse hereinbrach." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "Wie hast du da draußen überlebt?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "Was hast du in den ersten Tagen gesehen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "Was ist nach dem sauren Nebel passiert?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "Was ist mit deiner Freundin passiert?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "Ich glaube, sie wussten es nicht." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "War sie tot?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "Das ist schrecklich. " + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "Das ist schrecklich. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "Was ist mit dir passiert?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "Was ist mit deinem Unterschlupf?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "Bist du dort angekommen" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +msgstr "Könntest du mir diese Geschichte noch einmal erzählen?" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "Klingt so, als hätte es nicht geklappt." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "Hey, ich wäre wirklich daran interessiert, diese Karten zu sehen." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "Warum hast du deinen Bunker verlassen?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Danke, dass du es mir erzählt hast. " + +#: 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 "" +"Ja, das tue ich. Ich wäre bereit, mich von ihnen zu trennen, sagen wir für " +"1000 €. Direkt von deinem Geldautomatenkonto, keine Geldkarten." + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "[2000 €] Wir sind im Geschäft." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "Entschuldigung, wenn ich das Thema wechsle. Was hast du zuvor gesagt?" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "Gut. Hier sind sie." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "Vielen Dank! Was hast du vorher noch gesagt?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "Netter Versuch. Du willst die Karten, dann bezahl auch dafür." + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "Gut. Was hast du vorher noch gesagt?" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -123847,6 +125742,162 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "Cool. Was hast du vorher gesagt?" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" +"Meine Geschichte. Huh. Sie ist an sich nichts Besonderes. Ich hatte " +"Gefährten, aber sie sind auferstanden, um beim Herrn zu sein. Ich verstehe " +"nicht, warum ER nicht auch mich zu sich geholt hat, aber ich denke, es wird " +"sich alles rechtzeitig aufklären." + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "Meinst du im religiösen Sinn oder...?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "Was ist, wenn du falsch liegst?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "Was wirst du dann tun?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "Was wirst du dann tun?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "Wo ist Buck jetzt?" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Ich sehe wo das hinführt. " + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Ich sehe wo das hinführt. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Es tut mir leid wegen Buck. " + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Es tut mir leid wegen Buck " + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -123972,6 +126023,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -124235,7 +126342,7 @@ msgstr "50% Züge, 66% Schaden" #: lang/json/technique_from_json.py #, python-format msgid "You quickly strike %s" -msgstr "Du schlägst %s schnell" +msgstr "Mit Schnelligkeit schlägst du %s" #: lang/json/technique_from_json.py #, python-format @@ -124434,7 +126541,7 @@ msgstr "schneller Schlag" #: lang/json/technique_from_json.py #, python-format msgid "You quickly punch %s" -msgstr "Du schlägst %s schnell" +msgstr "Mit Schnelligkeit schlägst du %s" #: lang/json/technique_from_json.py #, python-format @@ -125352,6 +127459,44 @@ msgstr "Du verpasst %s einen Phasenschlag" msgid " phase-strikes %s" msgstr " verpasst %s einen Phasenschlag" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "versetzen und kontern" @@ -127809,6 +129954,10 @@ msgid "" "as mulberries. In the summer many berries can be picked. You could also " "cut it down with the right tools." msgstr "" +"Dieser Baum ist Mitglied der Pflanzengattung »Morus«. Er trägt Früchte, die " +"allgemein als »Maulbeeren« bekannt sind. Im Sommer können in der Regel viele" +" Beeren gepflückt werden. Mit dem richtigen Werkzeug könntest du den Baum " +"fällen." #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -127817,6 +129966,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 "" +"Dieser Baum ist Mitglied der Pflanzengattung »Morus«. Er trägt Früchte, die " +"allgemein als »Maulbeeren« bekannt sind. Er scheint aber im Moment keine " +"reifen Maulbeeren zu tragen. Mit dem richtigen Werkzeug könntest du den Baum" +" fällen." #: lang/json/terrain_from_json.py msgid "elderberry tree" @@ -127829,6 +129982,10 @@ msgid "" "known as elderberries. In the summer many berries can be picked. You could" " also cut it down with the right tools." msgstr "" +"Dieser Baum ist Mitglied der Pflanzengattung »Sambucus«. Er trägt Früchte, " +"die allgemein als »Holunderbeeren« bekannt sind. Im Sommer können in der " +"Regel viele Beeren gepflückt werden. Mit dem richtigen Werkzeug könntest du " +"den Baum fällen." #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -127837,6 +129994,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 "" +"Dieser Baum ist Mitglied der Pflanzengattung »Sambucus«. Er trägt Früchte, " +"die allgemein als »Holunderbeeren« bekannt sind. Er scheint aber im Moment " +"keine reifen Holunderbeeren zu tragen. Mit dem richtigen Werkzeug könntest " +"du den Baum fällen." #: lang/json/terrain_from_json.py msgid "pine tree" @@ -129171,6 +131332,26 @@ msgstr "Strick" msgid "bullet pulling" msgstr "Patronenzieh" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "Isomatte" @@ -129807,7 +131988,7 @@ msgstr "Auto-Fahrgestell" #: lang/json/vehicle_from_json.py msgid "Hatchback" -msgstr "Kombilimousine" +msgstr "Kleinwagen" #: lang/json/vehicle_from_json.py msgid "Sports Car" @@ -129999,11 +132180,11 @@ msgstr "Schnelle Zerstörung" #: lang/json/vehicle_from_json.py msgid "Cross Split" -msgstr "" +msgstr "Kreuzspaltung" #: lang/json/vehicle_from_json.py msgid "Circle Split" -msgstr "" +msgstr "Kreisspaltung" #: lang/json/vehicle_from_json.py msgid "Reactor test" @@ -130121,6 +132302,18 @@ msgstr "custom_empty" msgid "canoe" msgstr "Kanu" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "Amphibien-Truck" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "Kajak" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "Rennkajak" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "Floß" @@ -130143,7 +132336,7 @@ msgstr "Roboter-Taxi" #: lang/json/vehicle_from_json.py msgid "Armored Robot Carrier" -msgstr "" +msgstr "gepanzerter Robotertransporter" #: lang/json/vehicle_from_json.py msgid "Atomic Mini-Tank" @@ -130912,8 +133105,8 @@ msgid "" "selecting an animal to capture, choose its tile relative to you, not the " "part." msgstr "" -"Ein großes Schließfach zum Transport von kleineren Tieren. Unt'e'rsuche es, " -"um ein Tier neben dir zu fangen, oder, um ein bereits gefangenes Tier " +"Ein großes Kasten zum Transport von kleineren Tieren. Unt[e]rsuche es, um " +"ein Tier neben dir zu fangen, oder, um ein bereits gefangenes Tier " "freizulassen. Wenn du ein Tier zum Fangen auswählen möchtest, wähle das Feld" " relativ zu dir aus, nicht das Teil selbst." @@ -131509,6 +133702,13 @@ msgid "" " have line of sight to where it is going and it must be within four tiles of" " it." msgstr "" +"Ein starrer Derrick- bzw. Auslegerkran aus Stahl. Befindet er sich in deinem" +" Sichtfeld und innerhalb von zwei Feldern eines anderen Fahrzeugs, wirst du " +"ihn automatisch benutzen, wenn du das andere Fahrzeug anheben möchtest, um " +"dessen Bereifung zu wechseln. Um ein schweres Bauteil anzuheben, z.B. einen " +"Motor, den du ein- oder ausbauen willst, muss sich der Kran im Sichtfeld des" +" Arbeitsbereiches befinden und muss sich zudem innerhalb von vier Feldern " +"dieses Ein- bzw. Ausbaufeldes befinden." #: lang/json/vehicle_part_from_json.py msgid "internal boom crane" @@ -131528,6 +133728,13 @@ msgid "" "crane must have line of sight to where it is going and it must be within " "four tiles of it." msgstr "" +"Ein teleskopierbarer Kran. Befindet er sich in deinem Sichtfeld und " +"innerhalb von zwei Feldern eines anderen Fahrzeugs, wirst du ihn automatisch" +" benutzen, wenn du das andere Fahrzeug anheben möchtest, um dessen Bereifung" +" zu wechseln. Um ein schweres Bauteil anzuheben, z.B. einen Motor, den du " +"ein- oder ausbauen willst, muss sich der Teleskopkran im Sichtfeld des " +"Arbeitsbereiches befinden und muss sich zudem innerhalb von vier Feldern " +"dieses Ein- bzw. Ausbaufeldes befinden." #. ~ Description for pallet lifter #: lang/json/vehicle_part_from_json.py @@ -131538,6 +133745,13 @@ 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 "" +"Ein kleiner Palettenheber. Befindet er sich in deinem Sichtfeld und " +"innerhalb von zwei Feldern eines anderen Fahrzeugs, wirst du ihn automatisch" +" benutzen, wenn du das andere Fahrzeug anheben möchtest, um dessen Bereifung" +" zu wechseln. Um ein schweres Bauteil anzuheben, z.B. einen Motor, den du " +"ein- oder ausbauen willst, muss sich der Heber im Sichtfeld des " +"Arbeitsbereiches befinden und muss sich zudem innerhalb von vier Feldern " +"dieses Ein- bzw. Ausbaufeldes befinden." #: lang/json/vehicle_part_from_json.py msgid "forklift arm" @@ -131553,6 +133767,13 @@ msgid "" " have line of sight to where it is going and it must be within four tiles of" " it." msgstr "" +"Ein Satz Gabelstaplergabeln. Befinden sie sich in deinem Sichtfeld und " +"innerhalb von zwei Feldern eines anderen Fahrzeugs, wirst du sie automatisch" +" benutzen, wenn du das andere Fahrzeug anheben möchtest, um dessen Bereifung" +" zu wechseln. Um ein schweres Bauteil anzuheben, z.B. einen Motor, den du " +"ein- oder ausbauen willst, muss sich der Gabelstapler im Sichtfeld des " +"Arbeitsbereiches befinden und muss sich zudem innerhalb von vier Feldern " +"dieses Ein- bzw. Ausbaufeldes befinden." #. ~ Description for rockwheel #: lang/json/vehicle_part_from_json.py @@ -131697,11 +133918,23 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." msgstr "" -"Eine sehr helle breitwinkelige Lampe, welche den Bereich außerhalb des " -"Fahrzeugs beleuchtet, wenn sie eingeschaltet ist." +"Eine sehr helle und kreisförmig abstrahlende Lampe, welche eingeschaltet " +"einen beachtlichen kreisrunden Bereich außerhalb des Fahrzeugs beleuchtet." + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." +msgstr "" +"Eine sehr helle und gerichtete Lampe, die eingeschaltet einen " +"halbkreisförmigen Kegel außerhalb des Fahrzeugs beleuchtet. Während der " +"Installation kannst du auswählen, in welche Richtung die Lampe abstrahlen " +"soll." #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -131715,10 +133948,27 @@ msgid "" "light, so multiple headlights can illuminate the sides or rear, as well as " "the front." msgstr "" -"Eine helle Lampe, die einen engen Kegel außerhalb des Fahrzeugs beleuchtet, " -"wenn sie eingeschaltet ist. Bei der Installation kannst du wählen, in welche" -" Richtung die Lampe zeigen soll, also können mehrere Scheinwerfer die " -"Seiten, die Rückseite sowie die Vorderseite beleuchten." +"Eine helle Lampe, die eingeschaltet einen engen Kegel außerhalb des " +"Fahrzeugs beleuchtet. Während der Installation kannst du auswählen, in " +"welche Richtung die Lampe abstrahlen soll, sodass mehrere Scheinwerfer als " +"Seiten-, Rück- sowie Frontbeleuchtung eingesetzt werden können." + +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "Weitwinkelscheinwerfer" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" +"Eine helle Lampe, die eingeschaltet einen breiten Kegel außerhalb des " +"Fahrzeugs beleuchtet. Während der Installation kannst du auswählen, in " +"welche Richtung die Lampe abstrahlen soll, sodass mehrere Scheinwerfer als " +"Seiten-, Rück- sowie Frontbeleuchtung eingesetzt werden können." #: lang/json/vehicle_part_from_json.py msgid "" @@ -131846,13 +134096,12 @@ 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 "" -"Ein Lagerraum, um Flüssigkeiten zu halten. Wenn er mit dem passenden " -"Treibstoff für den Motor des Fahrzeugs gefüllt ist, wird der Motor " -"automatisch Treibstoff aus dem Tank entnehmen, wenn der Motor eingeschaltet " -"ist. Wenn er mit Wasser gefüllt ist, kannst du auf das Wasser mit einem " -"Wasserhahn zugreifen, falls einer am Fahrzeug befestigt wurde. Du kannst " -"außerdem einen Gummischlauch benutzen, um Flüssigkeiten aus einem Tank " -"abzusaugen." +"Ein Lagerplatz für Flüssigkeiten. Ist er mit dem passenden Treibstoff für " +"einen eingebauten Motor des Fahrzeugs gefüllt, dann zieht der eingeschaltete" +" Motor automatisch Treibstoff aus diesem Tank. Wenn er mit Wasser gefüllt " +"ist, kannst du auf das Wasser mit einem Wasserhahn zugreifen, falls einer am" +" Fahrzeug befestigt wurde. Du kannst außerdem einen Gummischlauch benutzen, " +"um Flüssigkeiten aus einem Tank abzusaugen." #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (10L)" @@ -131880,14 +134129,13 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" -"Ein Lagerraum, um Flüssigkeiten zu halten; dies wurde außerhalb der Wände " -"und Panzerungen des Fahrzeuges montiert. Wenn er mit dem passenden " -"Treibstoff für den Motor des Fahrzeugs gefüllt ist, wird der Motor " -"automatisch Treibstoff aus dem Tank entnehmen, wenn der Motor eingeschaltet " -"ist. Wenn er mit Wasser gefüllt ist, kannst du auf das Wasser mit einem " -"Wasserhahn zugreifen, falls einer am Fahrzeug befestigt wurde. Du kannst " -"außerdem einen Gummischlauch benutzen, um Flüssigkeiten aus einem Tank " -"abzusaugen." +"Ein Lagerplatz für Flüssigkeiten, montiert außerhalb der Wände und Panzerung" +" des Fahrzeugs. Ist er mit dem passenden Treibstoff für einen eingebauten " +"Motor des Fahrzeugs gefüllt, dann zieht der eingeschaltete Motor automatisch" +" Treibstoff aus diesem Tank. Wenn er mit Wasser gefüllt ist, kannst du auf " +"das Wasser mit einem Wasserhahn zugreifen, falls einer am Fahrzeug befestigt" +" wurde. Du kannst außerdem einen Gummischlauch benutzen, um Flüssigkeiten " +"aus einem Tank abzusaugen." #: lang/json/vehicle_part_from_json.py msgid "external tank (200L)" @@ -131904,6 +134152,9 @@ msgid "" "fuel for the vehicle's engine, the engine will automatically draw fuel from " "the tank when the engine is on." msgstr "" +"Ein Lagerplatz für feste Brennstoffe. Ist er mit dem passenden Treibstoff " +"für einen eingebauten Motor des Fahrzeugs gefüllt, dann zieht der " +"eingeschaltete Motor automatisch Treibstoff aus diesem Lagerplatz." #: lang/json/vehicle_part_from_json.py msgid "mounted flamethrower" @@ -132061,6 +134312,39 @@ msgstr "breites Rad (lenkbar)" msgid "A wooden wheel." msgstr "Ein Holzrad." +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +msgstr "Holz-Bootsrumpf" + +#. ~ 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 "Eine hölzerne Schiffswand, die das Wasser aus deinem Boot heraushält." + +#. ~ 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 "" +"Eine starre Kunststoffplatte, die das Wasser aus deinem Boot heraushält." + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +msgstr "Metall-Bootsrumpf" + +#. ~ 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 "Ein Blech, das das Wasser aus deinem Boot heraushält." + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" +"Eine leichte, hochentwickelte und stabile Kohlefaserplatte, die das Wasser " +"aus deinem Boot heraushält." + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "Handpaddel" @@ -132099,7 +134383,7 @@ msgstr "montierte Minigun" #: lang/json/vehicle_part_from_json.py msgid "robot_carrier" -msgstr "" +msgstr "Roboterträger" #. ~ Description for robot_carrier #: lang/json/vehicle_part_from_json.py @@ -132108,6 +134392,10 @@ 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 "" +"Ein Lagerraum zum Transport von Robotern. Unt[e]rsuche ihn, um einen Roboter" +" neben dir zu lagern, oder, um einen bereits enthaltenen Roboter " +"freizugeben. Wenn du einen Roboter zum Einlagern auswählen möchtest, wähle " +"das Feld relativ zu dir aus, nicht den Lagerraum selbst." #: lang/json/vehicle_part_from_json.py msgid "120mm tank gun (AL)" @@ -133003,12 +135291,12 @@ msgid "" "tank." msgstr "" "Ein lebendiger Blob, der zu einem Lagerraum geformt wurde, um Flüssigkeiten " -"zu halten. Wenn er mit dem passenden Treibstoff für den Motor des Fahrzeugs " -"gefüllt ist, wird der Motor automatisch Treibstoff aus dem Tank entnehmen, " -"wenn der Motor eingeschaltet ist. Wenn er mit Wasser gefüllt ist, kannst du " -"auf das Wasser mit einem Wasserhahn zugreifen, falls einer am Fahrzeug " -"befestigt wurde. Du kannst außerdem einen Gummischlauch benutzen, um " -"Flüssigkeiten aus einem Tank abzusaugen." +"zu halten. Ist er mit dem passenden Treibstoff für einen eingebauten Motor " +"des Fahrzeugs gefüllt, dann zieht der eingeschaltete Motor automatisch " +"Treibstoff aus diesem Blob. Wenn er mit Wasser gefüllt ist, kannst du auf " +"das Wasser mit einem Wasserhahn zugreifen, falls einer am Fahrzeug befestigt" +" wurde. Du kannst außerdem einen Gummischlauch benutzen, um Flüssigkeiten " +"aus einem Tank abzusaugen." #: lang/json/vehicle_part_from_json.py msgid "gel tank (60L)" @@ -133327,7 +135615,7 @@ msgstr "Eine amorphe Masse, das lebendige Herz und Hirn eines Blobfahrzeugs." #: lang/json/vehicle_part_from_json.py msgid "inert core" -msgstr "" +msgstr "inaktiver Kern" #. ~ Description for inert core #: lang/json/vehicle_part_from_json.py @@ -133336,6 +135624,10 @@ msgid "" "weapon. If your hands are empty, you can stand next to a tentacle and " "'f'ire the weapon by selecting the tile." msgstr "" +"Ein schlafender amorpher Kern, welcher als drehbare Universalhalterung für " +"Waffen fungiert. Sind deine Hände leer, kannst du neben einem der Tentakel " +"stehen und die darauf montierte Waffe durch das Auswählen des entsprechenden" +" Feldes ab[f]euern." #. ~ Description for gel spouter #. ~ Description for gel spiker @@ -133528,6 +135820,7 @@ msgstr "Diamantbarriere" #: lang/json/vehicle_part_from_json.py msgid "A transparent, solid sheet of self-sustaining crystals." msgstr "" +"Eine transparente, massive Platte aus sich selbst erhaltenden Kristallen." #. ~ Description for diamond frame #: lang/json/vehicle_part_from_json.py @@ -133839,6 +136132,14 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "Du sezierst die Leiche mit deinem treuen Skalpell." +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" +"Du sezierst die Leiche mit einem ausgeklügelten System chirurgischer " +"Skalpelle." + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -134314,22 +136615,35 @@ msgid "Repeat once" msgstr "Einmal wiederholen" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Wiederholen, so oft du kannst" +msgid "Repeat until reinforced" +msgstr "Wiederholen, bis verstärkt" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" -msgstr "Wiederholen, bis vollständig repariert, aber ohne Verstärkung" +msgstr "Wiederholen, bis vollständig repariert, aber nicht verstärken" #: src/activity_handlers.cpp msgid "Repeat until success/failure/level up" msgstr "Wiederholen bis Erfolg/Versagen/neue Fertigkeitsstufe" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "Zurück zur Gegenstandsauswahl" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "%s hat keine Ladungen mehr" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "Was reparieren?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "Du hast keine Gegenstände, welche mit %s repariert werden könnten." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Von dieser Tätigkeit wirst du nichts neues lernen." @@ -134337,13 +136651,18 @@ msgstr "Von dieser Tätigkeit wirst du nichts neues lernen." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" msgstr "" -"%s\n" -"Erfolgswahrscheinlichkeit: %.1f%%\n" -"Schadenswahrscheinlichkeit: %.1f%%" +"%s %s\n" +"Erfolgswahrscheinlichkeit: %.1f%%\n" +"Schadenswahrscheinlichkeit: %.1f%%" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." +msgstr "%s ist bereits vollständig repariert." #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -134397,6 +136716,11 @@ msgstr "Du bist fertig mit Warten." msgid "%s finishes with you..." msgstr "%s vollendet es mit dir gemeinsam …" +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "Du wirfst und drehst dich umher..." @@ -134472,6 +136796,11 @@ msgstr "Du bist fertig mit dem Ausgraben von %s." msgid "You finish filling up %s." msgstr "Du bist fertig mit dem Befüllen von %s." +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "Du öffnest dein Set und rasierst dich." @@ -134480,6 +136809,20 @@ msgstr "Du öffnest dein Set und rasierst dich." msgid "You give your hair a trim." msgstr "Du schneidest dir die Haare." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "Du demontierst: %s." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "%s wird entladen." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "Du hast alle verfügbaren Ackerbau-Felder abgeerntet." + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Du wühlst die Erde hier auf." @@ -134488,6 +136831,15 @@ msgstr "Du wühlst die Erde hier auf." msgid "You tilled every tile you could." msgstr "Du hast jedes verfügbare Zielfeld gepflügt." +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "%s ist dir leider ausgegangen." + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "Du hast alle verfügbaren Ackerbau-Felder gedüngt." + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "Du hast alle Samen eingepflanzt, die du pflanzen konntest." @@ -135385,19 +137737,19 @@ msgstr[1] "" #: src/armor_layers.cpp msgid "This is worn next to the skin." -msgstr "Dies wird direkt an deiner Haut getragen." +msgstr "Wird direkt auf deiner Haut getragen. (Hauteng)" #: src/armor_layers.cpp msgid "This is worn on or around your waist." -msgstr "Dies wird über oder um deine andere Kleidung getragen." +msgstr "Wird über oder um deine andere Kleidung getragen." #: src/armor_layers.cpp msgid "This is worn over your other clothes." -msgstr "Dies wird über deine andere Kleidung getragen." +msgstr "Wird über deine andere Kleidung getragen. (Äußere)" #: src/armor_layers.cpp msgid "This is strapped onto you." -msgstr "Dies ist an dir festgebunden." +msgstr "Ist an dir festgebunden." #: src/armor_layers.cpp msgid "Properties" @@ -135438,35 +137790,35 @@ msgstr "Umgebungsschutz:" #: src/armor_layers.cpp msgid "It fits you well." -msgstr "Es passt dir gut." +msgstr "Passt wie angegossen." #: src/armor_layers.cpp msgid "It could be refitted." -msgstr "Es könnte ausgebessert werden." +msgstr "Könnte ausgebessert werden." #: src/armor_layers.cpp msgid "It has a hood." -msgstr "Es hat eine Kapuze." +msgstr "Hat eine Kapuze." #: src/armor_layers.cpp msgid "It has pockets." -msgstr "Es hat Taschen." +msgstr "Hat Taschen." #: src/armor_layers.cpp msgid "It is waterproof." -msgstr "Es ist wasserdicht." +msgstr "Ist wasserdicht." #: src/armor_layers.cpp msgid "It is water friendly." -msgstr "Es ist wasserfreundlich." +msgstr "Absorbiert Wasser." #: src/armor_layers.cpp msgid "It looks fancy." -msgstr "Es sieht schick aus." +msgstr "Sieht schick aus." #: src/armor_layers.cpp msgid "It looks really fancy." -msgstr "Es sieht sehr schick aus." +msgstr "Sieht sehr schick aus." #: src/armor_layers.cpp msgid "You will not drown today." @@ -135474,11 +137826,11 @@ msgstr "Heute wirst du nicht ertrinken." #: src/armor_layers.cpp msgid "It is very bulky." -msgstr "Es ist sehr sperrig." +msgstr "Ist sehr sperrig." #: src/armor_layers.cpp msgid "It helps you to see clearly underwater." -msgstr "Es hilft dir, im Wasser klar zu sehen." +msgstr "Hilft dir, im Wasser klar zu sehen." #: src/armor_layers.cpp #, c-format @@ -135488,7 +137840,7 @@ msgstr "%s ist zu weit weg, um Kleidungsstücke zu sortieren." #: src/armor_layers.cpp #, c-format msgid "%s is not friendly!" -msgstr "%s ist nicht freundlich!" +msgstr "%s ist nicht freundlich gestimmt!" #: src/armor_layers.cpp msgid "Sort Armor" @@ -135543,7 +137895,7 @@ msgstr "Kann nicht angezogen werden!" #: src/armor_layers.cpp msgid "Remove selected armor?" -msgstr "Gewähltes Kleidungsstück entfernen?" +msgstr "Gewähltes Kleidungsstück ausziehen?" #: src/armor_layers.cpp msgid "Reassign invlets for armor?" @@ -135769,6 +138121,10 @@ msgstr "" "schrumpft und wächst ein ganz kleines bisschen, in einem regelmäßigem Puls, " "so wie beim Atmen" +#: src/artifact.cpp +msgid "dead" +msgstr "Todes" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "ist vollkommen eiskalt" @@ -137125,8 +139481,10 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Strom: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" +"Bionik Strom: %i/%i" #: src/bionics_ui.cpp msgid "" @@ -138670,12 +141028,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "DATEI BESCHÄDIGT, DRÜCKEN SIE IRGENDEINE TASTE …" #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"Die Maschine injiziert püriertes Knochenmark und LSD\n" -"in deinen Augapfel." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -139792,6 +142147,62 @@ msgstr "Du ergötzt dich am süßen Honig." msgid "You can't finish it all!" msgstr "Du schaffst es aber nicht, alles zu dir zu nehmen." +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "" @@ -140306,13 +142717,10 @@ msgstr "nach eingeprägten oder nicht suchen" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"Standardmäßig wird nach Ergebnisnamen gesucht. Einige Einzelzeichen-Präfixe können mit einem Doppelpunkt »:« vorangestellt werden, um dadurch auf eine andere Weise zu suchen.\n" -" \n" -"Beispiele:\n" #: src/crafting_gui.cpp msgid "shirt" @@ -140558,7 +142966,7 @@ msgstr "Elektro" #: src/debug.cpp #, c-format msgid "See %s for a full stack backtrace" -msgstr "" +msgstr "Siehe %s für einen vollständigen Stack-Backtrace" #: src/debug.cpp msgid "An error has occurred! Written below is the error report:" @@ -140603,7 +143011,7 @@ msgstr "Wo ist die gewünschte Oberkarte?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "Du teleportierst dich zur Oberkarte (%d;%d;%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Du" @@ -143887,7 +146295,7 @@ msgstr " [FERTIG]\n" #: src/faction_camp.cpp msgid " left]\n" -msgstr "" +msgstr " übrig]\n" #: src/faction_camp.cpp src/faction_camp.cpp src/mission_companion.cpp #: src/mission_companion.cpp @@ -143959,6 +146367,20 @@ msgid "" "Total faction food stock: %d kcal\n" "or %d day's rations" msgstr "" +"Anmerkungen:\n" +"Verteile Lebensmittel an deine Gefährten und fülle deine Speisekammern auf. Platziere die Lebensmittel, die du verteilen möchtest, auf dem Begleiter-Lebensmittel-Sortierpunkt. Standardmäßig befindet sich dieser Punkt gegenüber der Zelttür zwischen dem Lagerleiter und der Wand.\n" +" \n" +"Wirkungen:\n" +"> Erhöht den Essensversorgungswert deiner Fraktion, welcher im Gegenzug benutzt wird, Arbeiter für ihre Zeit zu bezahlen.\n" +" \n" +"Minimale Genießbarkeit: -6\n" +"Verderbliche Lebensmittel:\n" +"> Verdorben: 0%%\n" +"> Verdirbt in < 2 Tagen: 60%%\n" +"> Verdirbt in < 5 Tagen: 80%%\n" +" \n" +"Gesamte Nahrungsvorräte der Fraktion: %d kcal\n" +"oder %d Tagesrationen" #: src/faction_camp.cpp msgid "Distribute Food" @@ -144475,6 +146897,17 @@ msgid "" "Risk: None\n" "Time: 5 days \n" msgstr "" +"Anmerkungen:\n" +"Lass einen Gefährten, ein Fahrzeug vollständig in seine Komponenten zerlegen.\n" +"\n" +"Benutzte Fertigkeit: Mechanik\n" +"Schwierigkeitsgrad: 2\n" +"Wirkungen:\n" +"> Entfernte Teile landen auf den Möbeln in der Garage.\n" +"> Fertigkeit spielt eine riesige Rolle dabei, welche Teile geborgen werden.\n" +"\n" +"Risiko: Keins\n" +"Dauer: 5 Tage\n" #: src/faction_camp.cpp msgid " Chop Shop" @@ -145276,6 +147709,21 @@ msgid "" "Time: 4 Days\n" "Positions: %d/1\n" msgstr "" +"Anmerkungen:\n" +"Die Rekrutierung neuer Gefährten ist sehr gefährlich und recht kostspielig. Das Ergebnis hängt stark von der Fertigkeit des entsendeten Gefährten und der Attraktivität deiner Basis ab.\n" +" \n" +"Benutzte Fertigkeit: Redekunst\n" +"Schwierigkeitsgrad: 2\n" +"Basiswertung: +%3d%%\n" +"> Expansionsbonus: +%3d%%\n" +"> Fraktionsbonus: +%3d%%\n" +"> Sonderbonus: +%3d%%\n" +" \n" +"Gesamt: Fertigkeit: +%3d%%\n" +" \n" +"Risiko: Hoch\n" +"Dauer: 4 Tage\n" +"Positionen: %d/1\n" #: src/faction_camp.cpp msgid "" @@ -146533,6 +148981,10 @@ msgstr "Debug-Nachricht anzeigen" msgid "Crash game (test crash handling)" msgstr "Spiel-Absturz (Test-Absturz-Handhabung)" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "Zurück zum Hauptmenü" @@ -146713,7 +149165,8 @@ msgstr "TODESZÄHLER: %d" #: src/game.cpp msgid " You are forgotten among the billions lost in the cataclysm..." -msgstr " Du wirst vergessen unter den Billionen Toten der Apokalypse …" +msgstr "" +" Du wirst unter den Milliarden Toten der Apokalypse vergessen werden…" #: src/game.cpp msgid "" @@ -146883,22 +149336,25 @@ msgid "Underground" msgstr "Unterirdisch" #: src/game.cpp -msgid "Weather:" -msgstr "Wetter:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "Temperatur:" +msgid "Weather :" +msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Mond %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "Beleuchtung:" +#: src/game.cpp +msgid "Deaf!" +msgstr "Taub!" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -147208,6 +149664,11 @@ msgstr "Alle Gegenstände fallenlassen" msgid "Attach bag" msgstr "Tasche anbringen" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "Abbinden" @@ -147282,6 +149743,11 @@ msgstr "%1$s ist überlastet. Du kannst %2$s nicht transferieren." msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "Dafür gibt es keinen in deines %1$s %2$s, es ist zu sperrig!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "Den Zombiesklaven wirklich töten?" @@ -147426,7 +149892,7 @@ msgstr "%s ist fest verschlossen." #: src/game.cpp src/iexamine.cpp msgid "It is empty." -msgstr "Es ist leer." +msgstr "Gänzlich ohne Inhalt." #: src/game.cpp msgid "Peek where?" @@ -147544,7 +150010,7 @@ msgstr "Zweiten Punkt auswählen." #: src/game.cpp msgid "What do you want to change:" -msgstr "Was willst du ändern?:" +msgstr "Was willst du ändern?" #: src/game.cpp msgid "Edit name" @@ -147841,9 +150307,9 @@ msgid "" "You must stand near acceptable terrain or furniture to use this weapon. A " "table, a mound of dirt, a broken window, etc." msgstr "" -"Du musst in der Nähe von akzeptablem Gelände oder einem Möbel stehen, um " -"diese Waffe benutzen zu können. Ein Tisch, ein Erdhügel, ein zerbrochenes " -"Menster, usw." +"Um diese Waffe benutzen zu können, musst du in der Nähe von akzeptablem " +"Gelände oder einem Möbelstück stehen - z.B. ein Tisch, ein Erdhügel oder ein" +" zerbrochenes Fenster." #: src/game.cpp #, c-format @@ -147975,11 +150441,11 @@ msgstr "" #: src/game.cpp #, c-format msgid "You see %s nearby! Start butchering anyway?" -msgstr "In der Nähe siehst du ein %s! Trotzdem mit dem Schlachten anfangen?" +msgstr "In der Nähe siehst du »%s«! Trotzdem mit dem Schlachten anfangen?" #: src/game.cpp msgid "Choose corpse to butcher / item to disassemble" -msgstr "Leiche zum Schlachten bzw. Gegenstand zum Demontieren auswählen" +msgstr "Leiche zum Schlachten bzw. Gegenstand zum Demontieren auswählen:" #: src/game.cpp msgid "Butcher everything" @@ -148081,64 +150547,6 @@ msgstr "Du hast nichts zum Entladen." msgid "You're not wielding anything." msgstr "Du hälst nichts." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "Du legst %s in dein Inventar." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "%s ist schon leer!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "" -"Die Flüssigkeit kann in ihrem aktuellen Zustand nicht ausgeleert werden!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "Was entladen?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "Du kannst ein %s nicht entladen!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "Du kannst ein wiederaufladbares %s nicht entladen!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "Dein %s ist nicht aufgeladen." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "Dein %s ist nicht geladen." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "Du demontierst: %s." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "Du entlädst dein %s." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "Du verwertest %i unbenutztes Plutonium wieder." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "Du kannst teilweise verbrauchtes Plutonium nicht entfernen!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -148306,12 +150714,12 @@ msgstr "Festgehaltenes Objekt konnte nicht gefunden werden." #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" -msgstr "Sich auf %s zu bewegen ist langsam!" +msgstr "Sich auf »%s« zu bewegen verlangsamt dich!" #: src/game.cpp #, c-format msgid "Moving off of this %s is slow!" -msgstr "Sich von %s zu bewegen ist langsam!" +msgstr "Sich von »%s« weg zu bewegen verlangsamt dich!" #: src/game.cpp msgid "Your tentacles stick to the ground, but you pull them free." @@ -149548,7 +151956,7 @@ msgstr "Wo schließen?" #: src/handle_action.cpp msgid "You pull a handbrake." -msgstr "Du ziehst eine Handbremse." +msgstr "Du ziehst die Handbremse deines Fahrzeugs." #: src/handle_action.cpp #, c-format @@ -149674,13 +152082,9 @@ msgstr "Ja." msgid "Yes, and save game before sleeping." msgstr "Ja, und ich will davor auch das Spiel speichern." -#: src/handle_action.cpp -msgid "No." -msgstr "Nein." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." -msgstr "Du möchtest diese vielleicht deaktivieren, bevor du schläfst." +msgstr "Vielleicht möchtest du Nachfolgendes vor dem Schlafen ausschalten:" #: src/handle_action.cpp msgid "" @@ -149732,15 +152136,16 @@ msgstr "" #: src/handle_action.cpp msgid "Till farm plots" -msgstr "Ackerbau Feld pflügen" +msgstr "Ackerbau-Felder pflügen" #: src/handle_action.cpp msgid "Till farm plots... you need a tool to dig with" -msgstr "Ackerbau Feld pflügen... du hast kein Werkzeug zum Graben" +msgstr "" +"Ackerbau-Feld pflügen... du hast nicht das passende Werkzeug zum Graben" #: src/handle_action.cpp msgid "Tills nearby Farm: Plot zones." -msgstr "Ackerbau Zielfelder in der Nähe pflügen." +msgstr "Ackerbau-Zielfelder in der Nähe pflügen." #: src/handle_action.cpp msgid "Plant seeds... it is too cold for planting" @@ -149759,10 +152164,31 @@ 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 "" -"Samen in nahegelegene Ackerbau Zielfelder einpflanzen. Ackerbau Zielfeld " +"Samen in nahegelegene Ackerbau-Zielfelder einpflanzen. Ackerbau-Zielfeld " "muss auf einen bestimmten Samentyp definiert sein und du musst die " "entsprechenden Samen im Inventar mitführen." +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "Ackerbau-Felder düngen" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "Ackerbau-Felder düngen... du hast keinen Dünger" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "Dünge alle nahe gelegenen Ackerbau-Felder" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "Ackerbau-Felder abernten" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" +"Ernten alle ausgewachsenen Pflanzen von nahe gelegenen Ackerbau-Feldern" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "Du brauchst ein Werkzeug zum Graben." @@ -150026,7 +152452,7 @@ msgstr "Eine Geldkarte kaufen?" #: src/iexamine.cpp msgid "You need $1.00 in your account to purchase a card." -msgstr "Sie benötigen 1,00$ auf Ihrem Konto, um eine Karte zu kaufen." +msgstr "Sie benötigen 1,00 € auf Ihrem Konto, um eine Karte zu kaufen." #: src/iexamine.cpp msgid "Withdraw Money" @@ -150541,10 +152967,24 @@ msgstr "Die Saat blüht ziemlich plötzlich auf …" msgid "The seed blossoms into a flower-looking fungus." msgstr "Die Saat blüht in einen blumenähnlichen Fungus auf." +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "Dieses Feld ist keine Pflanze" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "Dieses Feld wurde bereits gedüngt" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "%s wurde bereits gedüngt." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" +"Versucht mit %s zu düngen, aber der Spieler hat keinen solchen Dünger." + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "Du düngst %s mit %s." #: src/iexamine.cpp #, c-format @@ -150560,6 +153000,11 @@ msgstr "%s düngen" msgid "Use which fertilizer?" msgstr "Welchen Dünger benutzen?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "%s wurde bereits gedüngt." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Dieser Ofen enthält bereits Holzkohle." @@ -152509,6 +154954,10 @@ msgstr "Nachlademodifikator: " msgid "Minimum strength required modifier: " msgstr "Benötigte-Mindeststärke-Modifikator: " +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "Benutzt mit: " @@ -152517,6 +154966,10 @@ msgstr "Benutzt mit: " msgid "Location: " msgstr "Standort: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "Bedeckt: " @@ -152806,7 +155259,7 @@ msgstr "" #: src/item.cpp #, c-format msgid "Has level %1$d %2$s quality." -msgstr "Hat %2$squalität der Stufe %1$d." +msgstr "Hat %2$squalität der Stufe %1$d." #: src/item.cpp msgid "Contains items with qualities:" @@ -152863,7 +155316,7 @@ msgstr "Du beherrschst die folgenden Kampfkunststile: " #: src/item.cpp msgid "Repaired with: " -msgstr "Zu reparieren mit: " +msgstr "Reparierbar mit: " #: src/item.cpp msgid "* This item is not repairable." @@ -152923,8 +155376,8 @@ msgstr "" #: src/item.cpp msgid "* This item can be worn on either side of the body." msgstr "" -"* Dieser Gegenstand kann auf beiden Seiten des Körpers " -"getragen werden." +"* Dieser Gegenstand kann auf beiden Seiten des Körpers getragen" +" werden." #: src/item.cpp msgid "* This gear is a part of power armor." @@ -153425,6 +155878,11 @@ msgstr "kann keinen Patronenhülsenfänger haben" msgid "must be unloaded before installing this mod" msgstr "muss zuerst entladen werden, bevor diese Mod installiert wird" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -155838,7 +158296,7 @@ msgstr "Du benutzt %s, um dich abzutrocknen, was es mit Wasser durchtränkt." #: src/iuse.cpp #, c-format msgid "You are already dry, the %s does nothing." -msgstr "Du bist schon trocken, %s macht nichts." +msgstr "Du bist schon trocken, das %s bewirkt also nichts." #: src/iuse.cpp src/iuse_actor.cpp #, c-format @@ -156176,13 +158634,8 @@ msgid "No music on device" msgstr "Keine Musik auf dem Gerät" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "Rezept: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "Rezept auf dem E-Ink-Bildschirm betrachten" +msgid "View recipes on E-ink screen" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" @@ -156251,13 +158704,8 @@ msgid "You turned on music on your %s." msgstr "Du hast die Musik von %s eingeschaltet." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "Rezept zum Betrachten wählen:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "Du lässt den E-Ink-Bildschirm ein Rezept für %s anzeigen." +msgid "List recipes:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -156313,10 +158761,6 @@ msgstr "Fotos auf Speicherkarte abspeichern" msgid "No photos in memory" msgstr "Keine Fotos im Speicher" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "Du entscheidest dich dafür, dich nicht selbst zu blitzen." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "Hier gibt es nichts, was sonderlich interessant wäre." @@ -156349,6 +158793,10 @@ msgstr "%s war im Weg für dein Foto." msgid "This photo is better than the previous one." msgstr "Dieses Foto ist besser als das Vorherige." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "Du machst ein Selfie von dir." + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -156966,7 +159414,7 @@ msgstr "" #: src/iuse.cpp #, c-format msgid "You flip a %s." -msgstr "Du wirfst eine %s." +msgstr "Du wirfst deine %s." #: src/iuse.cpp msgid "Heads!" @@ -157056,7 +159504,7 @@ msgstr "Sehr zweifelhaft." #, c-format msgid "You ask the %s, then flip it." msgstr "" -"Der stellst dem %s eine Frage und anschließend schüttelst du die Kugel " +"Du stellst dem %s eine Frage und anschließend schüttelst du die Kugel " "kräftig." #: src/iuse.cpp @@ -157687,15 +160135,6 @@ msgstr "Du siehst zu wenig, um das zu tun!" msgid "Your tool does not have enough charges to do that." msgstr "Dein Werkzeug verfügt über nicht genug Ladungen, um das zu tun." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "Was reparieren?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "Du hast keine Gegenstände, welche mit %s repariert werden könnten." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -157744,6 +160183,7 @@ msgstr "Du nähst dein %s ab. Es passt dir nun besser." #, c-format msgid "You resize the %s to accommodate your tiny build." msgstr "" +"Du passt die Größe an, um %s mit deiner winzigen Statur zu vereinbaren." #: src/iuse_actor.cpp #, c-format @@ -157984,12 +160424,6 @@ msgstr "Du hast eine bessere Version installiert." msgid "Remove which modification?" msgstr "Welche Modifikation entfernen?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Du entfernst dein %1$s von deiner %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "Dies scheint keine Modifikationen zu haben." @@ -159611,6 +162045,10 @@ msgstr "Zerschmetterbar. " msgid "Diggable. " msgstr "Grabbar. " +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "Uneben. " @@ -159683,7 +162121,7 @@ msgstr "Die Metallstäbe schmelzen!" #: src/map.cpp msgid "swish" -msgstr "" +msgstr "»Swisch«." #: src/map.cpp #, c-format @@ -160775,7 +163213,7 @@ 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 "" -"Profit: 25€-500€\n" +"Profit: 25-500 €\n" "Gefahr: Niedrig\n" "Dauer: 10 stündige Missionen\n" "\n" @@ -160793,7 +163231,7 @@ msgid "" " \n" "Patrol Roster:\n" msgstr "" -"Profit: 25€-500€\n" +"Profit: 25-500 €\n" "Gefahr: Niedrig\n" "Dauer: 10 stündige Missionen\n" "\n" @@ -160815,7 +163253,7 @@ 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 "" -"Profit: 200€-1000€\n" +"Profit: 200-1000 €\n" "Gefahr: Mittel\n" "Dauer: 10 stündige Missionen\n" " \n" @@ -160833,7 +163271,7 @@ msgid "" " \n" "Raid Roster:\n" msgstr "" -"Profit: 25€-500€\n" +"Profit: 25-500 €\n" "Gefahr: Mittel\n" "Dauer: 10 stündige Missionen\n" "\n" @@ -160851,7 +163289,7 @@ msgid "" " \n" "Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." msgstr "" -"Profit: 8$/Stunde\n" +"Profit: 8 €/Stunde\n" "Gefahr: Minimal\n" "Dauer: Mindestens 1 Stunde\n" "\n" @@ -160869,7 +163307,7 @@ msgid "" " \n" "Labor Roster:\n" msgstr "" -"Profit: 8$/Stunde\n" +"Profit: 8 €/Stunde\n" "Gefahr: Minimal\n" "Dauer: Mindestens 1 Stunde\n" " \n" @@ -160887,7 +163325,7 @@ 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 "" -"Profit: 12$/Stunde\n" +"Profit: 12 €/Stunde\n" "Gefahr: Minimal\n" "Dauer: Mindestens 1 Stunde\n" "\n" @@ -160905,7 +163343,7 @@ msgid "" " \n" "Labor Roster:\n" msgstr "" -"Profit: 12$/Stunde\n" +"Profit: 12 €/Stunde\n" "Gefahr: Minimal\n" "Dauer: Mindestens 1 Stunde\n" " \n" @@ -160932,6 +163370,20 @@ 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 "" +"Kosten: 1000 €\n" +" \n" +" \n" +" .........\n" +" .........\n" +" .........\n" +" .........\n" +" .........\n" +" .........\n" +" ..#....**\n" +" ..#Ov..**\n" +" ...O|....\n" +" \n" +"Wir sind bereit, dich ein Feld mit einem großzügigen Rabatt kaufen zu lassen, um es für deine eigenen landwirtschaftlichen Unternehmungen zu verwenden. Wir werden es für dich bestellen, damit du genau weißt, was dir gehört. Nachdem du ein Feld hast, kannst du Arbeiter anheuern, um für dich Nutzpflanzen einzupflanzen oder zu ernten. Wenn die Nutzpflanze etwas ist, für das wir eine Nachfrage haben, werden wir willens sein, sie zu liquidieren." #: src/mission_companion.cpp msgid "Purchase East Field" @@ -160990,7 +163442,7 @@ 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 "" -"Kosten: 3,00 € / Grundstück\n" +"Kosten: 3 € / Grundstück\n" " \n" "\n" " .........\n" @@ -161026,7 +163478,7 @@ msgid "" " \n" "You can either have us liquidate the crop and give you the cash or pay us to harvest it for you." msgstr "" -"Kosten: 2,00 € / Grundstück\n" +"Kosten: 2 € / Grundstück\n" " \n" "\n" " .........\n" @@ -161112,7 +163564,7 @@ msgid "" " \n" "Roster:\n" msgstr "" -"Profit: 18€/Stunde\n" +"Profit: 18 €/Stunde\n" "Gefahr: Hoch\n" "Dauer: UNBEKANNT\n" " \n" @@ -161792,6 +164244,21 @@ msgstr "Diese Mod benötigt Lua-Unterstützung." msgid "This mod requires Lua support" msgstr "Diese Mod benötigt Lua-Unterstützung." +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "%s schießt einen Pfeil auf dich ab, aber du kannst ihm ausweichen." + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s wirft einen Dart auf dich!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "%s schießt einen Pfeil, aber er prallt von deiner Rüstung ab." + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -161956,12 +164423,12 @@ msgstr "" #: src/monattack.cpp #, c-format msgid "A blow from the %1$s sends %2$s flying!" -msgstr "Ein Schlag vom %1$s wirft %2$s im hohen Bogen umher!" +msgstr "Der Schlag vom %1$s wirft %2$s im hohen Bogen umher!" #: src/monattack.cpp #, c-format msgid "A blow from the %s sends flying!" -msgstr "Ein Schlag vom %s wirft im hohen Bogen umher!" +msgstr "Der Schlag vom %s wirft im hohen Bogen umher!" #: src/monattack.cpp #, c-format @@ -162432,11 +164899,6 @@ msgstr "%s versucht, dich zu ziehen, du wehrst es aber ab!" msgid " resist the %s as it tries to drag them!" msgstr "%s versucht, zu ziehen, wird aber abgewehrt!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s wirft einen Dart auf dich!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "Du spürst Gift in deinem Körper eindringen." @@ -163545,42 +166007,74 @@ msgstr "%ss" #: src/monster.cpp msgid "It is uninjured." -msgstr "Es ist unverletzt." +msgstr "Unverletzt." #: src/monster.cpp msgid "It is lightly injured." -msgstr "Es ist leicht verletzt." +msgstr "Leicht verletzt." #: src/monster.cpp msgid "It is moderately injured." -msgstr "Es ist mittelschwer verletzt." +msgstr "Mittelschwer verletzt." #: src/monster.cpp msgid "It is heavily injured." -msgstr "Es ist schwer verletzt." +msgstr "Schwer verletzt." #: src/monster.cpp msgid "It is severely injured." -msgstr "Es ist stark verletzt." +msgstr "Stark verletzt." #: src/monster.cpp msgid "It is nearly dead!" -msgstr "Es ist so gut wie tot!" +msgstr "Ist so gut wie tot!" + +#: src/monster.cpp +msgid " Difficulty " +msgstr " Schwierigkeitsgrad " + +#: src/monster.cpp +msgid "Difficulty " +msgstr "Schwierigkeitsgrad " + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "Minimale Bedrohung." + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "Kaum eine Gefahr." + +#: src/monster.cpp +msgid "Dangerous." +msgstr "Gefährlich." + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "Sehr gefährlich." + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "Extrem gefährlich." + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "Tödliche Gefahr!" #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "Dies ist: %s. %s" +msgid "This is a %s. %s %s" +msgstr "%s: %s %s" #: src/monster.cpp #, c-format msgid "It is %s." -msgstr "Es ist %s." +msgstr "Ist %s." #: src/monster.cpp #, c-format msgid "It is %s in size." -msgstr "Es ist %s." +msgstr "Ist %s." #: src/monster.cpp msgid "an animal" @@ -163605,12 +166099,12 @@ msgstr "eine Anomalie" #: src/monster.cpp #, c-format msgid "It is %s." -msgstr "Es ist %s." +msgstr "Ist %s." #: src/monster.cpp #, c-format msgid "It has the following senses: %s." -msgstr "Es hat die folgenden Sinne: %s." +msgstr "Hat die folgenden Sinne: %s." #: src/monster.cpp msgctxt "Hearing as sense" @@ -163629,12 +166123,12 @@ msgstr "Riechen" #: src/monster.cpp msgid "It doesn't have senses." -msgstr "Es hat keine Sinne." +msgstr "Hat keine Sinne." #: src/monster.cpp #, c-format msgid "It can %s." -msgstr "Es kann %s." +msgstr "Kann %s." #: src/monster.cpp msgctxt "Swim as an action" @@ -163659,12 +166153,12 @@ msgstr "klettern" #: src/monster.cpp #, c-format msgid "In fight it can %s." -msgstr "Im Flug kann es %s." +msgstr "Kann im Kampf %s." #: src/monster.cpp msgctxt "Grab as an action" msgid "grab" -msgstr "Griff" +msgstr "ergreifen" #: src/monster.cpp msgctxt "Poison as an action" @@ -163682,7 +166176,7 @@ msgstr "Blutungen verursachen" #: src/monster.cpp msgid "It has a head." -msgstr "Es hat einen Kopf." +msgstr "Hat einen Kopf." #: src/monster.cpp #, c-format @@ -164399,12 +166893,12 @@ msgstr "Punkte" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Drücke %s zum Ändern)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Sort.:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" +"Sortiere nach: %1$s (Drücke " +"%2$s zum Ändern)" #: src/newcharacter.cpp msgid "Multiple pools" @@ -164530,7 +167024,7 @@ msgstr "Fernkampfstrafe: −%d" #: src/newcharacter.cpp msgid "Dexterity also enhances many actions which require finesse." msgstr "" -"Geschicklichkeit verbessert außerdem viele Handlungen, welche Rafinesse " +"Geschicklichkeit verbessert außerdem viele Handlungen, welche Raffinesse " "erfordern." #: src/newcharacter.cpp @@ -165011,14 +167505,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "Hält: %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Kleidung: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "Hält: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "Völlig misstrauisch" @@ -165465,7 +167955,7 @@ msgstr "Nahkampf" #: src/npcmove.cpp msgid "Reach attack" -msgstr "Streckangriff" +msgstr "Distanzangriff" #: src/npcmove.cpp msgid "Shoot" @@ -165652,6 +168142,10 @@ msgid " If you are interested, I have another job for you." msgstr "" " Falls du daran interessiert bist, hab ich eine andere Aufgabe für dich." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "Es war mir ein Vergnügen, Geschäfte zu machen!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Du hast mich gerade eben um etwas gefragt, frag später nach." @@ -166043,17 +168537,17 @@ msgstr "Ja, lasst uns weiter trainieren mit " msgid "%s ( cost $%d )" msgstr "%s ( Kosten: %d € )" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (Kosten: %d €)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "Okay, danke." @@ -166231,14 +168725,14 @@ msgstr "Schlag keine Hindernisse." msgid "You can bash obstacles." msgstr "Du kannst Hindernisse schlagen." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "Leg dich schlafen, wenn du müde bist." - #: src/npctalk.cpp msgid "Stay awake." msgstr "Bleib wach." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "Leg dich schlafen, wenn du müde bist." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "Sei still." @@ -166255,14 +168749,14 @@ msgstr "Lass Leichen in Ruhe." msgid "Smash zombie corpses." msgstr "Zerschmettere Zombieleichen." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "Verschließe Türen nach dem Durchgehen." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "Lasse Türen nach dem Durchgehen offen." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "Verschließe Türen nach dem Durchgehen." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "Aufheberegeln definieren." @@ -166347,7 +168841,7 @@ msgstr "Hier gibt es kein Fraktionslager, das übernommen werden könnte." msgid "%s has abandoned the camp." msgstr "%s hat das Lager aufgegeben." -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "Fäuste" @@ -166416,6 +168910,23 @@ msgstr "%1$s gibt dir 1 %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "%1$s gibt dir %2$d %3$s" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "Du hast %1$s nicht!" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "Du gibst %1$s »%2$s«" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "Du gibst %1$s »%2$d %3$s«" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "Ich vertraue dir nicht genug, um DAS zu essen." @@ -166568,6 +169079,16 @@ msgstr "%s gibt dir eine gute Frisur." msgid "%s gives you a decent shave..." msgstr "%s gibt dir eine gute Rasur." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -168856,13 +171377,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "Beispiel: »-Rohr,-stück,-blech«" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "Nach [c]:Kategorie, [m]:Material oder [q]:Qualität suchen." +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "Beispiele: »c:Essen«, »m:Leder«, »q:Hämmerqualität«" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "" #: src/output.cpp msgid "unknown" @@ -168903,7 +171424,7 @@ msgstr ", oder " #: src/output.h #, c-format msgid "$%.2f" -msgstr "%.2f $" +msgstr "%.2f €" #: src/overmap.cpp msgid "invalid" @@ -169208,6 +171729,10 @@ msgstr "Fang oder befrei eine Kreatur" msgid "Load or unload a vehicle" msgstr "Fahrzeug be- oder entladen" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -169370,6 +171895,11 @@ msgstr "Um nicht den Inhalt zu verschütten, setzt du %1$s auf %2$s." msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "Um nicht den Inhalt zu verschütten, setzt %1$s auf %2$s." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "dich" + #: src/player.cpp msgid "your" msgstr "dein" @@ -169678,8 +172208,10 @@ msgstr "Bioniken insgesamt: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Energie %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" +"Bionik Strom: %d/%d" #: src/player.cpp msgid "Weapon:" @@ -169765,6 +172297,14 @@ msgstr "dich laut schreien!" msgid "The sound of your voice is almost completely muffled!" msgstr "Der Ton deiner Stimme ist fast vollständig gedämpft!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "Der Ton deiner Stimme ist deutlich gedämpft!" @@ -170447,10 +172987,6 @@ msgstr "Warum verfolgst du mich?" msgid "This place is dangerous, you shouldn't be here." msgstr "Dieser Ort ist gefährlich, du solltest nicht hier sein." -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "Was machst du hier draußen?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "Das ist nicht wahr, oder?" @@ -170749,11 +173285,6 @@ msgstr "" "Du merkst, wie ein unnormales Gefühl aus deinen Strahlungssensoren " "schleicht." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "Die Strahlungsplakette wechselt von %1$s zu %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "Dein Oberkörper brennnt, als dein Stromsystem überlastet wird!" @@ -170785,7 +173316,7 @@ msgstr "Du fühlst, wie dein defektes Bionik wackelt." #: src/player.cpp msgid "Crackle!" -msgstr "" +msgstr "Knistern!" #: src/player.cpp msgid "Your vision pixelates!" @@ -170906,6 +173437,11 @@ msgstr "Deine zitternden Beine lassen dich stolpern." msgid "You fall over!" msgstr "Du fällst um!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "Die Strahlungsplakette wechselt von %1$s zu %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -171386,6 +173922,54 @@ msgstr "Du kannst hier keine Gegenstände platzieren!" msgid " can't place items here!" msgstr " kann hier keine Gegenstände platzieren!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "Du legst %s in dein Inventar." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "%s ist schon leer!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "" +"Die Flüssigkeit kann in ihrem aktuellen Zustand nicht ausgeleert werden!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "Was entladen?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "Du kannst ein %s nicht entladen!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "Du kannst ein wiederaufladbares %s nicht entladen!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "Dein %s ist nicht aufgeladen." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "Dein %s ist nicht geladen." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "Du verwertest %i unbenutztes Plutonium wieder." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "Du kannst teilweise verbrauchtes Plutonium nicht entfernen!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -171400,6 +173984,12 @@ msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "Dein %s hat %d Ladung, benötigt aber %d." msgstr[1] "Dein %s hat %d Ladungen, benötigt aber %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Du entfernst dein %1$s von deiner %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -171874,6 +174464,10 @@ msgstr "Du merkst, dass %s-Aufgaben dieser Stufe trivial werden." msgid "You resume your task." msgstr "Du setzt deine Tätigkeit fort." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "Was halten?" @@ -171913,6 +174507,14 @@ msgstr "Du hörst auf, Gegenstände mitzuschleifen." msgid "Your body strains under the weight!" msgstr "Dein Körper verrenkt sich unter der Last!" +#: src/player.cpp +msgid "Wielding: " +msgstr "Hält: " + +#: src/player.cpp +msgid " Traits: " +msgstr " Wesenszüge: " + #: src/player.cpp #, c-format msgid "You (%s)" @@ -172121,8 +174723,8 @@ msgstr "HINDERUNG UND WÄRME" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "Bionikstrom: %1$d" +msgid "Bionic Power: %1$d" +msgstr "Bionik Strom: %1$d" #: src/player_display.cpp msgid "EFFECTS" @@ -172218,7 +174820,7 @@ msgid "" msgstr "" "Geschicklichkeit beeinflusst deine Chance, im Nahkampf zu treffen, hilft dir" " beim Geradehalten deiner Schusswaffe im Fernkampf und verbessert viele " -"Handlungen, die Rafinesse erfordern." +"Handlungen, die Raffinesse erfordern." #: src/player_display.cpp msgid "Melee to-hit bonus:" @@ -172664,16 +175266,6 @@ msgstr "Erlag einem Asthmaanfall." msgid "You wheeze and gasp for air." msgstr "Du ringst nach Luft." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" -"Deine Knochen fühlen sich wie Gummi an, während sie schmelzen und sich neu " -"zusammensetzen." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Deine Knochen fühlen sich an, als würden sie zerbröckeln." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "Dein Kopf tut leicht weh." @@ -173472,15 +176064,6 @@ msgstr "Sehr kalt!%s" msgid "Freezing!%s" msgstr "Frierend!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "Taub!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Lärm %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Verdurstend" @@ -174509,7 +177092,7 @@ msgstr "Wähle hier ein Teil mit einem Defekt zum Beheben:" #: src/veh_interact.cpp msgid "No parts can currently be refilled" -msgstr "Jetzt können keine Teile wiederbefüllt werden" +msgstr "Derzeit können keine Fahrzeugteile nachgefüllt werden" #: src/veh_interact.cpp msgid "Select part to refill:" @@ -174790,6 +177373,21 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Beschleunigung: %3d %s/Zug" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" +"Sicheres/Max. Tempo (Wasser): " +"%3d/%3d %s" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "Beschleunigung (Wasser): %3d %s/Zug" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -174797,21 +177395,23 @@ msgstr "Masse: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Lagerplatz: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" +"Lagerplatz: %s / %s %s" #: src/veh_interact.cpp msgid "Status:" msgstr "Zustand:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Größter Schaden (irreperabel):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Größter Schaden:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Größter Schaden (irreperabel):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Benötigt Reparatur:" @@ -174841,6 +177441,11 @@ msgstr "Extra-Widerstand: %5d" msgid "Offroad: %4d%%" msgstr "Offroad: %4d%%" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "Tiefgang: %4.2fm" + #: src/veh_interact.cpp msgid "Name: " msgstr "Name: " @@ -175053,11 +177658,9 @@ msgstr "" "Das Basisteil in den Anforderungen für %s konnte nicht gefunden werden." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "" -"Wähle die Leuchtrichtung für den neuen Scheinwerfer. Leertaste zum " -"Fortfahren." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "Wähle die Leuchtrichtung für »%s« aus. Leertaste zum Fortfahren." #: src/veh_interact.cpp #, c-format @@ -175146,10 +177749,10 @@ msgstr "You repair %2$s von %1$s." msgid "Lost connection with the vehicle due to distance!" msgstr "Verbindung zum Fahrzeug aufgrund der Entfernung verloren!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "»BÄNG!«" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -175365,13 +177968,13 @@ msgstr "Auffahrunfall" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s hat nicht genügend Räder, um sich zu bewegen!" +msgid "The %s is too leaky!" +msgstr "%s hat ein zu großes Leck!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s hat ein zu großes Leck!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s hat nicht genügend Räder, um sich zu bewegen!" #: src/vehicle_move.cpp #, c-format @@ -175598,6 +178201,14 @@ msgstr "Alle Vorhänge und Türen schließen" msgid "headlights" msgstr "Scheinwerfer" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "Weitwinkelscheinwerfer" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "gerichtete Dachlampen" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "Dachlampen" @@ -175856,18 +178467,23 @@ msgstr "Sieht so aus, als hätte %1$s keinen %2$s mehr." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s macht einen langen Piepston." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s macht ein vereinzeltes Klickgeräusch" +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s macht ein schnelles Klickgeräusch." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -175876,8 +178492,8 @@ msgstr "%s stottert rasch aus." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s macht ein grässliches Scheppergeräusch." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -175897,6 +178513,11 @@ msgstr "»Möööööp!«." msgid "You honk the horn, but nothing happens." msgstr "Du betätigst die Hupe, aber nichts passiert." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "eine einfache Melodie, die aus den Lautsprechern plärrt." diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index 6bd983ca49ae2..9a938be1fcf8c 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Noctivagante , 2019\n" "Language-Team: Spanish (Argentina) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_AR/)\n" @@ -1190,7 +1190,7 @@ msgid "" "pyrotechnic and explosive agents and as a direct weapon: not many beings " "enjoy being doused in nitric acid." msgstr "" -"Ácido nítrico, un potente oxidante y extremadamente corrosivo. " +"Es ácido nítrico, un potente oxidante y extremadamente corrosivo. " "Principalmente usado en la producción de fertilizantes sintéticos, para " "grabado de placas de circuitos, y en carpintería. También sirve para hacer " "una gran variedad de pirotecnia y agentes explosivos, y también como arma: " @@ -5501,7 +5501,7 @@ msgstr[1] "pares de mangas duras" #. ~ Description for pair of hard arm guards #: lang/json/ARMOR_from_json.py msgid "A pair of neoprene arm sleeves covered with molded plastic sheaths." -msgstr "Un par de mangas de neopreno recubiertas con placas de plástico." +msgstr "Es un par de mangas de neopreno recubiertas con placas de plástico." #: lang/json/ARMOR_from_json.py msgid "pair of leather arm guards" @@ -5664,7 +5664,7 @@ msgstr[1] "armaduras de placas" #. ~ Description for plate armor #: lang/json/ARMOR_from_json.py msgid "A suit of Gothic plate armor." -msgstr "Una armadura de placas gótica." +msgstr "Es una armadura de placas gótica." #: lang/json/ARMOR_from_json.py msgid "nomad gear" @@ -5681,6 +5681,23 @@ msgstr "" "Es un traje improvisado hecho con ropa pre-cataclismo, diseñado para viajes " "largos. Tiene mucha capacidad de almacenamiento." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "equipo ligero de nómada" +msgstr[1] "equipos ligeros de nómada" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"Es un traje improvisado ligero hecho con ropa pre-cataclismo, diseñado para " +"viajes largos de verano. Tiene menos capacidad de almacenamiento y " +"protección que el equipo normal de nómada." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -5693,7 +5710,7 @@ msgid "" "Thick leather body armor that has been reinforced with strategically-placed " "metal plates. Strong and comfortable." msgstr "" -"Armadura de cuero para el torso, reforzada con placas de metal " +"Es una armadura de cuero para el torso, reforzada con placas de metal " "estratégicamente colocadas. Resistente y cómoda." #: lang/json/ARMOR_from_json.py @@ -5837,8 +5854,8 @@ msgid "" "A chromed silver shield identifies the wearer as an authority even the cop-" "killers couldn't kill." msgstr "" -"Una placa plateada y cromada que identifica a quien la lleva como un oficial" -" de esos que ni siquiera los matapolicías pueden matar." +"Es una placa plateada y cromada que identifica a quien la lleva como un " +"oficial de esos que ni siquiera los matapolicías pueden matar." #: lang/json/ARMOR_from_json.py msgid "deputy badge" @@ -5889,8 +5906,9 @@ msgid "" "A matte-finish silver shield identifies the wearer as an authority who goes " "in when the bots just aren't enough." msgstr "" -"Una placa plateada con acabado mate identifica a quien la lleva como uno de " -"esos oficiales que entran allí en donde los robots no hicieron el trabajo." +"Es una placa plateada con acabado mate identifica a quien la lleva como uno " +"de esos oficiales que entran allí en donde los robots no hicieron el " +"trabajo." #: lang/json/ARMOR_from_json.py msgid "balaclava" @@ -6836,6 +6854,21 @@ msgstr "" "Un abrigo de plástico con una capucha y dos bolsillos grandes. Protege de la" " lluvia." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "parka de piel de tripas" +msgstr[1] "parkas de piel de tripas" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" +"Es un abrigo complicado hecho de intestinos abiertos y procesados cosidos, " +"valorado por los aborígenes del ártico por ser liviano e impermeable." + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -13029,7 +13062,7 @@ msgid "" "improve its protection. The ceramic plates cannot be repaired, only " "replaced. It has four pouches capable of carrying magazines." msgstr "" -"Un chaleco modular anti-balas. En sus ranuras interiores tiene placas " +"Es un chaleco modular anti-balas. En sus ranuras interiores tiene placas " "cerámicas para mejorar su protección. Estas placas no pueden ser reparadas, " "pero sí pueden ser reemplazadas. Tiene cuatro bolsas para llevar cargadores." @@ -13046,7 +13079,7 @@ 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 "" -"Un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " +"Es un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " "acero endurecido, lo que mejora ampliamente su protección pero lo hace mucho" " más pesado y menos flexible. Tiene cuatro bolsas para llevar cargadores." @@ -13062,7 +13095,7 @@ msgid "" "A Modular Bullet Resistant Vest. Kevlar plates have been inserted to " "improve its protection. It has four pouches capable of carrying magazines." msgstr "" -"Un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " +"Es un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " "kevlar para mejorar su protección. Tiene cuatro bolsas para llevar " "cargadores." @@ -13079,7 +13112,7 @@ msgid "" "them; this improves protection, but makes the vest much heavier and " "encumbering. It has four pouches capable of carrying magazines." msgstr "" -"Un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " +"Es un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " "acero, lo que mejora su protección pero lo hace mucho más pesado e incómodo " "de usar. Tiene cuatro bolsas para llevar cargadores." @@ -13405,7 +13438,7 @@ msgstr[1] "pares de botas blindadas" #. ~ Description for pair of armored boots #: lang/json/ARMOR_from_json.py msgid "An extremely heavy set of armor plated boots." -msgstr "Un par de botas blindadas extremadamente pesadas." +msgstr "Es un par de botas blindadas extremadamente pesadas." #: lang/json/ARMOR_from_json.py msgid "pair of rubber boots" @@ -14111,7 +14144,7 @@ msgstr[1] "corazas campanas" #. ~ Description for bell cuirass #: lang/json/ARMOR_from_json.py msgid "An ancient Greek breastplate, made of bronze." -msgstr "Un antiguao peto griego, hecho de bronce." +msgstr "Es un antiguo peto griego, hecho de bronce." #: lang/json/ARMOR_from_json.py msgid "lorica segmentata" @@ -19778,34 +19811,34 @@ msgid "Spice" msgstr "Condimento" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "riesling" -msgstr[1] "riesling" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "Riesling" +msgstr[1] "Riesling" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "Vino blanco espumante, hecho de la uva más noble del mundo." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "chardonnay" -msgstr[1] "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "Chardonnay" +msgstr[1] "Chardonnay" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "El vino más popular de Estados Unidos, y con razón." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "cabernet sauvignon" -msgstr[1] "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "Cabernet Sauvignon" +msgstr[1] "Cabernet Sauvignon" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -19837,8 +19870,11 @@ msgstr[1] "whisky" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "¡Hecho de, por y para los verdaderos coroneles sureños!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" +"¡Es alcohol destilado de grano hecho de, por y para los verdaderos coroneles" +" sureños!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -19848,8 +19884,12 @@ msgstr[1] "vodka" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "En la Rusia soviética, ¡el vodka te tomaba a vos!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" +"Es una bebida con alcohol, agua y no mucho más. En Estados Unidos, los " +"hombres hacen el vodka, pero en la Unión Soviética, el vodka hace al hombre." #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -19859,8 +19899,12 @@ msgstr[1] "gin" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Tiene un olorcito a bayas del saúco, pero más que nada a alcohol." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" +"Es una bebida con alcohol con gusto a bayas de enebro. Tiene poco aroma a " +"baya, y más que nada a alcohol." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -19870,8 +19914,12 @@ msgstr[1] "ron" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "Si tomás esto te vas a sentir como un pirata. O no." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" +"Es alcohol destilado hecho de melaza fermentada. Si tomás esto te vas a " +"sentir como un pirata. O por ahí no." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -19881,8 +19929,12 @@ msgstr[1] "tequila" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "¡No te comas el gusano! Pará, esta botella no tiene gusano." +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 "" +"Es una bebida alcohólica destilada, hecha con una suculenta planta de hojas " +"espinosas. ¡No te comas el gusano! Ah, pará, no hay gusano en esta botella." #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -19984,10 +20036,12 @@ msgstr[1] "té helado Long Island" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" -"Una mezcla de licores de sabor increíble y fuerte, que de alguna manera, " -"termina no teniendo el gusto de ninguno de ellos." +"Es una mezcla de licores de sabor increíble y fuerte, que de alguna manera, " +"termina no teniendo el gusto de ninguno de ellos. No contiene te, pero la " +"inclusión de bebida cola le da ese color parecido al te." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -19995,8 +20049,12 @@ msgstr "trago destornillador" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "El trago favorito del mecánico borracho subrepticio." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" +"Es una mezcla de jugo de naranja y vodka. El trago favorito del mecánico " +"borracho subrepticio." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -20030,10 +20088,11 @@ msgstr[1] "cerveza" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"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 "" -"Mejor tomarla fría, en un vaso de vidrio, con una lima... pero no tenés " -"tanta suerte." +"Es alcohol de grano con sabor a lúpulo. Es mejor tomarla fría, en un vaso de" +" vidrio, con una lima - pero no tenés tanta suerte." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -20101,12 +20160,13 @@ msgstr[1] "aguardiente casero" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"El más fuerte, el más puro, el mejor aguardiente a la vieja escuela. " -"Garantiza que le hará olvidar todo acerca del cataclismo, o le devolvemos su" -" visión." +"El más fuerte, el más puro, el mejor aguardiente a la vieja escuela., " +"destilado de maíz y azúcar. Garantizamos que olvidará todo acerca del " +"cataclismo, o le devolvemos su visión." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -20117,11 +20177,11 @@ msgstr[1] "cerveza pilsen europea" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Una pilsener importada de Europa. Mejor tomarla fría, en vaso de vidrio - " -"pero no tenés tanta suerte." +"Es una cerveza lager importada de Europa. Mejor tomarla fría, en vaso de " +"vidrio - pero no tenés tanta suerte." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -20175,7 +20235,7 @@ msgstr[1] "cerveza belga" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" "Es una cerveza sabrosa y sustanciosa elaborada por monjes en Bélgica. Mejor " @@ -20256,11 +20316,12 @@ msgstr "jote" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Es vino con cola. No es tan feo como te podrías imaginar. Esta bebida es " -"bastante popular entre los jóvenes y/o los pobres en algunos países." +"Es una mezcla de vino con cola en partes iguales. No es tan feo como algunos" +" imaginan, y es muy popular entre los jóvenes y/o los pobres en algunos " +"países." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -20708,8 +20769,12 @@ msgstr[1] "pedazos de carne" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "No es mucho, pero sirve cuando no hay nada más." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "" +"Esto es un pedacito de carne. No es mucho, pero sirve cuando no hay nada " +"más." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -20719,8 +20784,16 @@ msgstr[1] "rehusar carnear" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "Puaj." +msgid "" +"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." +msgstr "" +"Puaj. Esto es una porquería mezcla de tierra, excremento, tejido conectivo y" +" pedazos de materia como pelo y garras, que quedaron de alguna carneada. Ni " +"siquiera vale la pena pensar en comerse esto, pero dejarlo puede ser un " +"problema porque va a atraer alimañas." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -20728,8 +20801,12 @@ msgstr "carne cocinada" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Es carne recién cocinada. Muy nutritiva." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" +"Es un pedazo de carne recién cocinada. Te llena y es nutritiva pero no está " +"condimentada y es un poco insípida." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -20744,11 +20821,13 @@ msgstr "achura cruda" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Son órganos internos y entrañas sin cocinar. Poco apetitoso pero lleno de " -"vitaminas esenciales." +"Las achuras son los órganos internos y entrañas sin cocinar. Está lleno de " +"vitaminas esenciales, pero mucha gente lo considera desagradable salvo que " +"sea cuidadosamente preparado." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -20759,10 +20838,13 @@ msgstr[1] "achuras cocinadas" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Son órganos internos y entrañas recién cocinados. Poco apetitoso pero lleno " -"de vitaminas esenciales." +"Esto son órganos y entrañas cocinadas recientemente. Está lleno de vitaminas" +" esenciales, pero mucha gente lo considera desagradable salvo que sea " +"cuidadosamente preparado." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -20773,11 +20855,13 @@ msgstr[1] "achuras al escabeche" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Son entrañas cocinadas y preservadas en salmuera. Llenas de las vitaminas " -"esenciales, y tiene mejor sabor que olor." +"Esto es una masa de entrañas y órganos, preservados en salmuera. Lleno de " +"vitaminas esenciales y aunque tiene el aspecto de un espécimen de " +"laboratorio, tiene un gusto bastante sabroso." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -20788,11 +20872,11 @@ msgstr[1] "achuras enlatadas" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Son entrañas recientemente cocinadas y preservadas en lata. Poco apetitosas " -"pero llenas de las vitaminas esenciales." +"Son entrañas y órganos recientemente cocinados y preservados en lata. Poco " +"apetitosas pero llenas de las vitaminas esenciales." #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -20864,9 +20948,12 @@ msgstr "carne ahumada" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." msgstr "" -"Carne sabrosa que ha sido ahumada para poder preservarla por mucho tiempo." +"Es una carne sabrosa que ha sido ahumada para preservarla. Puede ser ahumada" +" aún más para deshidratarla completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -20876,10 +20963,12 @@ msgstr[1] "pescados ahumados" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." msgstr "" -"Es un sabroso pescado que ha sido ahumado para poder preservarlo por mucho " -"tiempo." +"Es un pescado sabroso que ha sido ahumado para preservarlo mucho tiempo. " +"Puede ser ahumado aún más para deshidratarlo completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -20888,31 +20977,45 @@ msgstr "cabrón ahumado" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" -"Una porción muy ahumada de carne humana. Aguanta por mucho tiempo y tiene " -"bastante buen sabor, si es que te gustan estas cosas." +"Es una porción muy ahumada de carne humana. Aguanta por bastante tiempo y " +"tiene bastante buen sabor, si es que te gustan estas cosas." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "pulmón crudo" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "pedazo de pulmón crudo" +msgstr[1] "pedazos de pulmón crudo" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "Es el pulmón de un animal. Está esponjoso." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless 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 lung" -msgstr "pulmón cocinado" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "pedazo de pulmón cocinado" +msgstr[1] "pedazos de pulmón cocinados" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" -"No parece más rico que crudo, pero todos los parásitos han sido eliminados " -"por la cocción." +"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" @@ -20920,8 +21023,14 @@ msgstr "hígado crudo" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "Es el hígado de un animal." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Es el hígado de un animal. Aunque no a muchos le gusta su textura, es una de" +" las partes animales con más vitaminas. Está muy bueno con salchichas, pero " +"solo es un poco menos apetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -20929,8 +21038,14 @@ msgstr "hígado cocinado" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "¡Repleto de las vitaminas B!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "" +"¡Repleto de vitaminas B! El hígado cocinado no está tan mal, dependiendo de " +"cómo te cae su textura, pero esta es probablemente la manera menos elegante " +"de hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -20951,8 +21066,13 @@ msgstr[1] "cerebros cocinados" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "¡Ahora podés hacer como esos zombis que tanto te divierten!" +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 "" +"¡Ahora podés imitar a esos zombis que te gustan tanto! Preparar cerebro para" +" comérselo es todo un desafío y esta no parece ser la mejor manera de " +"hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -20960,8 +21080,12 @@ msgstr "riñón crudo" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "Es el riñón de un animal." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "" +"El riñón de un animal. Prepararlo para comerlo es un desafío salvo que no te" +" moleste que la cocina quede con un fuerte olor a orina." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -20978,8 +21102,12 @@ msgstr "molleja cruda" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "Molleja se le dice al timo o al páncreas de un animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "" +"Molleja se le dice al timo o al páncreas de un animal. Son una exquisitez si" +" se la prepara bien." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -21068,12 +21196,12 @@ msgstr "hueso contaminado" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" "Es un hueso podrido y frágil de alguna criatura no natural, o de otra cosa. " -"Se puede usar para hacer algo, como carbón. Y te lo podés comer pero te va a" -" caer mal." +"Se puede usar para hacer algo, como carbón o pegamento. Y te lo podés comer " +"pero te va a caer mal." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -21425,8 +21553,15 @@ msgstr[1] "café" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Es café. El ritual mañanero del mundo pre-apocalíptico." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" +"El ritual mañanero del mundo preapocalíptico, que es creado desde los granos" +" de café con un proceso complejo de quitado de semillas, tostado, molido y " +"destilado. El café es sustancialmente más rico en cafeína que su rival, el " +"té." #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -21459,12 +21594,11 @@ msgstr[1] "leche condensada" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" -"Comida de terneros, apropiada para humanos adultos. Esta leche ha sido " -"endulzada y espesada, convirtiéndola en un ingrediente dulce para cualquier " -"comida." +"Es leche de vaca que ha sido endulzada y parcialmente deshidratada para " +"incrementar mucho su vida útil." #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -21531,8 +21665,12 @@ msgstr "bebida energizante" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Popular entre aquellos que necesitan quedarse hasta tarde trabajando." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" +"Es una bebida con mucha cafeína. Las bebidas energizantes son populares " +"entre aquellos que necesitan quedarse hasta tarde trabajando." #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -21660,9 +21798,11 @@ msgstr "café con leche" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." msgstr "" -"El café con leche es casi la bebida oficial de la mañana en varios países." +"Es una mezcla de café y leche. Ha sido la bebida estatal de Rhode Island " +"desde 1993." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -21670,11 +21810,8 @@ msgstr "té con leche" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "" -"Usualmente, se consume a la mañana, el té con leche es común en varios " -"países." +msgid "Hot tea with cold milk." +msgstr "Es té caliente con leche fría." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -21786,8 +21923,12 @@ msgstr "té" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Es té, la bebida de los caballeros, siempre." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" +"La bebida del caballero, hecha aplicando agua caliente a hojas de la planta " +"del té, Camellia sinensis." #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -21842,8 +21983,8 @@ msgstr "salsa de tomate" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Es salsa de tomate, rica rica." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "Es una salsa muy poco condimentada, hecha de tomates cocidos." #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -21864,8 +22005,12 @@ msgstr[1] "mayonesa" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "La vieja y querida mayonesa. Queda muy bien en los sánguches." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" +"Es una mezcla pegajosa de huevo, aceite y sal, tradicionalmente utilizada " +"para humedecer sánguches." #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -21873,8 +22018,8 @@ msgstr "ketchup" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "El viejo y querido ketchup. Queda muy bien en los panchos." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "Es una pasta viscosa de tomate, sal y vinagre." #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -21884,8 +22029,12 @@ msgstr[1] "mostaza" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "La vieja y querida mostaza. Queda muy bien en las hamburguesas." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" +"Es un condimento hecho con las semillas de la planta mostaza (Brassica o " +"Sinapsis), con vinagre, sal y especias." #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -21932,8 +22081,12 @@ msgstr[1] "vinagre" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Un vinagre blanco muy agrio." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" +"Es vinagre blanco y muy agrio. Esto es lo que obtenés si dejás fermentando " +"el alcohol por demasiado tiempo." #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -21954,10 +22107,13 @@ msgstr[1] "melazas" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." +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 "" -"Un jarabe extremadamente azucarado que tiene el aspecto de la brea, con un " -"pequeño regusto amargo." +"Es un jarabe extremadamente azucarado, producido al hervir reiteradamente el" +" jugo de la caña de azúcar o de la remolacha azucarera. Tiene un pequeño " +"regusto amargo." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -22089,7 +22245,7 @@ msgstr "hueva de garrafilada" #: lang/json/COMESTIBLE_from_json.py msgid "A clump of razorclaw eggs. A post-cataclysm delicacy." msgstr "" -"Es un grupo de huevos de garrafilada. Una delicadeza postapocalíptica." +"Es un grupo de huevos de garrafilada. Una exquisitez postapocalíptica." #: lang/json/COMESTIBLE_from_json.py msgid "roe" @@ -23271,8 +23427,11 @@ msgstr[1] "jarabe de arce" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Dulce y delicioso, verdadero jarabe de arce de Vermont." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" +"Al hervir la savia de un arce, se concentra en un jarabe delicioso y dulce." #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -23580,13 +23739,13 @@ msgstr "" "rápido." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "pollo frito" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "Un puñado de pollo frito. Tan mal que es bueno." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "Es pollo cocinado al sumergerse en aceite. Es grasiento y delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -23756,8 +23915,8 @@ msgstr "salchicha cruda" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "Es una salchicha grande y cruda, lista para ahumar." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "Es una salchicha grande y cruda, lista para ahumar o para cocinar." #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -23770,9 +23929,18 @@ msgstr "" "Es una gran salchicha que ha sido curada y ahumada para poder preservarla " "por mucho tiempo." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "salchicha cocinada" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "Es una gran salchicha que ha sido cocinada." + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" -msgstr "Mannwurst" +msgstr "Juannwurst" #. ~ Description for Mannwurst #: lang/json/COMESTIBLE_from_json.py @@ -23796,6 +23964,21 @@ msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "" "Es una dulce y deliciosa salchicha. Es mejor comerla mientras está fresca." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "bratwurst" +msgstr[1] "bratwursts" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" +"Es un tipo de salchicha alemana hecha con carne picada muy fina y pensada " +"para ser frita o asada. Es mejor comerla caliente y recién hecha." + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "carne real" @@ -23977,8 +24160,12 @@ msgstr "fiambre" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Deliciosos pedazos de fiambre. Se puede comer frío." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" +"Es carne cocida, preservada y cortada en rebanadas finas para ser " +"convenientes para el armado de sánguches. Está bueno frío." #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -23987,11 +24174,12 @@ msgstr "bologna" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" -"Un fiambre que viene cortado en fetas. Su primer nombre no es Oscar. Se " -"puede comer frío." +"Antes conocido como salchicha Bologna, es carne preservada picada fina, en " +"rebanadas circulares. Su nombre de pila no es Oscar. Se puede comer fría." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -24529,11 +24717,11 @@ msgstr "bologna especial" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Un fiambre hecho con carne humana que viene en fetas. Su primer nombre " -"podría haber sido Oscar. Se puede comer frío." +"Es carne humana preservada y rebanada. Su nombre de pila podría haber sido " +"Oscar. Se puede comer fría... fría como el caníbal de sangre fría que sos." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -24545,14 +24733,14 @@ msgid "" "Mannwurst covered in a curry ketchup sauce. Fairly spicy and impressive at " "the same time!" msgstr "" -"Una Mannwurst cubierta con salsa de ketchup y curry. ¡Bastante picante e " +"Una Juannwurst cubierta con salsa de ketchup y curry. ¡Bastante picante e " "impresionante al mismo tiempo!" #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst gravy" msgid_plural "Mannwurst gravies" -msgstr[0] "salsa espesa de Mannwurst" -msgstr[1] "salsas espesas de Mannwurst" +msgstr[0] "salsa espesa de Juannwurst" +msgstr[1] "salsas espesas de Juannwurst" #. ~ Description for Mannwurst gravy #: lang/json/COMESTIBLE_from_json.py @@ -24618,7 +24806,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgstr "refuerzo para vagabundo" +msgstr "refuerzo para indigente" #. ~ Description for hobo helper #: lang/json/COMESTIBLE_from_json.py @@ -24776,12 +24964,44 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw Mannwurst" -msgstr "Mannwurst cruda" +msgstr "Juannwurst cruda" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "Es una salchicha de cerdo grande y cruda, lista para ahumar." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" +"Es una salchicha de cerdo grande y cruda, lista para ahumar o cocinar." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "Juannwurst cocinada" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" +"Es una gran salchicha de carne humana que ha sido cocinada. Huele tan " +"apetitoso como puede oler un humano." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "Juannbrat" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" +"Es un tipo de salchicha alemana hecha con carne humana picada muy fina y " +"pensada para ser frita o asada. Es mejor comerla caliente y recién hecha. " +"Dicho sea de paso, se usa cualquier humano, no es necesario que sean " +"alemanes." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -25850,6 +26070,25 @@ msgstr "" " infecciones completamente, pero puede fortalecer la resistencia del cuerpo." " Una dosis dura doce horas." +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "antiácido" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "Te tomás un poco de antiácido." + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" +"Es un jarabe para la acidez, cremoso y rosa, que calma los estómagos " +"molestos y sofoca las ganas de vomitar; con una tapa a rosca que también " +"funciona como vasito de dosis." + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -27541,67 +27780,67 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "Cítrico muy agrio. Se puede comer si querés." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "mora azul" -msgstr[1] "moras azules" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "puñado de moras azules" +msgstr[1] "puñado de moras azules" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Son azules, pero eso no significa que sean de la realeza." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "frutilla" -msgstr[1] "frutillas" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "puñado de frutillas" +msgstr[1] "puñado de frutillas" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Es una baya sabrosa y jugosa. A menudo crece silvestre en los campos." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "arándano" -msgstr[1] "arándanos" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "puñado de arándanos" +msgstr[1] "puñado de arándanos" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "Arándanos rojos y agrios. Buenos para la salud." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "frambuesa" -msgstr[1] "frambuesas" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "puñado de frambuesas" +msgstr[1] "puñado de frambuesas" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Una frambuesa roja y dulce." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "arándano agrio" -msgstr[1] "arándanos agrios" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "puñado de arándanos agrios" +msgstr[1] "puñado de arándanos agrios" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "Son arándanos agrios, a menudo confundidos con las moras azules." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "mora" -msgstr[1] "moras" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "puñado de moras" +msgstr[1] "puñado de moras" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -27611,12 +27850,12 @@ msgstr "" " por tener el sabor más fuerte de todas las variedades del mundo." #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "baya del saúco" -msgstr[1] "bayas del saúco" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "puñado de bayas del saúco" +msgstr[1] "puñado de bayas del saúco" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" @@ -27624,12 +27863,12 @@ msgstr "" "buenísimas cuando se cocinan." #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "escaramujo" -msgstr[1] "escaramujos" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "puñado de escaramujos" +msgstr[1] "puñado de escaramujos" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "Es el fruto de una flor de rosa polinizada." @@ -27666,12 +27905,12 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Una fruta cítrica, cuyo gusto va desde lo agrio hasta lo semidulce." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "cereza" -msgstr[1] "cerezas" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "puñado de cerezas" +msgstr[1] "puñado de cerezas" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Una fruta dulce y roja que crece en árboles." @@ -27689,12 +27928,12 @@ msgstr "" "digestión." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "uva" -msgstr[1] "uvas" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "puñado de uvas" +msgstr[1] "puñado de uvas" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "Es un racimo de jugosas uvas." @@ -27747,12 +27986,12 @@ msgid "A large and very sweet fruit." msgstr "Una fruta grande y muy dulce." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "zarzamora" -msgstr[1] "zarzamoras" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "puñado de zarzamoras" +msgstr[1] "puñado de zarzamoras" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "Un primo oscuro de la frambuesa." @@ -27799,10 +28038,12 @@ msgstr "" " delicioso." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "damasco" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "puñado de damascos" +msgstr[1] "puñado de damascos" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Una fruta de cáscara suave, parecida al durazno." @@ -27864,8 +28105,8 @@ msgstr "repollo" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "Es el cogollo sustancioso de un crocante repollo blanco." +msgid "Crisp white cabbage." +msgstr "Es un repollo blanco y crujiente." #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -27961,8 +28202,8 @@ msgstr "pepino" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "Es de la familia de las calabazas, no es sabroso pero es muy jugoso." +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "Es de la familia de las calabazas. No es sabroso pero es muy jugoso." #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -28446,6 +28687,10 @@ msgstr[1] "semillas de zarzamora" msgid "Some blackberry seeds." msgstr "Son unas semillas de zarzamora." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "zarzamora" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -28457,6 +28702,10 @@ msgstr[1] "semillas de mora azul" msgid "Some blueberry seeds." msgstr "Son unas semillas de mora azul." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "mora azul" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -28468,6 +28717,10 @@ msgstr[1] "semillas de arándano" msgid "Some cranberry seeds." msgstr "Son unas semillas de arándano." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "arándano" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -28479,6 +28732,10 @@ msgstr[1] "semillas de arándano agrio" msgid "Some huckleberry seeds." msgstr "Son unas semillas de arándano agrio." +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "arándano agrio" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -28490,6 +28747,10 @@ msgstr[1] "semillas de mora" msgid "Some mulberry seeds." msgstr "Son unas semillas de mora." +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "mora" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -28501,6 +28762,10 @@ msgstr[1] "semillas de bayas del saúco" msgid "Some elderberry seeds." msgstr "Son unas semillas de bayas del saúco." +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "baya del saúco" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -28512,6 +28777,10 @@ msgstr[1] "semillas de frambuesa" msgid "Some raspberry seeds." msgstr "Son unas semillas de frambuesa." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "frambuesa" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -28523,6 +28792,10 @@ msgstr[1] "semillas de frutilla" msgid "Some strawberry seeds." msgstr "Son unas semillas de frutilla." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "frutilla" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -28534,6 +28807,10 @@ msgstr[1] "semillas de uva" msgid "Some grape seeds." msgstr "Son unas semillas de uva." +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "uva" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -30142,6 +30419,15 @@ msgstr "brownie 'especial'" msgid "This is definitely not how grandma used to bake them." msgstr "Definitivamente, no es la misma receta que hacía la abuela." +#: lang/json/COMESTIBLE_from_json.py +msgid "brownie" +msgstr "brownie" + +#. ~ Description for brownie +#: lang/json/COMESTIBLE_from_json.py +msgid "A rich chocolate brownie, just like how grandma used to bake them." +msgstr "Es un brownie con mucho chocolate, igualito al que hacía tu abuela." + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "tallo fibroso" @@ -31769,6 +32055,21 @@ msgstr[1] "tambores de residuos peligrosos" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "Es un tambor amarillo hecho para almacenar las sustancias peligrosas." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "maceta para huerta" +msgstr[1] "macetas para huerta" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" +"Es una maceta especial para plantar, con palitos que mantienen la planta en " +"condiciones confortables para obtener su máxima producción." + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -32987,7 +33288,7 @@ msgstr[1] "resistencias térmicas" #: lang/json/GENERIC_from_json.py msgid "A heating element, like the ones used in hotplates or kettles." msgstr "" -"Una resistencia térmica, como las que se usa en las pavas y anafes " +"Es una resistencia térmica, como las que se usa en las pavas y anafes " "eléctricos." #: lang/json/GENERIC_from_json.py @@ -33553,7 +33854,7 @@ msgstr[1] "platos cerámicos" #. ~ Description for ceramic plate #: lang/json/GENERIC_from_json.py msgid "A ceramic dinner plate, you could probably play frisbee with it." -msgstr "Un plato de cerámico. Probablemente, lo puedas usar como frisbee." +msgstr "Es un plato de cerámico. Probablemente, lo puedas usar como frisbee." #: lang/json/GENERIC_from_json.py msgid "fish bowl" @@ -33579,7 +33880,7 @@ msgstr[1] "platos de vidrio" #. ~ Description for glass plate #: lang/json/GENERIC_from_json.py msgid "A glass dinner plate, you could probably play frisbee with it." -msgstr "Un plato de vidrio. Probablemente, lo puedas usar como frisbee." +msgstr "Es un plato de vidrio. Probablemente, lo puedas usar como frisbee." #: lang/json/GENERIC_from_json.py msgid "tin plate" @@ -33590,7 +33891,7 @@ msgstr[1] "platos de estaño" #. ~ Description for tin plate #: lang/json/GENERIC_from_json.py msgid "A tin dinner plate, you could probably play frisbee with it." -msgstr "Un plato de estaño. Probablemente, lo puedas usar como frisbee." +msgstr "Es un plato de estaño. Probablemente, lo puedas usar como frisbee." #: lang/json/GENERIC_from_json.py msgid "fork" @@ -34775,6 +35076,36 @@ msgstr "" "evitar la evaporación, no puede ser abierto sin conectarle antes una válvula" " compatible." +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "placa dura de acero" +msgstr[1] "placas duras de acero" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" +"Es una placa hecha de acero muy grueso, específicamente pensada para usarse " +"en chalecos antibalas." + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "placa de acero" +msgstr[1] "placas de acero" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" +"Es una placa hecha de acero, específicamente pensada para usarse en chalecos" +" antibalas." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -35920,11 +36251,10 @@ msgstr[1] "piedras en medias" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -"Es una media con una piedra atada en la punta. Una verdadera arma de último " -"recurso." +"Son un par de medias juntas, con una piedra adentro. Una verdadera arma en " +"momentos de desesperación." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -37694,6 +38024,21 @@ msgstr "" "La luz delantera de un vehículo, con una reja alrededor para protegerla de " "los daños, sin reducir su función." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "luz delantera amplia reforzada" +msgstr[1] "luces delanteras amplias reforzadas" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" +"Es una luz delantera angular de auto con una jaula alrededor para protegerla" +" del daño sin reducir su eficacia." + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -37857,8 +38202,8 @@ msgid "" "A small electronic device that can convert solar radiation into electric " "power. Useful for crafting." msgstr "" -"Un pequeño dispositivo electrónico que puede convertir la radiación solar en" -" energía eléctrica. Útil para fabricar cosas." +"Es un pequeño dispositivo electrónico que puede convertir la radiación solar" +" en energía eléctrica. Útil para fabricar cosas." #: lang/json/GENERIC_from_json.py msgid "sheet metal" @@ -37869,7 +38214,7 @@ msgstr[1] "láminas de metal" #. ~ Description for sheet metal #: lang/json/GENERIC_from_json.py msgid "A thin sheet of metal." -msgstr "Una lámina fina de metal." +msgstr "Es una lámina fina de metal." #: lang/json/GENERIC_from_json.py msgid "wired sheet metal" @@ -37880,7 +38225,7 @@ msgstr[1] "láminas de metal cableadas" #. ~ Description for wired sheet metal #: lang/json/GENERIC_from_json.py msgid "Sheet metal that has had light housing wired into it." -msgstr "Una lámina de metal que tiene luces cableadas sobre ella." +msgstr "Es una lámina de metal que tiene luces cableadas sobre ella." #: lang/json/GENERIC_from_json.py msgid "wooden armor kit" @@ -37892,30 +38237,30 @@ msgstr[1] "conjuntos de corazas de madera" #: lang/json/GENERIC_from_json.py msgid "A bundle of two by fours prepared to be used as vehicle armor." msgstr "" -"Un montón de tablas de madera preparadas para ser usadas como coraza para un" -" vehículo." +"Es un montón de tablas de madera preparadas para ser usadas como armadura " +"para un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel plating" msgid_plural "steel platings" -msgstr[0] "placa de acero" -msgstr[1] "placas de acero" +msgstr[0] "chapa de acero" +msgstr[1] "chapas de acero" #. ~ Description for steel plating #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of steel." -msgstr "Una pieza de coraza hecha de acero." +msgstr "Es una pieza de coraza hecha de acero." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "superalloy plating" msgid_plural "superalloy platings" -msgstr[0] "placa de superaleación" -msgstr[1] "placas de superaleación" +msgstr[0] "chapa de superaleación" +msgstr[1] "chapas de superaleación" #. ~ Description for superalloy plating #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of sturdy superalloy." -msgstr "Una pieza de coraza hecha de superaleación resistente." +msgstr "Es una pieza de coraza hecha de superaleación resistente." #: lang/json/GENERIC_from_json.py msgid "superalloy sheet" @@ -37934,8 +38279,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "spiked plating" msgid_plural "spiked platings" -msgstr[0] "placa con puntas" -msgstr[1] "placas con puntas" +msgstr[0] "chapa con puntas" +msgstr[1] "chapas con puntas" #. ~ Description for spiked plating #: lang/json/GENERIC_from_json.py @@ -37948,19 +38293,19 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "hard plating" msgid_plural "hard platings" -msgstr[0] "placa dura" -msgstr[1] "placas duras" +msgstr[0] "chapa dura" +msgstr[1] "chapas duras" #. ~ Description for hard plating #: lang/json/GENERIC_from_json.py msgid "A piece of very thick armor plating made of steel." -msgstr "Una pieza de coraza muy dura hecha de acero." +msgstr "Es una pieza de coraza muy dura hecha de acero." #: lang/json/GENERIC_from_json.py msgid "military composite plating" msgid_plural "military composite platings" -msgstr[0] "placa de compuesto militar" -msgstr[1] "placas de compuesto militar" +msgstr[0] "chapa de compuesto militar" +msgstr[1] "chapas de compuesto militar" #. ~ Description for military composite plating #: lang/json/GENERIC_from_json.py @@ -37968,8 +38313,8 @@ msgid "" "A thick sheet of military grade armor, best bullet stopper you can stick on " "a vehicle." msgstr "" -"Una lámina dura de coraza de grado militar, el mejor material antibalas que " -"podés ponerle a un vehículo." +"Es una lámina dura de coraza de grado militar, el mejor material antibalas " +"que podés ponerle a un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "water faucet" @@ -38129,6 +38474,21 @@ msgstr[1] "reflectores" msgid "A large and heavy light designed to illuminate wide areas." msgstr "Una luz grande y pesada diseñada para iluminar áreas amplias." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "reflector direccional" +msgstr[1] "reflectores direccionales" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" +"Es una luz grande y pesada diseñada para iluminar áreas amplias en forma de " +"cono semicircular." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -38193,7 +38553,8 @@ msgstr[1] "conjuntos de corazas de quitina" #. ~ Description for chitin armor kit #: lang/json/GENERIC_from_json.py msgid "Light chitin plating made for a vehicle." -msgstr "Placas ligeras de quitina para ser usadas como coraza en un vehículo." +msgstr "" +"Son placas ligeras de quitina para ser usadas como armadura en un vehículo." #: lang/json/GENERIC_from_json.py msgid "biosilicified chitin armor kit" @@ -38217,7 +38578,7 @@ msgstr[1] "conjuntos de corazas de hueso" #. ~ Description for bone armor kit #: lang/json/GENERIC_from_json.py msgid "Bone plating made for a vehicle." -msgstr "Placas de hueso para ser usadas como coraza en un vehículo." +msgstr "Son placas de hueso para ser usadas como armadura en un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -38389,6 +38750,19 @@ msgstr[1] "luces delanteras de auto" msgid "A vehicle headlight to light up the way." msgstr "Es la luz delantera de un vehículo que sirve para iluminar el camino." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "luz delantera amplia" +msgstr[1] "luces delanteras amplias" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" +"Es una luz delantera angular de un vehículo que sirve para iluminar el " +"camino." + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -38835,6 +39209,17 @@ msgstr[1] "Zui Quan y Vos" msgid "A complete guide to Zui Quan." msgstr "Una guía completa para el Zui Quan." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "El Camino de la Lanza" +msgstr[1] "El Camino de la Lanza" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "Es una guía completa para el Sōjutsu." + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -40575,7 +40960,7 @@ msgstr[1] "placas de batería de plomo" #. ~ Description for lead battery plate #: lang/json/GENERIC_from_json.py msgid "An electrode plate from a lead-acid battery." -msgstr "Una placa de electrodos de una batería de plomo y ácido." +msgstr "Es una placa de electrodos de una batería de plomo y ácido." #: lang/json/GENERIC_from_json.py msgid "forged sword" @@ -40942,6 +41327,56 @@ msgstr[1] "conejos animatrónicos rotos" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Un conejo animatrónico roto. Flácido y sin vida." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "casco de madera de bote" +msgstr[1] "cascos de madera de bote" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" +"Es una tabla de madera que mantiene el bote a flote. Agregale cascos de bote" +" al vehículo hasta que flote. Después ponele los remos o el motor para que " +"se pueda mover." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "casco de plástico de bote" +msgstr[1] "cascos de plástico de bote" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Es una tabla de plástico rígido que mantiene el bote a flote. Agregale " +"cascos de bote al vehículo hasta que flote. Después ponele los remos o el " +"motor para que se pueda mover." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "casco de fibra de carbono de bote" +msgstr[1] "cascos de fibra de carbono de bote" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Es una tabla de fibra de carbono que mantiene el bote a flote. Agregale " +"cascos de bote al vehículo hasta que flote. Después ponele los remos o el " +"motor para que se pueda mover." + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -40953,6 +41388,28 @@ msgstr[1] "remos" msgid "Oars for a boat." msgstr "Son remos para un bote." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "sección inflable" +msgstr[1] "sección inflable" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Una parte inflable para bote." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "airbag inflable" +msgstr[1] "airbags inflables" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Un airbag inflable." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -41062,6 +41519,409 @@ msgid_plural "belt ammo links" msgstr[0] "unión metálica de cinta cargadora" msgstr[1] "uniones metálicas de cinta cargadora" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "maceta para huerta (con tomate)" +msgstr[1] "maceta para huerta (con tomates)" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "¡Los tomates están listos para cosechar!" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "Está creciendo rápidamente." + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando tomates. Cuando están maduros, " +"necesitás usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "maceta para huerta (con tomate maduro)" +msgstr[1] "macetas para huerta (con tomates maduros)" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con tomate listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "maceta para huerta (con trigo)" +msgstr[1] "maceta para huerta (con trigo)" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "El trigo está listo para cosechar." + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "El trigo está creciendo rápidamente." + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando trigo. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "macetas para huerta (con trigo maduro)" +msgstr[1] "maceta para huerta (con trigo maduro)" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" +"Es una maceta para huerta con trigo listo para cosechar. Desarmalo para " +"cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "maceta para huerta (con lúpulo)" +msgstr[1] "maceta para huerta (con lúpulo)" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "¡El lúpulo está listo para cosechar!" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando lúpulo. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "maceta para huerta (con lúpulo maduro)" +msgstr[1] "macetas para huerta (con lúpulo maduro)" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con lúpulo listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "maceta para huerta (con alforfón)" +msgstr[1] "maceta para huerta (con alforfón)" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando alforfón. Cuando esté maduro, necesitás" +" usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "maceta para huerta (con alforfón maduro)" +msgstr[1] "macetas para huerta (con alforfón maduro)" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" +"Es una maceta para huerta con alforfón listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "maceta para huerta (con brócoli)" +msgstr[1] "maceta para huerta (con brócoli)" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando brócoli. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "maceta para huerta (con brócoli maduro)" +msgstr[1] "macetas para huerta (con brócoli maduro)" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" +"Es una maceta para huerta con brócoli listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "maceta para huerta (con avena)" +msgstr[1] "maceta para huerta (con avena)" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando avena. Cuando esté madura, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "maceta para huerta (con avena madura)" +msgstr[1] "macetas para huerta (con avena madura)" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con avena lista para ser cosechada. Desarmala para" +" cosecharla." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "maceta para huerta (con cebada)" +msgstr[1] "maceta para huerta (con cebada)" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando cebada. Cuando esté madura, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "maceta para huerta (con cebada madura)" +msgstr[1] "macetas para huerta (con cebada madura)" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con cebada lista para ser cosechada. Desarmala " +"para cosecharla." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "maceta para huerta (con zanahoria)" +msgstr[1] "maceta para huerta (con zanahoria)" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando zanahoria. Cuando esté madura, " +"necesitás usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "maceta para huerta (con zanahoria madura)" +msgstr[1] "macetas para huerta (con zanahoria madura)" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con zanahoria lista para ser cosechada. Desarmala " +"para cosecharla." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "maceta para huerta (con algodón)" +msgstr[1] "maceta para huerta (con algodón)" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando algodón. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "maceta para huerta (con algodón maduro)" +msgstr[1] "macetas para huerta (con algodón maduro)" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con algodón listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "maceta para huerta (con repollo)" +msgstr[1] "maceta para huerta (con repollo)" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando repollo. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "maceta para huerta (con repollo maduro)" +msgstr[1] "macetas para huerta (con repollo maduro)" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" +"Es una maceta para huerta con repollo listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "maceta para huerta (con pepino)" +msgstr[1] "maceta para huerta (con pepino)" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando pepino. Cuando esté maduro, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "maceta para huerta (con pepino maduro)" +msgstr[1] "macetas para huerta (con pepino maduro)" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" +"Es una maceta para huerta con pepino listo para ser cosechado. Desarmalo " +"para cosecharlo." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "maceta para huerta (con ajo)" +msgstr[1] "maceta para huerta (con ajo)" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Es una maceta para huerta cultivando ajo. Cuando esté madura, necesitás " +"usarla para prepararla para cosechar." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "maceta para huerta (con ajo maduro)" +msgstr[1] "macetas para huerta (con ajo maduro)" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" +"Es una maceta para huerta con ajo listo para ser cosechado. Desarmalo para " +"cosecharlo." + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -42757,8 +43617,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "diamond plating" msgid_plural "diamond platings" -msgstr[0] "placa de diamante" -msgstr[1] "placas de diamante" +msgstr[0] "chapa de diamante" +msgstr[1] "chapas de diamante" #. ~ Description for diamond plating #: lang/json/GENERIC_from_json.py @@ -44880,6 +45740,15 @@ msgstr "" "Reemplaza armas y municiones por genéricos. Atención: puede tener problema " "con otros mods." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "macetas para cultivo" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "Te permite cultivar algunas semillas en macetas." + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "Instalación Manual de Biónico" @@ -46883,6 +47752,10 @@ msgstr "" "hinchado. Se mueve de manera torpe, pero ataque con grandes reservas de " "ácido." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "¡El zombi corrosivo escupe una pegote de ácido!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "zombi arrastrador" @@ -52062,11 +52935,18 @@ msgid_plural "fedoras" msgstr[0] "fedora" msgstr[1] "fedoras" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "Inclinar" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Inclinás tu fedora." +#, no-python-format +msgid "You tip your %s." +msgstr "Inclinás tu %s." #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -53664,6 +54544,12 @@ msgid_plural "boulder anvils" msgstr[0] "yunque de piedra" msgstr[1] "yunques de piedra" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "magiclick biónico" +msgstr[1] "magiclicks biónicos" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -55181,41 +56067,6 @@ msgstr "" "Es un pequeño tanque de metal en el que se pone el carbón, con un encendedor" " piloto agregado. La podés usar para cocinar comida, claro." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "equipo de química" -msgstr[1] "equipos de química" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Es un equipo de química guardado en una caja. El contenido incluye " -"recipientes de vidrio, mangueras, cables de metal, un anafe eléctrico, y " -"lentes de seguridad. Puede ser usado para fabricar cosas químicas si es que " -"te interesa." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "equipo básico de química" -msgstr[1] "equipos básicos de química" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"Es un equipo básico de química que contiene recipientes de vidrio, mangueras" -" y lentes de seguridad. Puede ser usado para fabricar cosas químicas si es " -"que te interesa, pero vas a necesitar también una fuente de calor." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -57686,7 +58537,7 @@ msgid "" "wilderness cooking. This model relies on a battery-operated hotplate, " "rather than the more commonplace chemical-fueled Esbit stove." msgstr "" -"Un kit de utensilios con todo lo que podés necesitar para cuando cocinás " +"Es un kit de utensilios con todo lo que podés necesitar para cuando cocinás " "estando en la naturaleza. Este modelo depende de un anafe que funciona con " "baterías, en lugar del horno Esbit más común alimentado con químicos." @@ -57744,8 +58595,8 @@ msgid "" "battery-operated hotplate, rather than the smoke-producing chemical-fueled " "Esbit stove. Compact, durable and lightweight." msgstr "" -"Un kit militar de utensilios diseñado para patrullas de reconocimiento que " -"pasan mucho tiempo detrás de las líneas enemigas. Todos sus componentes " +"Es un kit militar de utensilios diseñado para patrullas de reconocimiento " +"que pasan mucho tiempo detrás de las líneas enemigas. Todos sus componentes " "están hechos de una delgada capa compuesto de aluminio y superaleación, y " "están aislados con una cobertura cerámica. Depende de un anafe que funciona " "con baterías, en lugar del horno Esbit más común alimentado con químicos. " @@ -60952,6 +61803,189 @@ msgstr "" "Es un controlador remoto para autos verdaderos. Puede encender o apagar los " "dispositivos del auto. Algunos autos pueden ser manejados de manera remota." +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "equipo de química" +msgstr[1] "equipos de química" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Es un equipo de química guardado en una caja. El contenido incluye " +"recipientes de vidrio, mangueras, cables de metal, un anafe eléctrico, y " +"lentes de seguridad. Puede ser usado para fabricar cosas químicas si es que " +"te interesa." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "equipo básico de química" +msgstr[1] "equipos básicos de química" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"Es un equipo básico de química que contiene recipientes de vidrio, mangueras" +" y lentes de seguridad. Puede ser usado para fabricar cosas químicas si es " +"que te interesa, pero vas a necesitar también una fuente de calor." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "equipo básico de análisis de laboratorio" +msgstr[1] "equipos básicos de análisis de laboratorio" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 robusto equipo contiene algunas cosas básicas que vas a necesitar para " +"hacer trabajos precisos de química: específicamente, una pequeña balanza, un" +" espectrofotómetro, un aparato de punto de fusión, un medidor de pH y un " +"equipo de papeles finos de cromatografía. Esto te ayuda a sentirte confiado " +"a poder crear el químico deseado." + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "pequeña balanza" +msgstr[1] "pequeñas balanzas" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" +"Esto es una simple balanza que usa un equipo de pesas de acero que se " +"desplazan por las barras para medir la masa de una muestra de manera " +"bastante precisa." + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "espectrofotómetro" +msgstr[1] "espectrofotómetros" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" +"Esta infaltable herramienta analítica de química mide la absorción de la luz" +" de una muestra líquida en un tubo especial llamado cuvette." + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "equipo de cuvettes de espectrometría" +msgstr[1] "equipos de cuvettes de espectrometría" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" +"Es una pequeña caja llena de tubos plásticos cuadrados precisamente " +"calibrados, para espectrometría de laboratorio." + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "medidor de pH" +msgstr[1] "medidores de pH" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" +"Esto es básicamente, un par de sondas de vidrio en un voltímetro. Al poner " +"una sonda en la solución de calibración (incluída convenientemente en el " +"equipo) y la otra sonda en una sustancia, se puede calcular su acidez." + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "aparato de punto de fusión" +msgstr[1] "aparatos de punto de fusión" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" +"Esto es básicamente, una hornalla eléctrica con un armazón metálico. El " +"armazón tiene una ventana con aumento y una ranura en la cual se inserta un " +"tubo muy finito con la muestra cristalizada. El dispositivo te permite medir" +" precisamente el punto de fusión del cristal, un dato muy útil para " +"identificar qué es y su grado de pureza." + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "detector de luz" +msgstr[1] "detectores de luz" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" +"Esto es un fotodiodo puesto en un chip, diseñado para convertir la luz que " +"recibe en energía eléctrica para poder medirla." + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "prisma de vidrio" +msgstr[1] "prismas de vidrio" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" +"Esto es un prisma de cristal de alta calidad que se usa para dividir y " +"redireccionar la luz." + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "tubo pequeño de vidrio" +msgstr[1] "tubos pequeños de vidrio" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "Es un tubo pequeño de vidrio. ¿Qué más querrías saber sobre él?" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -61602,8 +62636,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "hobo stove" msgid_plural "hobo stoves" -msgstr[0] "cocina de vagabundo" -msgstr[1] "cocinas de vagabundo" +msgstr[0] "cocina de indigente" +msgstr[1] "cocinas de indigente" #. ~ Description for hobo stove #. ~ Description for hobo stove (lit) @@ -61619,8 +62653,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "hobo stove (lit)" msgid_plural "hobo stoves (lit)" -msgstr[0] "cocina de vagabundo (encendida)" -msgstr[1] "cocinas de vagabundo (encendidas)" +msgstr[0] "cocina de indigente (enc.)" +msgstr[1] "cocinas de indigente (enc.)" #. ~ Use action msg for hobo stove (lit). #. ~ Use action msg for ember carrier (lit). @@ -62400,6 +63434,17 @@ msgid_plural "inactive military robots" msgstr[0] "militaribot inactivo" msgstr[1] "militaribots inactivos" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" +"Es un militaribot sin energía con un arma 7.62mm y una picana eléctrica " +"integradas. Activá este objeto, con munición en tu inventario, para cargar y" +" desplegar el robot." + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -63270,45 +64315,6 @@ msgstr "" "Una rueda de madera para carro, que está reforzada con cintas de metal, y " "hecha a mano." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "sección inflable" -msgstr[1] "sección inflable" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Una parte inflable para bote." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "airbag inflable" -msgstr[1] "airbags inflables" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Un airbag inflable." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "tabla de bote" -msgstr[1] "tabla de bote" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"Es una tabla de madera que mantiene el bote a flote. Para cambiar a bote un " -"vehículo, hay que poner esto como cuando ponés las ruedas en un vehículo. " -"Luego, agregar los remos o el motor para que el bote se mueva." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "Oruga gelatinosa de tanque" @@ -63546,6 +64552,10 @@ msgstr "¿Dejás de interactuar con el vehículo?" msgid "Stop training?" msgstr "¿Dejás de entrenar?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "¿Dejás de socializar?" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "¿Dejás de usar los primeros auxilios?" @@ -63602,6 +64612,14 @@ msgstr "¿Dejás de arar el campo?" msgid "Stop planting seeds?" msgstr "¿Querés dejar de plantar semillas?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "¿Dejar de cosechar los campos?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "¿Dejar de fertilizar los campos?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "¿Dejás de interactuar con el inventario?" @@ -63706,10 +64724,18 @@ msgstr "¿Querés dejar de afeitarte?" msgid "Stop cutting your hair?" msgstr "¿Querés dejar de cortarte el pelo?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "¿Dejás de jugar con tu mascota?" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "¿Dejás de intentar dormirte?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "¿Dejás de descargar?" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -66941,6 +67967,19 @@ msgstr "" "Etiqueta de IA para preguntar si queremos que un PNJ nos entrene. Si te " "aparece, esto es un bug." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "Preguntar para socializar" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" +"Etiqueta de IA por prefuntarle recientemente a un PNJ para socializar. Si te" +" aparece, esto es un bug." + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Pedir Información" @@ -68333,24 +69372,6 @@ msgstr "Te falta el aire." msgid "The ceiling collapses on you!" msgstr "¡El techo se te cae encima!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Tratamiento de células madre" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"Tus tripas se están moviendo de maneras extrañas a medida que el tratamiento" -" va haciendo efecto." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "" -"Recibiste una inyección de puré de hueso y esmalte en tu globo ocular." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "Tomaste anticonvulsivo" @@ -68927,6 +69948,15 @@ msgstr "Panacea" msgid "You feel incredible! You could take on the world!" msgstr "¡Te sentís increíble! ¡Podías apoderarte del mundo!" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "Estómago aliviado" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "Estás bajo los efectos de tener el estómago aliviado." + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "Descarga" @@ -68952,13 +69982,11 @@ msgstr "Historia Denegada" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" -"Es una etiqueta utilizada cuando ya le preguntaste a un PNJ el detalle de su" -" historia de supervivencia y no te lo quiere volver a contar en ese momento." -" Si te aparece, es un bug." +"Etiqueta de cuando ya le preguntaste a un PNJ un detalle y no te lo quiere " +"volver a contar. Si te aparece, es un bug." #: lang/json/effects_from_json.py msgid "Religious Offence" @@ -70288,7 +71316,7 @@ msgstr "banco" #: lang/json/furniture_from_json.py msgid "Hobo bed. Use at your own risk." msgstr "" -"Es como una cama para un vagabundo. Usalo bajo tu propia responsabilidad." +"Es como una cama para un vagabundo. Usala bajo tu propia responsabilidad." #: lang/json/furniture_from_json.py msgid "lane guard" @@ -77802,6 +78830,51 @@ msgstr "" "Es un gatillo de precisión balanceado que mejora levemente la precisión del " "arma de fuego." +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "sear para automático" +msgstr[1] "sears para automático" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"good as actual full-auto parts, so precision and reliability suffer " +"slightly." +msgstr "" +"Es una pieza de metal con la forma de una U con una válvula con forma de T. " +"Una vez puesto en el receptor inferior de una AR-15, el rifle tendrá fuego " +"selectivo. La superficie de este sear hecho a mano no es tan buena como una " +"parte automática, así que la precisión y la fiabilidad se verán reducidas." + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15" +msgstr "ar15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "unión ráfaga" +msgstr[1] "uniones ráfaga" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" +"Diseñadas originalmente para la Colt SP-1, esta 'reproducción' tiene la " +"intención de convertir una AR-15 en un rifle automático. Cuando se hacen las" +" modificaciones necesarias y se pone la unión, se desactiva el semi-" +"automático y se activa el automático. La fiabilidad y la precisión serán " +"bastante reducidas debido a la cuestionable calidad de la unión y la falta " +"de las inconseguibles partes de SP-1." + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -77970,6 +79043,18 @@ msgstr "" "cuando una mira o alguna otra modificación impide el uso de las mirillas " "primarias." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "ranura para mirilla de compensación" +msgstr[1] "ranuras para mirilla de compensación" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" +"Es un conjunto de ranuras adicionales a 45º para poner una óptica " +"secundaria." + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -81718,14 +82803,13 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" -"Si el punto de equilibrio de tu vehículo está entre todas las tablas del " -"bote y no tenés ruedas, podrá flotar y moverse sobre el agua si tiene un " -"motor activo o un motor con suficiente fuerza para mover el vehículo." +"Cada casco del bote reducirá el calado de tu vehículo e incrementará la " +"altura de sellado hermético. Si el calado es menor que la altura de sellado," +" tu vehículo flotará si lo ponés en el agua." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -82489,7 +83573,7 @@ msgstr "Carnear" msgid "Chat with NPC" msgstr "Charlar con PNJ" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Mirar alrededor" @@ -83100,6 +84184,14 @@ msgstr "Activar/Desactivar freezer" msgid "Toggle headlights" msgstr "Luces delanteras" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "Luces delanteras amplias" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "Luces superiores direccionales" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Luces superiores" @@ -83512,14 +84604,14 @@ msgid "Analyze blood" msgstr "Analizar sangre" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Sr. Célula Madre" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "Tratamiento de Células Madre" +msgid "Bonesetting Treatment" +msgstr "Tratamiento de Huesero" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -83685,6 +84777,15 @@ msgstr "¡, , y estuvieron acá!" msgid "it works." msgstr "funciona." +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" +"El nombre mortuorio seguido de un mensaje escrito rápidamente que dice: 'No " +"soy de confiar si tu amado no se mantiene muerto.'" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -84974,6 +86075,39 @@ msgstr "" "+Inteligencia armadura contra electricidad, +Percepción armadura contra " "fuego." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "Sōjutsu" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" +"Sōjutsu, \"El Camino de la Lanza\", es el arte marcial japonés de luchar con" +" una lanza. El Sōjutsu se enfoca en mantener a los oponentes a la distancia " +"necesaria para mantener la ventaja en el combate." + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +msgstr "Postura de Sōjutsu" + +#. ~ 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 "Bloqueo adicional con armas de alcance mientras estás quieto" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Rush" +msgstr "Ráfaga de Sōjutsu" + +#. ~ 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 "Incrementa el daño cuando en movimiento pero sin bonus en el bloqueo" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Manejo de Espada Medieval" @@ -88805,6 +89939,10 @@ msgstr "Disfrutaste %s" msgid "Enjoyed a hot meal" msgstr "Disfrutaste una comida caliente" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "Disfrutaste la conversación" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Música" @@ -89015,6 +90153,10 @@ msgstr "Recién Afeitado" msgid "Barfed" msgstr "Vomitado" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "Pasaste tiempo jugando con tu mascota" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "Encender un fuego" @@ -90216,6 +91358,21 @@ msgstr "" "Aunque igual vas a sufrir las penalidades por el dolor, a la vez vas a " "sentir placer." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "Psicosis con Estimulantes" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" +"Tenés una historia única con los estimulantes (como el café o las " +"anfetaminas). Tolerás mucho más sin llegar a la sobredosis, pero si te " +"entregás demasiado, empezás a ver cosas..." + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -90370,10 +91527,10 @@ msgstr "Armas Cuerpo a cuerpo" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" "Has practicado luchar con armas. Empezás eligiendo una de estas prácticas: " -"Eskrima, Esgrima, Pencak Silat o Niten Ichi-Ryu." +"Eskrima, Esgrima, Pencak Silat, Niten Ichi-Ryu o Sōjutsu." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -91117,6 +92274,20 @@ msgstr "" "Tu cuerpo es extremadamente frágil. Tus máximos PV son un 75% menor que lo " "usual, y te curás mucho más lento. Es acumulativo con Mandíbula de Cristal." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "Espiral Descendente Genético" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" +"Los sucesos del Cataclismo te han dañado el ADN a puntos irreparables. Mutás" +" de frecuentemente, y todas las mutaciones que recibís (de cualquier fuente)" +" serán negativas." + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Piel Dura" @@ -95717,6 +96888,24 @@ msgstr "¡Pueden estar disponibles nuevas opciones de misiones!" msgid "Has Level 2 Construction Built" msgstr "Tiene Construcciones Nivel 2" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "PNJ al comienzo" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "Marca para los PNJ del comienzo del juego" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "PNJ estático" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "Marca para los PNJ estáticos" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "Visión Debug" @@ -96540,6 +97729,10 @@ msgstr "Apis" msgid "I'm bugged - I shouldn't talk to you." msgstr "Soy un error, un bug - No debería hablar con vos." +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "Mendigo" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -96901,6 +98094,30 @@ msgstr "Bandido" msgid "Psycho" msgstr "Psicópata" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "mendigo" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "Reena Sandhu" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "Dino Dave" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "Luo Meizhen" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "Brandon Garder" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "Yusuke Taylor" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "Saqueador" @@ -98076,8 +99293,36 @@ msgid "trailhead" msgstr "comienzo de senda" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "ventanilla de autoservicio abandonada" +msgid "veterinarian clinic" +msgstr "clínica veterinaria" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "museo" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "morgue" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "lavandería" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "joyería" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "motel de 2 pisos" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "edificio grande de oficinas" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "negocio de mejoras del hogar" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -98103,6 +99348,10 @@ msgstr "bowling" msgid "boxing gym" msgstr "gimnasio" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "gimnasio fitness" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "dojo" @@ -98116,37 +99365,13 @@ msgid "gardening supply" msgstr "negocio de jardinería" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "gimnasio fitness" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "negocio de mejoras del hogar" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "joyería" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "lavandería" +msgid "abandoned drive-through" +msgstr "ventanilla de autoservicio abandonada" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "noname" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "morgue" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "museo" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "clínica veterinaria" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "Pizzería Bancarota" @@ -98384,14 +99609,6 @@ msgstr "escuela" msgid "projects" msgstr "viviendas sociales" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "motel de 2 pisos" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "edificio grande de oficinas" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "taller mecánico" @@ -98508,6 +99725,42 @@ msgstr "gomería" msgid "regional dump" msgstr "vertedero regional" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "Vagabundo" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Las circunstancias te dejaron vagando, sin casa, sin familia, sin amigos. " +"Pero el mundo que conocías ya no existe, y tal vez tu experiencia " +"dependiendo solo de vos mismo para sobrevivir te servirán en este nuevo " +"mundo." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "Vagabunda" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Las circunstancias te dejaron vagando, sin casa, sin familia, sin amigos. " +"Pero el mundo que conocías ya no existe, y tal vez tu experiencia " +"dependiendo solo de vos mismo para sobrevivir te servirán en este nuevo " +"mundo." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -99281,7 +100534,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hobo" -msgstr "Vagabundo" +msgstr "Indigente" #. ~ Profession (male Hobo) description #: lang/json/professions_from_json.py @@ -99300,7 +100553,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hobo" -msgstr "Vagabunda" +msgstr "Indigente" #. ~ Profession (female Hobo) description #: lang/json/professions_from_json.py @@ -103652,6 +104905,134 @@ msgstr "" "robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " "de eso." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "Ingeniero en Robótica" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Eras uno de los ingenieros de nivel bajo en una fábrica de robótica. La " +"administración siempre te decía que poner lanzallamas o manhacks era " +"'innecesario' o 'muy peligroso', pero ahora no hay nadie que te detenga." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "Ingeniera en Robótica" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Eras uno de los ingenieros de nivel bajo en una fábrica de robótica. La " +"administración siempre te decía que poner lanzallamas o manhacks era " +"'innecesario' o 'muy peligroso', pero ahora no hay nadie que te detenga." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "Prodigio en Robótica" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Has estado construyendo robots desde que aprendiste a sostener una " +"soldadora, y no pensás dejar que el fin del mundo evite que eso siga " +"sucediendo." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "Prodigio en Robótica" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Has estado construyendo robots desde que aprendiste a sostener una " +"soldadora, y no pensás dejar que el fin del mundo evite que eso siga " +"sucediendo." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "Adoptado por Robot" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Durante los disturbios, un robot militar salió de la nada a rescatarte. Tal " +"vez piense que sos alguien importante, quién sabe." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "Adoptada por Robot" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Durante los disturbios, un robot militar salió de la nada a rescatarte. Tal " +"vez piense que sos alguien importante, quién sabe." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "Robot Cazador" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Le pagaste al hacker de tu barrio para que te construya un perro cazador " +"robótico. Es casi tan bueno como el real, aunque no responde bien a las " +"caricias." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "Robot Cazador" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Le pagaste al hacker de tu barrio para que te construya un perro cazador " +"robótico. Es casi tan bueno como el real, aunque no responde bien a las " +"caricias." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -106976,10 +108357,9 @@ msgstr "" "de combustible." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" -"Incluso sin electricidad, los hornos pueden usarse como contenedores de " -"fuego." +"Incluso sin electricidad, los hornos pueden usarse para hacer fuego adentro." #: lang/json/snippet_from_json.py msgid "Light itself doesn't draw zombies, it's sight, noise or smell." @@ -107006,30 +108386,27 @@ msgstr "" "alimentos." #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" -"¿Te moriste? Es parte de la experiencia. Probá de nuevo con lo que " -"aprendiste." +"Morirse es parte de la experiencia. Probá de nuevo con lo que aprendiste." #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "¿Comida congelada? Ponela cerca del fuego o calentala en una sartén." #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" -"Las cuevas subterráneas o los sótanos siempre están fríos, pero nunca se " -"congelan." +"Los lugares subterráneos cono los sótanos o las cuevas están frescos todo el" +" año." #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" -"¿Tenés miedo a la fauna natural? Gritales hasta que se vayan. Pero tené " -"cuidado con lo que puede pasar." +"¿Le tenés miedo a la fauna natural? Gritales hasta que se vayan. Pero tené " +"cuidado con la consecuencia de hacer ruido." #: lang/json/snippet_from_json.py msgid "Animals and zombies are not friends. You can take advantage of that." @@ -107038,8 +108415,8 @@ msgstr "" "eso." #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "La puerta no es la única entrada. O salida, depende." +msgid "A door is not the only way in or out of most places." +msgstr "Una puerta nunca es la única entrada o salida de los lugares." #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -107057,22 +108434,22 @@ msgstr "" "Muchos objetos tienen acciones especiales. Tenés que descubrirlas probando." #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" -"Un lugar peligroso no significa siempre que tenga cosas buenas. Usá la " -"cabeza." +"Solo porque un lugar es peligroso no significa que tenga cosas interesantes " +"adentro." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" -"Entrar no es un problema. Fijate cómo podés salir y no te dejes encerrar." +"Si estás irrumpiendo en una morada, asegurate de que tenés una forma de " +"salir." #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" -"Casi siempre hay más de una manera de hacer algo. Hay que ser creativo." +"Normalmente, hay más de una manera de hacer las cosas. Hay que ser creativo." #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." @@ -107110,17 +108487,18 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"No querés una cucaracha grande en tu comida podrida. Deshacete de lo " -"podrido." +"Por lo general, la comida podrida atrae a los insectos, y los insectos se " +"han puesto grandes últimamente..." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" -"Los medicamentos te puede ayudar a sobrevivir pero evitá la sobredosis y la " -"adicción." +"Las drogas son geniales para mejorar tus estadísticas momentáneamente, pero " +"tené cuidado con las adicciones y las sobredosis." #: lang/json/snippet_from_json.py msgid "" @@ -107131,10 +108509,9 @@ msgstr "" "necesitás." #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -"Las heridas sanan con el tiempo. Desinfectarlas y vendarlas aceleran el " +"Las heridas sanan con el tiempo. Las vendas y el desinfectante aceleran el " "proceso." #: lang/json/snippet_from_json.py @@ -107162,19 +108539,18 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "La naturaleza provee. Podés vivir de la tierra si aprendés cómo." #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" -msgstr "La comida cruda y el agua de lugares peligrosos no es saludable, ¿no?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" +msgstr "" +"La comida cruda y el agua de lugares peligrosos no es saludable. ¿Cierto?" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "" -"¿Para qué vas a caminar todo el día hasta el pueblo cuando podés usar un " -"vehículo?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "¿Para qué vas a caminar cuando podés usar un auto? ¿O un tanque?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" -"La comida de antes del cataclismo no va a durar para siempre. Acordate de " +"La comida de antes del Cataclismo no va a durar para siempre. Acordate de " "eso." #: lang/json/snippet_from_json.py @@ -107239,7 +108615,7 @@ msgstr "Muertes de rutina. ¡Mantente alerta! No bajes la guardia." #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" "La mayoría de los medicamentos no funcionan instantáneamente, así que no te " @@ -107284,12 +108660,10 @@ msgstr "" "cosas interesantes." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -"Cuidado con la duración de la comida. Las condiciones de almacenamiento " -"importan, especialmente la temperatura." +"La temperatura afecta la vida útil de la comida. Mientras más fresca esté, " +"mejor." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -107317,7 +108691,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" "¿Te está frenando un miembro roto? Los hospitales pueden tener la tecnología" @@ -107339,12 +108713,10 @@ msgstr "" "Que no te agarren con los pantalones bajos. Ya no queda papel higiénico." #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" -"El terreno difícil de transitar puede usarse como ventaja si tenés la " -"movilidad reducida." +"El terreno que te hace andar más lentamente, también lo hará con tus " +"enemigos." #: lang/json/snippet_from_json.py msgid "" @@ -107363,11 +108735,12 @@ msgstr "" "el juego. ¡Juego de rol!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." -msgstr "Un superviviente ayudado es un amigo ganado. Casi siempre...." +msgid "A survivor saved is a friend earned. Most of the time..." +msgstr "Un sobreviviente ayudado es un amigo ganado. Casi siempre..." #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" "¿Estás aprendiendo a jugar? Fijate los atajos de teclado y agarrales la " "mano." @@ -107376,6 +108749,83 @@ msgstr "" msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "Esperá lo inesperable, incluso si es la Inquisición Española." +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" +"Podés tirar cosas mientras espiás por una esquina. Es perfecto para eliminar" +" torretas." + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" +"Nadie le avisó a las máquinas expendedoras que el mundo se terminó. ¡Así que" +" guardate las tarjetas de crédito!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" +"Tiene que haber cosas geniales adentro de esos laboratorios subterráneos " +"supersecretos, ¿no?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" +"Poné un embudo sobre una jarra o barril para recolectar el agua de la " +"lluvia." + +#: 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 "" +"La cantidad de zombis en una ciudad es grande pero finita. Podés " +"(eventualmente) matarlos a todos." + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" +"¿*Solamente* te llevaste todo lo que no estaba clavado al suelo? ¡Andá a " +"buscar los clavos, haceme el favor!" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" +"Podés asignar tus propias reglas para el Modo Seguro en el menú de pausa." + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "La mejor arma del mundo no sirve si no tenés munición." + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" +"La mayoría de los zombis atraviesan los autos, no los esquivan. Acordate de " +"esto cuando tengas que escapar." + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" +"Si estás encerrado adentro con una pierna rota, leete algunos libros para " +"pasar el tiempo." + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "Algunos cadáveres pueden tener biónicos si los diseccionás." + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "No seas codicioso. Los objetos no sirven de nada si estás muerto." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -111004,8 +112454,8 @@ msgid "" "out of some of those assholes who tried to raid my kitchen earlier...\"" msgstr "" "\"¡Miren mi programa de cocina en La Televisión! Voy a hacer salchichas " -"Mannwurst con algunos de esos idiotas que intentaron saquear mi cocina hace " -"un rato...\"" +"Juannwurst con algunos de esos idiotas que intentaron saquear mi cocina hace" +" un rato...\"" #: lang/json/snippet_from_json.py msgid "" @@ -113538,6 +114988,73 @@ msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "" "¿Sabías que la falta de agua te mata más rápido que la 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 "" +"Sí, claro, ¡no pude evitar darme cuenta que tenés cerveza! Abramos una y " +"charlemos, , ¿cómo va?" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" +"Ah, definitivamente. ¿Qué tal una de esas cervezas que tenés encima? ¿Qué " +"onda vos?" + +#: 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 "" +"¡Sí, convidame alguna de esas birras que veo que tenés y podemos conversar " +"todo lo que quieras! Es joda, ¿cómo va, ?" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "Ey, dale, , así descanso un rato, ¿cómo andás?" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "Sí dale, , ¿cómo va?" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "¡Dale, vamos a charlar un rato! ¿Todo bien?" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "¿Por qué no? ¿Cómo te va?" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "Me parece bien, ¿cómo va?" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "Puedo tomarme unos minutos, ¿cómo andan las cosas?" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "Dale,, ¿vos bien?" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "Bueno, ¿necesitas descargarte sobre algo?" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "¡Siempre dispuesto a una buena charla! Pero ¿por qué, estás bien?" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "OK, , así nos conocemos un poco más, ¿cómo la vas llevando?" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "Definitivamente, buena idea. ¿Cómo te trata esto?" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "maldición" @@ -114002,7 +115519,7 @@ msgstr "compañero" msgid "fella" msgstr "capo" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "vos" @@ -115081,6 +116598,18 @@ msgstr "¿Esto es Reno? ¡Porque necesito verte morir!" msgid "You're going to pay for that, !" msgstr "¡Vas a pagar por eso, !" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "¡Callense ahí!" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "¿Escuchaste a alguien hablando?" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "¿Quién dijo eso?" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "Qué feo suena eso." @@ -115097,6 +116626,10 @@ msgstr "¿Escuchaste eso?" msgid "What's that noise?" msgstr "¿Qué es ese ruido?" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "¿Hay algo ahí?" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "Escucho algo moviéndose - parece un/a " @@ -115106,16 +116639,16 @@ msgid "What's that sound? I heard" msgstr "¿Qué es ese sonido? Escuché un/a " #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" -msgstr "¿Quién anda ahí? Escuché un/a " +msgid "What's there? I heard" +msgstr "¿Qué hay ahí? Escuché" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" msgstr "¿Escuchaste eso? Parecía un/a " #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" -msgstr "¿Quién está haciendo ruido? Puedo escuchar el " +msgid "What is making that sound? I can hear the" +msgstr "¿Qué está haciendo ese ruido? Puedo escuchar el" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." @@ -115250,6 +116783,10 @@ msgstr "cadáver ambulante" msgid " " msgstr " " +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "muerto viviente" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "muerto vivo" @@ -115262,10 +116799,6 @@ msgstr "zombis" msgid "Z's" msgstr "Zs" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "muerto" - #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -118469,2029 +120002,559 @@ msgid "Clothing Store" msgstr "Negocio de Ropa" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"Ya ni sé, . No tengo la más idea de lo que está pasando. " -"Hago lo que puedo para seguir vivo/a. El mundo terminó y anduvo por ahí sin " -"morirme, hasta que te encontré." +msgid "That sure is a shiny badge you got there!" +msgstr "¡Esa placa que tenés es bien brillante!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "Ah." +msgid "Heh, you look important." +msgstr "Parecés una persona importante." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" -"Antes de ? ¿A quién le importa eso? Esto es un mundo nuevo, y" -" sí, está bastante . Pero es el que nos toca, así que no nos " -"quedemos en el pasado cuando deberías estar haciendo lo mejor que podemos " -"con lo poco que tenemos." +msgid "I'm actually new." +msgstr "En realidad, soy nuevo." #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "Puedo respetar eso." +msgid "What are you doing here?" +msgstr "¿Qué estás haciendo acá?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 se honesto/a... no me acuerdo. Recuerdo vagamente algunos detalles de " -"mi vida antes de este mundo, pero del en sí mismo? Todo fue " -"borroso. No sé cómo llegué a este lugar, ni cómo pasó todo esto. Creo que " -"algo bastante malo me pasó a mí. O por ahí solo recibí un golpe muy fuerte " -"en la cabeza. O las dos cosas. Las dos cosas pueden haber pasado." +msgid "Heard anything about the outside world?" +msgstr "¿Escuchaste algo del mundo exterior?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" -"Mi historia. Ah. No tiene nada especial. Tenía gente, pero se han ido a " -"estar con el Señor. No entiendo por qué Él no me llevó a mí también, pero " -"supongo que en algún momento lo sabré." +msgid "Is there any way I can join your group?" +msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "¿Te referís en un sentido religioso, o...?" +msgid "What's with your ears?" +msgstr "¿Qué te pasa en las orejas?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "¿Puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "Bueno, chau." #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" -"Obvio. Es bastante claro, ¿no? Ese... ese final, fue el Arrebatamiento. " -"Todavía estoy acá, y todavía no entiendo por qué, pero voy a seguir con " -"Jesús en mi corazón a través de las Tribulaciones por venir. Cuando hayan " -"pasado, estoy seguro de que Él me dará la bienvenida en el Reino de los " -"Cielos. O... o algo similar. No está yendo todo como esperaba, pero así son " -"las profecías." - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "¿Y si estás equivocado?" +"Supongo que entonces somos dos. Bueno, más o menos. Aunque no creo que " +"estemos abiertos. Llenos como la mierda; casi una multitud abajo. ¿Viste el " +"comerciante en la entrada? A ese hay que preguntarle." #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "¿Y qué vas a hacer entonces?" +msgid "Sucks..." +msgstr "Una porquería..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" -"¿Qué? ¿Cómo podés decir eso? No puedo creer que veas todo esto y pienses que" -" puede ser otra cosas y no el fin de los tiempos. Los muertos caminan, las " -"puertas del Infierno se abrieron, las Bestias del Diablo caminan por la " -"Tierra, y los Justos han sido llevados al Reino del Señor. ¿Qué otra prueba " -"necesitás?" +"Bueno, hay un tipo abajo que tiene un cañón neumático. Dispara metal como..." +" como un cañón pero sin el ruido. El costo-beneficio es buenísimo. Y hay un " +"montón de armas improvisadas que se pueden hacer. La cosa más difícil parece" +" ser continuar con la construcción de fortificaciones. Muy pocos de esos " +"monstruos parecen poder romper una valla o una pared construido con al cosa." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "Y entonces, ¿qué vas a hacer?" +msgid "Well, then..." +msgstr "Bueno, entonces..." #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"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 "" -"Voy a mantener la fe, y voy a seguir rezando, y voy a derrotar a los agentes" -" del Infierno cada vez que pueda. Eso es lo que tenemos que hacer, ¿no? " -"Supongo que seremos los humildes quienes poblaremos la Tierra. Aunque no me " -"gustan nuestras posibilidades." +"Por lo menos, nada optimista. Tenía un amiga con un aparato de radio " +"aficionado, pero ahora ella ya no está y esa cosa tampoco. Kaput." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" -"Igual que todos los demás. Le di la espalda a Dios y ahora estoy pagando el " -"precio. El Arrebatamiento ha llegado y me han dejado aquí. Así que ahora voy" -" a transitar este Infierno en la Tierra. Me arrepiento de no haber prestado " -"atención en Catecismo." +msgid "Nothing optimistic?" +msgstr "¿Nada optimista?" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" -"Bueno, esto va a sonar un poco raro, pero yo... sabía que esto iba a " -"suceder. Antes de que pasara... Podés preguntarle a mi psíquico, pero creo " -"que ya está muerta. Le conté sobre mis sueños la semana anterior a que el " -"mundo terminara. ¡Te lo juro!" +"La mayoría de los campamentos de emergencia ya no existen. Las ciudades " +"están infestadas, los bosques llenos de ojos brillantes y zombis. Algunas " +"mierdas muy locas andan por ahí, y todo el que tenga una radio parece que " +"estuviera documentando sus últimos horribles momentos." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "¿Qué soñaste?" +msgid "I feel bad for asking." +msgstr "Me siento mal por preguntar." #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" -"Bueno, así que, el primer sueño que tuve fue todas las noches durante tres " -"semanas. Soñaba que estaba corriendo por el bosque con un palo, peleando " -"contra arañas gigantes. ¡En serio! Todas las noches." - -#: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "Bueno, pero eso parece bastante normal." +"No sé. Quiero decir, si te podés volver útil a vos mismo. Pero eso ahora se " +"volvió algo confuso. Depende a quién le preguntes. El comerciante no me " +"quiere por acá cuando no estoy vendiendo algo, pero... algunos se salen con " +"la suya." #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "Guau, qué loco, no puedo creer que soñaste sobre el ." +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." +msgstr "" +"De la misma manera que vos conseguiste el tuyo, supongo. No hables mucho, " +"algunos de acá desprecian a las personas como nosotros." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +msgid "Ssh. Some people in here hate... mutations. This was an accident." msgstr "" -"Bueno, pero eso era... el comienzo solamente. Una semana antes de que " -"pasara, antes del sueño de las arañas, me levanté al baño y volví a la cama " -"porque estaba un poco desesperado. Y entonces tuve este otro sueño, ¡en el " -"que mi jefe moría y volvía de la muerte! Y después, en el trabajo unos días " -"después, el marido de mi jefe estaba de visita y tuvo un ataque al corazón y" -" ¡escuché que al día siguiente volví a revivir! ¡Igual que en mi sueño, pero" -" otra persona!" +"Shhh... Algunas personas acá odian las... mutaciones. Esto fue un accidente." #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "Eso es un poco extraño." +msgid "Sorry to ask" +msgstr "Perdón por preguntar." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" -"¿VISTE? ¡Y todavía hay más! Una semana antes de que pasara, antes del sueño " -"de las arañas, me levanté al baño y volví a la cama porque estaba un poco " -"desesperado. Y entonces tuve este otro sueño, ¡en el que mi jefe moría y " -"volvía de la muerte! Y después, en el trabajo unos días después, el marido " -"de mi jefe estaba de visita y tuvo un ataque al corazón y ¡escuché que al " -"día siguiente volví a revivir! ¡Igual que en mi sueño, pero otra persona!" +msgid "You're disgusting." +msgstr "Sos desagradable." #: lang/json/talk_topic_from_json.py msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" -"¿VISTE? Igual, todavía tengo sueños raros, pero no sobre el futuro. Como, " -"tengo muchos sueños de miedo desde que terminó el mundo. Como, cada un par " -"de noches, sueño con un campo de estrellas negras alrededor de la Tierra, y " -"por un segundo, todas miran fijamente hacia la Tierra al mismo momento, como" -" un billón de pequeños ojitos negros. Y después pestañean y miran para otro " -"lado, y después en mi sueño la TIerra es una estrella negra como las otras, " -"y estoy atrapado ahí, solo y desesperado. Ese es el peor de todos. Tengo " -"algunos más." +"Quemé edificios y vendí los materiales a los Mercaderes Libres. No, de " +"verdad. Si viste las ruinas de un incendio en los barrios, o si viste una " +"pila de varillas corrugadas en venta, probablemente ese era yo. A cambio me " +"mantenían bien alejado, creo. Te puedo vender un cóctel molotov o dos, si " +"querés." #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "Contame alguno más de tus extraños sueños." +msgid "I'll buy." +msgstr "Lo voy a comprar." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" -"Bueno, así que, a veces sueño que soy un zombi pero que no me doy cuenta. Y " -"actúo normal y veo zombis como personas normales y personas normales como si" -" fueran zombis. Cuando me despierto sé que fue falso porque si hubiera sido " -"real, habría muchas más personas normales. Porque serían zombis en realidad." -" Y todos son zombis ahora." +msgid "Who needs rebar?" +msgstr "¿Quién necesita varillas corrugadas?" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "Me parece que ahora todos tenemos sueños así." +msgid "As if you're one to talk. Screw You." +msgstr "Mirá quién habla. No me jodas." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" -"Sí, es probable. A veces también sueño que soy como... un granito de polvo, " -"flotando en la vasta e indiferente galaxia. Ese me hace desear que al que me" -" vende la marihuana, Dan el Sucio, se la coma un cangrejo gigante." +msgid "Screw You!" +msgstr "¡Andá a cagar!" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "Pobre Dan el Sucio. " +msgid "Another survivor! We should travel together." +msgstr "¡Otro sobreviviente! Deberíamos andar juntos." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "Gracias por contarme. " +msgid "What are you doing?" +msgstr "¿Qué estás haciendo?" #: 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 "" -"Llegué hasta uno de esos refugios de evacuados, pero era casi peor " -"que lo que había dejado atrás. Me escapé de ahí y anduve de un lado para " -"otro." +msgid "Care to trade?" +msgstr "¿Quéres comerciar?" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "¿Cómo sobreviviste dando vueltas por ahí?" +msgid "&Put away weapon." +msgstr "&Guarda el arma." #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" -"Pasé mucho tiempo hurgando ruibarbo y pedazos de verduras en el bosque hasta" -" que me animé a empezar a buscar en los monstruos muertos. Había empezado a " -"desesperarme." +msgid "&Drop weapon." +msgstr "&Suelta el arma." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" -"Lo mismo que la mayoría de la gente que no murió en los disturbios. Fui a " -"uno de esas trampas de refugiados. Estuve viviendo ahí con " -"otras tres personas. Uno que me parece que había visto demasiadas películas " -"lideraba el grupo, porque pensaba que sabía lo que estaba sucediendo. " -"Spoiler alert: no sabía una ." +msgid "Don't worry, I'm not going to hurt you" +msgstr "No te preocupes, no te voy a lastimar" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "¿Y qué le pasó a tu grupo original?" +msgid "Drop your weapon!" +msgstr "¡Soltá el arma!" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" -"Las cosas empezaron a salir mal cuando nuestro temerario líder decidió que " -"teníamos que matar a uno de los sobrevivientes que fue mordido. Su marido se" -" opuso a eso y yo tampoco estaba de acuerdo; en ese momento, ya había tomado" -" otras decisiones erróneas. Bueno, tomo acción por mano propia y la mató. " -"Entonces su marido decidió que era su turno y mató al idiota. Y después ella" -" se volvió a levantar y la volví a matar, y destrocé a nuestro exlíder. " -"Lamentablemente, ella le pudo dar una buena mordida a su marido durante la " -"pelea, mientras él no podía entender bien la situación como para defenderse." -" No lo culpo. Pudimos salir de ahí juntos, pero fue demasiado para él, ya no" -" era el mismo... La mordida se infectó, pero fue otra lo que lo " -"terminó matando. Y entonces quedé solo." +msgid "Get out of here or I'll kill you." +msgstr "Salí de acá o te voy a matar." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "¿Qué pensás que les pasó? ¿Los volviste a ver?" +msgid "Hey there, ." +msgstr "Qué tal, ." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "Chau." #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"Yo no soy especial, no estoy seguro/a de por qué sobreviví. Me evacuaron con" -" varios más, pero llegamos tarde al segundo viaje al centro FEMA. Nos " -"atacaron los muertos... Fui el único que pude salir vivo. Nunca miré atrás." +msgid "Hello there." +msgstr "Hola, ¿qué tal?" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" -"Me estaban mandando con varios otros evacuados a un centro de refugiados, " -"cuando el colectivo chocó contra el zombi más grande que vi en mi vida. " -"Estaba ocupado con los otros pasajeros, así que hice lo que hubiera hecho " -"cualquiera y salí cagando." +msgid "Okay, no sudden movements..." +msgstr "Bueno, sin hacer movimientos repentinos..." #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" -"Mi refugio de evacuados fue atacado por un enjambre de esas abejas, esas " -"grandes como perros. Pude matar un par con una tabla de madera, pero me di " -"cuenta enseguida que o me iba corriendo a las montañas o me quedaba atrapado" -" como un chancho. El resto es historia." +msgid "Keep your distance!" +msgstr "¡Quedate lejos!" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "¿Abejas gigantes? Contame de eso." +msgid "Calm down. I'm not going to hurt you." +msgstr "Calmate. No te voy a lastimar." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "Pero por lo general, las abejas no son agresivas..." +msgid "Screw you, no." +msgstr "Jodete, no." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" -"Sí, seguro que las viste, están por todos lados. Como salidas de una vieja " -"película de ciencia ficción. Algunos de los otros evacuados fueron picados, " -"y no era joda. No me quedé lo suficiente como para ver qué efectos causaba. " -"No tengo vergüenza de admitir que salí corriendo como una gallina ." +msgid "&Put hands up." +msgstr "&Levanta las manos." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" -"Pero por lo general, las abejas no son agresivas... ¿Te referís a las " -"avispas?" +msgid "*drops his weapon." +msgstr "*suelta su arma." #: 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." +msgid "*drops_her_weapon." msgstr "" -"Bueno, disculpame si no me detuve a preguntar qué clase de insectos asesinos" -" eran, ." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "Perdón. ¿Me podés contar algo más de ellos?" +msgid "Now get out of here" +msgstr "Ahora andate de acá" #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "Está bien. Perdón." +msgid "Now get out of here, before I kill you." +msgstr "Ahora salí de acá, antes de que te mate." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" -"Bueno, estaba en casa cuando la alarma del celular me avisó que tenía que ir" -" a un refugio de evacuados. Así que fui a un refugio de evacuados. Y después" -" el refugio se llenó de gente, y las personas estaban esperando para ser " -"llevados al centro de refugiados, pero los colectivos no venían a buscarnos." -" Ya debes saber todo eso. Apareció el pánico, y luego las peleas. No me " -"quedé para ver qué pasó después, me fui al bosque on las herramientas que " -"pude llevarme. Volví unos días después pero el lugar estaba abandonado. No " -"sé qué le pasó a toda esa gente." +msgid "Okay, I'm going." +msgstr "Bueno, me voy." #: 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 "" -"Eso es un verdadero desafío. La versión corta es que me evacuaron a un " -"campamento FEMA para mi \"seguridad\", pero por suerte me pude escapar." +msgid "About that job..." +msgstr "Hablando de ese laburo..." #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "Contame más sobre ese campamento FEMA." +msgid "About one of those jobs..." +msgstr "Hablando de esos laburos que me dijiste..." #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "¿Cómo saliste de ahí?" +msgid "What's the matter?" +msgstr "¿Qué pasa?" #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" -"Fue espantoso. Fuimos llevados ahí en un colectivo escolar reconvertido, " -"éramos como treinta. Ya te debés imaginar los problemas. Algunos estaban " -"heridos, y un idiota que había visto demasiado cine clase B insistía con que" -" todos los que 'habían sido mordidos' se iban a 'convertir'. Un tarado, ¿eh?" -" A mí ya me mordieron varias veces y lo peor que me pasó fue una infección " -"medio fea." +msgid "I don't care." +msgstr "No me importa." #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "¿Y qué pasó después de eso?" +msgid "I see." +msgstr "Entiendo." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "Ah, bueno." #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" -"Ese tipo generó histeria. La gente ya estaba con pánico. Había un tipo con " -"un arma controlando el transporte, portándose como policía pero solamente " -"era un pibe al que le dieron un rifle. Intentó calmar las cosas y por" -" un momento funcionó, aunque el grupo de los 'matemos a los infectados' " -"estaba bastante alterado y listos para actuar en el momento en que " -"la abuela con un corte en el brazo empezó a largar espuma por la boca. " -"Volvieron a alterarse cuando llegamos al campamento. Eso les salió mal. Unos" -" soldados bastante armados se los llevaron y nunca más los vimos." +msgid "Never mind, I'm not interested." +msgstr "No importa, no estoy interesado." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "No importa." #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" -"Ese lugar era un caos. Yo me quede unas horas no más. Tenían una " -"retroexcavadora grande, haciendo un pozo enorme en un sector delimitado por " -"sogas, al que no nos dejaban acercar. Bueno, pude meterme a escondidas ahí y" -" los vi descargando montañas y montañas de muertos en el pozo, tirándoles " -"tierra arriba aunque revivieran e intentaran trepar. Incluso con toda esa " -"mierda que vi desde ese momento, esa imagen me persigue. Supe que me tenía " -"que ir de ahí. Por suerte, la mañana siguiente fuimos atacados por un horror" -" gigantesco, algo que nunca volví a ver. Mientras los guardias estaban " -"ocupados con eso, agarré unas cosas que había juntado a la noche y me fui a " -"la mierda. Otros se quisieron escapar conmigo, pero hasta donde sé, fui el " -"único afortunado." +msgid "I'll do it!" +msgstr "¡Yo lo hago!" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "Esa es una historia para otro día. No me gusta pensar en eso." +msgid "Not interested." +msgstr "No estoy interesado." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "Perdón. Contame más sobre ese campamento FEMA." +msgid "Not a problem." +msgstr "No hay problema." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Perdón por preguntar. " +msgid "Got any advice?" +msgstr "¿Tenés algún consejo?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Perdón por preguntar. " +msgid "Can you share some equipment?" +msgstr "¿Me podés prestar algo de equipo?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" -"Se me hizo tarde para la evacuación cuando todo se fue a la mierda. Me quedé" -" atrapado en la ciudad durante unos días, sobreviví escondiéndome en " -"sótanos, comiendo galletitas y tomando cerveza tibia. Hasta que pude " -"escabullirme sin que me vean los . Me pasé unos días refugiado en " -"un shopping abandonado pero como necesitaba comida me fui al bosque. No me " -"estaba yendo muy bien, así que me alegra que hayas aparecido." +msgid "I'll be back soon!" +msgstr "¡Vuelvo enseguida!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" -"Estaba en casa engripado cuando el mundo se fue a la mierda, y cuando me " -"sentí bien como para intentar ir hasta el supermercado... Bueno, estoy " -"corriendo desde entonces." +msgid "Sounds good, thanks." +msgstr "Suena bien, gracias. " #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "Dale, no me dejés con la intriga." +msgid "Sounds good. Bye!" +msgstr "Suena bien. ¡Chau!" #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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, bueno, estaba un poquito perdido esos primeros días. Sabía que había " -"tormentas, pero estaba teniendo unos sueños muy raros por la fiebre. " -"Honestamente, tendría que haber ido al hospital, pero estaría muerto ahora, " -"supongo. No podía saber qué era un sueño y qué era el mundo acabándose. Me " -"acuerdo yendo a la heladera a buscar algo para tomar y dándome cuenta que no" -" andaba la luz y el agua estaba tibia, creo que eso fue un poco antes de que" -" empezara a sentir la fiebre. Todavía estaba medio atontado cuando me quedé " -"sin sopa de pollo así que tarde un rato en procesar lo oscuro y muerto que " -"estaba el edificio cuando salía." +msgid "I'm sorry." +msgstr "Lo lamento." #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "¿Y qué pasó cuando saliste?" +msgid "Whatever. Bye." +msgstr "Como quieras. Chau." #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" -"Probablemente te acuerdes cómo eran las ciudades. Creo que fue al cuarto " -"día. Una vez que salí me di cuenta de lo que pasaba, o me di cuenta que no " -"sabía lo que estaba pasando, por lo menos. Vi un grupo destrozando un auto, " -"y después vi a uno que estaba destrozándole la cabeza a una mujer. Cancelé " -"mi viaje al mercado, corrí de nuevo al departamento antes de que me vieran, " -"y me encerré. Las cosas se volvieron silenciosas a medida que los muertos " -"superaban a los vivos, así que empecé a agarrar lo que pude de mis vecinos, " -"volviéndolos a matar si tenía que hacerlo. Eventualmente, los " -"invadieron mi edificio y tuve que trepar para escaparme hacia los montes en " -"una bicicleta vieja." +msgid "Well, um, sorry." +msgstr "Bueno, em, perdón." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Gracias por decirme todo eso. " +msgid "I'm sorry. I did what I could." +msgstr "Lo lamento. Hice lo que pude." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Gracias por decirme todo eso. " +msgid "Sure, here you go!" +msgstr "¡Claro, acá tenés!" #: 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 del . Cuando los muertos empezaron a " -"caminar, me equipé y empecé a matarlos de nuevo." +msgid "Thank you." +msgstr "Gracias. " #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "¿Y cómo anduvo eso?" +msgid "Thanks, bye." +msgstr "Gracias, chau." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Copado. " +msgid "Well, I guess it's just us." +msgstr "Bueno, supongo que solo quedamos nosotros." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Copado. " +msgid "At least we've got shelter." +msgstr "Por lo menos tenemos un refugio." #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" -"Casi me matan. Un es fácil, pero diez es mucho, y cien es una " -"trampa mortal. Me metí demasiado, y de pedo me escapé con las tripas " -"intactas. Me refugié en un viejo hotel por un tiempo, lamiéndome las heridas" -" y pensando en qué iba a hacer. Ahí fue cuando me di cuenta." +msgid "What should we do now?" +msgstr "¿Qué hacemos ahora?" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "¿Te diste cuenta de qué?" +msgid "Any tips?" +msgstr "¿Algún consejo?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "¿Puedo hacer algo por vos?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "No importa. " +msgid "Want to travel with me?" +msgstr "¿Querés viajar conmigo?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "Vamos a intercambiar objetos." #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "No importa. " +msgid "I can't leave the shelter without equipment." +msgstr "No puedo salir del refugio sin equipamiento." #: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" -"Que es esto. Esto es para lo que fui hecho. Estar en la calle, reventándole " -"la cabeza a los monstruos y rezando por salir vivo. Nunca había sentido eso." -" Vivo. Importante. Así que después de que pude juntar mis pedazos, me dejé " -"de quejar y volví a salir. Probablemente haya matado mil Z desde entonces, y" -" todavía no me cansé de hacerlo." +msgid "Relax and chat with me for a while..." +msgstr "Relajate y charlá conmigo un rato..." #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Qué bueno que encontraste tu vocación. " +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Qué bueno que encontraste tu vocación. " +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" -"Ah, ya sabés. Bla bla bla, tenía un trabajo y una vida, todos se murieron. " -"Llanto. Igual te soy sincero: honestamente, creo que me gusta más así. " -"¿Luchar para poder sobrevivir? Nunca me sentí tan vivo. Maté cientos de esos" -" bastardos. Tarde o temprano, uno me va a vencer, pero voy a caer sabiendo " -"que hice algo importante." #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" -"Bueno, mirá, no soy de por acá. Venía manejando desde el sur para visitar a " -"mi hijo cuando pasó todo esto. Estaba en un hotel cuando una caravana " -"militar pasó y nos dijo que evacuemos el lugar y vayamos a un refugio de " -"FEMA." #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "Contame sobre tu hijo." +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "¿Así que te fuiste a uno de los campamentos FEMA?" +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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." +msgid "Oh you know, not bad, not bad..." msgstr "" -"Vive en la parte norte de Canadá, en el medio de la nada, con su esposa loca" -" y mis tres nietos. Trabaja como ingeniero ambiental para algunas compañías " -"de petróleo y gas por allá. A ella le faltan varios tornillos. Los amo a los" -" dos, y hasta donde yo sé, ellos pudieron escapar a salvo de este quilombo, " -"ahí en el culo del mundo. Supongo que piensan que yo estoy muerto, así que " -"se van a quedar lejos de este infierno, y eso es lo mejor que pueden hacer." #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "¿Qué fue eso que dijiste antes?" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "No sé, buscar suministros o a otros supervivientes, supongo." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we should start boarding up this place." +msgstr "Tal vez deberíamos empezar por poner tablas en las aberturas." #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." msgstr "" -"Por Dios, no. Sería un psicópata si dejara que un pibe en un uniforme que le" -" queda grande me diga lo que tengo que hacer. Tenía mi Hummer cargado y " -"listo para salir, tenía mucha nafta e incluso tantos rifles como la frontera" -" me dejaría pasar. No sabía de qué me tenía que escapar, pero me fui a la " -"mierda." +"Supongo que conseguir un auto que funcione va a ser útil si tenemos que " +"salir rápido de acá." #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "¿Y a dónde te fuiste?" +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 "" +"Podemos buscar una de esas granjas de por acá. Están alejadas de las " +"ciudades y podemos conseguir mucha comida." #: lang/json/talk_topic_from_json.py msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" -"Primero, seguí hacia el norte, pero me encontré con un bloque militar " -"enorme. Hasta tenían esos robots gigantes como los que ves en la televisión." -" Fui a ver qué pasaba y antes de que me de cuenta, ¡empezaron a disparar! " -"Podría haber muerto ahí, pero todavía tengo buenos reflejos. Me di la vuelta" -" y salí cagando. Mi Hummer ya no estaba en buenas condiciones, y descubrí de" -" la peor manera que estaba perdiendo nafta. Pude hacer unos kilómetros antes" -" de terminar en el medio de la nada. Empecé a dar vueltas por ahí. Supongo " -"que todavía estoy yendo hacia el norte, por el camino largo, digamos." +"Probablemente, deberíamos mantenernos lejos de esas ciudades, incluso aunque" +" haya un montón de cosas útiles ahí." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Esa es una historia interesante. " +msgid "Hmm, okay." +msgstr "Hmm, bueno." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Esa es una historia interesante. " +msgid "Not until I get some antibiotics..." +msgstr "Hasta que no tenga algún antibiótico, no..." #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" -"Uh, amigo. Estaba preparado para esto. Los vientos venían para este lado " -"hace años. Tenía un refugio de último hombre en la tierra preparado afuera " -"del pueblo. Así que, por supuesto, mi suerte: estaba en una conferencia a " -"kilómetros de distancia del pueblo cuando China atacó y el mundo se terminó." +msgid "You asked me recently; ask again later." +msgstr "Recién me preguntaste; preguntame de nuevo después." #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "¿Qué te pasó a vos?" +msgid "Why should I travel with you?" +msgstr "¿Por qué tendría que viajar con vos?" #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "¿Y qué pasó con tu refugio?" +msgid "Understood. I'll get those antibiotics." +msgstr "Entendido. Voy a conseguir esos antibióticos." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" -"Nuestra conferencia era en un lugar retirado, junto a un lago. Todos " -"recibimos el mensaje de emergencia en nuestros celulares, pero yo fui el " -"único que leyó entre líneas: bioterrorismo a gran escala. No me iba a quedar" -" para ver quién era un espía durmiente. Pero apuesto que era Lee. De todas " -"maneras, me robé la camioneta del coordinador y me fui a mi refugio." +msgid "Right, right, I'll ask later." +msgstr "Bueno, bueno, pregunto más tarde." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "¿Y pudiste llegar?" +msgid "I can keep you safe." +msgstr "Te puedo mantener a salvo." #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" -"No, habré hecho dos kilómetros. Choqué contra una especie de grieta infernal" -" o arma biológica, un gritando como loco, hecho de brazos y " -"piernas y cabezas de diferentes criaturas, incluso humanos. Creo que lo maté" -" pero lo que se murió seguro fue la camioneta. Agarré mi bolso y corrí, " -"después de pegarle un par de tiros por las dudas. Espero no tener que " -"encontrarme otra vez con algo así." +msgid "You can keep me safe." +msgstr "Me podés mantener a salvo." #: 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 "" -"Todavía no pude llegar. Cada vez que lo intenté, me tuve que desviar por los" -" . Pero quién sabe, porahi alguna vez..." +msgid "We're friends, aren't we?" +msgstr "Somos amigos, ¿o no?" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "¿Me podés contar esa historia otra vez?" +msgid "I'll kill you if you don't." +msgstr "Te voy a matar si no lo hacés." #: 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 "" -"Uh, chabón. Pensé que estaba preparado. Lo tenía todo planeado. Los bolsos " -"listos. Las armas cargadas. Los mapas de las rutas de escape. El búnker en " -"el patio." +msgid "You got it, I'm with you!" +msgstr "¡No hay problema, estoy con vos!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "Parece que algo salió mal." +msgid "Awesome!" +msgstr "¡Copado!" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "Ey, me gustaría ver esos mapas." +msgid "Okay, let's go!" +msgstr "¡Bueno, vamos!" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 de cómo lo veas. Estoy vivo, ¿no? Cuando el Infierno descendió de " -"los cielos y los monstruos empezaron a atacar las ciudades, agarré mis cosas" -" y me metí en el búnker. Las cámaras en la superficie estuvieron funcionando" -" por varios días; podía ver todo lo que estaba pasando. Vi esas cosas " -"andando por ahí. Todavía tengo pesadillas con la manera en que movían sus " -"cuerpos, como si hubieran roto el mundo para estar acá. No tenía nada mejor " -"que hacer. Los vi destrozar a policías y militares, vi a los muertos " -"levantarse y pelear contra los vivos. Vi a la viejita de la esquina " -"arrancarle la cabeza al perro de mi vecino. Vi el cuerpo de un soldado " -"convertirse en una especie de bestia eléctrica. Vi todo." +msgid "Yeah... I don't think so." +msgstr "Sí... no me parece." #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "¿Por qué dejaste el búnker?" +msgid "You're really leaving?" +msgstr "¿Te vas de en serio?" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" -"¿La verdad? Lo hice para morirme. Después de lo que vi, me puse un poquito " -"loco. Pensé que ya no podía hacer nada, que no tenía sentido pelear. Pensé " -"que no iba a durar un minuto afuera, pero no pude hacer que terminara todo " -"ahí abajo. Salí, pensando en que los iban a terminar conmigo, pero" -" ¿qué querés que te diga? El instinto de supervivencia es una cosas rara, y " -"maté a los que estaban fuera del búnker. Supongo que lo que necesitaba era " -"la adrenalina. Es lo que me mantiene vivo desde entonces." +msgid "Yeah, I'm sure. Bye." +msgstr "Sí, estoy seguro. Chau." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Gracias por contarme eso. " +msgid "Nah, I'm just kidding." +msgstr "Nah, te estaba boludeando." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Gracias por contarme eso. " +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "¿Qué es?" #: 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 "" +msgid "How much further?" +msgstr "¿Cuánto más falta?" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "" +msgid "I'd like to lead for a while." +msgstr "Me gustaría guiar por un rato." #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" +msgid "Step aside. I'm leader now." +msgstr "Hacete a un lado. Ahora yo soy el líder." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "Vamos." #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" +msgid "Alright. You can lead now." +msgstr "Bueno. Ahora podés guiarme." #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" +msgid "Good. Something else..." +msgstr "Bieno. Algo más..." #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "" +msgid "Alright, let's go." +msgstr "Bueno, vamos." #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "" +msgid "Okay, okay." +msgstr "Bueno, bueno." #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "¡No hay ninguna chance, me van a dejar atrás!" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: 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 "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "OK." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "¡Esa placa que tenés es bien brillante!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Parecés una persona importante." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "En realidad, soy nuevo." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "¿Qué estás haciendo acá?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "¿Escuchaste algo del mundo exterior?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "¿Qué te pasa en las orejas?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "¿Puedo ayudar en algo?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Bueno, chau." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" -"Supongo que entonces somos dos. Bueno, más o menos. Aunque no creo que " -"estemos abiertos. Llenos como la mierda; casi una multitud abajo. ¿Viste el " -"comerciante en la entrada? A ese hay que preguntarle." - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Una porquería..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"Bueno, hay un tipo abajo que tiene un cañón neumático. Dispara metal como..." -" como un cañón pero sin el ruido. El costo-beneficio es buenísimo. Y hay un " -"montón de armas improvisadas que se pueden hacer. La cosa más difícil parece" -" ser continuar con la construcción de fortificaciones. Muy pocos de esos " -"monstruos parecen poder romper una valla o una pared construido con al cosa." - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Bueno, entonces..." - -#: 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 "" -"Por lo menos, nada optimista. Tenía un amiga con un aparato de radio " -"aficionado, pero ahora ella ya no está y esa cosa tampoco. Kaput." - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "¿Nada optimista?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"La mayoría de los campamentos de emergencia ya no existen. Las ciudades " -"están infestadas, los bosques llenos de ojos brillantes y zombis. Algunas " -"mierdas muy locas andan por ahí, y todo el que tenga una radio parece que " -"estuviera documentando sus últimos horribles momentos." - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "Me siento mal por preguntar." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"No sé. Quiero decir, si te podés volver útil a vos mismo. Pero eso ahora se " -"volvió algo confuso. Depende a quién le preguntes. El comerciante no me " -"quiere por acá cuando no estoy vendiendo algo, pero... algunos se salen con " -"la suya." - -#: 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 "" -"De la misma manera que vos conseguiste el tuyo, supongo. No hables mucho, " -"algunos de acá desprecian a las personas como nosotros." - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "" -"Shhh... Algunas personas acá odian las... mutaciones. Esto fue un accidente." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "Perdón por preguntar." - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "Sos desagradable." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"Quemé edificios y vendí los materiales a los Mercaderes Libres. No, de " -"verdad. Si viste las ruinas de un incendio en los barrios, o si viste una " -"pila de varillas corrugadas en venta, probablemente ese era yo. A cambio me " -"mantenían bien alejado, creo. Te puedo vender un cóctel molotov o dos, si " -"querés." - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "Lo voy a comprar." - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "¿Quién necesita varillas corrugadas?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "Mirá quién habla. No me jodas." - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "¡Andá a cagar!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "¡Otro sobreviviente! Deberíamos andar juntos." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "¿Qué estás haciendo?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "¿Quéres comerciar?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&Guarda el arma." - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&Suelta el arma." - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "No te preocupes, no te voy a lastimar" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "¡Soltá el arma!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "Salí de acá o te voy a matar." - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Qué tal, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "Chau." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "Hola, ¿qué tal?" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Bueno, sin hacer movimientos repentinos..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "¡Quedate lejos!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "Calmate. No te voy a lastimar." - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "Jodete, no." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&Levanta las manos." - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*suelta su arma." - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "Ahora andate de acá" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "Ahora salí de acá, antes de que te mate." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "Bueno, me voy." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "Hablando de ese laburo..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "Hablando de esos laburos que me dijiste..." - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "¿Qué pasa?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "No me importa." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "Entiendo." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "Ah, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "No importa, no estoy interesado." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "No importa." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "¡Yo lo hago!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "No estoy interesado." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "No hay problema." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "¿Tenés algún consejo?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "¿Me podés prestar algo de equipo?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "¡Vuelvo enseguida!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Suena bien, gracias. " - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Suena bien. ¡Chau!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Lo lamento." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Como quieras. Chau." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Bueno, em, perdón." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Lo lamento. Hice lo que pude." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "¡Claro, acá tenés!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Gracias. " - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Gracias, chau." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Bueno, supongo que solo quedamos nosotros." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "Por lo menos tenemos un refugio." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "¿Qué hacemos ahora?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "¿Algún consejo?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "¿Puedo hacer algo por vos?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "¿Querés viajar conmigo?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "Vamos a intercambiar objetos." - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "No puedo salir del refugio sin equipamiento." - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "No sé, buscar suministros o a otros supervivientes, supongo." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -msgstr "Tal vez deberíamos empezar por poner tablas en las aberturas." - -#: 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 "" -"Supongo que conseguir un auto que funcione va a ser útil si tenemos que " -"salir rápido de acá." - -#: 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 "" -"Podemos buscar una de esas granjas de por acá. Están alejadas de las " -"ciudades y podemos conseguir mucha comida." - -#: 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 "" -"Probablemente, deberíamos mantenernos lejos de esas ciudades, incluso aunque" -" haya un montón de cosas útiles ahí." - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "Hmm, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Hasta que no tenga algún antibiótico, no..." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Recién me preguntaste; preguntame de nuevo después." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "¿Por qué tendría que viajar con vos?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "Entendido. Voy a conseguir esos antibióticos." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "Bueno, bueno, pregunto más tarde." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "Te puedo mantener a salvo." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "Me podés mantener a salvo." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "Somos amigos, ¿o no?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "Te voy a matar si no lo hacés." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "¡No hay problema, estoy con vos!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "¡Copado!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "¡Bueno, vamos!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "Sí... no me parece." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "¿Te vas de en serio?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "Sí, estoy seguro. Chau." - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "Nah, te estaba boludeando." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "¿Qué es?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "¿Cuánto más falta?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "Me gustaría guiar por un rato." - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "Hacete a un lado. Ahora yo soy el líder." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "Vamos." - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "Bueno. Ahora podés guiarme." - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "Bieno. Algo más..." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "Bueno, vamos." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "Bueno, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "¡No hay ninguna chance, me van a dejar atrás!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "Bien." +msgid "Fine." +msgstr "Bien." #: lang/json/talk_topic_from_json.py msgid "I'm on watch." @@ -121857,6 +121920,268 @@ msgstr "" "trabajo disponible. Completar misiones como contratista es una buena forma " "de hacerte conocido entre los hombres más poderosos que quedan en el mundo." +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "No." + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "¿Qué estás haciendo acá afuera?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "¿Te puedo ayudar, alguacil?" @@ -122163,6 +122488,10 @@ msgid "" "time..." msgstr "No sé qué podés hacer. Yo probé de todo. Dame un poco de tiempo..." +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "OK." + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -122610,6 +122939,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -122635,199 +122972,1104 @@ msgid "This is a om_location_field test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a faction camp any test response." -msgstr "" +msgid "This is a faction camp any test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a nearby role test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a class test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc allies 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This an error! npc allies 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an or trait test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an and cash, available, trait test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a complex nested test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_add_effect - infection response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc_add_effect - infection response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_add_trait - FED MARSHALL response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc_add_trait - FED MARSHALL response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_buy_item bottle of beer response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_buy_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_spend_cash response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a multi-effect response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before this started, I had a crappy job flipping burgers at Sambal's Grille." +" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " +"Last time I saw them alive, I just came home from school, grabbed a snack " +"and went to work. I don't think I even told my mom I loved her, and I was " +"pissed at my dad for some shit that really doesn't matter. Didn't " +"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 de que empiece esto, tenía un trabajo de mierda cocinando hamburguesas" +" en Sambal Grille. Perder ese laburo no importaba. Perder a mi mamá y mi " +"papá me dolió mucho más. La última vez que los vi vivos, volví de la " +"escuela, agarré algo para comer y me fui a trabajar. Creo que nunca le dije " +"a mi mamá que la quería, y estaba enojado con mi papá por alguna que " +"no importa. No importaba en ese entonces, mucho menos ahora. Las cosas " +"empezaron a ponerse raras cuando estaba trabajando... Llegaron los militares" +" a la ciudad y sonó la alerta de evacuación." + +#: lang/json/talk_topic_from_json.py +msgid "So, did you evacuate?" +msgstr "¿Así que fuiste evacuado?" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't evacuate. I went home... saw some freaky shit on the way, but at " +"the time I just thought it was riots or drugs. By the time I got there, my " +"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 "" +"No, me fui a casa... vi muchas cosas raras en el camino, pero en ese momento" +" pensé que eran disturbios o drogados. Cuando llegué mis viejos no estaban. " +"Ningún rastro de ellos. La casa era un quilombo, cosas tiradas por todos " +"lados como si hubiera habido una pelea, y un poco de sangre en el piso." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I haven't found them yet. Whenever I see a , a little part of me is" +" afraid it's going to be one of them. But then, maybe not. Maybe they " +"were evacuated, maybe they fought and tried to wait for me but the military " +"took them anyway? I've heard that sort of thing happened. I don't know if " +"I'll ever know." +msgstr "" +"No los encontré todavía. Cada vez que veo un , en alguna parte de mí" +" siento el miedo de que sea uno de ellos. Pero, tal vez no. Tal vez los " +"evacuaron, tal vez pelearon e intentaron esperarme pero los militares los " +"llevaron igual? Escuché que eso hacían. No sé si alguna vez sabré qué pasó." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" +"Bueno, esa es tremenda historia, ponete cómodo. Todo comienza hace unos " +"cinco años, después de que me jubilé de mi laburo en el molino. Fueron " +"momentos difíciles, pero nos manejamos." + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "Bueno, por favor, seguí." + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "Pensándolo bien, vamos a hablar de otra cosa." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" +"En ese momento tenía mi vieja camioneta, la azul. Le decíamos la vieja " +"chillona. Una vez yo estaba con Marty Gumps - o, como yo lo conocía, Rusty G" +" - estaba manejando la vieja chillona por el monte Greenwood en verano, " +"buscando algunas luciérnagas para atrapar." + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "Luciérnagas. Entiendo." + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "¿Y qué tiene que ver esto con lo que te pregunté?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "Me tengo que ir." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 - ese es mi viejo amigo Marty Gumps - estaba en el asiento del " +"acompañante con su Querido Calibre 18 en su regazo. Ese era el nombre de su " +"perro, pero todos le decíamos Calibre 18 para abreviar." + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "Calibre 18, el perro. Comprendo." + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "Creo que vi unos zombis viniendo. Hagámosla corta." + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "Callate, viejo choto." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +"Lo parió, ya va, mordete la lengua. Como decía, Rusty G - ese es mi viejo " +"amigo Marty Gumps - estaba en el asiento del acompañante con su Querido " +"Calibre 18 en su regazo. Ese era el nombre de su perro, pero todos le " +"decíamos Calibre 18 para abreviar." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" +"Ahora, arriba del monte Greenwood solía haber una estación de guardabosques," +" es era antes de que vos nacieras. Ese mismo año se prendió fuego, dijeron " +"que le había pegado un rayo pero vos y yo sabemos que fueron los pibes de la" +" escuela. Con Rusty G dejamos la vieja chillona atrás y fuimos a ver cómo " +"estaba. Así quemada parecía estar embrujada, nos dimos cuenta que había " +"alguno de esos pibes dando vueltas por ahí. Rusty G trajo a Calibre 18, y " +"suerte que lo hizo por lo que vimos después." + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "¿Qué vieron?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "Mirá, tenemos que irnos de acá, en serio." + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "¡Pero la puta madre, cerrá el orto!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" +"Paciencia, que ya termino. Arriba del monte Greenwood solía haber una " +"estación de guardabosques, es era antes de que vos nacieras. Ese mismo año " +"se prendió fuego, dijeron que le había pegado un rayo pero vos y yo sabemos " +"que fueron los pibes de la escuela. Con Rusty G dejamos la vieja chillona " +"atrás y fuimos a ver cómo estaba. Así quemada parecía estar embrujada, nos " +"dimos cuenta que había alguno de esos pibes dando vueltas por ahí. Rusty G " +"trajo a Calibre 18, y suerte que lo hizo por lo que vimos después." + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"went headin' for the hills but we tracked him down. Moose went down like a " +"bag o' potatoes, but a real big bag iff'n y'catch m'drift." +msgstr "" +"¡Un maldito alce! ¡Viviendo en la estación de guardabosque! Casi destripa a " +"Rusty, pero pudo disparar su calibre 18 y hacerle un agujero en el pellejo. " +"Calibre 18 se fue corriendo por el monte pero pudimos rastrearlo. El alce " +"cayó como una bolsa de papas, pero una bolsa enorme, si me interpretás lo " +"que te quiero significar." + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "Interpreto lo que me querés significar." + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "¿Ya terminaste? ¡Dale!" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "Pero te lo pido por lo que más quieras, ¡POR FAVOR, callate la boca!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" +"Bueno, para hacerla corta, estaba volviendo al monte Greenwood para revisar " +"la estación de guardabosques cuando escuché como caían las bombas y a los " +"helicópteros. Decidí acampara acá afuera para poder ver lo que pasaba, pero " +"sigue pasando, ¿eh? Así que, acá estoy." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "¡Gracias por la historia!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"Ya ni sé, . No tengo la más idea de lo que está pasando. " +"Hago lo que puedo para seguir vivo/a. El mundo terminó y anduvo por ahí sin " +"morirme, hasta que te encontré." + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "Ah." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a cop. Small town sheriff. We got orders without even really knowing" +" what they meant. At some point one of the g-men on the phone told me it " +"was a Chinese attack, something in the water supply... I don't know if I " +"believe it now, but at the time it was the best explanation. At first it " +"was weird, a few people - - fighting like rabid animals. Then it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A big-ass hole opened up right in the middle of town, and a " +"crawled out, right in front of the church. We unloaded into it, but bullets" +" just bounced off. Got some civilians in the crossfire. It started just " +"devouring people like potato chips into a gullet that looked like a rotting " +"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " +"have been the only person to escape. I haven't been able to even look at my" +" badge since then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was SWAT. By all rights I should be dead. We were called to control " +"\"riots\", which we all know were the first hordes. Fat lot of " +"good we were. Pretty sure we killed more civilians. Even among my crew, " +"morale was piss poor and we were shooting wild. Then something hit us, " +"something big. Might have been a bomb, I really don't remember. I woke up " +"pinned underneath the SWAT van. I couldn't see anything... but I could " +"hear it, . I could hear everything. I spent hours, maybe days " +"under that van, not even trying to get out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But you did get out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Lucky you. How did you get away?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" +"Bueno, esto va a sonar un poco raro, pero yo... sabía que esto iba a " +"suceder. Antes de que pasara... Podés preguntarle a mi psíquico, pero creo " +"que ya está muerta. Le conté sobre mis sueños la semana anterior a que el " +"mundo terminara. ¡Te lo juro!" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "¿Qué soñaste?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" +"Bueno, así que, el primer sueño que tuve fue todas las noches durante tres " +"semanas. Soñaba que estaba corriendo por el bosque con un palo, peleando " +"contra arañas gigantes. ¡En serio! Todas las noches." + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "Bueno, pero eso parece bastante normal." + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "Guau, qué loco, no puedo creer que soñaste sobre el ." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" +"Bueno, pero eso era... el comienzo solamente. Una semana antes de que " +"pasara, antes del sueño de las arañas, me levanté al baño y volví a la cama " +"porque estaba un poco desesperado. Y entonces tuve este otro sueño, ¡en el " +"que mi jefe moría y volvía de la muerte! Y después, en el trabajo unos días " +"después, el marido de mi jefe estaba de visita y tuvo un ataque al corazón y" +" ¡escuché que al día siguiente volví a revivir! ¡Igual que en mi sueño, pero" +" otra persona!" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "Eso es un poco extraño." + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" +"¿VISTE? ¡Y todavía hay más! Una semana antes de que pasara, antes del sueño " +"de las arañas, me levanté al baño y volví a la cama porque estaba un poco " +"desesperado. Y entonces tuve este otro sueño, ¡en el que mi jefe moría y " +"volvía de la muerte! Y después, en el trabajo unos días después, el marido " +"de mi jefe estaba de visita y tuvo un ataque al corazón y ¡escuché que al " +"día siguiente volví a revivir! ¡Igual que en mi sueño, pero otra persona!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" +"¿VISTE? Igual, todavía tengo sueños raros, pero no sobre el futuro. Como, " +"tengo muchos sueños de miedo desde que terminó el mundo. Como, cada un par " +"de noches, sueño con un campo de estrellas negras alrededor de la Tierra, y " +"por un segundo, todas miran fijamente hacia la Tierra al mismo momento, como" +" un billón de pequeños ojitos negros. Y después pestañean y miran para otro " +"lado, y después en mi sueño la TIerra es una estrella negra como las otras, " +"y estoy atrapado ahí, solo y desesperado. Ese es el peor de todos. Tengo " +"algunos más." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "Contame alguno más de tus extraños sueños." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"Bueno, así que, a veces sueño que soy un zombi pero que no me doy cuenta. Y " +"actúo normal y veo zombis como personas normales y personas normales como si" +" fueran zombis. Cuando me despierto sé que fue falso porque si hubiera sido " +"real, habría muchas más personas normales. Porque serían zombis en realidad." +" Y todos son zombis ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "Me parece que ahora todos tenemos sueños así." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" +"Sí, es probable. A veces también sueño que soy como... un granito de polvo, " +"flotando en la vasta e indiferente galaxia. Ese me hace desear que al que me" +" vende la marihuana, Dan el Sucio, se la coma un cangrejo gigante." + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "Pobre Dan el Sucio. " + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +msgstr "Gracias por contarme. " + +#: 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 "" +"Llegué hasta uno de esos refugios de evacuados, pero era casi peor " +"que lo que había dejado atrás. Me escapé de ahí y anduve de un lado para " +"otro." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "¿Cómo sobreviviste dando vueltas por ahí?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" +"Pasé mucho tiempo hurgando ruibarbo y pedazos de verduras en el bosque hasta" +" que me animé a empezar a buscar en los monstruos muertos. Había empezado a " +"desesperarme." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" +"Lo mismo que la mayoría de la gente que no murió en los disturbios. Fui a " +"uno de esas trampas de refugiados. Estuve viviendo ahí con " +"otras tres personas. Uno que me parece que había visto demasiadas películas " +"lideraba el grupo, porque pensaba que sabía lo que estaba sucediendo. " +"Spoiler alert: no sabía una ." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "¿Y qué le pasó a tu grupo original?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" +"Las cosas empezaron a salir mal cuando nuestro temerario líder decidió que " +"teníamos que matar a uno de los sobrevivientes que fue mordido. Su marido se" +" opuso a eso y yo tampoco estaba de acuerdo; en ese momento, ya había tomado" +" otras decisiones erróneas. Bueno, tomo acción por mano propia y la mató. " +"Entonces su marido decidió que era su turno y mató al idiota. Y después ella" +" se volvió a levantar y la volví a matar, y destrocé a nuestro exlíder. " +"Lamentablemente, ella le pudo dar una buena mordida a su marido durante la " +"pelea, mientras él no podía entender bien la situación como para defenderse." +" No lo culpo. Pudimos salir de ahí juntos, pero fue demasiado para él, ya no" +" era el mismo... La mordida se infectó, pero fue otra lo que lo " +"terminó matando. Y entonces quedé solo." + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "¿Qué pensás que les pasó? ¿Los volviste a ver?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"Yo no soy especial, no estoy seguro/a de por qué sobreviví. Me evacuaron con" +" varios más, pero llegamos tarde al segundo viaje al centro FEMA. Nos " +"atacaron los muertos... Fui el único que pude salir vivo. Nunca miré atrás." + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" +"Me estaban mandando con varios otros evacuados a un centro de refugiados, " +"cuando el colectivo chocó contra el zombi más grande que vi en mi vida. " +"Estaba ocupado con los otros pasajeros, así que hice lo que hubiera hecho " +"cualquiera y salí cagando." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" +"Mi refugio de evacuados fue atacado por un enjambre de esas abejas, esas " +"grandes como perros. Pude matar un par con una tabla de madera, pero me di " +"cuenta enseguida que o me iba corriendo a las montañas o me quedaba atrapado" +" como un chancho. El resto es historia." + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "¿Abejas gigantes? Contame de eso." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "Pero por lo general, las abejas no son agresivas..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" +"Sí, seguro que las viste, están por todos lados. Como salidas de una vieja " +"película de ciencia ficción. Algunos de los otros evacuados fueron picados, " +"y no era joda. No me quedé lo suficiente como para ver qué efectos causaba. " +"No tengo vergüenza de admitir que salí corriendo como una gallina ." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" +"Pero por lo general, las abejas no son agresivas... ¿Te referís a las " +"avispas?" + +#: 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 "" +"Bueno, disculpame si no me detuve a preguntar qué clase de insectos asesinos" +" eran, ." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "Perdón. ¿Me podés contar algo más de ellos?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "Está bien. Perdón." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" +"Bueno, estaba en casa cuando la alarma del celular me avisó que tenía que ir" +" a un refugio de evacuados. Así que fui a un refugio de evacuados. Y después" +" el refugio se llenó de gente, y las personas estaban esperando para ser " +"llevados al centro de refugiados, pero los colectivos no venían a buscarnos." +" Ya debes saber todo eso. Apareció el pánico, y luego las peleas. No me " +"quedé para ver qué pasó después, me fui al bosque on las herramientas que " +"pude llevarme. Volví unos días después pero el lugar estaba abandonado. No " +"sé qué le pasó a toda esa gente." + +#: 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 "" +"Eso es un verdadero desafío. La versión corta es que me evacuaron a un " +"campamento FEMA para mi \"seguridad\", pero por suerte me pude escapar." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "Contame más sobre ese campamento FEMA." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "¿Cómo saliste de ahí?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" +"Fue espantoso. Fuimos llevados ahí en un colectivo escolar reconvertido, " +"éramos como treinta. Ya te debés imaginar los problemas. Algunos estaban " +"heridos, y un idiota que había visto demasiado cine clase B insistía con que" +" todos los que 'habían sido mordidos' se iban a 'convertir'. Un tarado, ¿eh?" +" A mí ya me mordieron varias veces y lo peor que me pasó fue una infección " +"medio fea." + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "¿Y qué pasó después de eso?" #: lang/json/talk_topic_from_json.py -msgid "This is a nearby role test response." +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." msgstr "" +"Ese tipo generó histeria. La gente ya estaba con pánico. Había un tipo con " +"un arma controlando el transporte, portándose como policía pero solamente " +"era un pibe al que le dieron un rifle. Intentó calmar las cosas y por" +" un momento funcionó, aunque el grupo de los 'matemos a los infectados' " +"estaba bastante alterado y listos para actuar en el momento en que " +"la abuela con un corte en el brazo empezó a largar espuma por la boca. " +"Volvieron a alterarse cuando llegamos al campamento. Eso les salió mal. Unos" +" soldados bastante armados se los llevaron y nunca más los vimos." #: lang/json/talk_topic_from_json.py -msgid "This is a class test response." +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" +"Ese lugar era un caos. Yo me quede unas horas no más. Tenían una " +"retroexcavadora grande, haciendo un pozo enorme en un sector delimitado por " +"sogas, al que no nos dejaban acercar. Bueno, pude meterme a escondidas ahí y" +" los vi descargando montañas y montañas de muertos en el pozo, tirándoles " +"tierra arriba aunque revivieran e intentaran trepar. Incluso con toda esa " +"mierda que vi desde ese momento, esa imagen me persigue. Supe que me tenía " +"que ir de ahí. Por suerte, la mañana siguiente fuimos atacados por un horror" +" gigantesco, algo que nunca volví a ver. Mientras los guardias estaban " +"ocupados con eso, agarré unas cosas que había juntado a la noche y me fui a " +"la mierda. Otros se quisieron escapar conmigo, pero hasta donde sé, fui el " +"único afortunado." #: lang/json/talk_topic_from_json.py -msgid "This is a npc allies 1 test response." -msgstr "" +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "Esa es una historia para otro día. No me gusta pensar en eso." #: lang/json/talk_topic_from_json.py -msgid "This an error! npc allies 2 test response." -msgstr "" +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "Perdón. Contame más sobre ese campamento FEMA." #: lang/json/talk_topic_from_json.py -msgid "This is an or trait test response." -msgstr "" +msgid "Sorry for asking. " +msgstr "Perdón por preguntar. " #: lang/json/talk_topic_from_json.py -msgid "This is an and cash, available, trait test response." -msgstr "" +msgid "Sorry for asking. " +msgstr "Perdón por preguntar. " #: lang/json/talk_topic_from_json.py -msgid "This is a complex nested test response." +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_add_effect - infection response" +msgid "" +"Nothin' special before . When the dead started walking, I " +"geared up and started puttin' them back down." msgstr "" +"Nada especial antes del . Cuando los muertos empezaron a " +"caminar, me equipé y empecé a matarlos de nuevo." #: lang/json/talk_topic_from_json.py -msgid "This is a npc_add_effect - infection response" -msgstr "" +msgid "How did that go?" +msgstr "¿Y cómo anduvo eso?" #: lang/json/talk_topic_from_json.py -msgid "This is a u_add_trait - FED MARSHALL response" -msgstr "" +msgid "Cool. " +msgstr "Copado. " #: lang/json/talk_topic_from_json.py -msgid "This is a npc_add_trait - FED MARSHALL response" -msgstr "" +msgid "Cool. " +msgstr "Copado. " #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item bottle of beer response" +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." msgstr "" +"Casi me matan. Un es fácil, pero diez es mucho, y cien es una " +"trampa mortal. Me metí demasiado, y de pedo me escapé con las tripas " +"intactas. Me refugié en un viejo hotel por un tiempo, lamiéndome las heridas" +" y pensando en qué iba a hacer. Ahí fue cuando me di cuenta." #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item plastic bottle response" -msgstr "" +msgid "Figured what out?" +msgstr "¿Te diste cuenta de qué?" #: lang/json/talk_topic_from_json.py -msgid "This is a u_spend_cash response" -msgstr "" +msgid "Never mind. " +msgstr "No importa. " #: lang/json/talk_topic_from_json.py -msgid "This is a multi-effect response" -msgstr "" +msgid "Never mind. " +msgstr "No importa. " #: lang/json/talk_topic_from_json.py msgid "" -"Before this started, I had a crappy job flipping burgers at Sambal's Grille." -" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " -"Last time I saw them alive, I just came home from school, grabbed a snack " -"and went to work. I don't think I even told my mom I loved her, and I was " -"pissed at my dad for some shit that really doesn't matter. Didn't " -"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." +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." msgstr "" +"Que es esto. Esto es para lo que fui hecho. Estar en la calle, reventándole " +"la cabeza a los monstruos y rezando por salir vivo. Nunca había sentido eso." +" Vivo. Importante. Así que después de que pude juntar mis pedazos, me dejé " +"de quejar y volví a salir. Probablemente haya matado mil Z desde entonces, y" +" todavía no me cansé de hacerlo." #: lang/json/talk_topic_from_json.py -msgid "So, did you evacuate?" -msgstr "" +msgid "It's good you found your calling. " +msgstr "Qué bueno que encontraste tu vocación. " #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't evacuate. I went home... saw some freaky shit on the way, but at " -"the time I just thought it was riots or drugs. By the time I got there, my " -"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 "" +msgid "It's good you found your calling. " +msgstr "Qué bueno que encontraste tu vocación. " #: lang/json/talk_topic_from_json.py msgid "" -"I haven't found them yet. Whenever I see a , a little part of me is" -" afraid it's going to be one of them. But then, maybe not. Maybe they " -"were evacuated, maybe they fought and tried to wait for me but the military " -"took them anyway? I've heard that sort of thing happened. I don't know if " -"I'll ever know." +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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, ya sabés. Bla bla bla, tenía un trabajo y una vida, todos se murieron. " +"Llanto. Igual te soy sincero: honestamente, creo que me gusta más así. " +"¿Luchar para poder sobrevivir? Nunca me sentí tan vivo. Maté cientos de esos" +" bastardos. Tarde o temprano, uno me va a vencer, pero voy a caer sabiendo " +"que hice algo importante." #: lang/json/talk_topic_from_json.py msgid "" -"I was a cop. Small town sheriff. We got orders without even really knowing" -" what they meant. At some point one of the g-men on the phone told me it " -"was a Chinese attack, something in the water supply... I don't know if I " -"believe it now, but at the time it was the best explanation. At first it " -"was weird, a few people - - fighting like rabid animals. Then it " -"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." +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" +"Bueno, mirá, no soy de por acá. Venía manejando desde el sur para visitar a " +"mi hijo cuando pasó todo esto. Estaba en un hotel cuando una caravana " +"militar pasó y nos dijo que evacuemos el lugar y vayamos a un refugio de " +"FEMA." #: lang/json/talk_topic_from_json.py -msgid "" -"A big-ass hole opened up right in the middle of town, and a " -"crawled out, right in front of the church. We unloaded into it, but bullets" -" just bounced off. Got some civilians in the crossfire. It started just " -"devouring people like potato chips into a gullet that looked like a rotting " -"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " -"have been the only person to escape. I haven't been able to even look at my" -" badge since then." -msgstr "" +msgid "Tell me about your son." +msgstr "Contame sobre tu hijo." #: lang/json/talk_topic_from_json.py -msgid "" -"I was SWAT. By all rights I should be dead. We were called to control " -"\"riots\", which we all know were the first hordes. Fat lot of " -"good we were. Pretty sure we killed more civilians. Even among my crew, " -"morale was piss poor and we were shooting wild. Then something hit us, " -"something big. Might have been a bomb, I really don't remember. I woke up " -"pinned underneath the SWAT van. I couldn't see anything... but I could " -"hear it, . I could hear everything. I spent hours, maybe days " -"under that van, not even trying to get out." -msgstr "" +msgid "So, you went to one of the FEMA camps?" +msgstr "¿Así que te fuiste a uno de los campamentos FEMA?" #: lang/json/talk_topic_from_json.py -msgid "But you did get out." +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." msgstr "" +"Vive en la parte norte de Canadá, en el medio de la nada, con su esposa loca" +" y mis tres nietos. Trabaja como ingeniero ambiental para algunas compañías " +"de petróleo y gas por allá. A ella le faltan varios tornillos. Los amo a los" +" dos, y hasta donde yo sé, ellos pudieron escapar a salvo de este quilombo, " +"ahí en el culo del mundo. Supongo que piensan que yo estoy muerto, así que " +"se van a quedar lejos de este infierno, y eso es lo mejor que pueden hacer." #: lang/json/talk_topic_from_json.py -msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." -msgstr "" +msgid "What was it you said before?" +msgstr "¿Qué fue eso que dijiste antes?" #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " msgstr "" +"Por Dios, no. Sería un psicópata si dejara que un pibe en un uniforme que le" +" queda grande me diga lo que tengo que hacer. Tenía mi Hummer cargado y " +"listo para salir, tenía mucha nafta e incluso tantos rifles como la frontera" +" me dejaría pasar. No sabía de qué me tenía que escapar, pero me fui a la " +"mierda." #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" -msgstr "" +msgid "Where did you go then?" +msgstr "¿Y a dónde te fuiste?" #: lang/json/talk_topic_from_json.py msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" msgstr "" +"Primero, seguí hacia el norte, pero me encontré con un bloque militar " +"enorme. Hasta tenían esos robots gigantes como los que ves en la televisión." +" Fui a ver qué pasaba y antes de que me de cuenta, ¡empezaron a disparar! " +"Podría haber muerto ahí, pero todavía tengo buenos reflejos. Me di la vuelta" +" y salí cagando. Mi Hummer ya no estaba en buenas condiciones, y descubrí de" +" la peor manera que estaba perdiendo nafta. Pude hacer unos kilómetros antes" +" de terminar en el medio de la nada. Empecé a dar vueltas por ahí. Supongo " +"que todavía estoy yendo hacia el norte, por el camino largo, digamos." #: lang/json/talk_topic_from_json.py -msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." -msgstr "" +msgid "That's quite a story. " +msgstr "Esa es una historia interesante. " #: lang/json/talk_topic_from_json.py -msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." -msgstr "" +msgid "That's quite a story. " +msgstr "Esa es una historia interesante. " #: lang/json/talk_topic_from_json.py msgid "" @@ -122903,6 +124145,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -122926,6 +124172,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -122979,6 +124233,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Gracias por decirme todo eso. " + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -123043,6 +124301,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Gracias por contarme eso. " + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -123080,6 +124342,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -123174,6 +124440,271 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" +"Se me hizo tarde para la evacuación cuando todo se fue a la mierda. Me quedé" +" atrapado en la ciudad durante unos días, sobreviví escondiéndome en " +"sótanos, comiendo galletitas y tomando cerveza tibia. Hasta que pude " +"escabullirme sin que me vean los . Me pasé unos días refugiado en " +"un shopping abandonado pero como necesitaba comida me fui al bosque. No me " +"estaba yendo muy bien, así que me alegra que hayas aparecido." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" +"Estaba en casa engripado cuando el mundo se fue a la mierda, y cuando me " +"sentí bien como para intentar ir hasta el supermercado... Bueno, estoy " +"corriendo desde entonces." + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "Dale, no me dejés con la intriga." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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, bueno, estaba un poquito perdido esos primeros días. Sabía que había " +"tormentas, pero estaba teniendo unos sueños muy raros por la fiebre. " +"Honestamente, tendría que haber ido al hospital, pero estaría muerto ahora, " +"supongo. No podía saber qué era un sueño y qué era el mundo acabándose. Me " +"acuerdo yendo a la heladera a buscar algo para tomar y dándome cuenta que no" +" andaba la luz y el agua estaba tibia, creo que eso fue un poco antes de que" +" empezara a sentir la fiebre. Todavía estaba medio atontado cuando me quedé " +"sin sopa de pollo así que tarde un rato en procesar lo oscuro y muerto que " +"estaba el edificio cuando salía." + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "¿Y qué pasó cuando saliste?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" +"Probablemente te acuerdes cómo eran las ciudades. Creo que fue al cuarto " +"día. Una vez que salí me di cuenta de lo que pasaba, o me di cuenta que no " +"sabía lo que estaba pasando, por lo menos. Vi un grupo destrozando un auto, " +"y después vi a uno que estaba destrozándole la cabeza a una mujer. Cancelé " +"mi viaje al mercado, corrí de nuevo al departamento antes de que me vieran, " +"y me encerré. Las cosas se volvieron silenciosas a medida que los muertos " +"superaban a los vivos, así que empecé a agarrar lo que pude de mis vecinos, " +"volviéndolos a matar si tenía que hacerlo. Eventualmente, los " +"invadieron mi edificio y tuve que trepar para escaparme hacia los montes en " +"una bicicleta vieja." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Gracias por decirme todo eso. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"My wife made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My husband made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -123225,10 +124756,539 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"Antes de ? ¿A quién le importa eso? Esto es un mundo nuevo, y" +" sí, está bastante . Pero es el que nos toca, así que no nos " +"quedemos en el pasado cuando deberías estar haciendo lo mejor que podemos " +"con lo poco que tenemos." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "Puedo respetar eso." + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 se honesto/a... no me acuerdo. Recuerdo vagamente algunos detalles de " +"mi vida antes de este mundo, pero del en sí mismo? Todo fue " +"borroso. No sé cómo llegué a este lugar, ni cómo pasó todo esto. Creo que " +"algo bastante malo me pasó a mí. O por ahí solo recibí un golpe muy fuerte " +"en la cabeza. O las dos cosas. Las dos cosas pueden haber pasado." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" +"Uh, amigo. Estaba preparado para esto. Los vientos venían para este lado " +"hace años. Tenía un refugio de último hombre en la tierra preparado afuera " +"del pueblo. Así que, por supuesto, mi suerte: estaba en una conferencia a " +"kilómetros de distancia del pueblo cuando China atacó y el mundo se terminó." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "¿Qué te pasó a vos?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "¿Y qué pasó con tu refugio?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" +"Nuestra conferencia era en un lugar retirado, junto a un lago. Todos " +"recibimos el mensaje de emergencia en nuestros celulares, pero yo fui el " +"único que leyó entre líneas: bioterrorismo a gran escala. No me iba a quedar" +" para ver quién era un espía durmiente. Pero apuesto que era Lee. De todas " +"maneras, me robé la camioneta del coordinador y me fui a mi refugio." + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "¿Y pudiste llegar?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" +"No, habré hecho dos kilómetros. Choqué contra una especie de grieta infernal" +" o arma biológica, un gritando como loco, hecho de brazos y " +"piernas y cabezas de diferentes criaturas, incluso humanos. Creo que lo maté" +" pero lo que se murió seguro fue la camioneta. Agarré mi bolso y corrí, " +"después de pegarle un par de tiros por las dudas. Espero no tener que " +"encontrarme otra vez con algo así." + +#: 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 "" +"Todavía no pude llegar. Cada vez que lo intenté, me tuve que desviar por los" +" . Pero quién sabe, porahi alguna vez..." + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +msgstr "¿Me podés contar esa historia otra vez?" + +#: 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 "" +"Uh, chabón. Pensé que estaba preparado. Lo tenía todo planeado. Los bolsos " +"listos. Las armas cargadas. Los mapas de las rutas de escape. El búnker en " +"el patio." + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "Parece que algo salió mal." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "Ey, me gustaría ver esos mapas." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 de cómo lo veas. Estoy vivo, ¿no? Cuando el Infierno descendió de " +"los cielos y los monstruos empezaron a atacar las ciudades, agarré mis cosas" +" y me metí en el búnker. Las cámaras en la superficie estuvieron funcionando" +" por varios días; podía ver todo lo que estaba pasando. Vi esas cosas " +"andando por ahí. Todavía tengo pesadillas con la manera en que movían sus " +"cuerpos, como si hubieran roto el mundo para estar acá. No tenía nada mejor " +"que hacer. Los vi destrozar a policías y militares, vi a los muertos " +"levantarse y pelear contra los vivos. Vi a la viejita de la esquina " +"arrancarle la cabeza al perro de mi vecino. Vi el cuerpo de un soldado " +"convertirse en una especie de bestia eléctrica. Vi todo." + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "¿Por qué dejaste el búnker?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" +"¿La verdad? Lo hice para morirme. Después de lo que vi, me puse un poquito " +"loco. Pensé que ya no podía hacer nada, que no tenía sentido pelear. Pensé " +"que no iba a durar un minuto afuera, pero no pude hacer que terminara todo " +"ahí abajo. Salí, pensando en que los iban a terminar conmigo, pero" +" ¿qué querés que te diga? El instinto de supervivencia es una cosas rara, y " +"maté a los que estaban fuera del búnker. Supongo que lo que necesitaba era " +"la adrenalina. Es lo que me mantiene vivo desde entonces." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Gracias por contarme eso. " + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -123259,6 +125319,180 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" +"Mi historia. Ah. No tiene nada especial. Tenía gente, pero se han ido a " +"estar con el Señor. No entiendo por qué Él no me llevó a mí también, pero " +"supongo que en algún momento lo sabré." + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "¿Te referís en un sentido religioso, o...?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" +"Obvio. Es bastante claro, ¿no? Ese... ese final, fue el Arrebatamiento. " +"Todavía estoy acá, y todavía no entiendo por qué, pero voy a seguir con " +"Jesús en mi corazón a través de las Tribulaciones por venir. Cuando hayan " +"pasado, estoy seguro de que Él me dará la bienvenida en el Reino de los " +"Cielos. O... o algo similar. No está yendo todo como esperaba, pero así son " +"las profecías." + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "¿Y si estás equivocado?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "¿Y qué vas a hacer entonces?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" +"¿Qué? ¿Cómo podés decir eso? No puedo creer que veas todo esto y pienses que" +" puede ser otra cosas y no el fin de los tiempos. Los muertos caminan, las " +"puertas del Infierno se abrieron, las Bestias del Diablo caminan por la " +"Tierra, y los Justos han sido llevados al Reino del Señor. ¿Qué otra prueba " +"necesitás?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "Y entonces, ¿qué vas a hacer?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"Voy a mantener la fe, y voy a seguir rezando, y voy a derrotar a los agentes" +" del Infierno cada vez que pueda. Eso es lo que tenemos que hacer, ¿no? " +"Supongo que seremos los humildes quienes poblaremos la Tierra. Aunque no me " +"gustan nuestras posibilidades." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" +"Igual que todos los demás. Le di la espalda a Dios y ahora estoy pagando el " +"precio. El Arrebatamiento ha llegado y me han dejado aquí. Así que ahora voy" +" a transitar este Infierno en la Tierra. Me arrepiento de no haber prestado " +"atención en Catecismo." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -123384,6 +125618,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Qué hacés, carto." @@ -124771,6 +127061,44 @@ msgstr "Le das un golpe de fase %s" msgid " phase-strikes %s" msgstr " le da un golpe de fase %s" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "desviar y contraatacar" @@ -128557,6 +130885,26 @@ msgstr "Tejer" msgid "bullet pulling" msgstr "Extraer bala" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "colchoneta" @@ -129480,6 +131828,18 @@ msgstr "personalizad_vacío" msgid "canoe" msgstr "canoa" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "balsa" @@ -130141,7 +132501,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "military composite armor plating" -msgstr "placas blindadas de compuesto militar" +msgstr "chapas blindadas de compuesto militar" #: lang/json/vehicle_part_from_json.py msgid "reinforced windshield" @@ -130385,15 +132745,15 @@ msgstr "Es un techo de madera." #: lang/json/vehicle_part_from_json.py msgid "chitin plating" -msgstr "placas de quitina" +msgstr "chapas de quitina" #: lang/json/vehicle_part_from_json.py msgid "biosilicified chitin plating" -msgstr "placas de quitina biosilicificada" +msgstr "chapas de quitina biosilicificada" #: lang/json/vehicle_part_from_json.py msgid "bone plating" -msgstr "placas de hueso" +msgstr "chapas de hueso" #: lang/json/vehicle_part_from_json.py msgid "door motor" @@ -131058,11 +133418,17 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" -"Es una luz muy brillante de amplia cobertura, que ilumina el área exterior " -"del vehículo cuando está encendida." #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -131081,6 +133447,19 @@ msgstr "" "apuntará, así que con varias luces delanteras podés iluminar los costados y " "la parte posterior tan bien como la delantera." +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -131420,6 +133799,36 @@ msgstr "rueda ancha (maniobrable)" msgid "A wooden wheel." msgstr "Es una rueda de madera." +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "paletas de mano" @@ -133182,6 +135591,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "Diseccionás el cadáver con un confiable escalpelo." +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -133647,8 +136062,8 @@ msgid "Repeat once" msgstr "Repetir una vez" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Repetir todas las veces que se pueda" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -133658,11 +136073,24 @@ msgstr "Repetir hasta que esté reparado, pero no reforzar" msgid "Repeat until success/failure/level up" msgstr "Repetir hasta que se consiga/se falle/se mejore" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "Tu %s se quedó sin cargas" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "¿Qué querés reparar?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "No tenés ningún objeto que pueda ser reparado con un/a %s." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Ya no vas a aprender nada más haciendo eso." @@ -133670,13 +136098,15 @@ msgstr "Ya no vas a aprender nada más haciendo eso." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"Probabilidad de éxito: %.1f%%\n" -"Probabilidad de daño: %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -133730,6 +136160,11 @@ msgstr "Terminaste de esperar." msgid "%s finishes with you..." msgstr "%s termina por vos..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "Das vueltas en la cama..." @@ -133805,6 +136240,11 @@ msgstr "Terminás de desenterrar %s." msgid "You finish filling up %s." msgstr "Terminás de rellenar %s." +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "Abrís tu equipo y te afeitás." @@ -133813,6 +136253,20 @@ msgstr "Abrís tu equipo y te afeitás." msgid "You give your hair a trim." msgstr "Te cortás un poco el pelo." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "Desarmaste tu %s." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "Descargás tu %s." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Removés la tierra acá." @@ -133821,6 +136275,15 @@ msgstr "Removés la tierra acá." msgid "You tilled every tile you could." msgstr "Araste cada espacio que pudiste." +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "Plantaste todas las semillas que pudiste." @@ -135102,6 +137565,10 @@ msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "" "se achica y se agranda muy ligeramente a un ritmo regular, como si respirara" +#: src/artifact.cpp +msgid "dead" +msgstr "muerto" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "está muy frío al tacto" @@ -136452,8 +138919,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Energía: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -137980,12 +140448,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ARCHIVO DAÑADO, PRESIONE UNA TECLA..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"La máquina te inyecta en el ojo la solución\n" -"de hueso molido y LSD." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -139084,6 +141549,62 @@ msgstr "Te hacés un festín con la dulce miel." msgid "You can't finish it all!" msgstr "¡No te lo podés terminar todo!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "Te atiborrás de comida, preparándote para hibernar." @@ -139601,13 +142122,10 @@ msgstr "recetas que están memorizadas o no" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"Se busca por nombres por defecto. Algunos prefijos de un caracter se pueden usar con dos puntos (:) para buscar de otras maneras.\n" -"\n" -"Ejemplos:\n" #: src/crafting_gui.cpp msgid "shirt" @@ -139899,7 +142417,7 @@ msgstr "¿Dónde está el mapa general deseado?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "Te teletransportás al mapa general (%d,%d,%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Vos" @@ -145903,6 +148421,10 @@ msgstr "Mostrar mensaje debug" msgid "Crash game (test crash handling)" msgstr "Error del juego (prueba de manejo de fallos)" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "Salir al Menú Principal" @@ -146253,22 +148775,25 @@ msgid "Underground" msgstr "Bajo tierra" #: src/game.cpp -msgid "Weather:" -msgstr "Clima:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "Temperatura:" +msgid "Weather :" +msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Luna %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "Luz: " +#: src/game.cpp +msgid "Deaf!" +msgstr "¡Sordo!" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -146576,6 +149101,11 @@ msgstr "Tirar todos los objetos" msgid "Attach bag" msgstr "Conectar bolso" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "Desatar" @@ -146651,6 +149181,11 @@ msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "" "No hay espacio para eso en el %2$s de tu %1$s, ¡es demasiado voluminoso!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "¿Seguro? ¿Matar al zombi esclavo?" @@ -147438,63 +149973,6 @@ msgstr "No tenés nada para descargar." msgid "You're not wielding anything." msgstr "No estás empuñando nada." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "Ponés el/a %s en tu inventario." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "¡El %s ya está vacío!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "¡El líquido no puede ser descargado en su estado actual!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "¿Qué querés descargar?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "¡No podés descargar un %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "¡No podés decargar un %s recargable!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "Tu %s no tiene carga." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "Tu %s no está cargado." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "Desarmaste tu %s." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "Descargás tu %s." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "Recuperás %i de plutonio sin utilizar." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "¡No podés quitar plutonio parcialmente agotado!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -149016,10 +151494,6 @@ msgstr "Sí." msgid "Yes, and save game before sleeping." msgstr "Sí, y guardar el juego antes de dormir." -#: src/handle_action.cpp -msgid "No." -msgstr "No." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "Por ahí quieras desactivar estos antes de dormirte." @@ -149105,6 +151579,26 @@ msgstr "" "tienen que ser establecidos para semillas específicas y tenés que tener las " "semillas en tu inventario." +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "Necesitás una herramienta para cavar." @@ -149871,10 +152365,23 @@ msgstr "La semilla florece bastante rápidamente..." msgid "The seed blossoms into a flower-looking fungus." msgstr "La semilla florece en un hongo que parece una flor." +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "Este %s ya ha sido fertilizado." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "" #: src/iexamine.cpp #, c-format @@ -149890,6 +152397,11 @@ msgstr "Fertilizar el %s" msgid "Use which fertilizer?" msgstr "¿Qué fertilizante querés usar?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "Este %s ya ha sido fertilizado." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Esta fosa ya contiene carbón." @@ -151825,6 +154337,10 @@ msgstr "Modificador de carga:" msgid "Minimum strength required modifier: " msgstr "Fuerza mínima requerida:" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "Se usa en: " @@ -151833,6 +154349,10 @@ msgstr "Se usa en: " msgid "Location: " msgstr "Lugar:" +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "Cubre: " @@ -152743,6 +155263,11 @@ msgstr "no puede tener un recolector de latón" msgid "must be unloaded before installing this mod" msgstr "tiene que ser descargada antes de instalar esta modificación" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -155458,13 +157983,8 @@ msgid "No music on device" msgstr "No hay música en el dispositivo" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "Receta: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "Ver receta en pantalla de tinta electrónica" +msgid "View recipes on E-ink screen" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" @@ -155533,13 +158053,8 @@ msgid "You turned on music on your %s." msgstr "Encendés la música de tu %s." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "Elegir receta para ver:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "Cambiás la pantalla de tinta electrónica para ver la receta de %s." +msgid "List recipes:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -155597,10 +158112,6 @@ msgstr "Cargar fotos a la tarjeta de memoria" msgid "No photos in memory" msgstr "No hay fotos en la memoria" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "Decidís no usar el flash en vos mismo." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "No hay nada particularmente interesante ahí." @@ -155633,6 +158144,10 @@ msgstr "Un %s se metió en el medio de la foto." msgid "This photo is better than the previous one." msgstr "Esta foto es mejor que la anterior." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -156950,15 +159465,6 @@ msgstr "¡No ves nada, no podés hacer eso!" msgid "Your tool does not have enough charges to do that." msgstr "Tu herramienta no tiene suficientes cargas para hacer eso." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "¿Qué querés reparar?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "No tenés ningún objeto que pueda ser reparado con un/a %s." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -157244,12 +159750,6 @@ msgstr "Tenés una mejor versión instalada." msgid "Remove which modification?" msgstr "¿Cuál modificación querés quitar?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Le sacás tu %1$s a tu %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "No parece estar modificado/a." @@ -158849,6 +161349,10 @@ msgstr "Destrozable. " msgid "Diggable. " msgstr "Cavable. " +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "Irregular. " @@ -161023,6 +163527,21 @@ msgstr "Este mod necesita soporte Lua" msgid "This mod requires Lua support" msgstr "Este mod necesita soporte Lua" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "¡El %s te dispara un dardo!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -161663,11 +164182,6 @@ msgstr "¡Resistís que el %s intente arrastrarte!" msgid " resist the %s as it tries to drag them!" msgstr "¡ resiste que el %s intente arrastrarlos!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "¡El %s te dispara un dardo!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "¡Sentís como te entra el veneno en el cuerpo!" @@ -162742,7 +165256,7 @@ msgstr "pellejo grueso" #: src/monster.cpp msgid "armor plating" -msgstr "placas de armadura" +msgstr "chapas de armadura" #: src/monster.cpp #, c-format @@ -162773,10 +165287,42 @@ msgstr "Está severamente herido/a." msgid "It is nearly dead!" msgstr "¡Está casi muerto/a!" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "Esto es un/a %s. %s" +msgid "This is a %s. %s %s" +msgstr "" #: src/monster.cpp #, c-format @@ -163602,12 +166148,10 @@ msgstr "puntos" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Cambiar con %s)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Orden:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -164205,14 +166749,10 @@ msgstr "PNJ: %s" msgid "Wielding a %s" msgstr "Empuñando un/a %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Vistiendo: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "Empuñando: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "Completamente desconfiado" @@ -164838,6 +167378,10 @@ msgstr "Me podrías dar una mano con otra cosa si estás interesado." msgid " If you are interested, I have another job for you." msgstr "Si estás interesado, tengo otro trabajo para vos." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "¡Un placer hacer negocios!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Ya me pediste cosas; preguntame en otro momento." @@ -165225,17 +167769,17 @@ msgstr "Sí, sigamos entrenando." msgid "%s ( cost $%d )" msgstr "%s ( cuesta $%d )" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (cuesta $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "Bueno, gracias. " @@ -165413,14 +167957,14 @@ msgstr "No destruyas obstáculos." msgid "You can bash obstacles." msgstr "Podés destruir obstáculos." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "Dormí cuando te sientas cansado." - #: src/npctalk.cpp msgid "Stay awake." msgstr "Quedate despierto." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "Dormí cuando te sientas cansado." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "Quedate callado." @@ -165437,14 +167981,14 @@ msgstr "Dejar los cadáveres como están." msgid "Smash zombie corpses." msgstr "Destrozar los cadáveres de zombis." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "Cerrá las puertas." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "Dejá las puertas abiertas." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "Cerrá las puertas." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "Establecer reglas de qué agarrar." @@ -165530,7 +168074,7 @@ msgstr "¡Acá no hay un campamento de bando para recuperar!" msgid "%s has abandoned the camp." msgstr "%s ha abandonado el campamento." -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "puños" @@ -165599,6 +168143,23 @@ msgstr "%1$s te da un/a %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "%1$s te da %2$d %3$s" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr " no confío lo suficiente en vos como para comer ESTO..." @@ -165751,6 +168312,16 @@ msgstr "%s te hizo un corte de pelo decente..." msgid "%s gives you a decent shave..." msgstr "%s te dio una afeitada decente..." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -168028,13 +170599,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "Ejemplo: -caño,-pedazo,-acero" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "Buscar [c]ategoría, [m]aterial, o [q]-cualidad:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "Ejemplo: c:comida,m:hierro,q:martillar" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "" #: src/output.cpp msgid "unknown" @@ -168380,6 +170951,10 @@ msgstr "Capturar o liberar criatura" msgid "Load or unload a vehicle" msgstr "Cargar o descargar vehículo" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -168545,6 +171120,11 @@ msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "" "Para evitar derramar su contenido, pone su %1$s en el/a %2$s." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "vos" + #: src/player.cpp msgid "your" msgstr "tu" @@ -168854,8 +171434,9 @@ msgstr "Biónicos totales: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Energía: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" #: src/player.cpp msgid "Weapon:" @@ -168941,6 +171522,14 @@ msgstr "a vos mismo gritando!" msgid "The sound of your voice is almost completely muffled!" msgstr "¡El sonido de tu voz está casi totalmente amortiguado!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "¡El sonido de tu voz está significativamente amortiguado!" @@ -169617,10 +172206,6 @@ msgstr "¿Por qué me estás siguiendo?" msgid "This place is dangerous, you shouldn't be here." msgstr "Este lugar es peligroso, no deberías estar acá." -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "¿Qué estás haciendo acá afuera?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "Eso no es verdad, ¿o sí?" @@ -169915,11 +172500,6 @@ msgstr "Parece que tus centros visuales no están funcionando bien..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "Sentís una sensación anómala viniendo de tus sensores de radiación." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "¡Tu placa dosimétrica pasa de %1$s a %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "" @@ -170072,6 +172652,11 @@ msgstr "Tropezás por culpa de tus piernas temblorosas." msgid "You fall over!" msgstr "¡Te caés!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "¡Tu placa dosimétrica pasa de %1$s a %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -170552,6 +173137,53 @@ msgstr "¡No podés poner objetos acá!" msgid " can't place items here!" msgstr "¡ no puede poner los objetos acá!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "Ponés el/a %s en tu inventario." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "¡El %s ya está vacío!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "¡El líquido no puede ser descargado en su estado actual!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "¿Qué querés descargar?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "¡No podés descargar un %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "¡No podés decargar un %s recargable!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "Tu %s no tiene carga." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "Tu %s no está cargado." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "Recuperás %i de plutonio sin utilizar." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "¡No podés quitar plutonio parcialmente agotado!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -170566,6 +173198,12 @@ msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "Tu %s tiene %d carga pero necesita %d." msgstr[1] "Tu %s tiene %d cargas pero necesita %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Le sacás tu %1$s a tu %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -171026,6 +173664,10 @@ msgstr "Sentís que las tareas de %s de este nivel se han vuelto algo trivial." msgid "You resume your task." msgstr "Retomás tu tarea." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "¿Qué querés empuñar?" @@ -171065,6 +173707,14 @@ msgstr "Dejás de arrastrar objetos." msgid "Your body strains under the weight!" msgstr "¡Tu cuerpo se esfuerza en mantener tanto peso!" +#: src/player.cpp +msgid "Wielding: " +msgstr "Empuñando: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -171273,8 +173923,8 @@ msgstr "INCOMODIDAD Y ABRIGO" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "Energía Biónica: %1$d" +msgid "Bionic Power: %1$d" +msgstr "" #: src/player_display.cpp msgid "EFFECTS" @@ -171822,16 +174472,6 @@ msgstr "Sucumbiste a un ataque de asma." msgid "You wheeze and gasp for air." msgstr "Resoplás y jadeás intentando respirar." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" -"Sentis como si tus huesos fueron de goma mientras se van derritiendo y " -"armando nuevamente." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Sentís como si tus huesos se estuvieran derrumbando." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "Te duele ligeramente la cabeza." @@ -172623,15 +175263,6 @@ msgstr "¡Mucho frío!%s" msgid "Freezing!%s" msgstr "¡Helando!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "¡Sordo!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Ruido %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Muerto/a de sed" @@ -173921,6 +176552,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Aceleración: %3d %s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -173928,21 +176572,22 @@ msgstr "Masa: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Capacidad de Carga: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "Estado:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Más dañado (irreparable): " - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Más dañado: " +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Más dañado (irreparable): " + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Necesita arreglarse:" @@ -173972,6 +176617,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "Nombre: " @@ -174182,11 +176832,9 @@ msgid "Could not find base part in requirements for %s." msgstr "No se encuentra la parte básica de los requisitos para %s." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." msgstr "" -"Elegí la dirección en que apunta la nueva luz. Apretá la barra espaciadora " -"para continuar." #: src/veh_interact.cpp #, c-format @@ -174273,10 +176921,10 @@ msgstr "Reparás el %2$s del %1$s." msgid "Lost connection with the vehicle due to distance!" msgstr "¡Perdiste conexión con el vehículo debido a la distancia!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "¡BANG!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -174490,13 +177138,13 @@ msgstr "pila" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "¡El/a %s no tiene suficientes ruedas para moverse!" +msgid "The %s is too leaky!" +msgstr "¡El %s gotea mucho!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "¡El %s gotea mucho!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "¡El/a %s no tiene suficientes ruedas para moverse!" #: src/vehicle_move.cpp #, c-format @@ -174722,6 +177370,14 @@ msgstr "Cerrar todas las cortinas y puertas" msgid "headlights" msgstr "luces delanteras" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "luces superiores" @@ -174980,18 +177636,23 @@ msgstr "Parece que el/a %1$s se quedó sin %2$s." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "El %s hace un pitido largo." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "El %s hace un chasquido solo." +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "El %s hace unos chasquidos rápidos." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -175000,8 +177661,8 @@ msgstr "El %s parece tartamudear y se apaga." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "El %s hace un terrible ruido metálico." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -175021,6 +177682,11 @@ msgstr "¡BIIIP!" msgid "You honk the horn, but nothing happens." msgstr "Tocaste la bocina, pero no pasó nada." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "una melodía simple resonando de los parlantes." diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index 2f26d33b7fd88..e6be9c0566222 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -4,15 +4,15 @@ # Víctor Arias , 2018 # Vlasov Vitaly , 2018 # Luis Ortega , 2018 -# Toni López , 2018 # Brett Dong , 2018 +# Toni López , 2019 # Miguel de Dios Matias , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Miguel de Dios Matias , 2019\n" "Language-Team: Spanish (Spain) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_ES/)\n" @@ -326,7 +326,7 @@ msgstr "pistón para escopeta" #. ~ Description for shotgun primer #: lang/json/AMMO_from_json.py msgid "Primer from a shotgun shell." -msgstr "" +msgstr "Es una cápsula iniciadora de un cartucho de escopeta." #: lang/json/AMMO_from_json.py msgid "small pistol primer" @@ -457,6 +457,10 @@ msgid "" " in recipes requiring a pure, hot flame. Can also be used in filters to " "remove contaminants out of air and water." msgstr "" +"Es un material inflamable de base en el carbón, producido mediante la quema " +"lenta de la madera. Es utilizado en recetas que requieren una llama ardiente" +" y pura. También puede ser usado en filtros para quitar los contaminantes " +"del agua y del aire." #: lang/json/AMMO_from_json.py msgid "coal" @@ -483,6 +487,10 @@ msgid "" "instead of on a timer. It can fly further than the explosion will reach, " "probably." msgstr "" +"Es una pequeña bomba nuclear muy modificada puesta en un misil. Diseñada " +"para ser disparada desde un lanzador especial, ha sido modificado para " +"explotar en el impacto en lugar de por tiempo. Puede volar más lejos de lo " +"que la explosión alcanzará, probablemente." #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" @@ -546,7 +554,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "chemical mask cartridge" -msgstr "" +msgstr "cartucho de máscara química" #. ~ Description for chemical mask cartridge #: lang/json/AMMO_from_json.py @@ -797,7 +805,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "metal broadhead arrow" -msgstr "" +msgstr "flecha de metal de punta ancha" #. ~ Description for metal broadhead arrow #: lang/json/AMMO_from_json.py @@ -830,6 +838,9 @@ msgid "" "for extra accuracy, at the cost of some damage. Stands a very good chance " "of remaining intact once fired." msgstr "" +"Esta flecha de metal tiene un emplumado muy largo y la punta redondeada y " +"balanceada para mayor precisión, con un menor daño. Tiene muy buena " +"probabilidad de no romperse luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "carbon fiber arrow" @@ -841,6 +852,9 @@ msgid "" "High-tech carbon fiber shafts and 100 grain broadheads. Very lightweight, " "fast, and durable. Stands a great chance of remaining intact once fired." msgstr "" +"Flechas de fibra de carbono de alta tecnología con puntas anchas de 100 " +"granos. Muy livianas, rápidas y duraderas. Tiene buena probabilidad de no " +"romperse luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -977,6 +991,10 @@ msgid "" " intended for use in specialized medical equipment, and can't be " "administered manually." msgstr "" +"Es un equipo para inducir anestesia para una cirugía, que contiene latas " +"especiales con una variedad de poderosos hipnóticos, analgésicos y drogas " +"estimulantes. Está pensado para ser utilizado con equipamiento médico " +"especializado, y no puede ser administrado manualmente." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1362,6 +1380,10 @@ msgid "" "embalming agent. Easily identifiable by its pungent odor. Terribly toxic, " "carcinogenic, and volatile." msgstr "" +"El formaldehído, aquí disuelto en agua, era usado comúnmente antes del " +"Cataclismo como precursor en la producción de muchos químicos y materiales " +"como agente ensamblador. Es muy identificable por su olor acre. " +"Terriblemente tóxico, cancerígeno y volátil." #: lang/json/AMMO_from_json.py msgid "thermite" @@ -1489,6 +1511,9 @@ msgid "" " in specifically engineered atomic scale configurations. A nanofabricator " "can assemble them into usable items." msgstr "" +"Son carcasas de acero que contienen carbono, hierro, titanio, cobre y otros " +"elementos en configuraciones específicamente diseñadas en escala atómica. Un" +" nanofabricador puede armar esto para hacer útil." #: lang/json/AMMO_from_json.py msgid "wood ash" @@ -1627,6 +1652,8 @@ msgid "" "High purity methanol suitable for use in chemical reactions. Could be used " "in alcohol-burning stoves. Very toxic." msgstr "" +"Es metanol de alta pureza, útil para usar en reacciones químicas. Puede ser " +"utilizado como combustible en cocinas de alcohol. Muy tóxico." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "diesel" @@ -2251,6 +2278,9 @@ msgid "" "extremely powerful and accurate cartridge but pays for its armor penetration" " abilities with lowered damage." msgstr "" +"Es munición .30-06 con penetración de blindaje, FMJ de 168gr. Es un cartucho" +" extremadamente poderoso y preciso, pero por su habilidad de penetración de " +"blindaje, no causa mucho daño." #: lang/json/AMMO_from_json.py msgid "reloaded .270 Winchester" @@ -2347,6 +2377,8 @@ 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 "" +"Es munición .357 SIG recubierta. El .357 SIG es un cartucho de pistola de " +"alta velocidad, lo que le da una trayectoria más recta que otras balas." #: lang/json/AMMO_from_json.py msgid ".357 SIG JHP" @@ -3074,6 +3106,10 @@ msgid "" "world. The bullet has poor wounding potential due to its stability, only " "beginning to yaw after 26cm." msgstr "" +"Es munición 7.62x39mm con núcleo de acero de 121.9gr. Desarrollada en la " +"Segunda Guerra Mundial por la Unión Soviética, la bala 7.62x39mm rápidamente" +" se volvió muy usada en todo el mundo. Tiene poco potencial de daño debido a" +" su estabilidad, y solo comienza a cabecear luego de 26cm." #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x39mm M67" @@ -3622,6 +3658,9 @@ msgid "" "A shotgun shell shooting a small explosive. Damaging, but rather inaccurate" " and short ranged. Banned in several states." msgstr "" +"Es un cartucho de escopeta con una pequeña carga explosiva. Hace bastante " +"daño pero es poco precisas y de corto alcance. Estaba prohibida en varios " +"estados." #: lang/json/AMMO_from_json.py msgid "makeshift shotgun shot" @@ -3988,6 +4027,9 @@ msgid "" "6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " "been hand-reloaded." msgstr "" +"Inspirado en la .280 mejorada, el mismo Alexander Sarafanov desarrolló el " +"cartucho para rifle 6.54x42mm para su rifle de asalto SVS-24. Esta ha sido " +"recargada a mano." #: lang/json/AMMO_from_json.py msgid "reloaded light rifle ammo" @@ -4163,6 +4205,9 @@ msgid "" "A 84x246mm smoke marker round for the recoilless rifle. Commonly used for " "signaling, target designation, and for screening troop movements." msgstr "" +"Es un cartucho 84x246mm de humo para el rifle sin retroceso. Generalmente se" +" utiliza para señalizar, marcar un objetivo, y para ocultar los movimientos " +"de las tropas." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "pistol ammo" @@ -4471,8 +4516,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm EMP grenade" msgid_plural "40mm EMP grenades" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "granada 40mm PEM" +msgstr[1] "granadas 40mm PEM" #. ~ Description for 40mm EMP grenade #: lang/json/AMMO_from_json.py @@ -4480,6 +4525,8 @@ msgid "" "A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" " capable of damaging robots and some equipment." msgstr "" +"Es una granada 40mm con carga PEM. Liberará un pulso electromagnético capaz " +"de dañar robots y algunos equipamientos." #: lang/json/AMMO_from_json.py msgid "glowball" @@ -4492,6 +4539,9 @@ msgid "" "They deal virtually no damage, but light up on impact. Useful for " "illuminating an area without lighting up yourself in the process." msgstr "" +"Es un tubo con pequeñas bolas brillantes que fueron sacadas del mercado por " +"sus químicos peligrosos. Casi no provocan ningún daño, pero iluminan al " +"impactar. Es útil para iluminar áreas sin iluminarte vos mismo." #: lang/json/AMMO_from_json.py msgid "30x113mm HEDP" @@ -5330,6 +5380,8 @@ msgid "" "A tool to help set bones and hold them in place. It is specifically " "designed to fit Huge survivors." msgstr "" +"Es una pequeña madera que sirve para ayudar a mantener los huesos en su " +"lugar. Está específicamente diseñada para supervivientes enormes." #: lang/json/ARMOR_from_json.py msgid "pair of arm warmers" @@ -5355,6 +5407,8 @@ msgid "" "A pair of arm guards made from leather, reinforced with bone. Light and " "strong." msgstr "" +"Es un par de mangas hechas de cuero y reforzadas con hueso. Livianas y " +"resistentes." #: lang/json/ARMOR_from_json.py msgid "pair of chitin arm guards" @@ -5374,8 +5428,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of biosilicified chitin arm guards" msgid_plural "pairs of biosilicified chitin arm guards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de mangas de quitina biosilicificada" +msgstr[1] "pares de mangas de quitina biosilicificada" #. ~ Description for pair of biosilicified chitin arm guards #: lang/json/ARMOR_from_json.py @@ -5383,6 +5437,9 @@ msgid "" "A pair of arm guards crafted from the carefully cleaned and pruned " "biosilicified exoskeletons of acidic ants. Acid-resistant and very durable." msgstr "" +"Es un par de mangas creadas con exoesqueletos de hormigas ácidas, " +"cuidadosamente limpiados y biosilicificados. Son resistentes al ácido y muy " +"duraderas." #: lang/json/ARMOR_from_json.py msgid "pair of hard arm guards" @@ -5566,6 +5623,23 @@ msgstr "" "Es un traje improvisado hecho con ropa pre-cataclismo, diseñado para viajes " "largos. Tiene mucha capacidad de almacenamiento." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"Es un traje improvisado ligero hecho con ropa pre-cataclismo, diseñado para " +"viajes largos de verano. Tiene menos capacidad de almacenamiento y " +"protección que el equipo normal de nómada." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -5689,7 +5763,7 @@ msgstr[1] "mochilas de cuero" #. ~ Description for leather backpack #: lang/json/ARMOR_from_json.py msgid "A small leather backpack. Good storage for a little encumbrance." -msgstr "" +msgstr "Es una mochila pequeña de cuero. Buena capacidad y poca incomodidad." #: lang/json/ARMOR_from_json.py msgid "badge template" @@ -5705,8 +5779,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "cybercop badge" msgid_plural "cybercop badges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "placa de ciberpolicía" +msgstr[1] "placas de ciberpolicía" #. ~ Description for cybercop badge #: lang/json/ARMOR_from_json.py @@ -5918,6 +5992,10 @@ msgid "" "fabric, but it's lightweight and has plenty of storage thanks to a chest " "pocket." msgstr "" +"Es un traje blanco comúnmente utilizado por los apicultores profesionales, " +"con correas en los tobillos y muñecas para prevenir que las abejas se metan." +" No está hecho de una tela muy resistente, pero es ligero y tiene mucha " +"capacidad de almacenamiento gracias al bolsillo en el pecho." #: lang/json/ARMOR_from_json.py msgid "beret" @@ -5929,6 +6007,8 @@ msgstr[1] "boinas" #: lang/json/ARMOR_from_json.py msgid "A soft cotton hat. Commonly worn by armed forces and existentialists." msgstr "" +"Es una gorra suave de algodón, usada comúnmente por las fuerzas armadas y " +"por los existencialistas." #: lang/json/ARMOR_from_json.py msgid "wool beret" @@ -6034,6 +6114,8 @@ msgid "" "A simple fabric covering tied over the eyes to block sight. Useful for " "sleeping in bright areas." msgstr "" +"Es una tela común que se ata sobre los ojos para bloquear la visión. Útil " +"para dormir en lugares con mucha luz." #: lang/json/ARMOR_from_json.py msgid "bondage mask" @@ -6168,12 +6250,12 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You holster your %s." -msgstr "" +msgstr "Envainás tu %s." #. ~ Use action holster_prompt for spear strap. #: lang/json/ARMOR_from_json.py msgid "Holster spear" -msgstr "" +msgstr "Envainar lanza" #. ~ Description for spear strap #: lang/json/ARMOR_from_json.py @@ -6182,6 +6264,9 @@ msgid "" "hands free. You have to duck to get through doors while one's in it, " "though. Activate to holster/draw a weapon." msgstr "" +"Es una correa de tela que se ata al torso para envainar una lanza. Te vas a " +"tener que agachar para pasar por las puertas cuando tenés una lanza " +"envainada. Hay que usarla para envainar y desenfundar el arma." #: lang/json/ARMOR_from_json.py msgid "bowler hat" @@ -6674,6 +6759,19 @@ msgstr "" "Un abrigo de plástico con una capucha y dos bolsillos grandes. Protege de la" " lluvia." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -6855,6 +6953,9 @@ msgid "" "Fake teeth inlaid with diamonds, worn over the teeth. Fits horribly, but " "looks very shiny. For that high-class gangsta rap look." msgstr "" +"Dientes falsos con diamantes incrustados que se usan sobre los dientes " +"verdaderos. Quedan horribles, pero son muy brillantes. Perfectos para ese " +"look de rapero de clase alta." #: lang/json/ARMOR_from_json.py msgid "diamond ring" @@ -6896,7 +6997,7 @@ msgstr[1] "bolsas de buceo" #. ~ Description for dive bag #: lang/json/ARMOR_from_json.py msgid "A lightweight mesh backpack, commonly worn by swimmers and divers." -msgstr "" +msgstr "Una bolsa de red liviana, muy usada por los nadadores y los buzos." #: lang/json/ARMOR_from_json.py msgid "diver's watch" @@ -7042,6 +7143,8 @@ msgid "" "A thick faux fur duster, falling below your knees. Has many pockets for " "storing things." msgstr "" +"Es una gabardina gruesa de piel sintética, que te llega hasta las rodillas. " +"Tiene muchos bolsillos." #: lang/json/ARMOR_from_json.py msgid "leather duster" @@ -7214,6 +7317,8 @@ 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 "" +"Es el casco característico de los bomberos. Es más que un elemento del " +"equipo de bombero es también una marca de honor y respeto." #: lang/json/ARMOR_from_json.py msgid "firefighter belt" @@ -7368,8 +7473,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of faux fur cat ears" msgid_plural "pairs of faux fur cat ears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de orejas de gato de piel artificial" +msgstr[1] "pares de orejas de gato de piel artificial" #. ~ Description for pair of faux fur cat ears #: lang/json/ARMOR_from_json.py @@ -7422,8 +7527,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "faux fur kitty collar" msgid_plural "faux fur kitty collars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de gatito de piel artificial" +msgstr[1] "collares de gatito de piel artificial" #. ~ Description for faux fur kitty collar #: lang/json/ARMOR_from_json.py @@ -7431,6 +7536,8 @@ 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 "" +"Es un collar decorativo hecho de piel sintética. También tiene una campanita" +" colgando en la parte de adelante. No te preocupes, no hace ruido." #: lang/json/ARMOR_from_json.py msgid "gambeson" @@ -7486,6 +7593,9 @@ msgid "" "Gauntlets crafted from the carefully cleaned and pruned biosilicified " "exoskeletons of acidic ants. Acid-resistant and very durable." msgstr "" +"Es un par de guantes creados con exoesqueletos de hormigas ácidas, " +"cuidadosamente limpiados y biosilicificados. Son resistentes al ácido y muy " +"duraderos." #: lang/json/ARMOR_from_json.py msgid "pair of leather armor gauntlets" @@ -7698,6 +7808,9 @@ msgid "" "A pair of customized, Kevlar armored neoprene gloves, modified to be easy to" " wear while providing maximum protection under extreme conditions." msgstr "" +"Un par de guantes personalizados de neopreno reforzados con kevlar. Están " +"modificados para ser cómodos y brindar la máxima protección en condiciones " +"extremas." #: lang/json/ARMOR_from_json.py msgid "pair of heavy survivor gloves" @@ -7712,6 +7825,9 @@ msgid "" "to be easy to wear while providing maximum protection under extreme " "conditions." msgstr "" +"Un par de guantes personalizados de kevlar reforzados con acero. Están " +"modificados para ser cómodos y brindar una máxima protección en condiciones " +"extremas." #: lang/json/ARMOR_from_json.py msgid "pair of leather gloves" @@ -7811,6 +7927,9 @@ msgid "" "A pair of customized, Kevlar armored leather gloves, modified to be easy to " "wear while providing maximum protection under extreme conditions." msgstr "" +"Es un par de guantes personalizados de cuero reforzados con kevlar. Están " +"modificados para ser cómodos y brindar una máxima protección en condiciones " +"extremas." #: lang/json/ARMOR_from_json.py msgid "pair of tactical gloves" @@ -8098,6 +8217,9 @@ msgid "" " vest and a reinforced neoprene wetsuit. Protects from the elements as well" " as from harm." msgstr "" +"Es un traje ligero hecho a mano, es una combinación entre un chaleco " +"antibalas cortado y un traje acuático de neopreno reforzado. Protege tanto " +"del ambiente como del daño." #: lang/json/ARMOR_from_json.py msgid "hakama" @@ -8197,6 +8319,8 @@ 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 "" +"Es un sombrero muy elegante hecho de piel sintética. Es como la piel real " +"pero sin el sufrimiento, si la etiqueta dice la verdad. Muy abrigado." #: lang/json/ARMOR_from_json.py msgid "hard hat" @@ -8413,6 +8537,9 @@ msgid "" "exoskeletons of acidic ants. Covers the entire head; acid-resistant and " "very durable." msgstr "" +"Es un casco creado con exoesqueletos de hormigas ácidas, cuidadosamente " +"limpiados y biosilicificados. Cubre completamente la cabeza, es resistente " +"al ácido y muy duradero." #: lang/json/ARMOR_from_json.py msgid "football helmet" @@ -8598,6 +8725,8 @@ msgid "" "A massive customized, heavily armored Kevlar helmet, modified with leather " "reinforcements to provide maximum comfort and protection from harm." msgstr "" +"Es un casco personalizado grande reforzado con kevlar, modificado con " +"refuerzos de cuero para hacerlo más cómodo y brindar máxima protección." #: lang/json/ARMOR_from_json.py msgid "holy symbol" @@ -8646,6 +8775,8 @@ msgstr[1] "capuchas acuáticas de supervivencia" msgid "" "A customized armored neoprene and Kevlar hood, very strong and durable." msgstr "" +"Es una capucha personalizada de neopreno reforzada con kevlar, muy " +"resistente y duradera." #: lang/json/ARMOR_from_json.py msgid "light survivor hood" @@ -8685,6 +8816,8 @@ msgid "" "A customized, heavily armored leather and Kevlar hood, designed to provide " "comfort and protection from harm." msgstr "" +"Es una capucha personalizada reforzada de cuero y kevlar, diseñada para ser " +"cómoda y brindar protección." #: lang/json/ARMOR_from_json.py msgid "winter survivor hood" @@ -9254,6 +9387,9 @@ 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 "" +"Es un tradicional pañuelo del Oriente Medio que se usa en la cabeza. Puede " +"ser usado de distintas maneras para cubrir la cabeza y la boca de la " +"intemperie." #: lang/json/ARMOR_from_json.py msgid "keikogi" @@ -9460,6 +9596,8 @@ msgid "" "A tool to help set bones and hold them in place. It is specifically " "designed to fit Huge people." msgstr "" +"Es una pequeña madera que sirve para ayudar a mantener los huesos en su " +"lugar. Está específicamente diseñada para gente enorme." #: lang/json/ARMOR_from_json.py msgid "pair of leg warmers" @@ -9789,6 +9927,8 @@ msgid "" "Lightweight, custom built body armor made from Kevlar and tough fabric. " "Mostly waterproof." msgstr "" +"Es una armadura liviana para el torso, hecha de kevlar y tela resistente. Es" +" prácticamente impermeable." #: lang/json/ARMOR_from_json.py msgid "light survivor cargo pants" @@ -9816,6 +9956,9 @@ msgid "" " vest and a reinforced fabric jumpsuit. Protects from the elements as well " "as from harm." msgstr "" +"Es un traje ligero hecho a mano, es una combinación entre un chaleco " +"antibalas cortado y un mono de tela reforzado. Protege tanto del ambiente " +"como del daño." #: lang/json/ARMOR_from_json.py msgid "French maid clothes" @@ -9892,6 +10035,9 @@ msgid "" "A simple piece of cotton that straps over the mouth. Provides a small " "amount of protection from airborne illness and dust." msgstr "" +"Es un simple pedazo de algodón que cubre la boca. Brinda una protección " +"moderada contra el polvo y las enfermedades que se transmiten a través del " +"aire." #: lang/json/ARMOR_from_json.py msgid "Guy Fawkes mask" @@ -10231,6 +10377,8 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of long cotton pants lined with warm imitation fur." msgstr "" +"Es un par de pantalones largos y abigados de algodón forrado con piel " +"sintética." #: lang/json/ARMOR_from_json.py msgid "leather pants" @@ -10475,6 +10623,11 @@ msgid "" "protection. Like all DoubleTech power armor, the control and climate-" "regulation systems require direct skin contact." msgstr "" +"Es la Armadura de Poder DoubleTech, Mk II-H: este modelo ofrece varias " +"ventajas en relación a la Mk. I, como su mejorada protección contra los " +"peligros ambientales. Como todas las armaduras de poder de DoubleTech, los " +"controles y sistemas de regulación de ambiente requieren contacto directo " +"con la piel." #: lang/json/ARMOR_from_json.py msgid "basic power armor helmet" @@ -10997,6 +11150,8 @@ msgid "" "A large sleeping bag lined with fur, rolled for transport. It has a strap " "to carry it with." msgstr "" +"Es un bolsa de dormir grande forrada de piel, enrollada para transportar " +"cómodamente. Tiene una correa para llevarla." #: lang/json/ARMOR_from_json.py msgid "sleeveless duster" @@ -11589,6 +11744,8 @@ 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 "" +"Es un traje hecho a mano, una combinación entre un chaleco antibalas y un " +"mono de cuero reforzado. Protege tanto del ambiente como del daño." #: lang/json/ARMOR_from_json.py msgid "swag bag" @@ -11710,8 +11867,8 @@ msgstr "Es una camiseta de algodón sin mangas. Muy cómoda." #: lang/json/ARMOR_from_json.py msgid "work pants" msgid_plural "pairs of work pants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pantalones de trabajo" +msgstr[1] "pares de pantalones de trabajo" #. ~ Description for work pants #: lang/json/ARMOR_from_json.py @@ -12404,6 +12561,10 @@ msgid "" "excellent protection against fire and smoke. It requires a separate gas " "mask for full protection." msgstr "" +"Es un traje ignífugo que cubre completamente el cuerpo, utilizado por los " +"bomberos como protección contra el calor extremo. Son un poco restrictivos, " +"pero ofrecen una excelente protección contra el fuego y el humo. Necesita " +"una máscara de gas para brindar una protección completa." #: lang/json/ARMOR_from_json.py msgid "pair of golfing gloves" @@ -12622,6 +12783,8 @@ msgid "" "A fabric ammo pouch that can be strapped to your leg and capable of holding " "two magazine close at hand." msgstr "" +"Es una bolsa de tela para munición que puede ser atada a la pierna y permite" +" tener dos cargadores a mano." #: lang/json/ARMOR_from_json.py msgid "MBR vest (empty)" @@ -12677,6 +12840,9 @@ msgid "" "A Modular Bullet Resistant Vest. Kevlar plates have been inserted to " "improve its protection. It has four pouches capable of carrying magazines." msgstr "" +"Es un chaleco modular anti-balas. En sus ranuras interiores tiene placas de " +"kevlar para mejorar su protección. Tiene cuatro bolsas para llevar " +"cargadores." #: lang/json/ARMOR_from_json.py msgid "MBR vest (steel plating)" @@ -12797,12 +12963,13 @@ msgstr[1] "" #. ~ Use action holster_prompt for large grenade pouch. #: lang/json/ARMOR_from_json.py msgid "Stash grenades" -msgstr "" +msgstr "Almacenar granadas" #. ~ 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 "" +"Es un bolso que puede llevar hasta cuatro granadas de diferentes tipos." #: lang/json/ARMOR_from_json.py msgid "pair of cord sandals" @@ -12882,6 +13049,9 @@ msgid "" "Boots crafted from carefully cleaned and pruned biosilicified exoskeletons " "of acidic ants. Acid-resistant and very durable." msgstr "" +"Es un par de botas creadas con exoesqueletos de hormigas ácidas, " +"cuidadosamente limpiados y biosilicificados. Son resistentes al ácido y muy " +"duraderas." #: lang/json/ARMOR_from_json.py msgid "pair of combat boots" @@ -13128,8 +13298,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of golf shoes" msgid_plural "pairs of golf shoes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de zapatos de golf" +msgstr[1] "pares de zapatos de golf" #. ~ Description for pair of golf shoes #: lang/json/ARMOR_from_json.py @@ -14004,6 +14174,10 @@ msgid "" "cost of energy. Bullets will be stopped more often than swords and those in" " turn more often than massive objects." msgstr "" +"Un campo fino de fuerza rodea tu cuerpo, consumiendo energía. Cualquier cosa" +" que intente penetra este campo puede ser desviado, usando energía. Las " +"balas serán detenidas con más frecuencia que las espadas, y las espadas más " +"que los objetos masivos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Advanced Microreactor CBM" @@ -14406,8 +14580,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "EMP Projector CBM" msgid_plural "EMP Projector CBMs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB Proyector PEM" +msgstr[1] "MCB Proyector PEM" #. ~ Description for EMP Projector CBM #. ~ Description for EMP Projector @@ -14834,6 +15008,10 @@ msgid "" "While active, they increase the rate that you learn skills, and give you " "near-perfect memory of skills and terrain." msgstr "" +"Es un conjunto muy avanzado de discos de almacenamiento de quántum, usados " +"para mejorar la memoria. Cuando está activo, incrementan el rango en que " +"aprendés habilidades, y te da una memoria casi perfecta de las habilidades y" +" del terreno." #: lang/json/BIONIC_ITEM_from_json.py msgid "Metabolic Interchange CBM" @@ -15531,8 +15709,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Titanium Skeletal Bracing CBM" msgid_plural "Titanium Skeletal Bracing CBMs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB de Esqueleto de Titanio" +msgstr[1] "MCB de Esqueleto de Titanio" #. ~ Description for Titanium Skeletal Bracing CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -15541,12 +15719,15 @@ msgid "" "structure. These artificial enhancers strengthen the knees and elbows, " "allowing you to carry more weight." msgstr "" +"Es un conjunto de bisagras, resortes y otros aparatos sintéticos para la " +"estructura esquelética. Estas mejoras artificiales fortalecen las rodillas y" +" los codos, lo que te permite soportar más peso." #: lang/json/BIONIC_ITEM_from_json.py msgid "Kinetic Shock Absorbers CBM" msgid_plural "Kinetic Shock Absorbers CBMs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB Amortiguadores Cinéticos" +msgstr[1] "MCB Amortiguadores Cinéticos" #. ~ Description for Kinetic Shock Absorbers CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -15596,12 +15777,16 @@ msgid "" "creating fires as it moves and an explosion on impact. Close range use is " "highly discouraged." msgstr "" +"Es un poderoso generador de energía iónica que está implantado en tu pecho. " +"Dispara un poderoso y continuo rayo de energía. El rayo final incendia " +"oxígeno creando fuego mientras se va moviendo y explotando al impactar. No " +"se recomienda utilizarlo a poca distancia del objetivo." #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Regeneration System CBM" msgid_plural "Synaptic Regeneration System CBMs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB Sistema de Regeneración Sináptica" +msgstr[1] "MCB Sistema de Regeneración Sináptica" #. ~ Description for Synaptic Regeneration System CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -16247,13 +16432,13 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Break a Leg!" msgid_plural "Break a Leg!" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "¡Mucha mierda!" +msgstr[1] "¡Mucha mierda!" #. ~ Description for Break a Leg! #: lang/json/BOOK_from_json.py msgid "The Kids' Guide to Acting and Stagecraft." -msgstr "" +msgstr "Es la Guía de Actuación y Arte Teatral para Niños." #: lang/json/BOOK_from_json.py msgid "AAA Guide" @@ -16963,7 +17148,7 @@ msgstr[1] "" #. ~ Description for First Aid Kit Instruction Booklet #: lang/json/BOOK_from_json.py msgid "Illustrated how-to guide for your first aid kit." -msgstr "" +msgstr "Es una guía ilustrada acerca de tu equipo de primeros auxilios." #: lang/json/BOOK_from_json.py msgid "Guns n Ammo" @@ -17666,6 +17851,8 @@ 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 "" +"Es una novela gráfica acerca de una joven mujer viviendo en Irán durante los" +" 80, viendo cómo el mundo cambia a su alrededor cuando Irak invade su país." #: lang/json/BOOK_from_json.py msgid "crime novel" @@ -18840,6 +19027,8 @@ msgstr[1] "" msgid "" "A game where one draws an image, and the others attempt to guess what it is." msgstr "" +"Es un juego donde uno dibuja una imagen y los demás deben intentar adivinar " +"qué es." #: lang/json/BOOK_from_json.py msgid "Capitalism" @@ -18853,6 +19042,8 @@ msgid "" "A game where players traverse around the board buying property and swindling" " their friends." msgstr "" +"Es un juego donde los jugadores van alrededor del tablero comprando " +"propiedades y estafando a sus amigos." #: lang/json/BOOK_from_json.py msgid "Blobs and Bandits" @@ -18878,6 +19069,7 @@ msgstr[1] "" msgid "" "A strategy game featuring a set of tiny figurines of fantasy creatures." msgstr "" +"Es un juego de estrategia con pequeños muñequitos de criaturas fantásticas." #: lang/json/BOOK_from_json.py msgid "Battlehammer 20k" @@ -18916,6 +19108,8 @@ msgid "" "A game where players try to guess where the opponent placed their ships on " "the board." msgstr "" +"Es un juego donde los jugadores intentan adivinar el lugar donde el oponente" +" a ubicado sus barcos en el tablero." #: lang/json/BOOK_from_json.py msgid "Murder Mystery" @@ -18948,8 +19142,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Hacking Robots for Fun & Profit" msgid_plural "Hacking Robots for Fun & Profit" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Hackeando Robots por Diversión y Beneficio" +msgstr[1] "Hackeando Robots por Diversión y Beneficio" #. ~ Description for Hacking Robots for Fun & Profit #: lang/json/BOOK_from_json.py @@ -18957,12 +19151,14 @@ msgid "" "A book on illegaly obtaining, reprogramming, and modifying robots. It has " "lots of helpful step-by-step guides and example blueprints." msgstr "" +"Es un libro que trata sobre la manera ilegal de obtener, reprogramar o " +"modificar robots. Tiene muchas guías paso a paso con diseños de ejemplo." #: lang/json/BOOK_from_json.py msgid "Popular Robotics" msgid_plural "Popular Robotics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Robótica Popular" +msgstr[1] "Robótica Popular" #. ~ Description for Popular Robotics #: lang/json/BOOK_from_json.py @@ -19042,15 +19238,17 @@ 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 "" +"Es la piel cruda de un monstruo, convertida rápidamente en un bolso para " +"llevar cosas. Igual se va a empezar a pudrir, necesita ser curada y curtida." #: lang/json/COMESTIBLE_from_json.py msgid "bird litter" -msgstr "" +msgstr "basura de pájaro" #. ~ Description for bird litter #: lang/json/COMESTIBLE_from_json.py msgid "Bird dropping, feathers, and soiled bits of rubbish." -msgstr "" +msgstr "Son cagadas, plumas y pedazos mugre de pájaro." #: lang/json/COMESTIBLE_from_json.py msgid "cow pie" @@ -19086,7 +19284,7 @@ msgstr "" #. ~ Description for roach dirt #: lang/json/COMESTIBLE_from_json.py msgid "Large black pellets of rotting material." -msgstr "" +msgstr "Son bolitas grandes y negras de materia en descomposición." #: lang/json/COMESTIBLE_from_json.py msgid "bleach" @@ -19274,37 +19472,37 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Spice" -msgstr "" +msgstr "Condimento" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "riesling" -msgstr[1] "rieslings" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "Vino blanco espumante, hecho de la uva más noble del mundo." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "chardonnay" -msgstr[1] "chardonnays" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "El vino más popular de Estados Unidos, y con razón." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "cabernet sauvignon" -msgstr[1] "cabernet sauvignons" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -19336,8 +19534,9 @@ msgstr[1] "whisky" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "¡Hecho de, por y para los verdaderos coroneles sureños!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -19347,8 +19546,10 @@ msgstr[1] "vodka" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "En la Rusia soviética, ¡el vodka te tomaba a ti!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -19358,8 +19559,10 @@ msgstr[1] "gins" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Tiene un olorcito a bayas del saúco, pero más que nada a alcohol." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -19369,8 +19572,10 @@ msgstr[1] "ron" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "Si tomas esto te vas a sentir como un pirata. O no." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -19380,8 +19585,10 @@ msgstr[1] "tequilas" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "¡No te comas el gusano! Espera, esta botella no tiene gusano." +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -19483,10 +19690,9 @@ msgstr[1] "tés helados Long Island" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" -"Una mezcla de licores de sabor increíble y fuerte, que de alguna manera, " -"termina no teniendo el gusto de ninguno de ellos." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -19494,8 +19700,10 @@ msgstr "cóctel destornillador" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "La bebida favorito del mecánico borracho subrepticio." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -19529,10 +19737,9 @@ msgstr[1] "cervezas" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"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 "" -"Mejor beberla fría, en un vaso de cristal, con una lima... pero no tienes " -"tanta suerte." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -19600,12 +19807,10 @@ msgstr[1] "aguardientes caseros" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"El más fuerte, el más puro, el mejor aguardiente a la vieja escuela. " -"Garantiza que le hará olvidar todo acerca del cataclismo, o le devolvemos su" -" visión." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -19616,11 +19821,9 @@ msgstr[1] "cervezas pilsen europea" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Una pilsener importada de Europa. Mejor beberla fría, en vaso de cristal - " -"pero no tienes tanta suerte." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -19674,11 +19877,9 @@ msgstr[1] "cervezas belgas" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" -"Es una cerveza sabrosa y abundante elaborada por monjes en Bélgica. Mejor " -"beberla en un cáliz." #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -19755,12 +19956,9 @@ msgstr "kalimotxo" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Es vino con refresco de cola. No es tan cutre como te podrías imaginar. Esta" -" bebida es bastante popular entre los jóvenes y/o los pobres en algunos " -"países." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -19800,7 +19998,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "honey ball" -msgstr "" +msgstr "bolita de miel" #. ~ Description for honey ball #: lang/json/COMESTIBLE_from_json.py @@ -20012,7 +20210,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead must" -msgstr "" +msgstr "mosto de hidromiel con hierbas" #. ~ Description for spiced mead must #: lang/json/COMESTIBLE_from_json.py @@ -20091,7 +20289,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "curdling milk" -msgstr "" +msgstr "leche cuajando" #. ~ Description for curdling milk #: lang/json/COMESTIBLE_from_json.py @@ -20104,7 +20302,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "unfermented vinegar" -msgstr "" +msgstr "vinagre sin fermentar" #. ~ Description for unfermented vinegar #: lang/json/COMESTIBLE_from_json.py @@ -20205,7 +20403,9 @@ msgstr[1] "" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20216,7 +20416,11 @@ msgstr[1] "" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." +msgid "" +"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." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20225,8 +20429,10 @@ msgstr "carne cocinada" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Es carne recién cocinada. Muy nutritiva." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -20241,11 +20447,10 @@ msgstr "menudencias crudas" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Son órganos internos y entrañas sin cocinar. Poco apetitoso pero lleno de " -"vitaminas esenciales." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -20256,10 +20461,10 @@ msgstr[1] "achuras cocinadas" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Son órganos internos y entrañas recién cocinados. Poco apetitoso pero lleno " -"de vitaminas esenciales." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -20270,11 +20475,13 @@ msgstr[1] "despojos en escabeche" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Vísceras cocidas, conservadas en salmuera. Repleto de vitaminas esenciales," -" sabe mejor que huele." +"Esto es una masa de entrañas y órganos, preservados en salmuera. Lleno de " +"vitaminas esenciales y aunque tiene el aspecto de un espécimen de " +"laboratorio, tiene un gusto bastante sabroso." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -20285,11 +20492,9 @@ msgstr[1] "despojos de conservas" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Vísceras recién cocinadas, conservadas por enlatado. Poco apetecible, pero " -"lleno de vitaminas esenciales." #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -20355,9 +20560,12 @@ msgstr "carne ahumada" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." msgstr "" -"Carne sabrosa que ha sido ahumada para poder preservarla por mucho tiempo." +"Es una carne sabrosa que ha sido ahumada para preservarla. Puede ser ahumada" +" aún más para deshidratarla completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -20367,40 +20575,50 @@ msgstr[1] "pescados ahumados" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." msgstr "" -"Es un sabroso pescado que ha sido ahumado para poder preservarlo por mucho " -"tiempo." +"Es un pescado sabroso que ha sido ahumado para preservarlo mucho tiempo. " +"Puede ser ahumado aún más para deshidratarlo completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" -msgstr "" +msgstr "cabrón ahumado" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" -"Una porción muy ahumada de carne humana. Aguanta por mucho tiempo y tiene " -"bastante buen sabor, si es que te gustan estas cosas." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20409,8 +20627,14 @@ msgstr "" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Es el hígado de un animal. Aunque no a muchos le gusta su textura, es una de" +" las partes animales con más vitaminas. Está muy bueno con salchichas, pero " +"solo es un poco menos apetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -20418,7 +20642,10 @@ msgstr "" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20430,7 +20657,7 @@ msgstr[1] "" #. ~ Description for raw brains #: lang/json/COMESTIBLE_from_json.py msgid "The brain from an animal. You wouldn't want to eat this raw..." -msgstr "" +msgstr "Es el cerebro de un animal. No vas a querer comerte esto crudo..." #: lang/json/COMESTIBLE_from_json.py msgid "cooked brains" @@ -20440,7 +20667,9 @@ msgstr[1] "" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" +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 "" #: lang/json/COMESTIBLE_from_json.py @@ -20449,7 +20678,9 @@ msgstr "" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20467,7 +20698,9 @@ msgstr "" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20557,12 +20790,9 @@ msgstr "hueso infectado" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" -"Es un hueso podrido y frágil de alguna criatura no natural, o de otra cosa. " -"Se puede usar para hacer algo, como carbón. Y te lo puedes comer pero te va " -"a caer mal." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -20726,6 +20956,12 @@ msgid "" "hands. After everything you've seen lately, you can't help but remember old" " sayings about eating the hearts of your enemies..." msgstr "" +"Es una enorme masa gruesa de carne que recuerda superficialmente al corazón " +"de un mamífero, cubierto de estrías y del tamaño de tu cabeza. Sigue estando" +" lleno de...., eh... lo que sea que sirva de sangre en un jabberwock, y se " +"siente pesado en tus manos. Después de todo lo que viste por estos días, no " +"podés evitar recordar ese antiguo dicho de comerse el corazón de tus " +"enemigos..." #: lang/json/COMESTIBLE_from_json.py msgid "desiccated putrid heart" @@ -20760,7 +20996,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "curdled milk" -msgstr "" +msgstr "leche cuajada" #. ~ Description for curdled milk #: lang/json/COMESTIBLE_from_json.py @@ -20906,8 +21142,11 @@ msgstr[1] "café" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Es café. El ritual mañanero del mundo pre-apocalíptico." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -20940,8 +21179,8 @@ msgstr[1] "leche condensada" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -21011,8 +21250,10 @@ msgstr "bebida energética" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Popular entre aquellos que necesitan quedarse hasta tarde trabajando." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -21138,9 +21379,9 @@ msgstr "café con leche" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." msgstr "" -"El café con leche es casi la bebida oficial de la mañana en varios países." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -21148,11 +21389,8 @@ msgstr "té con leche" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." +msgid "Hot tea with cold milk." msgstr "" -"Usualmente, se consume a la mañana, el té con leche es común en varios " -"países." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -21263,8 +21501,10 @@ msgstr "te" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Es té, la bebida de los caballeros, siempre." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -21319,8 +21559,8 @@ msgstr "salsa de tomate" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Es salsa de tomate, rica rica." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -21341,8 +21581,10 @@ msgstr[1] "mayonesa" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "La vieja y querida mayonesa. Queda muy bien en los sandwiches." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -21350,8 +21592,8 @@ msgstr "ketchup" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "El viejo y querido ketchup. Queda muy bien en los perritos calientes." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -21361,8 +21603,10 @@ msgstr[1] "mostaza" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "La vieja y querida mostaza. Queda muy bien en las hamburguesas." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -21409,8 +21653,10 @@ msgstr[1] "vinagre" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Un vinagre blanco muy agrio." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -21431,10 +21677,10 @@ msgstr[1] "melazas" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." +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 "" -"Un jarabe extremadamente azucarado que tiene el aspecto de la brea, con un " -"pequeño regusto amargo." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -21477,7 +21723,7 @@ msgstr "huevo de gallina" #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" -msgstr "" +msgstr "huevo de urogallo" #: lang/json/COMESTIBLE_from_json.py msgid "crow egg" @@ -21535,6 +21781,8 @@ msgstr "huevo de araña" #: lang/json/COMESTIBLE_from_json.py msgid "A fist-sized egg from a giant spider. Incredibly gross." msgstr "" +"Es un huevo del tamaño de tu puño, de una araña gigante. Increíblemente " +"asqueroso." #: lang/json/COMESTIBLE_from_json.py msgid "roach egg" @@ -21544,6 +21792,8 @@ msgstr "huevo de cucaracha" #: lang/json/COMESTIBLE_from_json.py msgid "A fist-sized egg from a giant roach. Incredibly gross." msgstr "" +"Es un huevo del tamaño de tu puño, de una cucaracha gigante. Increíblemente " +"asqueroso." #: lang/json/COMESTIBLE_from_json.py msgid "insect egg" @@ -21683,8 +21933,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "candy ice cream" msgid_plural "candy ice cream scoops" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "helado de caramelo" +msgstr[1] "bolas de helado de caramelo" #. ~ Description for candy ice cream #: lang/json/COMESTIBLE_from_json.py @@ -21755,6 +22005,8 @@ msgid "" "Italian-style ice cream. Less airy, and more dense, giving it a richer " "flavor and texture." msgstr "" +"Es un helado de estilo italiano. Menos aireado, más denso, lo que le da " +"mayor sabor y textura." #: lang/json/COMESTIBLE_from_json.py msgid "cooked strawberry" @@ -21921,6 +22173,8 @@ msgid "" "An irradiated elderberry will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" +"Una baya del saúco irradiada se va a mantener apta para comer casi para " +"siempre. Está esterilizada con radiación, así que es seguro comerla." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated mulberry" @@ -22716,8 +22970,10 @@ msgstr[1] "jarabe de arce" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Dulce y delicioso, verdadero jarabe de arce de Vermont." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -22762,7 +23018,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate-covered coffee bean" -msgstr "" +msgstr "grano de café cubierto con chocolate" #. ~ Description for chocolate-covered coffee bean #: lang/json/COMESTIBLE_from_json.py @@ -22858,6 +23114,8 @@ msgid "" "Sugary breakfast cereal with marshmallows. It takes you back to your " "childhood." msgstr "" +"Son cereales azucarados para el desayuno, con malvaviscos. Te hace volver a " +"tu infancia." #: lang/json/COMESTIBLE_from_json.py msgid "corn cereal" @@ -22871,8 +23129,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tortilla chips" +msgstr[1] "tortilla chips" #. ~ Description for tortilla chips #: lang/json/COMESTIBLE_from_json.py @@ -22880,6 +23138,8 @@ msgid "" "Salted chips made from corn tortillas, could really use some cheese, maybe " "some beef." msgstr "" +"Son nachos de maíz salados, a las que les vendría bien un poco de queso, y " +"carne también." #: lang/json/COMESTIBLE_from_json.py msgid "nachos with cheese" @@ -22945,6 +23205,7 @@ msgid "" "Salted chips made from corn tortillas with ground meat and smothered in " "cheese. Delicious." msgstr "" +"Son nachos de maíz salados con carne picada y queso cremoso. Delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "pork stick" @@ -23011,13 +23272,13 @@ msgstr "" "rápido." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" -msgstr "pollo bien frito" +msgid "deep-fried chicken" +msgstr "" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "Un puñado de pollo frito. Tan mal que es bueno." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -23125,7 +23386,7 @@ msgstr "aro de cebolla" #. ~ Description for onion ring #: lang/json/COMESTIBLE_from_json.py msgid "Battered and fried onions. Crunchy and delicious." -msgstr "" +msgstr "Son aros de cebolla fritos. Crujientes y deliciosos." #: lang/json/COMESTIBLE_from_json.py msgid "uncooked hot dogs" @@ -23189,8 +23450,8 @@ msgstr "" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "" +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "Es una salchicha grande y cruda, lista para ahumar o para cocinar." #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -23200,6 +23461,17 @@ msgstr "salchicha" #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "" +"Es una gran salchicha que ha sido curada y ahumada para poder preservarla " +"por mucho tiempo." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "Es una gran salchicha que ha sido cocinada." #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" @@ -23223,6 +23495,19 @@ msgstr[1] "salchichas dulces" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "ternera real" @@ -23400,8 +23685,10 @@ msgstr "fiambre" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Deliciosos pedazos de fiambre. Se puede comer frío." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -23410,11 +23697,10 @@ msgstr "bolonia" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" -"Un fiambre que viene cortado en lochas. Su primer nombre no es Oscar. Se " -"puede comer frío." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -23946,11 +24232,9 @@ msgstr "bolonia especial" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Un fiambre hecho con carne humana que viene en lochas. Su primer nombre " -"podría haber sido Oscar. Se puede comer frío." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -24138,7 +24422,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chump cheeseburger" -msgstr "" +msgstr "tonti-hamburguesa con queso" #. ~ Description for chump cheeseburger #: lang/json/COMESTIBLE_from_json.py @@ -24192,8 +24476,40 @@ msgstr "" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" +"Es una salchicha de cerdo grande y cruda, lista para ahumar o cocinar." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" +"Es una gran salchicha de carne humana que ha sido cocinada. Huele tan " +"apetitoso como puede oler un humano." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." msgstr "" +"Es un tipo de salchicha alemana hecha con carne humana picada muy fina y " +"pensada para ser frita o asada. Es mejor comerla caliente y recién hecha. " +"Dicho sea de paso, se usa cualquier humano, no es necesario que sean " +"alemanes." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -24316,7 +24632,7 @@ msgstr "venda improvisada" #. ~ Description for makeshift bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. Better than nothing." -msgstr "" +msgstr "Es un venda común de tela. Mejor que nada." #: lang/json/COMESTIBLE_from_json.py msgid "bleached makeshift bandage" @@ -24593,6 +24909,8 @@ msgstr "desinfectante improvidado" msgid "" "Makeshift disinfectant made from ethanol. Can be used to disinfect a wound." msgstr "" +"Es un desinfectante improvisado, hecho con etanol. Puede ser utilizado para " +"desinfectar una herida." #: lang/json/COMESTIBLE_from_json.py src/addiction.cpp msgid "diazepam" @@ -24870,7 +25188,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "poppy painkiller" -msgstr "" +msgstr "analgésico de amapola" #. ~ Use action activation_message for poppy painkiller. #: lang/json/COMESTIBLE_from_json.py @@ -24890,7 +25208,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "poppy sleep" -msgstr "" +msgstr "sueño de amapola" #. ~ Description for poppy sleep #: lang/json/COMESTIBLE_from_json.py @@ -25091,10 +25409,13 @@ msgid "" "White calcium tablets. Widely used by elderly people with osteoporosis as a" " method to supplement calcium before the apocalypse." msgstr "" +"Son pastillas blancas de calcio. Antes del apocalipsis, eran usadas " +"comúnmente por gente grande con osteoporosis como una manera de suplementar " +"el calcio." #: lang/json/COMESTIBLE_from_json.py msgid "bone meal tablet" -msgstr "" +msgstr "pastilla de harina de hueso" #. ~ Description for bone meal tablet #: lang/json/COMESTIBLE_from_json.py @@ -25102,6 +25423,8 @@ msgid "" "Homemade calcium supplement made out of bone meal. Tastes horrible and is " "hard to swallow but it does its job." msgstr "" +"Es un suplemento de calcio casero, hecho con harina de hueso. Tiene un gusto" +" horrible y es difícil de tragar, pero sirve." #: lang/json/COMESTIBLE_from_json.py msgid "flavored bone meal tablet" @@ -25133,7 +25456,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "injectable vitamin B" -msgstr "" +msgstr "vitamina B inyectable" #. ~ Use action activation_message for injectable vitamin B. #: lang/json/COMESTIBLE_from_json.py @@ -25209,8 +25532,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "disinfectant soaked rag" msgid_plural "disinfectant soaked rags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trapo empapado de desinfectante" +msgstr[1] "trapos empapados de desinfectante" #. ~ Description for disinfectant soaked rag #: lang/json/COMESTIBLE_from_json.py @@ -25244,6 +25567,22 @@ msgid "" "it boosts the body's resistance against them. One dose lasts twelve hours." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -25259,6 +25598,11 @@ msgid "" "very potent, or highly experimental. Holding it, all the little aches and " "pains seem to fade, just for a moment..." msgstr "" +"Es una cápsula roja de gel del tamaño de tu pulgar, rellena con un líquido " +"espeso y aceitoso que cambia entre el púrpura y el negro a intervalos " +"impredecibles, lleno de lunares grises pequeños. Pensando el lugar de donde " +"lo sacaste, puede ser muy potente, o muy experimental. Al sostenerlo, todos " +"los pequeños dolores parecen desaparecer, solo por un momento..." #: lang/json/COMESTIBLE_from_json.py msgid "MRE entree" @@ -25267,7 +25611,7 @@ msgstr "" #. ~ Description for MRE entree #: lang/json/COMESTIBLE_from_json.py msgid "A generic MRE entree, you shouldn't see this." -msgstr "" +msgstr "Es la entrada genérica de un MRE, no deberías ver esto." #: lang/json/COMESTIBLE_from_json.py msgid "chili & beans entree" @@ -25301,6 +25645,9 @@ msgid "" "The chicken noodle entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de pollo y fideos. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "spaghetti entree" @@ -25312,6 +25659,9 @@ msgid "" "The spaghetti entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de espagueti. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chicken chunks entree" @@ -25356,6 +25706,9 @@ msgid "" "The meatballs & marinara entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de albóndigas con marinera. Está " +"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " +"ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "beef stew entree" @@ -25367,6 +25720,9 @@ msgid "" "The beef stew entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de estofado de carne. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chili & macaroni entree" @@ -25378,6 +25734,9 @@ msgid "" "The chili & macaroni entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de macarrones con chili. Está esterilizado " +"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " +"empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "vegetarian taco entree" @@ -25389,6 +25748,9 @@ msgid "" "The vegetarian taco entree from an MRE. Sterilized using radiation, so it's" " safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de taco vegetariano. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "macaroni & marinara entree" @@ -25400,6 +25762,9 @@ msgid "" "The macaroni & marinara entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de macarrones con marinera. Está " +"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " +"ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" @@ -25444,6 +25809,9 @@ msgid "" "The chicken burrito bowl entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de burrito de pollo. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "maple sausage entree" @@ -25455,6 +25823,9 @@ msgid "" "The maple sausage entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de salchicha de arce. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "ravioli entree" @@ -25521,6 +25892,9 @@ msgid "" "The chicken pesto & pasta entree from an MRE. Sterilized using radiation, " "so it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" +"Es el plato principal de un MRE de pasta con pesto y pollo. Está " +"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " +"ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "southwest beef & beans entree" @@ -25545,6 +25919,9 @@ msgid "" "Sterilized using radiation, so it's safe to eat. Exposed to the atmosphere," " it has started to go bad." msgstr "" +"Los terroríficos cuatro dedos de la muerte. Parece tener varias décadas de " +"antigüedad. Está esterilizado con radiación, así que es seguro comerlo. Al " +"ser expuesto al ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "cooked mushroom" @@ -25634,7 +26011,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "abstract iv mutagen flavor" -msgstr "" +msgstr "sabor abstracto de mutágeno iv" #. ~ Description for abstract iv mutagen flavor #: lang/json/COMESTIBLE_from_json.py @@ -25647,7 +26024,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mutagenic serum" -msgstr "" +msgstr "suero mutágeno" #: lang/json/COMESTIBLE_from_json.py msgid "alpha serum" @@ -25655,7 +26032,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "beast serum" -msgstr "" +msgstr "suero de bestia" #. ~ Description for beast serum #. ~ Description for feline serum @@ -25671,7 +26048,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bird serum" -msgstr "" +msgstr "suero de pájaro" #. ~ Description for bird serum #: lang/json/COMESTIBLE_from_json.py @@ -25710,7 +26087,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chimera serum" -msgstr "" +msgstr "suero de quimera" #. ~ Description for chimera serum #: lang/json/COMESTIBLE_from_json.py @@ -25723,7 +26100,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "elf-a serum" -msgstr "" +msgstr "suero elf-a" #. ~ Description for elf-a serum #: lang/json/COMESTIBLE_from_json.py @@ -25755,11 +26132,11 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lizard serum" -msgstr "" +msgstr "suero de lagarto" #: lang/json/COMESTIBLE_from_json.py msgid "lupine serum" -msgstr "" +msgstr "suero de lobuno" #: lang/json/COMESTIBLE_from_json.py msgid "medical serum" @@ -25776,7 +26153,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "plant serum" -msgstr "" +msgstr "suero de planta" #. ~ Description for plant serum #: lang/json/COMESTIBLE_from_json.py @@ -25789,11 +26166,11 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raptor serum" -msgstr "" +msgstr "suero de raptor" #: lang/json/COMESTIBLE_from_json.py msgid "rat serum" -msgstr "" +msgstr "suero de rata" #: lang/json/COMESTIBLE_from_json.py msgid "slime serum" @@ -25847,6 +26224,8 @@ msgid "" "A thick, soupy red liquid. It looks and smells disgusting, and seems to " "bubble with an intelligence of its own..." msgstr "" +"Es un líquido espeso y rojo. Tiene una apariencia y olor desagradables, y " +"parece bullir con inteligencia propia..." #: lang/json/COMESTIBLE_from_json.py msgid "alpha mutagen" @@ -25862,7 +26241,7 @@ msgstr "Un cóctel extremadamente raro de mutágeno." #: lang/json/COMESTIBLE_from_json.py msgid "beast mutagen" -msgstr "" +msgstr "mutágeno de bestia" #: lang/json/COMESTIBLE_from_json.py msgid "bird mutagen" @@ -25890,7 +26269,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fish mutagen" -msgstr "" +msgstr "mutágeno de pez" #: lang/json/COMESTIBLE_from_json.py msgid "insect mutagen" @@ -25902,7 +26281,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lupine mutagen" -msgstr "" +msgstr "mutágeno de lobuno" #: lang/json/COMESTIBLE_from_json.py msgid "medical mutagen" @@ -25918,7 +26297,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rat mutagen" -msgstr "" +msgstr "mutágeno de rata" #: lang/json/COMESTIBLE_from_json.py msgid "slime mutagen" @@ -25967,7 +26346,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "purifier smart shot" -msgstr "" +msgstr "dosis de purificante inteligente" #. ~ Description for purifier smart shot #: lang/json/COMESTIBLE_from_json.py @@ -26077,7 +26456,7 @@ msgstr[1] "" #. ~ Description for handful of roasted pistachios #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from an pistachio tree." -msgstr "" +msgstr "Es un puñado de frutos secos tostados del árbol del pistacho." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled almonds" @@ -26088,13 +26467,13 @@ msgstr[1] "" #. ~ Description for handful of shelled almonds #: lang/json/COMESTIBLE_from_json.py msgid "A handful of nuts from an almond tree, their shells have been removed." -msgstr "" +msgstr "Es un puñado de frutos secos del almendro, sin cáscara." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted almonds" msgid_plural "handfuls of roasted almonds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de almendras tostadas" +msgstr[1] "puñados de almendras tostadas" #. ~ Description for handful of roasted almonds #: lang/json/COMESTIBLE_from_json.py @@ -26161,8 +26540,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled walnuts" msgid_plural "handfuls of shelled walnuts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de nueces sin cáscara" +msgstr[1] "puñados de nueces sin cáscara" #. ~ Description for handful of shelled walnuts #: lang/json/COMESTIBLE_from_json.py @@ -26174,8 +26553,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted walnuts" msgid_plural "handfuls of roasted walnuts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de nueces tostadas" +msgstr[1] "puñados de nueces tostadas" #. ~ Description for handful of roasted walnuts #: lang/json/COMESTIBLE_from_json.py @@ -26198,8 +26577,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted chestnuts" msgid_plural "handfuls of roasted chestnuts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de castañas tostadas" +msgstr[1] "puñados de castañas tostadas" #. ~ Description for handful of roasted chestnuts #: lang/json/COMESTIBLE_from_json.py @@ -26209,19 +26588,19 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted acorns" msgid_plural "handfuls of roasted acorns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de bellotas tostadas" +msgstr[1] "puñados de bellotas tostadas" #. ~ Description for handful of roasted acorns #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a oak tree." -msgstr "" +msgstr "Es un puñado de frutos secos tostados del árbol del roble." #: lang/json/COMESTIBLE_from_json.py msgid "handful of hazelnuts" msgid_plural "handful of shelled hazelnuts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de avellanas sin cáscara" +msgstr[1] "puñados de avellanas sin cáscara" #. ~ Description for handful of hazelnuts #: lang/json/COMESTIBLE_from_json.py @@ -26233,8 +26612,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted hazelnuts" msgid_plural "handfuls of roasted hazelnuts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puñado de avellanas tostadas" +msgstr[1] "puñados de avellanas tostadas" #. ~ Description for handful of roasted hazelnuts #: lang/json/COMESTIBLE_from_json.py @@ -26315,14 +26694,15 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "foie gras" msgid_plural "foie gras" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "foie gras" +msgstr[1] "foie gras" #. ~ Description for foie gras #: lang/json/COMESTIBLE_from_json.py msgid "" "Thought it's not technically foie gras, you don't have to think about that." msgstr "" +"Aunque técnicamente no es foie gras, no es necesario que pienses en eso." #: lang/json/COMESTIBLE_from_json.py msgid "liver & onions" @@ -26337,13 +26717,13 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fried liver" -msgstr "" +msgstr "hígado frito" #. ~ 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 "" +msgstr "¡No hay nada más sabroso que algo bien frito!" #: lang/json/COMESTIBLE_from_json.py msgid "humble pie" @@ -26371,6 +26751,8 @@ msgstr[1] "" msgid "" "A traditional Danish pate. Probably better if you spread it on some bread." msgstr "" +"Es un plato tradicional danés. Probablemente sea mejor que lo pongas sobre " +"un pedazo de pan." #: lang/json/COMESTIBLE_from_json.py msgid "fried brain" @@ -26379,7 +26761,7 @@ msgstr "cerebro frito" #. ~ Description for fried brain #: lang/json/COMESTIBLE_from_json.py msgid "I don't know what you were expecting. It's deep fried." -msgstr "" +msgstr "No sé qué esperabas. Está frito." #: lang/json/COMESTIBLE_from_json.py msgid "deviled kidney" @@ -26388,7 +26770,7 @@ msgstr "" #. ~ Description for deviled kidney #: lang/json/COMESTIBLE_from_json.py msgid "A delicious way to prepare kidneys." -msgstr "" +msgstr "Es una deliciosa manera de preparar riñón." #: lang/json/COMESTIBLE_from_json.py msgid "grilled sweetbread" @@ -26407,6 +26789,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Livers preserved in a can. Chock full of B vitamins!" msgstr "" +"Son pedazos de hígado preservados en una lata. ¡Repletos de vitaminas B!" #: lang/json/COMESTIBLE_from_json.py msgid "diet pill" @@ -26677,6 +27060,8 @@ msgid "" "This is a human brain soaked in a solution of highly toxic formaldehyde. " "Eating this would be a terrible idea." msgstr "" +"Esto es un cerebro humano remojado en una solución muy tóxica de " +"formaldehído. Sería una terrible idea comerse esto." #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" @@ -26825,67 +27210,67 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "Cítrico muy agrio. Se puede comer si quieres." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "arándano" -msgstr[1] "arándanos" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Son azules, pero eso no significa que sean de la realeza." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "fresa" -msgstr[1] "fresas" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Es una baya sabrosa y jugosa. A menudo crece silvestre en los campos." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "arándanos rojos" -msgstr[1] "arándanos rojos" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "Arándanos rojos y agrios. Buenos para la salud." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "frambuesa" -msgstr[1] "frambuesas" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Una frambuesa roja y dulce." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -26893,23 +27278,23 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" msgstr[0] "" msgstr[1] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" msgstr[0] "" msgstr[1] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "" @@ -26946,12 +27331,12 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Una fruta cítrica, cuyo gusto va desde lo agrio hasta lo semidulce." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "cereza" -msgstr[1] "cerezas" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Una fruta dulce y roja que crece en árboles." @@ -26969,12 +27354,12 @@ msgstr "" "digestión." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "uva" -msgstr[1] "uvas" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "" @@ -27027,12 +27412,12 @@ msgid "A large and very sweet fruit." msgstr "Una fruta grande y muy dulce." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "zarzamora" -msgstr[1] "zarzamoras" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "Un primo oscuro de la frambuesa." @@ -27079,10 +27464,12 @@ msgstr "" " delicioso." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "albaricoque" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Una fruta de cáscara suave, parecida al melocotón." @@ -27144,8 +27531,8 @@ msgstr "repollo" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "Es el cogollo abundante de un crujiente repollo blanco." +msgid "Crisp white cabbage." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -27241,8 +27628,8 @@ msgstr "pepino" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "Es de la familia de las calabazas, no es sabroso pero es muy jugoso." +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -27702,8 +28089,8 @@ msgstr "Son unas esporas de hongo. Tal vez puedas plantarlas." #: lang/json/COMESTIBLE_from_json.py msgid "hop rhizomes" msgid_plural "hop rhizomes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rizomas de lúpulo" +msgstr[1] "rizomas de lúpulo" #. ~ Description for hop rhizomes #: lang/json/COMESTIBLE_from_json.py @@ -27725,6 +28112,10 @@ msgstr[1] "semillas de zarzamora" msgid "Some blackberry seeds." msgstr "Algunas semillas de zarzamora." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -27736,6 +28127,10 @@ msgstr[1] "semillas de arándano" msgid "Some blueberry seeds." msgstr "Son unas semillas de arándano." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -27747,6 +28142,10 @@ msgstr[1] "semillas de arándanos rojos" msgid "Some cranberry seeds." msgstr "Son unas semillas de arándano rojo." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -27758,6 +28157,10 @@ msgstr[1] "" msgid "Some huckleberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -27769,6 +28172,10 @@ msgstr[1] "" msgid "Some mulberry seeds." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -27778,6 +28185,10 @@ msgstr[1] "" #. ~ Description for elderberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some elderberry seeds." +msgstr "Son unas semillas de bayas del saúco." + +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -27791,6 +28202,10 @@ msgstr[1] "semillas de frambuesa" msgid "Some raspberry seeds." msgstr "Algunas semillas de frambuesa." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -27802,6 +28217,10 @@ msgstr[1] "semillas de fresa" msgid "Some strawberry seeds." msgstr "Algunas semillas de fresa." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -27813,6 +28232,10 @@ msgstr[1] "semillas de uva" msgid "Some grape seeds." msgstr "Algunas semillas de uva." +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -28722,7 +29145,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked plant marrow" -msgstr "" +msgstr "tuétano de planta cocinado" #. ~ Description for cooked plant marrow #: lang/json/COMESTIBLE_from_json.py @@ -28750,7 +29173,7 @@ msgstr "áspic de verdura" #: lang/json/COMESTIBLE_from_json.py msgid "" "A dish in which vegetables are set into a gelatin made from a plant stock." -msgstr "" +msgstr "Es verdura puesta en gelatina hecha con caldo de vegetales." #: lang/json/COMESTIBLE_from_json.py msgid "cooked buckwheat" @@ -29410,9 +29833,18 @@ msgid "This is definitely not how grandma used to bake them." msgstr "Definitivamente, no es la misma receta que hacía la abuela." #: lang/json/COMESTIBLE_from_json.py -msgid "fibrous stalk" +msgid "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 "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "fibrous stalk" +msgstr "tallo fibroso" + #. ~ Description for fibrous stalk #: lang/json/COMESTIBLE_from_json.py msgid "A rather green stick. Very fibrous." @@ -29436,7 +29868,7 @@ msgstr "" #. ~ Description for stimgas inhaler #: lang/json/COMESTIBLE_from_json.py msgid "A powerful stimulant with no risk of addiction." -msgstr "" +msgstr "Un poderoso estimulante que no tiene riesgo de generar adicción." #: lang/json/COMESTIBLE_from_json.py msgid "sewagas inhaler" @@ -29450,7 +29882,7 @@ msgstr "" #. ~ Description for sewagas inhaler #: lang/json/COMESTIBLE_from_json.py msgid "A powerful hallucinogen with low risk of addiction." -msgstr "" +msgstr "Un poderoso alucinógeno con poco riesgo de generar adicción." #: lang/json/COMESTIBLE_from_json.py msgid "antibiotics" @@ -29544,7 +29976,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "necrotic head" -msgstr "" +msgstr "cabeza necrótica" #. ~ Description for necrotic head #: lang/json/COMESTIBLE_from_json.py @@ -29784,7 +30216,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free biscuit" -msgstr "" +msgstr "galleta sin gluten" #. ~ Description for gluten free biscuit #: lang/json/COMESTIBLE_from_json.py @@ -29804,12 +30236,14 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free vegetable pie" -msgstr "" +msgstr "tarta de verdura sin gluten" #. ~ 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 "" +"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " +"verduras." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free meat pie" @@ -29819,6 +30253,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "A delicious baked gluten free pie with a delicious meat filling." msgstr "" +"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " +"carne." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free maple pie" @@ -29913,6 +30349,9 @@ msgid "" "crumbs added and fried. They have interesting flavor and unparalleled " "texture." msgstr "" +"Es la carne de un órgano delicioso y tierno. Primero hervido y luego " +"empanado sin gluten y frito. Tienen un sabor interesante y una textura " +"inigualable." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free cheese sandwich" @@ -30069,6 +30508,8 @@ msgid "" "Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " "rapidly." msgstr "" +"Es más dulce que la leche de vaca, casi que tiene el gusto del helado de " +"vainilla. Se pudre rápido." #: lang/json/COMESTIBLE_from_json.py msgid "coconut water" @@ -30105,7 +30546,7 @@ msgstr[1] "harinas de arroz" #. ~ Description for rice flour #: lang/json/COMESTIBLE_from_json.py msgid "This rice flour is useful for baking." -msgstr "" +msgstr "Esta harina de arroz es útil para cocinar." #: lang/json/COMESTIBLE_from_json.py msgid "revival serum" @@ -30389,8 +30830,8 @@ msgstr "" #: lang/json/CONTAINER_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bolsa de cerrado al vacío" +msgstr[1] "bolsas de cerrado al vacío" #. ~ Description for vacuum-packed bag #: lang/json/CONTAINER_from_json.py @@ -30450,6 +30891,9 @@ msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." msgstr "" +"Es un frasco de vacío de la marca Thermos. Construido para retener la " +"temperatura, ayuda a mantener las cosas frías o calientes. Puede contener " +"hasta 1L de líquido." #: lang/json/CONTAINER_from_json.py msgid "ceramic bowl" @@ -30867,13 +31311,13 @@ msgstr "Es un pedazo de papel estraza. Bueno para encender fuegos." #: lang/json/CONTAINER_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaso de poliestireno extruido" +msgstr[1] "vasos de poliestireno extruido" #. ~ Description for styrofoam cup #: lang/json/CONTAINER_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." -msgstr "" +msgstr "Es un vasito descartable y barato con tapa plástica y pajita." #: lang/json/CONTAINER_from_json.py msgid "plastic tub" @@ -30896,12 +31340,14 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A 50ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" +"Es un tubo de 50ml cilíndrico de ensayo de laboratorio, con un tapón de " +"goma." #: lang/json/CONTAINER_from_json.py msgid "blood draw kit" msgid_plural "blood draw kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "equipo de extracción de sangre" +msgstr[1] "equipos de extracción de sangre" #. ~ Description for blood draw kit #: lang/json/CONTAINER_from_json.py @@ -30933,6 +31379,19 @@ msgstr[1] "" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -31146,7 +31605,7 @@ msgstr "" #: lang/json/ENGINE_from_json.py msgid "V12 diesel engine" -msgstr "" +msgstr "motor diésel V12" #. ~ Description for V12 diesel engine #: lang/json/ENGINE_from_json.py @@ -31166,6 +31625,10 @@ msgid "" "water into steam, driving a reciprocating shaft. A condenser recaptures the" " water, making this a closed cycle system." msgstr "" +"Es un pequeño y primitivo motor de vapor. Una caldera integrada quema carbón" +" para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." #: lang/json/ENGINE_from_json.py msgid "small steam engine" @@ -31202,6 +31665,10 @@ msgid "" "steam, driving a reciprocating shaft. A condensor recaptures the water, " "making this a closed cycle system." msgstr "" +"Es un motor grande de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." #: lang/json/ENGINE_from_json.py msgid "huge steam engine" @@ -31262,12 +31729,15 @@ msgid "" "steam, driving a spinning turbine. A condensor recaptures the water, making" " this a closed cycle system." msgstr "" +"Es una turbina enorme de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" +" captura el agua, convirtiendo esto en un sistema cíclico cerrado." #: lang/json/GENERIC_from_json.py msgid "explosive arrowhead" msgid_plural "explosive arrowheads" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "punta de flecha explosiva" +msgstr[1] "puntas de flecha explosivas" #. ~ Description for explosive arrowhead #: lang/json/GENERIC_from_json.py @@ -31351,6 +31821,8 @@ msgstr[1] "pistachos" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a pistachio tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del árbol del pistacho, todavía con sus " +"cáscaras." #: lang/json/GENERIC_from_json.py msgid "almond" @@ -31362,6 +31834,7 @@ msgstr[1] "almendras" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a almond tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del almendro, todavía con sus cáscaras." #: lang/json/GENERIC_from_json.py msgid "peanut" @@ -31384,6 +31857,7 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a hazelnut tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del avellano, todavía con sus cáscaras." #: lang/json/GENERIC_from_json.py msgid "chestnut" @@ -31406,12 +31880,13 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a walnut tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del nogal, todavía con sus cáscaras." #: lang/json/GENERIC_from_json.py msgid "steel grille" msgid_plural "steel grilles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rejilla de acero" +msgstr[1] "rejillas de acero" #. ~ Description for steel grille #: lang/json/GENERIC_from_json.py @@ -31443,6 +31918,7 @@ msgid "" "A handful of smoldering embers emitting smoke. They are fading away even " "when you look at them." msgstr "" +"Es un puñado de brasas ardiente de las que sale humo. Se van apagando." #: lang/json/GENERIC_from_json.py msgid "Magic 8-Ball" @@ -31469,6 +31945,8 @@ msgid "" "A now-ancient form of currency. Stripped of its original purpose, it now " "serves, faithfully, flippant Flippists for free." msgstr "" +"Esto ya es parte de una antigua economía. Ya despojada de su propósito " +"original, ahora sirve, fielmente, para el cara o cruz." #: lang/json/GENERIC_from_json.py msgid "corpse" @@ -31661,8 +32139,8 @@ msgstr "Un pedazo del exoesqueleto de un insecto. Es liviano y muy duradero." #: lang/json/GENERIC_from_json.py msgid "chunk of biosilicified chitin" msgid_plural "chunks of biosilicified chitin" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pedazo de quitina biosilicificada" +msgstr[1] "pedazos de quitina biosilicificada" #. ~ Description for chunk of biosilicified chitin #: lang/json/GENERIC_from_json.py @@ -31670,6 +32148,8 @@ msgid "" "A lump of exoskeleton that has undergone biosilicification. It is acid-" "resistant and remarkably sturdy." msgstr "" +"Es un pedazo de exoesqueleto que ha sido biosilicificado. Es resistente al " +"ácido y sorprendentemente duro." #: lang/json/GENERIC_from_json.py msgid "bundle of rags" @@ -32513,8 +32993,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "nanofabricator template" msgid_plural "nanofabricator templates" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "plantilla para nanofabricador" +msgstr[1] "plantillas para nanofabricador" #. ~ Description for nanofabricator template #: lang/json/GENERIC_from_json.py @@ -33154,7 +33634,7 @@ msgstr "" #. ~ Description for rose #: lang/json/GENERIC_from_json.py msgid "A rose stalk with some petals." -msgstr "" +msgstr "Es un tallo de rosa con algunos pétalos." #: lang/json/GENERIC_from_json.py msgid "rose bud" @@ -33167,17 +33647,19 @@ msgstr[1] "" msgid "" "A rose bud. Contains some substances commonly produced by a rose flower." msgstr "" +"Es un capullo de rosa. Contiene algunas sustancias comúnmente producidas por" +" la flor de la rosa." #: lang/json/GENERIC_from_json.py msgid "hydrangea" msgid_plural "hydrangeas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hortensia" +msgstr[1] "hortensias" #. ~ Description for hydrangea #: lang/json/GENERIC_from_json.py msgid "A hydrangea stalk with some petals." -msgstr "" +msgstr "Es un tallo de hortensia con algunos pétalos." #: lang/json/GENERIC_from_json.py msgid "hydrangea bud" @@ -33206,8 +33688,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "tulip bud" msgid_plural "tulip buds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capullo de tulipán" +msgstr[1] "capullos de tulipán" #. ~ Description for tulip bud #: lang/json/GENERIC_from_json.py @@ -33272,7 +33754,7 @@ msgstr[1] "" #. ~ Description for lily #: lang/json/GENERIC_from_json.py msgid "A lily stalk with some petals." -msgstr "" +msgstr "Es un tallo de lirio con algunos pétalos." #: lang/json/GENERIC_from_json.py msgid "lily bud" @@ -33289,8 +33771,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "lotus" msgid_plural "lotuss" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "loto" +msgstr[1] "lotos" #. ~ Description for lotus #: lang/json/GENERIC_from_json.py @@ -33314,8 +33796,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "lilac" msgid_plural "lilacs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lila" +msgstr[1] "lilas" #. ~ Description for lilac #: lang/json/GENERIC_from_json.py @@ -33543,8 +34025,8 @@ msgstr "Es una almohada para descansar tu cabeza cuando duermes." #: lang/json/GENERIC_from_json.py msgid "body pillow" msgid_plural "body pillows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almohada de cuerpo" +msgstr[1] "almohadas de cuerpo" #. ~ Description for body pillow #: lang/json/GENERIC_from_json.py @@ -33788,8 +34270,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "fluid preserved brain" msgid_plural "fluid preserved brains" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cerebro preservado en fluido" +msgstr[1] "cerebros preservados en fluido" #. ~ Description for fluid preserved brain #: lang/json/GENERIC_from_json.py @@ -33822,8 +34304,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "refrigerant tank" msgid_plural "refrigerant tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque de refrigerante" +msgstr[1] "tanques de refrigerante" #. ~ Description for refrigerant tank #: lang/json/GENERIC_from_json.py @@ -33833,6 +34315,34 @@ msgid "" "without prior connection to compatible valve." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "placa dura de acero" +msgstr[1] "placas duras de acero" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" +"Es una placa hecha de acero, específicamente pensada para usarse en chalecos" +" antibalas." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -33998,6 +34508,8 @@ msgid "" "This is a solid wood 'training' katana, but feels far too light to make an " "effective weapon." msgstr "" +"Es una buena katana de madera de entrenamiento, pero se siente demasiado " +"liviana como para actuar efectivamente como arma." #. ~ Description for bokken #: lang/json/GENERIC_from_json.py @@ -34954,11 +35466,8 @@ msgstr[1] "piedras en calcetines" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -"Es una calcetín con una piedra atada en la punta. Una verdadera arma de " -"último recurso." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -35505,6 +36014,9 @@ 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 "" +"Es un arma medieval que consiste en un mango de madera con una bola pesada " +"de hierro con púas en la punta. Esa bola se siente un poco más liviana de lo" +" que debería." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "tanto" @@ -36216,6 +36728,8 @@ msgid "" "This is a medieval weapon consisting of a wood shaft tipped with an iron " "spike." msgstr "" +"Es un arma medieval que consiste en un palo de madera con una púa de hierro " +"en la punta. " #: lang/json/GENERIC_from_json.py msgid "pot" @@ -36664,6 +37178,21 @@ msgid "" "A vehicle headlight with a cage built around it to protect it from damage " "without reducing its effectiveness." msgstr "" +"La luz delantera de un vehículo, con una reja alrededor para protegerla de " +"los daños, sin reducir su función." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "storage battery case" @@ -37041,8 +37570,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "animal locker" msgid_plural "animal lockers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "contenedor para animales" +msgstr[1] "contenedores para animales" #. ~ Description for animal locker #: lang/json/GENERIC_from_json.py @@ -37078,6 +37607,21 @@ msgstr[1] "reflectores" msgid "A large and heavy light designed to illuminate wide areas." msgstr "Una luz grande y pesada diseñada para iluminar áreas amplias." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "reflector direccional" +msgstr[1] "reflectores direccionales" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" +"Es una luz grande y pesada diseñada para iluminar áreas amplias en forma de " +"cono semicircular." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -37330,6 +37874,17 @@ msgstr[1] "luces delanteras de coche" msgid "A vehicle headlight to light up the way." msgstr "Es la luz delantera de un vehículo que sirve para iluminar el camino." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -37351,6 +37906,7 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A universal mount for weapons intended to be installed as turrets." msgstr "" +"Es una montura universal para armas que se instalan como las torretas." #: lang/json/GENERIC_from_json.py msgid "abstract map" @@ -37433,7 +37989,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 "" +msgstr "Agregas los caminos y senderos en tu mapa." #. ~ Description for trail guide #: lang/json/GENERIC_from_json.py @@ -37770,6 +38326,17 @@ msgstr[1] "Zui Quan y tú" msgid "A complete guide to Zui Quan." msgstr "Una guía completa para el Zui Quan." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -37788,6 +38355,8 @@ msgid "" "After feeding it and caring for it for weeks, your sourdough starter is " "finally ready for the big leagues." msgstr "" +"Luego de alimentarla y cuidarla por semanas, la masa madre está finalmente " +"preparada para jugar en primera." #. ~ Use action not_ready_msg for juvenile sourdough starter. #: lang/json/GENERIC_from_json.py @@ -37813,6 +38382,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "The starter is now stinky and bubbly, and looks ready for cooking." msgstr "" +"La masa fermentada ahora tiene feo olor y burbujas, y parece lista para " +"cocinar." #. ~ Use action not_ready_msg for freshly fed sourdough starter. #: lang/json/GENERIC_from_json.py @@ -37829,8 +38400,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "sourdough starter" msgid_plural "sourdough starters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "masa madre" +msgstr[1] "masas madre" #. ~ Description for sourdough starter #: lang/json/GENERIC_from_json.py @@ -37910,8 +38481,8 @@ msgstr "Una caja pequeña MRE, no deberías ver esto." #: lang/json/GENERIC_from_json.py msgid "MRE - Accessory Pack" msgid_plural "MREs - Accessory Packs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Pack de Accesorios" +msgstr[1] "MREs - Packs de Accesorios" #. ~ Description for MRE - Accessory Pack #: lang/json/GENERIC_from_json.py @@ -37919,12 +38490,14 @@ msgid "" "An MRE accessory pack containing a variety of utensils and drinks. Activate" " or disassemble it to get to its contents." msgstr "" +"Es un pack de accesorios para el MRE que contiene una variedad de utensilios" +" y bebidas. Usalo o desarmalo para obtener su contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Dessert Pack" msgid_plural "MREs - Dessert Packs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Pack de Postres" +msgstr[1] "MREs - Packs de Postres" #. ~ Description for MRE - Dessert Pack #: lang/json/GENERIC_from_json.py @@ -37932,6 +38505,8 @@ msgid "" "A sealed plastic bag containing an array of desserts. Activate or " "disassemble it to get to its contents." msgstr "" +"Es una bolsa de plástico sellada con una variedad de postres. Usala o " +"desarmala para obtener su contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Chili & Beans" @@ -38044,6 +38619,10 @@ 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 "" +"Es una MRE (comida preparada) con albóndigas y todo lo que un soldado " +"hambriento necesita. El contenido empezará a pudrirse luego de haberlo " +"sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener el " +"contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Beef Stew" @@ -38076,8 +38655,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE - Vegetarian Taco" msgid_plural "MREs - Vegetarian Taco" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Taco Vegetariano" +msgstr[1] "MREs - Taco Vegetariano" #. ~ Description for MRE - Vegetarian Taco #: lang/json/GENERIC_from_json.py @@ -38100,6 +38679,10 @@ 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 "" +"Es una MRE (comida preparada) con macarrones con marinera y todo lo que un " +"soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" @@ -38128,6 +38711,10 @@ 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 "" +"Es una MRE (comida preparada) con fetuchini con champiñones y todo lo que un" +" soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Mexican Chicken Stew" @@ -38142,6 +38729,10 @@ 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 "" +"Es una MRE (comida preparada) con estofado mexicano de pollo y todo lo que " +"un soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken Burrito Bowl" @@ -38156,6 +38747,10 @@ 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 "" +"Es una MRE (comida preparada) con burrito de pollo y todo lo que un soldado " +"hambriento necesita. El contenido empezará a pudrirse luego de haberlo " +"sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener el " +"contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Maple Sausage" @@ -38174,8 +38769,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE - Ravioli" msgid_plural "MREs - Ravioli" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Ravioles" +msgstr[1] "MREs - Ravioles" #. ~ Description for MRE - Ravioli #: lang/json/GENERIC_from_json.py @@ -38184,6 +38779,10 @@ 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 "" +"Es una MRE (comida preparada) con ravioles y todo lo que un soldado " +"hambriento necesita. El contenido empezará a pudrirse luego de haberlo " +"sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener el " +"contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Pepper Jack Beef" @@ -38216,8 +38815,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE - Lemon Pepper Tuna" msgid_plural "MREs - Lemon Pepper Tuna" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Atún con Limón y Pimienta" +msgstr[1] "MREs - Atún con Limón y Pimienta" #. ~ Description for MRE - Lemon Pepper Tuna #: lang/json/GENERIC_from_json.py @@ -38226,6 +38825,10 @@ 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 "" +"Es una MRE (comida preparada) con atún con limón y pimienta y todo lo que un" +" soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Asian Beef & Vegetables" @@ -38240,6 +38843,10 @@ 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 "" +"Es una MRE (comida preparada) con carne de Asia con verduras y todo lo que " +"un soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken Pesto & Pasta" @@ -38254,6 +38861,10 @@ 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 "" +"Es una MRE (comida preparada) con pasta con pesto y pollo y todo lo que un " +"soldado hambriento necesita. El contenido empezará a pudrirse luego de " +"haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" +" el contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - Southwest Beef & Beans" @@ -38422,7 +39033,7 @@ msgstr[1] "" #. ~ Description for .40 S&W casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .40 S&W round." -msgstr "" +msgstr "Es una vaina servida de una bala calibre .40 S&W." #: lang/json/GENERIC_from_json.py msgid "40mm canister" @@ -38438,8 +39049,8 @@ msgstr "Es una carcasa grande de una granada 40mm utilizada." #: lang/json/GENERIC_from_json.py msgid ".44 Magnum casing" msgid_plural ".44 Magnum casings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaina .44 Magnum" +msgstr[1] "vainas .44 Magnum" #. ~ Description for .44 Magnum casing #: lang/json/GENERIC_from_json.py @@ -38460,8 +39071,8 @@ msgstr "Un casquillo de una bala calibre .454 Casull." #: lang/json/GENERIC_from_json.py msgid ".45 ACP casing" msgid_plural ".45 ACP casings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaina .45 ACP" +msgstr[1] "vainas .45 ACP" #. ~ Description for .45 ACP casing #. ~ Description for .45 Long Colt casing @@ -38579,8 +39190,8 @@ msgstr "Un casquillo de una bala calibre 7.62x39mm." #: lang/json/GENERIC_from_json.py msgid "7.62x25mm casing" msgid_plural "7.62x25mm casings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaina 7.62x25mm" +msgstr[1] "vainas 7.62x25mm" #. ~ Description for 7.62x25mm casing #: lang/json/GENERIC_from_json.py @@ -38607,7 +39218,7 @@ msgstr[1] "" #. ~ Description for .357 SIG casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .357 SIG round." -msgstr "" +msgstr "Es una vaina servida de una bala calibre .357 SIG." #: lang/json/GENERIC_from_json.py msgid "9x18mm casing" @@ -38850,8 +39461,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "short makeshift rope" msgid_plural "short makeshift ropes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuerda improvisada corta" +msgstr[1] "cuerdas improvisadas cortas" #. ~ Description for short makeshift rope #: lang/json/GENERIC_from_json.py @@ -38872,6 +39483,9 @@ msgid "" "A 30-foot long rough rope, woven from natural cordage. Not strong enough to" " hold up to falls, but still useful for some things." msgstr "" +"Es un pedazo de casi 10 metros de soga simple, tejida con cordaje natural. " +"No es suficientemente fuerte como para aguantar caídas, pero es útil para " +"algunas cosas." #: lang/json/GENERIC_from_json.py msgid "makeshift bayonet" @@ -38957,13 +39571,15 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "bicycle alternator" msgid_plural "bicycle alternators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alternador de bicicleta" +msgstr[1] "alternadores de bicicleta" #. ~ Description for bicycle alternator #: lang/json/GENERIC_from_json.py msgid "A very lightweight alternator used to power a bicycle's headlights." msgstr "" +"Es un alternador muy liviano que se usa para alimentar las luces de una " +"bicicleta." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "truck alternator" @@ -39037,6 +39653,8 @@ msgid "" "The beginnings of a massive gas or diesel engine. It's not good for much of" " anything on its own." msgstr "" +"Es una pieza primordial de un motor enorme de gas o diesel. Así solo no " +"sirve para mucho que digamos." #: lang/json/GENERIC_from_json.py msgid "large engine block" @@ -39063,6 +39681,8 @@ msgid "" "The beginnings of a medium gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" +"Es una pieza primordial de un motor mediano de gas o diesel. Así solo no " +"sirve para mucho que digamos." #: lang/json/GENERIC_from_json.py msgid "small engine block" @@ -39303,8 +39923,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "10 plastic bags" msgid_plural "10 plastic bags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "10 bolsas de plástico" +msgstr[1] "10 bolsas de plástico" #. ~ Description for 10 plastic bags #: lang/json/GENERIC_from_json.py @@ -39321,13 +39941,13 @@ msgstr[1] "" #. ~ Description for coal pallet #: lang/json/GENERIC_from_json.py msgid "A large block of semi-processed coal." -msgstr "" +msgstr "Un bloque grande de carbón semi-procesado." #: lang/json/GENERIC_from_json.py msgid "charged capacitor" msgid_plural "charged capacitors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capacitor cargado" +msgstr[1] "capacitores cargados" #. ~ Description for charged capacitor #: lang/json/GENERIC_from_json.py @@ -39347,7 +39967,7 @@ msgstr[1] "" #. ~ Description for lead battery plate #: lang/json/GENERIC_from_json.py msgid "An electrode plate from a lead-acid battery." -msgstr "" +msgstr "Es una placa de electrodos de una batería de plomo y ácido." #: lang/json/GENERIC_from_json.py msgid "forged sword" @@ -39713,6 +40333,50 @@ msgstr[1] "conejos animatrónicos rotos" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Un conejo animatrónico roto. Flácido y sin vida." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" +"Es una tabla de madera que mantiene el bote a flote. Agregale cascos de bote" +" al vehículo hasta que flote. Después ponele los remos o el motor para que " +"se pueda mover." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "casco de fibra de carbono de bote" +msgstr[1] "cascos de fibra de carbono de bote" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -39724,11 +40388,33 @@ msgstr[1] "remos" msgid "Oars for a boat." msgstr "Son remos para un bote." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "sección inflable" +msgstr[1] "sección inflable" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Una parte inflable para bote." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "airbag inflable" +msgstr[1] "airbags inflables" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Un airbag inflable." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de batería" +msgstr[1] "cargadores de batería" #. ~ Description for battery charger #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -39736,17 +40422,19 @@ msgid "" "A charger for batteries that runs off vehicle power. It is quite " "inefficient, but charges fast." msgstr "" +"Es un cargador de baterías que funciona con la energía de un vehículo. Es " +"bastante ineficiente, pero rápido para cargar." #: lang/json/GENERIC_from_json.py msgid "nuclear waste" msgid_plural "nuclear wastes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desecho nuclear" +msgstr[1] "desechos nucleares" #. ~ Description for nuclear waste #: lang/json/GENERIC_from_json.py msgid "A small pellet of silvery metal, still warm to the touch." -msgstr "" +msgstr "Es un pequeño perdigón de metal plateado, todavía tibio." #: lang/json/GENERIC_from_json.py msgid "nuclear fuel pellet" @@ -39831,6 +40519,361 @@ msgid_plural "belt ammo links" msgstr[0] "unión metálica de cinta cargadora" msgstr[1] "uniones metálicas de cinta cargadora" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -39888,6 +40931,7 @@ msgid "" "A common short sword, forged from steel. The pointy end is the dangerous " "one." msgstr "" +"Una espada corta normal, forjada de acero. La punta es la parte peligrosa." #: lang/json/GENERIC_from_json.py msgid "broken turret" @@ -39901,6 +40945,8 @@ msgid "" "A broken turret. Much less threatening now that it lies limp on solid " "ground. Could be gutted for parts." msgstr "" +"Es como una torreta pero rota. Mucho menos amenazante ahora que está ahí " +"inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken military turret" @@ -39942,6 +40988,8 @@ msgid "" "A broken 9mm defense turret. Much less threatening now that it lies limp on" " solid ground. Could be gutted for parts." msgstr "" +"Es una torreta 9mm pero rota. Mucho menos amenazante ahora que está ahí " +"inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken 9mm turret" @@ -39955,6 +41003,8 @@ msgid "" "A broken shotgun defense turret. Much less threatening now that it lies " "limp on solid ground. Could be gutted for parts." msgstr "" +"Es una torreta escopeta defensiva pero rota. Mucho menos amenazante ahora " +"que está ahí inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken riot control turret" @@ -39972,8 +41022,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken riotcontrol turret" msgid_plural "broken riotcontrol turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta antidisturbios rota" +msgstr[1] "torretas antidisturbios rotas" #: lang/json/GENERIC_from_json.py msgid "broken 5.56mm turret" @@ -39991,8 +41041,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken 7.62mm turret" msgid_plural "broken 7.62mm turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta 7.62mm rota" +msgstr[1] "torretas 7.62mm rotas" #. ~ Description for broken 7.62mm turret #: lang/json/GENERIC_from_json.py @@ -40004,8 +41054,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken 50cal turret" msgid_plural "broken 50cal turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta 50cal rota" +msgstr[1] "torretas 50cal rotas" #. ~ Description for broken 50cal turret #: lang/json/GENERIC_from_json.py @@ -40046,12 +41096,14 @@ msgid "" "A broken military-grade 8x40mm turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" +"Es una torreta militar 8.40mm pero rota. Mucho menos amenazante ahora que " +"está ahí inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken flamethrower turret" msgid_plural "broken flamethrower turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta lanzallamas rota" +msgstr[1] "torretas lanzallamas rotas" #. ~ Description for broken flamethrower turret #: lang/json/GENERIC_from_json.py @@ -40085,12 +41137,14 @@ msgid "" "A broken advanced acid thrower turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" +"Es una torreta mejorada lanza-ácido pero rota. Mucho menos amenazante ahora " +"que está ahí inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken plasma turret" msgid_plural "broken plasma turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta plasma rota" +msgstr[1] "torretas plasma rotas" #. ~ Description for broken plasma turret #: lang/json/GENERIC_from_json.py @@ -40102,8 +41156,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken rail gun turret" msgid_plural "broken rail gun turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta de cañón de riel rota" +msgstr[1] "torretas de cañón de riel rotas" #. ~ Description for broken rail gun turret #: lang/json/GENERIC_from_json.py @@ -40122,8 +41176,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken electro turret" msgid_plural "broken electro turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "electrotorreta rota" +msgstr[1] "electrotorretas rotas" #. ~ Description for broken electro turret #: lang/json/GENERIC_from_json.py @@ -40154,7 +41208,7 @@ msgstr[1] "" #. ~ Description for broken gaurdin gnome #: lang/json/GENERIC_from_json.py msgid "A broken and completely harmless garden gnome." -msgstr "" +msgstr "Es un gnomo de jardín roto y completamente inofensivo." #: lang/json/GENERIC_from_json.py msgid "broken hack" @@ -40167,12 +41221,14 @@ msgstr[1] "" msgid "" "A broken eyebot, now dark and motionless. Could be stripped down for parts." msgstr "" +"Es un ojobot roto, ahora apagado e inmóvil. Puede ser desarmado para " +"recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken disarmed eyebot" msgid_plural "broken disarmed eyebots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ojobot desarmado roto" +msgstr[1] "ojobots desarmados rotos" #. ~ Description for broken disarmed eyebot #: lang/json/GENERIC_from_json.py @@ -40180,6 +41236,8 @@ msgid "" "A broken eyebot. Its integrated weapon module has been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" +"Es un ojobot roto. Su arma integrada ha sido quitada. Puede ser desarmado " +"para recuperar partes o convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py msgid "broken utility robot" @@ -40193,12 +41251,14 @@ msgid "" "A broken utility robot, now limp and unmoving. Could be gutted for parts or" " crafted into a salvaged robot." msgstr "" +"Es un robot utilitario roto, ahora inmóvil e inerte. Puede ser desarmado " +"para recuperar partes o convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py msgid "broken disarmed skitterbot" msgid_plural "broken disarmed skitterbots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arañabot desarmado roto" +msgstr[1] "arañabots desarmados rotos" #. ~ Description for broken disarmed skitterbot #: lang/json/GENERIC_from_json.py @@ -40213,6 +41273,8 @@ msgid "" "A broken skitterbot, now harmless and inert. Could be stripped of integral " "weapon modules." msgstr "" +"Es un arañabot roto, ahora inerte e indefenso. Puede ser desarmado para " +"recuperar los módulos de armas." #: lang/json/GENERIC_from_json.py msgid "broken disarmed defense bot" @@ -40236,14 +41298,14 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken security robot" msgid_plural "broken security robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "seguribot roto" +msgstr[1] "seguribots rotos" #: lang/json/GENERIC_from_json.py msgid "broken riotcontrol robot" msgid_plural "broken riotcontrol robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "antidisturbot roto" +msgstr[1] "antidisturbots rotos" #: lang/json/GENERIC_from_json.py msgid "broken chickenwalker" @@ -40268,6 +41330,8 @@ msgid "" "A broken chickenwalker. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" +"Es una meca-gallina rota. Sus armas internas han sido quitadas. Puede ser " +"desarmado para recuperar partes o convertido en un robot recuperado." #. ~ Description for broken tank drone #: lang/json/GENERIC_from_json.py @@ -40277,8 +41341,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken disarmed tank drone" msgid_plural "broken disarmed tank drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "drone tanque desarmado roto" +msgstr[1] "drones tanque desarmados rotos" #. ~ Description for broken disarmed tank drone #: lang/json/GENERIC_from_json.py @@ -40302,8 +41366,8 @@ msgstr "Una pieza para robots o torretas. No es útil así tal cual." #: lang/json/GENERIC_from_json.py msgid "integral microreactor" msgid_plural "integral microreactors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "microreactor integral" +msgstr[1] "microreactores integrales" #. ~ Description for integral microreactor #: lang/json/GENERIC_from_json.py @@ -40313,8 +41377,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "integral flash gun" msgid_plural "integral flash guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arma flash integral" +msgstr[1] "armas flash integrales" #: lang/json/GENERIC_from_json.py msgid "integral tazer" @@ -40340,14 +41404,14 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "integral 7.62mm firearm" msgid_plural "integral 7.62mm firearms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arma 7.62mm integral" +msgstr[1] "armas 7.62mm integrales" #: lang/json/GENERIC_from_json.py msgid "integral shotgun" msgid_plural "integral shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta integral" +msgstr[1] "escopetas integrales" #: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py @@ -40374,8 +41438,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "integral flechette firearm" msgid_plural "integral flechette firearms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arma de dardos perforantes integral" +msgstr[1] "armas de dardos perforantes integrales" #: lang/json/GENERIC_from_json.py msgid "integral 8x40mm firearm" @@ -40399,40 +41463,40 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "integral laser weapon" msgid_plural "integral laser weapons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arma láser integral" +msgstr[1] "armas láser integrales" #: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py msgid "integral plasma ejector" msgid_plural "integral plasma ejectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "eyectaplasma integral" +msgstr[1] "eyectaplasma integrales" #: lang/json/GENERIC_from_json.py msgid "integral electromagnetic railgun" msgid_plural "integral electromagnetic railguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón de riel electromagnético integral" +msgstr[1] "cañones de riel electromagnéticos integrales" #: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py msgid "integral acid thrower" msgid_plural "integral acid throwers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza-ácido integral" +msgstr[1] "lanza-ácido integrales" #: lang/json/GENERIC_from_json.py msgid "integral electro caster" msgid_plural "integral electro casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza-rayos eléctricos integral" +msgstr[1] "lanza-rayos eléctricos integrales" #: lang/json/GENERIC_from_json.py msgid "integral EMP projector" msgid_plural "integral EMP projectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "proyector PEM integral" +msgstr[1] "proyectores PEM integrales" #: lang/json/GENERIC_from_json.py msgid "stone spear" @@ -40537,6 +41601,9 @@ msgid "" "A broken set of power armor fitted with an AI core for automated use. It " "cannot be worn or disassembled until re-crafted into an undamaged robot." msgstr "" +"Es un conjunto roto de armadura de poder, con IA instalada para un uso " +"automático. No puede ser usada o desarmada hasta que sea convertida en un " +"robot ileso." #: lang/json/GENERIC_from_json.py msgid "broken basic auto armor" @@ -40566,8 +41633,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken floating lantern" msgid_plural "broken floating lanterns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "linterna voladora rota" +msgstr[1] "linternas voladoras rotas" #. ~ Description for broken floating lantern #: lang/json/GENERIC_from_json.py @@ -40590,8 +41657,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken spore hack" msgid_plural "broken spore hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espora-hack roto" +msgstr[1] "espora-hacks rotos" #. ~ Description for broken spore hack #: lang/json/GENERIC_from_json.py @@ -40603,8 +41670,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken watercannon turret" msgid_plural "broken watercannon turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta rota de cañón de agua" +msgstr[1] "torretas rotas de cañón de agua" #. ~ Description for broken watercannon turret #: lang/json/GENERIC_from_json.py @@ -40612,6 +41679,8 @@ msgid "" "A broken watercannon turret. Much less threatening now that it lies limp on" " solid ground. Could be gutted for parts." msgstr "" +"Es una torreta rota de cañón de agua. Mucho menos amenazantes ahora que está" +" ahí inerte. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken floating heater" @@ -40651,6 +41720,8 @@ msgid "" "A broken burning eye, now dark and motionless. Could be stripped down or " "re-crafted." msgstr "" +"Es un ojo llameante roto, ahora apagado e inmóvil. Puede ser desarmado para " +"recuperar partes o reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken butler-bot" @@ -40716,6 +41787,8 @@ msgid "" "A broken robotic incubator for alien slimes. Could be stripped down or re-" "crafted." msgstr "" +"Es un incubador robótico roto para slimes alienígenas. Puede ser desarmado o" +" reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken digestron" @@ -40729,6 +41802,8 @@ msgid "" "A broken acid digestor robot, now cold and unmoving. Could be stripped down" " or re-crafted." msgstr "" +"Es un robot roto digestor de ácido, ahora frío e inmóvil. Puede ser " +"desarmado o reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken bee-bot" @@ -40773,8 +41848,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken assassin robot" msgid_plural "broken assassin robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "asesinobot roto" +msgstr[1] "asesinobots rotos" #. ~ Description for broken assassin robot #: lang/json/GENERIC_from_json.py @@ -40782,6 +41857,8 @@ msgid "" "A broken assassin robot, now limp and immobile. Could be stripped down or " "re-crafted." msgstr "" +"Es un robot asesino roto, ahora flácido e inmóvil. Puede ser desarmado o " +"reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken elixirator" @@ -40812,8 +41889,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken insane cyborg" msgid_plural "broken insane cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "androide demente roto" +msgstr[1] "androides dementes rotos" #. ~ Description for broken insane cyborg #: lang/json/GENERIC_from_json.py @@ -40821,6 +41898,8 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be gutted for parts or " "crafted into a salvaged robot." msgstr "" +"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado para " +"recuperar partes o convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py msgid "broken necrotic cyborg" @@ -40834,6 +41913,8 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be stripped down or re-" "crafted into a salvaged robot." msgstr "" +"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado o " +"convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py msgid "broken rat snatcher" @@ -40892,6 +41973,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." msgstr "" +"Es un robot rescatado roto. Puede ser desarmado para recuperar partes o " +"reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken shortcircuit samurai" @@ -40923,6 +42006,9 @@ msgid "" "A broken military trainer robot, shattered and inert. This one is armed with" " an integrated paintball gun. Could be stripped for parts." msgstr "" +"Es un robot militar de entrenamiento roto, destrozado e inerte. Este está " +"equipado con un arma de paintball integrada. Puede ser desarmado para " +"recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken military robot" @@ -40950,6 +42036,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 50 caliber firearm. Could be stripped for parts." msgstr "" +"Es un robot militar roto, destrozado e inerte. Este está equipado con un " +"calibre 50 integrada. Puede ser desarmado para recuperar partes." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -40957,6 +42045,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 8x40mm firearm. Could be stripped for parts." msgstr "" +"Es un robot militar roto, destrozado e inerte. Este está equipado con un " +"arma 8x40mm integrada. Puede ser desarmado para recuperar partes." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -40964,6 +42054,9 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated flechette gun. Could be stripped for parts." msgstr "" +"Es un robot militar roto, destrozado e inerte. Este está equipado con un " +"arma de dardos perforantes integrada. Puede ser desarmado para recuperar " +"partes." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -40975,8 +42068,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken military flame robot" msgid_plural "broken military flame robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "militaribot flameante roto" +msgstr[1] "militaribots flameantes rotos" #. ~ Description for broken military flame robot #: lang/json/GENERIC_from_json.py @@ -40998,30 +42091,30 @@ msgstr[1] "" #. ~ Description for broken bitter spinster #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "" +msgstr "Es un robot rescatado roto. Puede ser desarmado o reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken robote deluxe" msgid_plural "broken robote deluxes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "robot de lujo roto" +msgstr[1] "robots de lujo rotos" #. ~ Description for broken robote deluxe #: lang/json/GENERIC_from_json.py msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" +msgstr "Es un robot de lujo roto. Puede ser desarmado o reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken robo-protector" msgid_plural "broken robo-protectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "protectorbot roto" +msgstr[1] "protectorbots rotos" #: lang/json/GENERIC_from_json.py msgid "broken robo-defender" msgid_plural "broken robo-defenders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "defensorbot roto" +msgstr[1] "defensorbots rotos" #: lang/json/GENERIC_from_json.py msgid "broken disarmed advanced bot" @@ -41035,12 +42128,14 @@ msgid "" "A broken advanced robot. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" +"Es un robot avanzado roto. Sus armas internas han sido quitadas. Puede ser " +"desarmado para recuperar partes o convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py msgid "broken advanced robot" msgid_plural "broken advanced robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "robot avanzado roto" +msgstr[1] "robots avanzados rotos" #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -41048,6 +42143,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated laser-emitter." " Could be stripped for parts." msgstr "" +"Es un robot avanzado roto. Este está armado con un emisor láser integrado. " +"Puede ser desarmado para recuperar partes." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -41062,6 +42159,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated electro-" "caster. Could be stripped for parts." msgstr "" +"Es un robot avanzado roto. Este está armado con un lanza-rayos eléctricos " +"integrado. Puede ser desarmado para recuperar partes." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -41085,8 +42184,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "broken chainsaw horror" msgid_plural "broken chainsaw horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror motosierra roto" +msgstr[1] "horrores motosierra rotos" #. ~ Description for broken chainsaw horror #. ~ Description for broken screeching terror @@ -41096,6 +42195,8 @@ msgid "" "A broken salvaged robot. Thank God it's finally dead. Could be stripped or " "recrafted." msgstr "" +"Es un robot rescatado roto. Gracias a dios que ya está muerto. Puede ser " +"desarmado o reconstruido." #: lang/json/GENERIC_from_json.py msgid "broken screeching terror" @@ -41136,7 +42237,7 @@ msgstr[1] "núcleos de IA" #. ~ Description for AI core #: lang/json/GENERIC_from_json.py msgid "A computer module for controlling robots." -msgstr "" +msgstr "Es un módulo de computadora para controlar robots." #: lang/json/GENERIC_from_json.py msgid "surgery module" @@ -41177,8 +42278,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "robot carrier" msgid_plural "robot carriers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "transportador de robots" +msgstr[1] "transportadores de robots" #. ~ Description for robot carrier #: lang/json/GENERIC_from_json.py @@ -41325,8 +42426,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "turret chassis" msgid_plural "turret chassis" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "chasis de torreta" +msgstr[1] "chasis de torreta" #. ~ Description for turret chassis #: lang/json/GENERIC_from_json.py @@ -41822,7 +42923,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt 7.62x51mm" -msgstr "" +msgstr "cinta cargadora 7.62x51mm" #: lang/json/MAGAZINE_from_json.py msgid "FN FAL extended magazine" @@ -41941,7 +43042,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" -msgstr "" +msgstr "cargador P226 .357 SIG" #. ~ Description for P226 magazine .357 SIG #: lang/json/MAGAZINE_from_json.py @@ -41949,6 +43050,8 @@ msgid "" "A 15 round double stack box magazine for a SIG P226 chambered for .357 SIG " "rounds." msgstr "" +"Es un cargador de caja de doble fila con 15 balas para el SIG P226 con " +"calibre .357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "Taurus .38 magazine" @@ -42167,7 +43270,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt .50 BMG" -msgstr "" +msgstr "cinta cargadora .50 BMG" #: lang/json/MAGAZINE_from_json.py msgid "Barrett magazine" @@ -42422,7 +43525,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 magazine - 17 rd" -msgstr "" +msgstr "cargador Glock 17 - 17 balas" #. ~ Description for Glock 17 magazine - 17 rd #: lang/json/MAGAZINE_from_json.py @@ -42431,21 +43534,23 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 magazine - 22 rd" -msgstr "" +msgstr "cargador Glock 17 - 22 balas" #. ~ 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 "" +msgstr "Hecho para la Glock 17, este cargador contiene 22 balas." #: lang/json/MAGAZINE_from_json.py msgid "Glock Drum magazine - 50 rd" -msgstr "" +msgstr "cargador de tambor Glock - 50 balas" #. ~ 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 "" +"Hecho para la mayoría de las pistolas Glock. Este cargador de tambor " +"contiene 50 balas." #: lang/json/MAGAZINE_from_json.py msgid "Glock Drum magazine - 100 rd" @@ -42455,6 +43560,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Made to fit most Glock pistols. This drum magazine holds 100 rounds." msgstr "" +"Hecho para la mayoría de las pistolas Glock. Este cargador de tambor " +"contiene 100 balas." #: lang/json/MAGAZINE_from_json.py msgid "LW-21 magazine" @@ -42466,6 +43573,8 @@ msgid "" "A 21-round polymer magazine for Leadworks LLC 9x19mm firearms. Lightweight " "and reliable but somewhat more difficult to reload." msgstr "" +"Es un cargador de polímero de 21 balas para las armas Leadworks LLC 9x19mm. " +"Es liviano y confiable pero un poco difícil de recargar." #: lang/json/MAGAZINE_from_json.py msgid "M9 extended magazine" @@ -42606,6 +43715,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "A pressurized 3L canister designed to feed a flamethrower." msgstr "" +"Es un tubo presurizado de 3 litros diseñado para alimentar un lanzallamas." #: lang/json/MAGAZINE_from_json.py msgid "small pressurized fuel tank" @@ -42620,7 +43730,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RM450-2 fuel canister" -msgstr "" +msgstr "tubo de combustible RM450-2" #. ~ Description for RM450-2 fuel canister #: lang/json/MAGAZINE_from_json.py @@ -42628,6 +43738,8 @@ msgid "" "A 2L pressurized steel canister with a valve designed for the RM451's feed " "system." msgstr "" +"Es un tubo de 2 litros de acero presurizado con válvula, diseñado para " +"alimentar el RM451." #: lang/json/MAGAZINE_from_json.py msgid "RM450-4 fuel canister" @@ -42639,6 +43751,8 @@ msgid "" "A 4L pressurized steel canister with a valve designed for the RM451's feed " "system." msgstr "" +"Es un tubo de 4 litros de acero presurizado con válvula, diseñado para " +"alimentar el RM451." #: lang/json/MAGAZINE_from_json.py msgid "nail rifle magazine" @@ -42744,6 +43858,8 @@ msgstr[1] "baterías medianas" #: lang/json/MAGAZINE_from_json.py msgid "A medium storage battery containing multiple lithium ion cells." msgstr "" +"Es una batería de capacidad media que contiene varias celdas de ion de " +"litio." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "small storage battery" @@ -42794,7 +43910,7 @@ msgstr[1] "" #. ~ Description for heavy duty battery #: lang/json/MAGAZINE_from_json.py msgid "This big rechargeable battery is almost as heavy as solid lead." -msgstr "" +msgstr "Esta gran batería recargable es casi tan pesada como plomo sólido." #: lang/json/MAGAZINE_from_json.py msgid "pipe SMG: .22 magazine" @@ -42847,7 +43963,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "CW-24 auto-magazine" -msgstr "" +msgstr "auto-cargador CW-24" #. ~ Description for CW-24 auto-magazine #: lang/json/MAGAZINE_from_json.py @@ -42855,10 +43971,12 @@ msgid "" "An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " "uses microrobotics to load its cartridges." msgstr "" +"Es un autocargador avanzado para el rifle CW-24. Al igual que los cargadores" +" SVS, utiliza microbótica para cargar los cartuchos." #: lang/json/MAGAZINE_from_json.py msgid "CW-24 extended magazine" -msgstr "" +msgstr "cargador extendido CW-24" #. ~ Description for CW-24 extended magazine #: lang/json/MAGAZINE_from_json.py @@ -42869,16 +43987,18 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "CWD-63 extended magazine" -msgstr "" +msgstr "cargador extendido CWD-63" #. ~ Description for CWD-63 extended magazine #: lang/json/MAGAZINE_from_json.py msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." msgstr "" +"Es un cargador de caja barato de 10 balas para el CWD-63. No es muy " +"confiable." #: lang/json/MAGAZINE_from_json.py msgid "CWD-63 magazine" -msgstr "" +msgstr "cargador CWD-63" #. ~ Description for CWD-63 magazine #: lang/json/MAGAZINE_from_json.py @@ -42886,10 +44006,12 @@ msgid "" "Since it's created for the .308 round, it doesn't need the curved shape of " "the original magazine." msgstr "" +"Como fue creado para la bala .308, no necesita ser de forma curva como el " +"cargador original." #: lang/json/MAGAZINE_from_json.py msgid "SVS-24 robodrum" -msgstr "" +msgstr "robotambor SVS-24" #. ~ Description for SVS-24 robodrum #: lang/json/MAGAZINE_from_json.py @@ -42900,7 +44022,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "SVS-24 robomag" -msgstr "" +msgstr "robocartucho SVS-24" #. ~ Description for SVS-24 robomag #: lang/json/MAGAZINE_from_json.py @@ -42908,6 +44030,9 @@ msgid "" "An advanced 42-round auto-magazine. Unlike previous generations of " "magazines, this one uses microrobotics to load cartridges." msgstr "" +"Es un autocargador avanzado de 42 balas. A diferencia de las generaciones " +"anteriores de cargadores, este utiliza microbótica para cargar los " +"cartuchos." #: lang/json/MAGAZINE_from_json.py msgid "Eagle 1776 magazine" @@ -43154,6 +44279,10 @@ msgid "" "crossbow bolt into the weapon below. It is awkward to reload and not " "especially reliable." msgstr "" +"Es un cargador improvisado para una ballesta montada en un vehículo. Es una " +"caja común de metal con unas guías plásticas, un perno de ballesta cae por " +"la gravedad en la recámara del arma. Es medio incómoda de recargar y no es " +"muy confiable." #: lang/json/MAGAZINE_from_json.py msgid "canister rack" @@ -43174,7 +44303,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AF2011A1 magazine" -msgstr "" +msgstr "cargador AF2011A1" #. ~ Description for AF2011A1 magazine #: lang/json/MAGAZINE_from_json.py @@ -43211,6 +44340,8 @@ msgid "" "A removable plastic magazine for the Saiga-410 shotgun. Holds 30 rounds of " ".410 bore shotshells." msgstr "" +"Es un cargador de plástico extraíble para la escopeta Saiga-410. Contiene 30" +" balas de calibre .410." #: lang/json/MAGAZINE_from_json.py msgid ".357 Magnum speedloader" @@ -43222,6 +44353,8 @@ msgid "" "This speedloader can hold 7 rounds of .357 Magnum and quickly reload a " "compatible revolver." msgstr "" +"Este speedloader permite recargar rápidamente 7 balas calibre .357 Magnum en" +" cualquier revolver compatible." #: lang/json/MAGAZINE_from_json.py msgid ".38 Special speedloader" @@ -43298,7 +44431,7 @@ msgstr "¿Quieres un poco de locura en tu Cataclysm? Prueba este mod." #: lang/json/MOD_INFO_from_json.py msgid "(DP_RP) Chesthole Indicators" -msgstr "" +msgstr "(DP_RP) Indicadores Chesthole" #. ~ Description for (DP_RP) Chesthole Indicators #: lang/json/MOD_INFO_from_json.py @@ -43410,6 +44543,15 @@ msgid "" "other gun mods." msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "" @@ -43726,17 +44868,19 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Safe Autodoc" -msgstr "" +msgstr "Autodoc Seguro" #. ~ Description for Safe Autodoc #: lang/json/MOD_INFO_from_json.py msgid "" "Makes Autodoc operations completely safe, independent of the player's skill." msgstr "" +"Hace que las operaciones en el Autodoc sean completamente seguras, sin " +"importar la habilidad del jugador." #: lang/json/MOD_INFO_from_json.py msgid "Salvaged Robots" -msgstr "" +msgstr "Robots Recuperados" #. ~ Description for Salvaged Robots #: lang/json/MOD_INFO_from_json.py @@ -43747,7 +44891,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp msgid "Sleep Deprivation" -msgstr "" +msgstr "Privación de Sueño" #. ~ Description for Sleep Deprivation #: lang/json/MOD_INFO_from_json.py @@ -43910,6 +45054,7 @@ msgstr "Mod de Clases y Escenarios" #: lang/json/MOD_INFO_from_json.py msgid "Adds new classes and scenarios while rebalancing some existing ones." msgstr "" +"Agrega nuevas clases y escenarios y reajusta algunas de las ya existentes." #: lang/json/MOD_INFO_from_json.py msgid "Necromancy" @@ -44244,6 +45389,8 @@ msgid "" "The C.H.U.D. or Cannibalistic Humanoid Underground Dweller. A human being " "turned pale and mad from years of underground isolation." msgstr "" +"El H.H.S.C., o Habitante Humanoide Subterráneo Canibalesco. Un humano que se" +" volvió pálido y loco por los años que pasó aislado y bajo tierra." #: lang/json/MONSTER_from_json.py msgid "police bot" @@ -44707,7 +45854,7 @@ msgstr "holograma" #. ~ Description for hologram #: lang/json/MONSTER_from_json.py msgid "An image made from light, nearly identical to the real deal." -msgstr "" +msgstr "Es una imagen hecha de luz, casi parece real." #: lang/json/MONSTER_from_json.py msgid "homunculus" @@ -45305,6 +46452,10 @@ msgstr "" "hinchado. Se mueve de manera torpe, pero ataque con grandes reservas de " "ácido." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "zombi arrastrador" @@ -45386,6 +46537,8 @@ msgid "" "Charred zombie with bony plates, spikes and protrusions. Moves stiffly, but" " swiftly." msgstr "" +"Es un zombi chamuscado con placas, púas y protuberancias óseas. Se mueve " +"rígidamente, pero rápidamente." #: lang/json/MONSTER_from_json.py msgid "firefighter zombie" @@ -45546,6 +46699,8 @@ msgid "" "With a crocodile-like snout and rows of protruding teeth, this swimwear-clad" " zombie lurks in the water." msgstr "" +"Con una trompa similar a la de un cocodrilo y varias filas de dientes " +"saltones, este zombi vestido con malla merodea por el agua." #: lang/json/MONSTER_from_json.py msgid "zombie master" @@ -45859,6 +47014,10 @@ msgid "" "vulnerable, bones grew around its form to protect it - only, they kept " "growing. And growing. And growing." msgstr "" +"Este espantoso golem de placas óseas y carnes malformadas, se arrastra " +"pesadamente, con sus brazos hacia atrás como si fueran una carga indeseada. " +"Los huesos han crecido para proteger lo que antes era suave y vulnerable, " +"pero siguieron creciendo. Y creciendo. Y creciendo." #: lang/json/MONSTER_from_json.py msgid "chicken" @@ -45917,12 +47076,14 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "goose" -msgstr "" +msgstr "ganso" #. ~ Description for goose #: lang/json/MONSTER_from_json.py msgid "A Canadian goose, a common waterfowl that regrets leaving Canada." msgstr "" +"Es un ganso canadiense, un ave acuática común que se arrepiente de haberse " +"ido de Canadá." #: lang/json/MONSTER_from_json.py msgid "turkey" @@ -45939,7 +47100,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "pheasant" -msgstr "" +msgstr "faisán" #. ~ Description for pheasant #: lang/json/MONSTER_from_json.py @@ -45950,7 +47111,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cockatrice" -msgstr "" +msgstr "cocatriz" #. ~ Description for cockatrice #: lang/json/MONSTER_from_json.py @@ -45962,7 +47123,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "yellow chick" -msgstr "" +msgstr "pollito amarillo" #. ~ Description for yellow chick #: lang/json/MONSTER_from_json.py @@ -45970,6 +47131,8 @@ msgid "" "A tiny yellow and brown chick, it could be from a number of different " "species." msgstr "" +"Es un pequeño pollito amarillo y marrón, puede ser de cualquiera de las " +"especies que hay." #: lang/json/MONSTER_from_json.py msgid "brown chick" @@ -45983,6 +47146,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "A strange tiny chick, it could be from a number of different species." msgstr "" +"Es un pequeño pollito raro, puede ser de cualquiera de las especies que hay." #: lang/json/MONSTER_from_json.py msgid "waterfowl chick" @@ -46285,6 +47449,8 @@ msgstr "salmón" #: lang/json/MONSTER_from_json.py msgid "A salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Es un salmón. Es un pez bastante gordo y nutritivo. Ahumado tiene muy buen " +"sabor." #: lang/json/MONSTER_from_json.py msgid "sunfish" @@ -46423,11 +47589,11 @@ msgstr "" #. ~ Description for plague nymph #: lang/json/MONSTER_from_json.py msgid "An infected mutant cockroach about the size of a rat." -msgstr "" +msgstr "Es una cucaracha mutante e infectada del tamaño de una rata." #: lang/json/MONSTER_from_json.py msgid "plague vector" -msgstr "" +msgstr "portador de plaga" #. ~ Description for plague vector #: lang/json/MONSTER_from_json.py @@ -46742,6 +47908,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 "" +"Es una enorme hormiga marrón con el abdomen hinchado y palpitante. Parece " +"tener un orificio desarrollado solo para poner huevos en lugar de escupir " +"ácido como las otras hormigas, pero tampoco parece ser afectada por el agrio" +" líquido." #: lang/json/MONSTER_from_json.py msgid "acidic soldier ant" @@ -46943,6 +48113,11 @@ msgid "" "powerful leaps and pounces, catching its prey with its deadly claws before " "delivering the finishing blow with its enormous fangs." msgstr "" +"El puma del este, un gran felino depredador. Alguna vez se pensó que estaba " +"extinto en esta región, pero los esfuerzos de conservación fueron exitosos y" +" se restauró su población. Rápido y silencioso, este predador puede cubrir " +"largas distancias con fuertes saltos, cazando su presa con sus mortales " +"garras antes de dar el golpe final con sus enormes colmillos." #: lang/json/MONSTER_from_json.py msgid "calf" @@ -46976,6 +48151,11 @@ 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 "" +"Es el coyote del este, también llamado lobo de tweed, es un canino " +"territorial descendiente de los hijos de los lobos grises y verdaderos " +"coyotes. Es intimidado por los humanos y otros depredadores, pero va a " +"pelear si se siente amenazado, y el Cataclismo lo ha hecho más temerario que" +" antes." #. ~ Description for coyote #: lang/json/MONSTER_from_json.py @@ -47032,6 +48212,8 @@ msgid "" "An adorable, defenseless Labrador puppy. Much safer to tame than adult " "counterparts." 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" @@ -47067,6 +48249,10 @@ msgid "" "for its 'lock jaw' - which isn't real, but their incredible determination " "is." msgstr "" +"El pit bull en realidad no es una sola raza, como se cree, si no el nombre " +"que se le da a varias clases de terrier. Posee habilidades mediocres y es " +"famoso por poder trabar su mandíbula, lo que no es verdad pero su increíble " +"determinación sí lo es." #: lang/json/MONSTER_from_json.py msgid "pit bull puppy" @@ -47092,7 +48278,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "beagle puppy" -msgstr "" +msgstr "cachorro beagle" #. ~ Description for beagle puppy #: lang/json/MONSTER_from_json.py @@ -47123,6 +48309,8 @@ msgid "" "An adorable, defenseless border collie puppy. Much safer to tame than adult" " counterparts." msgstr "" +"Es un cachorrito de border collie, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "boxer mastiff" @@ -47145,6 +48333,8 @@ msgid "" "An adorable, defenseless boxer puppy. Much safer to tame than adult " "counterparts." msgstr "" +"Es un cachorrito de boxer, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "Chihuahua" @@ -47156,10 +48346,12 @@ msgid "" "It's a tiny Chihuahua. How it has managed to survive is a miracle; although" " its small size and aggressive nature may been useful." msgstr "" +"Es un pequeño chihuahua. Cómo hizo para seguir vivo es un milagro, aunque su" +" naturaleza agresiva y su pequeño tamaño pueden haberle servido." #: lang/json/MONSTER_from_json.py msgid "Chihuahua puppy" -msgstr "" +msgstr "cachorro Chihuahua" #. ~ Description for Chihuahua puppy #: lang/json/MONSTER_from_json.py @@ -47167,6 +48359,8 @@ msgid "" "An adorable, defenseless Chihuahua puppy. Much safer to tame than adult " "counterparts." msgstr "" +"Es un cachorrito de chihuahua, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "dachshund" @@ -47193,7 +48387,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "German shepherd" -msgstr "" +msgstr "pastor alemán" #. ~ Description for German shepherd #: lang/json/MONSTER_from_json.py @@ -47201,10 +48395,13 @@ 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 "" +"Es la raza K-9 original. Es un perro fácil de entrenar y muy bueno para " +"atacar, que también defenderá a su dueño hasta la muerte. Aunque no trabaja " +"bien en manada." #: lang/json/MONSTER_from_json.py msgid "German shepherd puppy" -msgstr "" +msgstr "cachorro pastor alemán" #. ~ Description for German shepherd puppy #: lang/json/MONSTER_from_json.py @@ -47212,6 +48409,8 @@ msgid "" "An adorable, defenseless German shepherd puppy. Much safer to tame than " "adult counterparts." msgstr "" +"Es un cachorrito de pastor alemán, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "Great Pyrenees" @@ -47261,7 +48460,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cattle dog" -msgstr "" +msgstr "perro pastor" #. ~ Description for cattle dog #: lang/json/MONSTER_from_json.py @@ -47272,7 +48471,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cattle dog puppy" -msgstr "" +msgstr "cachorro perro pastor" #. ~ Description for cattle dog puppy #: lang/json/MONSTER_from_json.py @@ -47280,6 +48479,8 @@ msgid "" "An adorable, defenseless Australian cattle dog puppy. Much safer to tame " "than adult counterparts." msgstr "" +"Es un cachorrito de perro pastor australiano, adorable e indefenso. Mucho " +"más fácil de domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "fox" @@ -47386,6 +48587,9 @@ msgid "" "aggressive unless angered, the mating season can make the bulls quite ill-" "tempered." msgstr "" +"El alce del este, el más grande de la familia de los ciervos. Aunque no son " +"agresivos si no se los molestan, durante la temporada de celo son bastante " +"malhumorados." #: lang/json/MONSTER_from_json.py msgid "muskrat" @@ -47645,6 +48849,8 @@ msgid "" "Leadworks LLC's T-4A1 Sentry. It features improved firmware over General " "Atomics' TX-1 9x19mm model and an automated M4 carbine." msgstr "" +"La T-4A1 Sentry de Leadworks SRL. Posee un firmware mejorado del modelo TX-1" +" 9x19mm de General Atomic, y una carabina M4 automatizada." #: lang/json/MONSTER_from_json.py msgid "centipede" @@ -47863,6 +49069,10 @@ msgid "" " it isn't big enough to regard humans as potential prey, it is more " "aggressive and dangerous compared to a normal rattler." msgstr "" +"Es una serpiente de cascabel de la madera mutada, de unas tres veces más " +"grande que la común. Aunque no es lo suficientemente grande como para " +"considerar a los humanos su presa, es más agresiva y peligrosa comparada a " +"la cascabel normal." #: lang/json/MONSTER_from_json.py msgid "sewer snake" @@ -48543,6 +49753,9 @@ msgid "" "the bone. In its bony hand, it holds a pristine trumpet, unmarred by the end" " of the world." msgstr "" +"Desprovisto completamente de carne y órganos, la presencia de este esqueleto" +" ambulante te cala hasta los huesos. En su mano huesuda, tiene una trompeta " +"prístina, intacta del fin del mundo." #: lang/json/MONSTER_from_json.py msgid "minion of skeltal" @@ -48769,8 +49982,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed defense turret" msgid_plural "disarmed defense turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta defensiva desarmada" +msgstr[1] "torretas defensivas desarmadas" #. ~ Description for disarmed defense turret #: lang/json/MONSTER_from_json.py @@ -48784,8 +49997,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed military turret" msgid_plural "disarmed military turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta militar desarmada" +msgstr[1] "torretas militares desarmadas" #. ~ Description for disarmed military turret #: lang/json/MONSTER_from_json.py @@ -48794,12 +50007,16 @@ msgid "" "using state of the art ATR systems to dynamically reorient itself to new " "friends and enemies alike. It requires a inegrated gun module to operate." msgstr "" +"La torreta de la serie TX de Leadworks LLC es una torreta militar " +"automatizada. Utiliza sistemas ATR de última generación para reorientarse " +"dinámicamente hacia sus nuevos amigos y enemigos por igual. Necesita un " +"módulo integrado de arma para funcionar." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed advanced turret" msgid_plural "disarmed advanced turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta mejorada desarmada" +msgstr[1] "torretas mejoradas desarmadas" #. ~ Description for disarmed advanced turret #: lang/json/MONSTER_from_json.py @@ -48821,6 +50038,10 @@ msgid "" "friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " "full 360 degrees." msgstr "" +"La General Atomics TX-1 Guardian es una pequeña torreta automatizada con " +"forma de pastilla. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"subfusil 9mm integrado puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "shotgun turret" @@ -48837,7 +50058,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "riot control turret" -msgstr "" +msgstr "torretas antidisturbios" #. ~ Description for riot control turret #: lang/json/MONSTER_from_json.py @@ -48847,6 +50068,10 @@ msgid "" "friends and enemies alike. Its integrated 40mm teargas launcher can swivel " "a full 360 degrees." msgstr "" +"La General Atomics TZ-1a Warden es una pequeña torreta automatizada con " +"forma de pastilla. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"lanzador de gas lacrimógeno de 40mm integrado puede rotar 360 grados." #. ~ Description for riot control turret #: lang/json/MONSTER_from_json.py @@ -48856,6 +50081,10 @@ msgid "" "new friends and enemies alike. Its integrated 40mm beanbag launcher can " "swivel a full 360 degrees." msgstr "" +"La General Atomics TZ-1b Pacifier es una pequeña torreta automatizada con " +"forma de pastilla. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"lanzador de perdigones de goma de 40mm integrado puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "5.56mm turret" @@ -48885,7 +50114,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "50cal turret" -msgstr "" +msgstr "torreta 50cal" #. ~ Description for 50cal turret #: lang/json/MONSTER_from_json.py @@ -48911,7 +50140,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "needle turret" -msgstr "" +msgstr "torreta de clavos" #. ~ Description for needle turret #: lang/json/MONSTER_from_json.py @@ -48921,6 +50150,10 @@ msgid "" "friends and enemies alike. Its integrated 5mm flechette gun can swivel a " "full 360 degrees." msgstr "" +"La torreta TN-7 Sentry de Leadworks LLC es una torreta militar automatizada " +"de dardos perforantes. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"arma de dardos perforantes integrada puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "40mm grenade turret" @@ -48934,6 +50167,10 @@ msgid "" "and enemies alike. Its integrated 40mm grenade launcher can swivel a full " "360 degrees." msgstr "" +"La torreta TG-7 Sentry de Leadworks LLC es una torreta militar automatizada." +" Utiliza sistemas ATR de última generación para reorientarse dinámicamente " +"hacia sus nuevos amigos y enemigos por igual. Su lanzagranadas 40mm " +"integrado puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "flame turret" @@ -48947,6 +50184,10 @@ msgid "" "friends and enemies alike. Its integrated flamethrower can swivel a full " "360 degrees." msgstr "" +"La torreta TF-7 Sentry de Leadworks LLC es una torreta militar automatizada " +"lanzallamas. Utiliza sistemas ATR de última generación para reorientarse " +"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su lanzallamas " +"integrado puede rotar 360 grados." #. ~ Description for laser turret #: lang/json/MONSTER_from_json.py @@ -48956,10 +50197,14 @@ msgid "" "and enemies alike. Its integrated laser emitter can swivel a full 360 " "degrees." msgstr "" +"La torreta T-L3 Scintillator de DoubleTech es una torreta avanzada " +"automatizada láser. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"emisor láser integrado puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "acid turret" -msgstr "" +msgstr "torreta ácida" #. ~ Description for acid turret #: lang/json/MONSTER_from_json.py @@ -48982,6 +50227,10 @@ msgid "" "and enemies alike. Its integrated plasma ejector can swivel a full 360 " "degrees." msgstr "" +"La torreta T-P3 Scathefire de DoubleTech es una torreta avanzada " +"automatizada láser. Utiliza sistemas ATR de última generación para " +"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " +"eyector de plasma integrado puede rotar 360 grados." #: lang/json/MONSTER_from_json.py msgid "railgun turret" @@ -48997,7 +50246,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "advanced electro turret" -msgstr "" +msgstr "electrotorreta mejorada" #. ~ Description for advanced electro turret #: lang/json/MONSTER_from_json.py @@ -49091,6 +50340,9 @@ msgid "" "This one is equipped with an electric prod, tear gas sprayer, and integrated" " 40mm beanbag launcher." msgstr "" +"Es un robot defensivo automatizado, todavía activo debido a su fuente " +"interna de energía. Este está equipada con una picana eléctrica, un rociador" +" de gas lacrimógeno y un lanzaperdigones de 40mm." #: lang/json/MONSTER_from_json.py msgid "W11B10" @@ -49114,6 +50366,9 @@ msgid "" "of one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces. " msgstr "" +"Wraitheon (11B) Infantería Nivel 20 (B4) Francotirador. Parte de la serie de" +" Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más" +" tradicionales." #: lang/json/MONSTER_from_json.py msgid "W12B10" @@ -49138,6 +50393,9 @@ msgid "" "one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces." msgstr "" +"Wraitheon (11H) Infantería Anti-Tanque Nivel 10. Parte de la serie de " +"Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más " +"tradicionales." #: lang/json/MONSTER_from_json.py msgid "W12N10" @@ -49166,7 +50424,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "automated armor" -msgstr "" +msgstr "armadura automatizada" #. ~ Description for automated armor #: lang/json/MONSTER_from_json.py @@ -49185,7 +50443,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "auto armor" -msgstr "" +msgstr "armaduras automáticas" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "heavy auto armor" @@ -49204,7 +50462,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "distract-o-hack" -msgstr "" +msgstr "distract-o-hack" #. ~ Description for distract-o-hack #: lang/json/MONSTER_from_json.py @@ -49214,6 +50472,10 @@ msgid "" "hostile targets. Although fragile, the distract-o-hack's erratic movements " "make it difficult to hit." msgstr "" +"Es un drone reconvertido para cumplir funciones distractivas. Una vez que " +"está activado prenderá luces, producirá un sonido, emitirá chispas y se " +"moverá hacia el enemigo. Aunque es frágil, el movimiento errático del " +"distract-o-hack lo hace difícil de golpear." #: lang/json/MONSTER_from_json.py msgid "arsonhack" @@ -49239,10 +50501,13 @@ msgid "" "releases a puff of fungal spores. Who in their right mind would build such " "a thing?" msgstr "" +"Es un drone reconvertido para esparcir contaminantes alienígenas. Libera " +"periódicamente una nube de esporas fúngicas. ¿Quién en su sano juicio " +"querría construir esto?" #: lang/json/MONSTER_from_json.py msgid "watercannon turret" -msgstr "" +msgstr "torreta de cañón de agua" #. ~ Description for watercannon turret #: lang/json/MONSTER_from_json.py @@ -49250,10 +50515,13 @@ msgid "" "A turret equipped with a jury-rigged watercannon in place of a proper " "firearm. It's highly ineffective but the ammo is cheap." msgstr "" +"Es una torreta equipada con un cañón de agua medio atado con alambre, en " +"lugar de un arma de en serio. Es bastante inefectiva pero tiene munición " +"barata." #: lang/json/MONSTER_from_json.py msgid "floating heater" -msgstr "" +msgstr "calentador flotante" #. ~ Description for floating heater #: lang/json/MONSTER_from_json.py @@ -49276,7 +50544,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "burning eye" -msgstr "" +msgstr "ojo llameante" #. ~ Description for burning eye #: lang/json/MONSTER_from_json.py @@ -49285,6 +50553,9 @@ 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 "" +"Es un ojobot reconvertido con un arma láser. La ausencia de retroceso le " +"permite al robot flotante apuntar y disparar sin ninguna penalidad. Tiene un" +" rango y daño bastante decentes, pero tarda un tiempo extendido en recargar." #: lang/json/MONSTER_from_json.py msgid "hazmat bot" @@ -49299,7 +50570,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "butler-bot" -msgstr "" +msgstr "mayordobot" #. ~ Description for butler-bot #: lang/json/MONSTER_from_json.py @@ -49308,7 +50579,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "construction robot" -msgstr "" +msgstr "robot constructor" #. ~ Description for construction robot #: lang/json/MONSTER_from_json.py @@ -49320,7 +50591,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "firefighter robot" -msgstr "" +msgstr "bomberobot" #. ~ Description for firefighter robot #: lang/json/MONSTER_from_json.py @@ -49329,6 +50600,10 @@ msgid "" "departments and emergency services. Designed for entering burning buildings " "and other situations deemed too dangerous for human firefighters." msgstr "" +"Es uno de los varios modelos de robots bomberos que eran utilizados por los " +"departamentos de bomberos y los servicios de emergencia. Diseñado para " +"entrar en edificios en llamas y actuar en situaciones demasiado peligrosas " +"para los bomberos humanos." #: lang/json/MONSTER_from_json.py msgid "blob breeder" @@ -49392,7 +50667,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "assassination robot" -msgstr "" +msgstr "asesinobot" #. ~ Description for assassination robot #: lang/json/MONSTER_from_json.py @@ -49415,7 +50690,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "party bot" -msgstr "" +msgstr "fiestabot" #. ~ Description for party bot #: lang/json/MONSTER_from_json.py @@ -49427,7 +50702,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rat snatcher" -msgstr "" +msgstr "cazaratas" #. ~ Description for rat snatcher #: lang/json/MONSTER_from_json.py @@ -49473,7 +50748,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "necrotic cyborg" -msgstr "" +msgstr "androide necrótico" #. ~ Description for necrotic cyborg #: lang/json/MONSTER_from_json.py @@ -49482,6 +50757,9 @@ msgid "" "animate head retains some of its ability to revive zombies. Why on Earth " "would anyone build such an abomination?" msgstr "" +"Es un androide reconvertido con la cabeza de un zombi nigromante. La cabeza " +"retiene algo de su habilidad para revivir zombis. ¿Por qué carajo alguien " +"querría construir semejante abominación?" #. ~ Description for security robot #: lang/json/MONSTER_from_json.py @@ -49500,6 +50778,8 @@ msgid "" "A military robot still operating due to its internal power core. This one is" " armed with an electric prod and an integrated 5.56mm firearm." msgstr "" +"Es un robot militar todavía activo debido a su fuente interna de energía. " +"Este está armado con una picana eléctrica y un arma 5.56mm integrada." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -49514,6 +50794,8 @@ msgid "" "A military robot still operating due to its internal power core. This one " "is armed with an electric prod and an integrated 5.56mm firearm." msgstr "" +"Es un robot militar todavía activo debido a su fuente interna de energía. " +"Este está armado con una picana eléctrica y un arma 5.56mm integrada." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -49521,6 +50803,8 @@ msgid "" "A military robot still operating due to its internal power core. This one " "is armed with an electric prod and an integrated 7.62mm firearm." msgstr "" +"Es un robot militar todavía activo debido a su fuente interna de energía. " +"Este está armado con una picana eléctrica y un arma 7.62mm integrada." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -49528,6 +50812,8 @@ msgid "" "A military robot still operating due to its internal power core. This one " "is armed with an electric prod and an integrated 50 caliber firearm." msgstr "" +"Es un robot militar todavía activo debido a su fuente interna de energía. " +"Este está armado con una picana eléctrica y un arma calibre 50 integrada." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -49542,10 +50828,13 @@ msgid "" "A military robot still operating due to its internal power core. This one " "is armed with an electric prod and an integrated 5x50mm flechette gun." msgstr "" +"Es un robot militar todavía activo debido a su fuente interna de energía. " +"Este está armado con una picana eléctrica y un arma 5.50mm de dardos " +"perforantes integrada." #: lang/json/MONSTER_from_json.py msgid "grenadier robot" -msgstr "" +msgstr "granaderobot" #. ~ Description for grenadier robot #: lang/json/MONSTER_from_json.py @@ -49578,7 +50867,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "laser-emitting robot" -msgstr "" +msgstr "robot emisor-láser" #. ~ Description for laser-emitting robot #: lang/json/MONSTER_from_json.py @@ -49611,7 +50900,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "electro-casting robot" -msgstr "" +msgstr "robot lanza-rayos eléctricos" #. ~ Description for electro-casting robot #: lang/json/MONSTER_from_json.py @@ -49630,10 +50919,12 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful EMP-projector." msgstr "" +"Es un robot avanzado todavía activo debido a su fuente interna de energía. " +"Este modelo está equipado con un poderoso proyector PEM." #: lang/json/MONSTER_from_json.py msgid "junkyard cowboy" -msgstr "" +msgstr "vaquero de basurero" #. ~ Description for junkyard cowboy #: lang/json/MONSTER_from_json.py @@ -49665,6 +50956,9 @@ msgid "" "searing hot blades. The burning fuel reserves make the robot noisy and " "smokey." msgstr "" +"Es un robot defensivo reconvertido con un lanzallamas casero y dos cuchillas" +" ardientes. Las reservas de combustible hacen que el robot sea ruidoso y " +"largue mucho humo." #: lang/json/MONSTER_from_json.py msgid "robo-gaurdian" @@ -49678,6 +50972,10 @@ msgid "" "limit the effective range and accuracy. It makes for a good close range " "bodyguard." msgstr "" +"Es un robot militar reconvertido con un par de armas 9mm integradas. Las " +"múltiples armas le brindan alta velocidad de disparo, pero los sensores " +"atados con alambre limitan el rango efectivo y la precisión. Es un buen " +"guardaespaldas de corto alcance." #: lang/json/MONSTER_from_json.py msgid "robote deluxe" @@ -49705,7 +51003,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "robo-defender" -msgstr "" +msgstr "defensorbot" #. ~ Description for robo-defender #: lang/json/MONSTER_from_json.py @@ -49715,6 +51013,10 @@ msgid "" "software requires an extended pause between shots. It makes for a good long " "range sniper." msgstr "" +"Es un robot militar reconvertido con un rifle 50bmg integrado. Las ópticas " +"mejoradas le otorgan visión nocturna y un alcance excelente, pero el " +"software defectuoso requiere una pausa larga entre tiros. Es un buen " +"francotirador." #: lang/json/MONSTER_from_json.py msgid "glittering lady" @@ -49739,10 +51041,13 @@ msgid "" "acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " "pipes weaken the robot structurally, making it somewhat fragile." msgstr "" +"Es un robot militar transformado en un monstruo cáustico. Un fermentador " +"interno de ácido alimenta un escupidor y rociador. La cantidad de tanques y " +"caños debilitan la estructura del robot, haciéndolo bastante frágil." #: lang/json/MONSTER_from_json.py msgid "chainsaw horror" -msgstr "" +msgstr "horror motosierra" #. ~ Description for chainsaw horror #: lang/json/MONSTER_from_json.py @@ -49753,6 +51058,11 @@ msgid "" " shrieks of distorted music. No one in their right mind would craft such an" " awful creature." msgstr "" +"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " +"calaveras y púas. En lugar de sus armas de largo alcance, tiene un conjunto " +"de motosierras zumbantes. Tiene instalado un sistema de altavoces para " +"emitir unos terroríficos chillidos de música distorsionada. Nadie en su sano" +" juicio fabricaría semejante criatura." #: lang/json/MONSTER_from_json.py msgid "screeching terror" @@ -49767,6 +51077,11 @@ msgid "" "shrieks of distorted music. No one in their right mind would craft such a " "hellish beast." msgstr "" +"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " +"calaveras y púas. En lugar de sus armas de largo alcance, tiene un conjunto " +"de lanzas a pistones. Tiene instalado un sistema de altavoces para emitir " +"unos terroríficos chillidos de música distorsionada. Nadie en su sano juicio" +" fabricaría semejante bestia." #: lang/json/MONSTER_from_json.py msgid "hooked nightmare" @@ -49794,6 +51109,11 @@ 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 wreckless behemoth." msgstr "" +"Es un tanquebot modificado con un par de poderosos martillos neumáticos que " +"utiliza para aplastar todo lo que se cruce, incluso edificios. Aunque no " +"tiene las armas de distancias, su armadura y fuerza lo hacen un problema " +"incluso para los monstruos más grandes. Solo un loco se atrevería a " +"construir semejante mastodonte temerario." #: lang/json/MONSTER_from_json.py msgid "atomic sultan" @@ -49923,6 +51243,8 @@ msgid "" "A battery compartment mod that allows using vehicle batteries and small " "storage batteries in regular tools." msgstr "" +"Es una modificación de compartimiento para batería que te permite utilizar " +"las baterías de vehículos y baterías pequeñas en herramientas comunes." #: lang/json/TOOL_ARMOR_from_json.py msgid "mining helmet" @@ -50041,11 +51363,18 @@ msgid_plural "fedoras" msgstr[0] "fedora" msgstr[1] "fedoras" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Inclinas tu fedora." +#, no-python-format +msgid "You tip your %s." +msgstr "Inclinás tu %s." #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -50250,8 +51579,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp" msgid_plural "headlamps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "faro delantero" +msgstr[1] "faros delanteros" #. ~ Use action msg for headlamp. #: lang/json/TOOL_ARMOR_from_json.py @@ -50273,8 +51602,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp (on)" msgid_plural "headlamps (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "faro delantero (enc.)" +msgstr[1] "faros delanteros (enc.)" #. ~ Description for headlamp (on) #: lang/json/TOOL_ARMOR_from_json.py @@ -50918,7 +52247,7 @@ msgstr[1] "bufandas simples de retazos" #. ~ Use action menu_text for ski mask. #: lang/json/TOOL_ARMOR_from_json.py msgid "Loosen" -msgstr "" +msgstr "Aflojar" #. ~ Use action msg for simple patchwork scarf. #. ~ Use action msg for long patchwork scarf. @@ -51306,7 +52635,7 @@ msgstr "¡PIIIIIIIIIII!" #. ~ 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 "" +msgstr "Hacés sonar el silbato." #. ~ Description for whistle #: lang/json/TOOL_ARMOR_from_json.py @@ -51462,6 +52791,8 @@ msgid "" "Unfolded array of portable solar panels ready to push some power into an " "active cable charger system." msgstr "" +"Son varios paneles solares portátiles desplegados, listos para generar " +"energía para algún sistema de recarga." #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (folded)" @@ -51490,6 +52821,8 @@ msgid "" "Unfolded array of portable quantum solar panels ready to push some power " "into an active cable charger system." msgstr "" +"Son varios paneles solares de quántum portátiles desplegados, listos para " +"generar energía para algún sistema de recarga." #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet" @@ -51500,7 +52833,7 @@ msgstr[1] "cascos antidisturbios" #. ~ Use action msg for riot helmet. #: lang/json/TOOL_ARMOR_from_json.py msgid "You raise your visor." -msgstr "" +msgstr "Levantás tu visor." #. ~ Description for riot helmet #: lang/json/TOOL_ARMOR_from_json.py @@ -51508,6 +52841,8 @@ msgid "" "A helmet with a plastic shield that covers your entire face. Activate to " "raise the face shield." msgstr "" +"Es un casco con una protección plástica que cubre la cara entera. Hay que " +"usarlo para levantar el visor protector." #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet (raised visor)" @@ -51542,8 +52877,8 @@ msgstr[1] "gafas bionicas" #: lang/json/TOOL_from_json.py msgid "autonomous surgical scalpels" msgid_plural "autonomous surgical scalpelss" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escalpelo quirúrgico autónomo" +msgstr[1] "escalpelos quirúrgicos autónomos" #: lang/json/TOOL_from_json.py msgid "bionic razor" @@ -51554,8 +52889,8 @@ msgstr[1] "navajas biónicas" #: lang/json/TOOL_from_json.py msgid "clairvoyance rod" msgid_plural "clairvoyance rods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara de clarividencia" +msgstr[1] "varas de clarividencia" #. ~ Description for clairvoyance rod #: lang/json/TOOL_from_json.py @@ -51570,6 +52905,12 @@ msgid_plural "boulder anvils" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -51821,7 +53162,7 @@ msgstr[1] "granadas PEM" #. ~ Use action menu_text for scrambler grenade. #: lang/json/TOOL_from_json.py msgid "Pull pin" -msgstr "" +msgstr "Quitar gancho de seguridad" #. ~ Use action msg for EMP grenade. #: lang/json/TOOL_from_json.py @@ -52327,6 +53668,11 @@ msgid "" "activate the flashbang hack. Electronics and computer skill determines if " "the targeting matrix is reprogrammed successfully." msgstr "" +"Es un destello-hack inactivo. Los destello-hacks son robots del tamaño de un" +" puño que vuelan por el aire. Este contiene una granada de destello y su " +"manera de atacar es volar hacia el objetivo y detonar. Usalo para " +"reprogramar y soltar el destello-hack. Tu habilidad en electrónica y " +"computación determinará si la reprogramación es exitosa." #: lang/json/TOOL_from_json.py msgid "inactive tear gas hack" @@ -52379,6 +53725,11 @@ msgid "" "grenade hack. Electronics and computer skill determines if the targeting " "matrix is reprogrammed successfully." msgstr "" +"Es un grana-hack inactivo. Los grana-hacks son robots del tamaño de un puño " +"que vuelan por el aire. Este contiene una granada y su manera de atacar es " +"volar hacia el objetivo y detonar. Usalo para reprogramar y soltar el grana-" +"hack. Tu habilidad en electrónica y computación determinará si la " +"reprogramación es exitosa." #: lang/json/TOOL_from_json.py msgid "inactive laser turret" @@ -52500,6 +53851,12 @@ 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 "" +"Es una torreta inactiva. Usarla incluye cargar la unidad con las balas " +"9x19mm que haya en tu inventario (si querés dividir tu munición, dejá la " +"9x19mm que NO quieras ponerle a la torreta), prenderla y ubicarla en el " +"suelo, donde se desplegará sola. Si se la reprograma e instala " +"correctamente, la torreta te identificará como aliado, y atacará a todos tus" +" enemigos con su subfusil incorporado." #: lang/json/TOOL_from_json.py msgid "brick kiln" @@ -53011,42 +54368,6 @@ msgstr "" "Es un pequeño tanque de metal en el que se pone el carbón, con un encendedor" " piloto agregado. La puedes usar para cocinar comida, claro." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "equipo de química" -msgstr[1] "equipos de química" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Es un equipo de química guardado en una caja. El contenido incluye " -"recipientes de cristal, mangueras, cables de metal, una placa térmica " -"eléctrica, y lentes de seguridad. Puede ser usado para fabricar cosas " -"químicas si es que te interesa." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "equipo básico de química" -msgstr[1] "equipos básicos de química" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"Es un equipo básico de química que contiene recipientes de cristal, " -"mangueras y lentes de seguridad. Puede ser usado para fabricar cosas " -"químicas si es que te interesa, pero vas a necesitar también una fuente de " -"calor." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -53175,8 +54496,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "electric combat chainsaw (off)" msgid_plural "electric combat chainsaws (off)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "motosierra eléctrica de combate (apag.)" +msgstr[1] "motosierras eléctricas de combate (apag.)" #. ~ Description for electric combat chainsaw (off) #: lang/json/TOOL_from_json.py @@ -53487,6 +54808,10 @@ msgid "" "ensures that only someone both strong and very skilled could possibly hope " "to use it." msgstr "" +"Es un palo largo de madera con motosierras eléctricas puestas en las puntas " +"de manera poco práctica. El resultado es una genialidad o una locura, pero " +"no las dos cosas. El peso solo le permite a alguien con fuerza y muy hábil " +"pueda tener la esperanza de usarla." #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (on)" @@ -53501,6 +54826,9 @@ msgid "" "ends. They are currently on and draining power; use this item to turn them " "off." msgstr "" +"Es un palo largo de madera con motosierras eléctricas puestas en las puntas " +"de manera poco práctica. Están encendidas y consumen gradualmente energía. " +"Usala para apagarla." #. ~ Description for cutlass #: lang/json/TOOL_from_json.py @@ -55621,7 +56949,7 @@ msgstr[1] "cócteles molotov" #. ~ Use action menu_text for Molotov cocktail. #: lang/json/TOOL_from_json.py msgid "Light rag" -msgstr "" +msgstr "Encender trapo" #. ~ Use action msg for Molotov cocktail. #: lang/json/TOOL_from_json.py @@ -56884,6 +58212,8 @@ 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 "" +"Es un extintor portátil que contiene un litro de gas CO2 comprimido. Es útil" +" para apagar fuegos cercanos." #: lang/json/TOOL_from_json.py msgid "firearm repair kit" @@ -56993,6 +58323,9 @@ msgid "" "It's long enough to slice from a distance, but its crude construction means " "it won't last long." msgstr "" +"Es un palo común de madera con una púa metálica también común atada en la " +"punta. Es lo suficientemente larga como para atacar a distancia, pero su " +"construcción simple la hace poco duradera." #: lang/json/TOOL_from_json.py msgid "homemade halfpike" @@ -57007,6 +58340,9 @@ msgid "" "metal shape seated and bound into place at its tip. Its functional grip and" " decent construction makes it a usable, if not effective, weapon." msgstr "" +"Es una lanza corta hecha en casa con un palo de madera y una forma metálica " +"puesta y atada en la punta. Su práctico mango y decente construcción la " +"convierten en una buena arma, bastante efectiva." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -57631,7 +58967,7 @@ msgstr[1] "cohetes de caramelo" #. ~ Use action menu_text for rocket candy. #: lang/json/TOOL_from_json.py msgid "Light candy" -msgstr "" +msgstr "Encender caramelo" #. ~ Use action msg for rocket candy. #: lang/json/TOOL_from_json.py @@ -58088,6 +59424,9 @@ msgid "" "unter Zuführung von Benzin, eine anhaltende Flamme erzeugen lässt. Es ist " "eine sehr mächtige Waffe." msgstr "" +"Ein großes zweihändiges Schwert aus Deutschland, an dessen Klinge sich, " +"unter Zuführung von Benzin, eine anhaltende Flamme erzeugen lässt. Es ist " +"eine sehr mächtige Waffe." #: lang/json/TOOL_from_json.py msgid "flammenschwert" @@ -58191,8 +59530,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "electrolysis kit" msgid_plural "electrolysis kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "equipo de electrólisis" +msgstr[1] "equipos de electrólisis" #. ~ Description for electrolysis kit #: lang/json/TOOL_from_json.py @@ -58201,6 +59540,9 @@ msgid "" "liquid. Useful for crafting. Load with a storage battery or 12V vehicle " "battery to use." msgstr "" +"Es un conjunto de cables y electrodos para aplicar corriente continua " +"usualmente a un líquido. Útil para fabricar otras cosas. Hay que cargarlo " +"con una batería de almacenamiento o una batería de 12V de auto para usarlo." #: lang/json/TOOL_from_json.py msgid "platinum grille" @@ -58214,6 +59556,8 @@ msgid "" "This is a metal grille with a layer of platinum plating, suitable for use as" " a catalyst for some chemical reactions." msgstr "" +"Esto es una rejilla de metal con una capa de platino, útil para usarse como " +"catalizador para algunas reacciones químicas." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" @@ -58682,6 +60026,178 @@ msgstr "" " dispositivos del coche. Algunos coches pueden ser manejados de manera " "remota." +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "equipo de química" +msgstr[1] "equipos de química" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Es un equipo de química guardado en una caja. El contenido incluye " +"recipientes de cristal, mangueras, cables de metal, una placa térmica " +"eléctrica, y lentes de seguridad. Puede ser usado para fabricar cosas " +"químicas si es que te interesa." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "equipo básico de química" +msgstr[1] "equipos básicos de química" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"Es un equipo básico de química que contiene recipientes de cristal, " +"mangueras y lentes de seguridad. Puede ser usado para fabricar cosas " +"químicas si es que te interesa, pero vas a necesitar también una fuente de " +"calor." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 robusto equipo contiene algunas cosas básicas que vas a necesitar para " +"hacer trabajos precisos de química: específicamente, una pequeña balanza, un" +" espectrofotómetro, un aparato de punto de fusión, un medidor de pH y un " +"equipo de papeles finos de cromatografía. Esto te ayuda a sentirte confiado " +"a poder crear el químico deseado." + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "espectrofotómetro" +msgstr[1] "espectrofotómetros" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" +"Es una pequeña caja llena de tubos plásticos cuadrados precisamente " +"calibrados, para espectrometría de laboratorio." + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" +"Esto es básicamente, un par de sondas de vidrio en un voltímetro. Al poner " +"una sonda en la solución de calibración (incluída convenientemente en el " +"equipo) y la otra sonda en una sustancia, se puede calcular su acidez." + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "detector de luz" +msgstr[1] "detectores de luz" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" +"Esto es un prisma de cristal de alta calidad que se usa para dividir y " +"redireccionar la luz." + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -58941,6 +60457,8 @@ 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 "" +"Es un pedazo de bronce de forma extraña, con una esquina similar a un " +"cincel. Se usa para la mayoría de las fabricaciones metalúrgicas." #. ~ Use action use_message for disarmed defense turret. #. ~ Use action use_message for disarmed military turret. @@ -58957,7 +60475,7 @@ msgstr "" #. ~ Description for disarmed military turret #: lang/json/TOOL_from_json.py msgid "An automated military turret. It lacks an intergrated weapon." -msgstr "" +msgstr "Es una torreta militar automatizada. No tiene un arma integrada." #. ~ Description for disarmed advanced turret #: lang/json/TOOL_from_json.py @@ -58967,8 +60485,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive 9mm defense turret" msgid_plural "inactive 9mm defense turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta defensiva 9mm inactiva" +msgstr[1] "torretas defensivas 9mm inactivas" #. ~ Description for inactive 9mm defense turret #: lang/json/TOOL_from_json.py @@ -58978,6 +60496,10 @@ 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 "" +"Es una torreta defensiva inactiva 9mm. Serán cargadas automáticamente hasta " +"100 balas 9mm desde tu inventario a la torreta cuando la actives. Cuando " +"pongas la torreta te va a identificar como aliado con su software IFF " +"avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive shotgun defense turret" @@ -59035,12 +60557,16 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Es una torreta militar inactiva 5.56mm. Serán cargadas automáticamente hasta" +" 100 balas 5.56mm NATO desde tu inventario a la torreta cuando la actives. " +"Cuando pongas la torreta te va a identificar como aliado con su software IFF" +" avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive 7.62mm military turret" msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta militar 7.62mm inactiva" +msgstr[1] "torretas militares 7.62mm inactivas" #. ~ Description for inactive 7.62mm military turret #: lang/json/TOOL_from_json.py @@ -59071,8 +60597,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive military needle turret" msgid_plural "inactive military needle turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta militar de clavos inactiva" +msgstr[1] "torretas militares de clavos inactivas" #. ~ Description for inactive military needle turret #: lang/json/TOOL_from_json.py @@ -59083,12 +60609,17 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Es una torreta avanzada inactiva de clavos. Serán cargados automáticamente " +"hasta 100 cartuchos de dardos perforantes 5x50mm desde tu inventario a la " +"torreta cuando la actives. Cuando pongas la torreta te va a identificar como" +" aliado con su software IFF avanzado. Consultá el manual de seguridad en " +"caso de mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive military 8x40mm turret" msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta militar 8x40mm inactiva" +msgstr[1] "torretas militares 8x40mm inactivas" #. ~ Description for inactive military 8x40mm turret #: lang/json/TOOL_from_json.py @@ -59099,12 +60630,17 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Es una torreta avanzada inactiva 8x40mm. Serán cargadas automáticamente " +"hasta 100 balas sin casquillo 8x40mm desde tu inventario a la torreta cuando" +" la actives. Cuando pongas la torreta te va a identificar como aliado con su" +" software IFF avanzado. Consultá el manual de seguridad en caso de mal " +"funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive military 40mm grenade turret" msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta militar de granadas 40mm inactiva" +msgstr[1] "torretas militares de granadas 40mm inactivas" #. ~ Description for inactive military 40mm grenade turret #: lang/json/TOOL_from_json.py @@ -59115,6 +60651,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Es una torreta militar inactiva de granadas. Serán cargadas automáticamente " +"hasta 50 granadas de fragmentación 40mm desde tu inventario a la torreta " +"cuando la actives. Cuando pongas la torreta te va a identificar como aliado " +"con su software IFF avanzado. Consultá el manual de seguridad en caso de mal" +" funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive military flamethrower turret" @@ -59144,12 +60685,15 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Es una torreta láser avanzada inactiva. Poné la torreta y te va a " +"identificar como aliado con su software IFF avanzado. Consultá tu manual de " +"seguridad ante un eventual mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive advanced plasma turret" msgid_plural "inactive advanced plasma turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta plasma avanzada inactiva" +msgstr[1] "torretas plasma avanzadas inactivas" #. ~ Description for inactive advanced plasma turret #: lang/json/TOOL_from_json.py @@ -59174,6 +60718,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Es una torreta avanzada inactiva de cañón de riel. Serán cargados " +"automáticamente hasta 100 proyectiles de riel desde tu inventario a la " +"torreta cuando la actives. Cuando pongas la torreta te va a identificar como" +" aliado con su software IFF avanzado. Consultá el manual de seguridad en " +"caso de mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive advanced acid turret" @@ -59202,6 +60751,9 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Es una torreta PEM avanzada inactiva. Poné la torreta y te va a identificar " +"como aliado con su software IFF avanzado. Consultá tu manual de seguridad " +"ante un eventual mal funcionamiento." #: lang/json/TOOL_from_json.py msgid "inactive advanced electro turret" @@ -59244,6 +60796,8 @@ msgid "" "A normal and completely harmless garden gnome. He holds up to 100 rounds of" " 9mm ammo." msgstr "" +"Es un gnomo de jardín totalmente normal e indefenso. Puede tener hasta 100 " +"balas 9 mm." #: lang/json/TOOL_from_json.py msgid "hobo stove" @@ -59551,6 +61105,8 @@ msgid "" "A robot crafting assistant. Useable in its current state as a portable " "workbench, or deployable as a traveling companion." msgstr "" +"Es un robot asistente de fabricación. En su estado actual se puede usar como" +" una mesa de trabajo portátil, o llevar como un compañero de viaje." #. ~ Description for light auto armor #. ~ Description for basic auto armor @@ -59560,6 +61116,9 @@ msgid "" "A set of light power armor fitted with an AI core for automated use. " "Activate it to deploy the robot or disassemble it to use as armor." msgstr "" +"Es un conjunto de armadura de poder ligera, con un núcleo de IA para uso " +"automatizado. Activalo para desplegar el robot, o desarmalo para usarlo como" +" armadura." #: lang/json/TOOL_from_json.py msgid "basic auto armor" @@ -59576,8 +61135,8 @@ msgstr[1] "hacks inactivos" #: lang/json/TOOL_from_json.py msgid "inactive floating lantern" msgid_plural "inactive floating lanterns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "linterna voladora inactiva" +msgstr[1] "linternas voladoras inactivas" #. ~ Use action friendly_msg for inactive floating lantern. #: lang/json/TOOL_from_json.py @@ -59587,7 +61146,7 @@ msgstr "" #. ~ Use action hostile_msg for inactive floating lantern. #: lang/json/TOOL_from_json.py msgid "You misprogram the lantern." -msgstr "" +msgstr "Programaste mal la linterna." #. ~ Description for inactive floating lantern #: lang/json/TOOL_from_json.py @@ -59597,6 +61156,9 @@ msgid "" "aggressive and has no means of attack. Activate this item to deploy the " "salvaged robot." msgstr "" +"Es una linterna voladora inactiva, un robot del tamaño de un puño que vuela " +"e ilumina los alrededores con potentes leds. La linterna no es agresiva y no" +" tiene manera de atacar. Activá este objeto para desplegar el robot." #: lang/json/TOOL_from_json.py msgid "inactive distract-o-hack" @@ -59607,12 +61169,12 @@ msgstr[1] "" #. ~ Use action friendly_msg for inactive distract-o-hack. #: lang/json/TOOL_from_json.py msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "" +msgstr "¡El distract-o-hack vuela desde tu mano y empieza a chisporrotear!" #. ~ Use action hostile_msg for inactive distract-o-hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the distract-o-hack!" -msgstr "" +msgstr "¡Programaste mal el distract-o-hack!" #. ~ Description for inactive distract-o-hack #: lang/json/TOOL_from_json.py @@ -59632,7 +61194,7 @@ 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 "" +msgstr "¡El incendi-hack vuela desde tu mano! ¡Cuidado!" #. ~ Use action hostile_msg for inactive arson hack. #: lang/json/TOOL_from_json.py @@ -59648,6 +61210,11 @@ msgid "" "Activate this item to deploy the robot. It cannot be recovered once " "activated." msgstr "" +"Es un incendi-hack desactivado, un robot del tamaño de un puño que vuela por" +" el aire de manera caótica lanzado llamas mortales. El robot recuperado no " +"tiene armas pero emitirá ráfagas intermitentes de llamas mientras se mueve " +"hacia el enemigo. Al activar este objeto desplegarás el robot. Una vez " +"activado no puede ser recuperado." #: lang/json/TOOL_from_json.py msgid "inactive spore hack" @@ -59663,7 +61230,7 @@ msgstr "" #. ~ Use action hostile_msg for inactive spore hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the spore hack!" -msgstr "" +msgstr "¡Programaste mal el espora-hack!" #. ~ Description for inactive spore hack #: lang/json/TOOL_from_json.py @@ -59688,6 +61255,10 @@ msgid "" "Place the turret and it will ID you as friendly with its advanced IFF " "software. There is no safety manual." msgstr "" +"Es una torreta defensiva inactiva de cañón de agua. Serán cargadas hasta " +"1000 unidades de agua automáticamente de tu inventario a la torreta cuando " +"la actives. Cuando pongas la torreta te va a identificar como aliado con su " +"software IFF avanzado. No tiene manual de seguridad." #: lang/json/TOOL_from_json.py msgid "inactive eyebot" @@ -59708,6 +61279,9 @@ msgid "" "constant jet of warm air to heat an enclosed space. It is non-aggessive and" " has no weapons systems. Activate this item to deploy the robot." msgstr "" +"Es un ojobot arreglado convertido en un calentador flotante. Emite un aire " +"tibio constante para calentar un espacio cerrado. No es agresivo y no tiene " +"armas. Activalo para desplegar el robot." #: lang/json/TOOL_from_json.py msgid "inactive floating furnace" @@ -59727,8 +61301,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive burning eye" msgid_plural "inactive burning eyes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ojo llameante inactivo" +msgstr[1] "ojos llameantes inactivos" #. ~ Description for inactive burning eye #: lang/json/TOOL_from_json.py @@ -59776,8 +61350,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive digestron" msgid_plural "inactive digestrons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "digestrón inactivo" +msgstr[1] "digestrones inactivos" #. ~ Description for inactive digestron #: lang/json/TOOL_from_json.py @@ -59813,8 +61387,8 @@ msgstr[1] "medibots inactivos" #: lang/json/TOOL_from_json.py msgid "inactive assassin robot" msgid_plural "inactive assassin robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "asesinobot inactivo" +msgstr[1] "asesinobots inactivos" #. ~ Description for inactive assassin robot #: lang/json/TOOL_from_json.py @@ -59823,6 +61397,9 @@ msgid "" "hostile targets with a set of blades and a toxic needle. Activate this item" " to deploy the robot." msgstr "" +"Es un robot médico reconvertido en una máquina asesina. Atacará a los " +"objetivos hostiles con un conjunto de cuchillas y una aguja tóxica. Activá " +"este objeto para desplegar el robot." #: lang/json/TOOL_from_json.py msgid "inactive elixirator" @@ -59860,8 +61437,8 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "inactive rat snatcher" msgid_plural "inactive rat snatchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cazarata inactivo" +msgstr[1] "cazaratas inactivos" #. ~ Description for inactive rat snatcher #: lang/json/TOOL_from_json.py @@ -59874,8 +61451,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive grab-bot" msgid_plural "inactive grab-bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "agarrabot inactivo" +msgstr[1] "agarrabots inactivos" #. ~ Description for inactive grab-bot #: lang/json/TOOL_from_json.py @@ -59900,8 +61477,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive cyborg" msgid_plural "inactive cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "androide inactivo" +msgstr[1] "androides inactivos" #: lang/json/TOOL_from_json.py msgid "inactive necrotic cyborg" @@ -59940,8 +61517,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive shortcircuit samurai" msgid_plural "inactive shortcircuit samurais" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "samurai cortocircuitos inactivo" +msgstr[1] "samurais cortocircuitos inactivos" #. ~ Description for inactive shortcircuit samurai #: lang/json/TOOL_from_json.py @@ -59949,6 +61526,8 @@ msgid "" "A salvaged defense robot refitted with an integrated tazer and two " "electrified blades. Activate this item to deploy the robot." msgstr "" +"Es un robot defensivo reconvertido con una pistola eléctrica integrada y dos" +" cuchillas electrificadas. Activá este objeto para desplegar el robot." #: lang/json/TOOL_from_json.py msgid "inactive slapdash paladin" @@ -59967,8 +61546,16 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive military robot" msgid_plural "inactive military robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "militaribot inactivo" +msgstr[1] "militaribots inactivos" + +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" @@ -60002,8 +61589,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive robo-protector" msgid_plural "inactive robo-protectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "protectorbot inactivo" +msgstr[1] "protectorbots inactivos" #. ~ Description for inactive robo-protector #: lang/json/TOOL_from_json.py @@ -60012,12 +61599,14 @@ msgid "" "Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" +"Es un militaribot reconvertido con un rifle 5.56mm integrado. Activá este " +"objeto, con munición en tu inventario, para cargar y desplegar el robot." #: lang/json/TOOL_from_json.py msgid "inactive robo-defender" msgid_plural "inactive robo-defenders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "defensorbot inactivo" +msgstr[1] "defensorbots inactivos" #. ~ Description for inactive robo-defender #: lang/json/TOOL_from_json.py @@ -60063,14 +61652,14 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive chickenwalker" msgid_plural "inactive chickenwalkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mecagallina inactiva" +msgstr[1] "mecagallinas inactivas" #: lang/json/TOOL_from_json.py msgid "inactive chainsaw horror" msgid_plural "inactive chainsaw horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror motosierra inactivo" +msgstr[1] "horrores motosierra inactivos" #. ~ Description for inactive chainsaw horror #: lang/json/TOOL_from_json.py @@ -60114,8 +61703,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive tankbot" msgid_plural "inactive tankbots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanquebot inactivo" +msgstr[1] "tanquebots inactivos" #: lang/json/TOOL_from_json.py msgid "inactive fist king" @@ -60540,8 +62129,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "diamond matrix" msgid_plural "diamond matrices" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "matriz de diamante" +msgstr[1] "matrices de diamante" #. ~ Use action msg for diamond matrix. #: lang/json/TOOL_from_json.py @@ -60805,45 +62394,6 @@ msgstr "" "Una rueda de madera para carro, que está reforzada con cintas de metal, y " "hecha a mano." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "sección inflable" -msgstr[1] "sección inflable" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Una parte inflable para bote." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "airbag inflable" -msgstr[1] "airbags inflables" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Un airbag inflable." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "tabla de bote" -msgstr[1] "tabla de bote" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"Es una tabla de madera que mantiene el bote a flote. Para cambiar a bote un " -"vehículo, hay que poner esto como cuando colocas las ruedas en un vehículo. " -"Luego, agregar los remos o el motor para que el bote se mueva." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "" @@ -61044,7 +62594,7 @@ msgstr "" #: lang/json/activity_type_from_json.py msgid "Stop dissecting?" -msgstr "" +msgstr "¿Dejás de diseccionar?" #: lang/json/activity_type_from_json.py msgid "Stop salvaging?" @@ -61066,6 +62616,10 @@ msgstr "¿Parar de interactuar con el vehículo?" msgid "Stop training?" msgstr "¿Parar de entrenar?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "¿Parar de usar los primeros auxilios?" @@ -61122,6 +62676,14 @@ msgstr "" msgid "Stop planting seeds?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "¿Dejar de fertilizar los campos?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "¿Parar de interactuar con el inventario?" @@ -61226,8 +62788,16 @@ msgstr "" msgid "Stop cutting your hair?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" +msgstr "¿Dejás de intentar dormirte?" + +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -61275,7 +62845,7 @@ msgstr ".22" #: lang/json/ammunition_type_from_json.py msgid "9x19mm" -msgstr "" +msgstr "9x19mm" #: lang/json/ammunition_type_from_json.py msgid ".357 SIG" @@ -61419,7 +62989,7 @@ msgstr "componentes" #: lang/json/ammunition_type_from_json.py msgid "93mm RPG-7" -msgstr "" +msgstr "93mm RPG-7" #: lang/json/ammunition_type_from_json.py msgid "rebreather filter" @@ -61524,6 +63094,9 @@ msgid "" "glands, allowing you to trigger your body's adrenaline response at the cost " "of some bionic power." msgstr "" +"Es un sistema estimulador ha sido implantado quirúrgicamente al lado de tus " +"glándulas suprarrenales, lo que te permite enviar una reacción de adrenalina" +" con un gasto de tu energía biónica." #: lang/json/bionic_from_json.py msgid "Active Defense System" @@ -61547,6 +63120,9 @@ 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 "" +"Por un cruel giro del destino, una pobre cirgúa para instalar un MCB te ha " +"dejado con un par de biónicos inservibles que hacen ruidos como chillidos " +"cuando caminás." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Arms" @@ -61570,6 +63146,9 @@ 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 "" +"Las cuencas de tus ojos han sido selladas quirúrgicamente con unos lentes " +"protectores espejados, y tus conductos lagrimales han sido desviados hacia " +"tu boca. Cuando llorás, tenés que escupir o tragarte tus lágrimas." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Head" @@ -61581,6 +63160,8 @@ msgid "" "The flesh on your head has been surgically replaced by a strong armor, " "protecting both your head and jaw regions." msgstr "" +"La carne de tu cabeza ha sido reemplazada quirúrgicamente con placas " +"resistentes, protegiéndote tanto la cabeza como la mandíbula." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Legs" @@ -61635,6 +63216,8 @@ msgid "" "The lenses surgically installed over your eyes can be tinted to block out " "incoming light." msgstr "" +"Los lentes instalados quirúrgicamente sobre tus ojos pueden ser polarizados " +"para bloquear toda la luz entrante." #: lang/json/bionic_from_json.py msgid "Blood Analysis" @@ -61671,8 +63254,8 @@ msgstr "Filamento de Carbono Subdérmico" #: lang/json/gun_from_json.py msgid "Chain Lightning" msgid_plural "Chain Lightnings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rayo en Cadena" +msgstr[1] "Rayos en Cadena" #: lang/json/bionic_from_json.py msgid "Bionic Claws" @@ -61706,6 +63289,10 @@ msgid "" "are surgically integrated into your nervous system. Whilst active, the CQB " "module will improve your hand to hand combat skills." msgstr "" +"Procesadores biónicos y bases de datos cargadas con programas de combate de " +"artes marciales se han integrado quirúrgicamente en tu sistema nervioso. " +"Cuando están activos, el módulo de Pelea de Corto Alcance mejorará tu " +"habilidad en el combate cuerpo a cuerpo." #: lang/json/bionic_from_json.py msgid "Bionic-Induced Deformity" @@ -61850,6 +63437,10 @@ msgid "" "computers). Skill in computers is important, and a failed use may damage " "your circuits." msgstr "" +"Uno de tus dedos tiene un electrohackeador incorporado quirúrgicamente, que " +"es una unidad de hackeo útil para anular paneles de control y cosas por el " +"estilo (pero no computadoras). Tu habilidad en computadoras es relevante, y " +"si fallás al usarlo puede dañarte los circuitos." #: lang/json/bionic_from_json.py msgid "Flashbang Generator" @@ -61901,6 +63492,11 @@ msgid "" "when drowning. Turn on to recharge stamina faster, at moderate power cost." " Asthmatics may also use it to stop asthma attacks." msgstr "" +"Es un complejo sistema de suministro de oxígeno. Mejora la habilidad de " +"extraer oxígeno del aire y también permite extraerlo del agua. Se activará " +"automáticamente si te estás ahogando. Activalo para recuperar resistencia " +"más rápidamente, a cambio de un bajo gasto de energía. Los asmáticos pueden " +"usarlo también para frenar ataques de asma." #: lang/json/bionic_from_json.py msgid "Terranian Sonar" @@ -61958,6 +63554,9 @@ msgid "" "it. This long range weapon is not incredibly damaging, but is very " "accurate, and has the potential to start fires." msgstr "" +"Uno de tus dedos tiene incorporado quirúrgicamente un pequeño pero poderoso " +"láser. Esta arma de largo alcance no hace un daño muy grande, pero es muy " +"precisa y puede encender fuego." #: lang/json/bionic_from_json.py msgid "Leaky Bionic" @@ -62008,6 +63607,8 @@ msgid "" "Surgically embedded in your hand is a powerful electromagnet, allowing you " "to pull items made of iron over short distances." msgstr "" +"Hay un poderoso electroimán incorporado quirúrgicamente en tu mano, lo que " +"te permite arrastrar objetos hechos de hierro por distancias cortas." #: lang/json/bionic_from_json.py msgid "Nictating Membrane" @@ -62053,6 +63654,8 @@ msgid "" "Your eyes have been surgically modified to amplify existing light, allowing " "you to see in the dark." msgstr "" +"Tus ojos han sido modificados quirúrgicamente para amplificar la luz " +"existente, lo que te permite ver en la oscuridad." #: lang/json/bionic_from_json.py msgid "Noisemaker" @@ -62170,6 +63773,9 @@ msgid "" "toxins, or airborne diseases find their way into your windpipe, the filter " "will attempt to remove them. Reducing the toxic effects." msgstr "" +"Se ha instalado quirúrgicamente en tu tráquea un sistema avanzado de " +"filtración. Si alguna toxina o enfermedad transmitida por aire se mete por " +"ella, el filtro intentará eliminarla, reduciendo los efectos tóxicos." #: lang/json/bionic_from_json.py msgid "Radiation Scrubber System" @@ -62182,6 +63788,9 @@ msgid "" "implanted throughout your body, allowing you to purge yourself of absorbed " "radiation at the cost of some bionic power." msgstr "" +"Un sistema de avanzados filtros piezomecánicos para sangre han sido " +"implantados quirúrgicamente en tu cuerpo, lo que te permite purgarte de toda" +" radiación absorbida con un gasto mínimo de energía biónica." #: lang/json/bionic_from_json.py msgid "Railgun" @@ -62265,6 +63874,9 @@ msgid "" "You have a few solar panels surgically installed. While in direct sunlight," " your power level will slowly recharge." msgstr "" +"Tienes algunos paneles solares instalados quirúrgicamente. Mientras estés " +"expuesto a la luz del sol directa, tu nivel de energía ser cargará " +"lentamente." #: lang/json/bionic_from_json.py msgid "Motor Control Overstimulator" @@ -62317,10 +63929,12 @@ msgid "" "Your muscular system has been surgically enhanced with myomer fibers, giving" " you a +2 bonus to strength." msgstr "" +"Tu sistema muscular ha sido mejorado quirúrgicamente con fibras de myomer, " +"lo que te da un bonus de +2 a tu fuerza." #: lang/json/bionic_from_json.py msgid "Autonomous Surgical Scalpels" -msgstr "" +msgstr "Escalpelos Quirúrgicos Autónomos" #. ~ Description for Autonomous Surgical Scalpels #: lang/json/bionic_from_json.py @@ -62332,7 +63946,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Anti-Glare Compensators" -msgstr "" +msgstr "Compensadores Anti-reflejo" #. ~ Description for Anti-Glare Compensators #: lang/json/bionic_from_json.py @@ -62433,6 +64047,10 @@ msgid "" "to why you don't opt for the Autodoc's 'Cyborg Identity Package.' A " "remodulator unit jammed down your throat has given you a creepy robot voice." msgstr "" +"Vas a pasarte el resto de tu vida como testimonio ambulante de por qué no " +"elegiste el 'Paquete de Identidad Androide' del Autodoc. Una unidad " +"remoduladora trabada en tu garganta te ha dejado una espeluznante voz de " +"robot." #: lang/json/bionic_from_json.py msgid "Internal Chronometer" @@ -62450,6 +64068,10 @@ msgid "" "into drinkable water. You must, however, have a container to store the " "water in." msgstr "" +"Nanotubos instalados quirúrgicamente en las palmas de tus manos bombearán " +"cualquier líquido disponible desde un cadáver, limpiar sus impurezas y " +"convertirlo en agua potable. Sin embargo, necesitás tener un recipiente para" +" poner el agua." #: lang/json/bionic_from_json.py msgid "Intravenous Needletip" @@ -62499,7 +64121,7 @@ msgstr[1] "" #: lang/json/bionic_from_json.py msgid "Synaptic Regeneration System" -msgstr "" +msgstr "Sistema de Regeneración Sináptica" #. ~ Description for Synaptic Regeneration System #: lang/json/bionic_from_json.py @@ -62509,6 +64131,10 @@ 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 "" +"Un estimulador electromagnético ha sido instalado en la parte de atrás de tu" +" cabeza, por tu columna, utilizando energía continuamente. Mientras esté " +"activado, no vas a sentir que te falta dormir; y si ya estás cansado por " +"falta de sueño, acelerará la velocidad de recuperación mientras dormís." #: lang/json/bodypart_from_json.py msgid "torso" @@ -62963,7 +64589,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Chainlink Fence" -msgstr "" +msgstr "Construir Valla de Cadenas" #: lang/json/construction_from_json.py msgid "Build Chainlink Gate" @@ -62983,11 +64609,11 @@ msgstr "Const.Caja" #: lang/json/construction_from_json.py msgid "Seal Coffin" -msgstr "" +msgstr "Sellar Ataúd" #: lang/json/construction_from_json.py msgid "Build Coffin" -msgstr "" +msgstr "Construir Ataúd" #: lang/json/construction_from_json.py msgid "Build Bulletin Board" @@ -63011,7 +64637,7 @@ msgstr "Const. Estante de Metal" #: lang/json/construction_from_json.py msgid "Build Coat Rack" -msgstr "" +msgstr "Construir Perchero" #: lang/json/construction_from_json.py msgid "Build Cupboard" @@ -63219,7 +64845,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Mark firewood source" -msgstr "" +msgstr "Designar fuente de leña" #: lang/json/construction_from_json.py msgid "" @@ -63228,16 +64854,22 @@ 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 "" +"La leña y otros materiales inflamables en un espacio marcado para eso uso, " +"será utilizado automáticamente para reabastecer el fuego. Esto se hará para " +"mantener la luz requerida durante largas tareas, como fabricar o leer, pero " +"no será usada (por ejemplo) si solamente estás esperando." #: lang/json/construction_from_json.py msgid "Mark practice target" -msgstr "" +msgstr "Designar objetivo de práctica" #: 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 "" +"Designa un punto como objetivo para practicar. Al disparar, apuntarás " +"automáticamente hacia este lugar, si no hay ningún enemigo cerca." #: lang/json/construction_from_json.py msgid "Build Butchering Rack" @@ -63451,7 +65083,7 @@ msgstr "Sueñas con el zoológico, por alguna razón." #: lang/json/dream_from_json.py msgid "Your dreams... are complex and multifaceted." -msgstr "" +msgstr "Tus sueños son... complejos y multifacéticos." #: lang/json/dream_from_json.py msgid "You dream of the tropics." @@ -63563,7 +65195,7 @@ msgstr "" #: lang/json/dream_from_json.py msgid "Your dream-self's muzzle looks... wait, muzzle?" -msgstr "" +msgstr "En tu sueño, tu hocico parece que se... momento, ¿hocico?" #: lang/json/dream_from_json.py msgid "You dream of grazing in an open field." @@ -63662,6 +65294,8 @@ msgstr "Te sientes hermoso, pero también desgarrado por la preocupación..." msgid "" "You can't quite work out what the dream is about... it just keeps changing." msgstr "" +"No llegás a darte cuenta qué es lo que estás soñando... porque cambia " +"constantemente." #: lang/json/dream_from_json.py msgid "Your dream is filled with creatures, and yet all seem like you." @@ -63922,6 +65556,8 @@ msgid "" "Once you finish your tasty dinner of seeds, you look around for your drink, " "but you already ate it." msgstr "" +"Una vez que terminaste con tu sabrosa cena de semillas, buscás algo para " +"tomar pero ya te lo comiste." #: lang/json/dream_from_json.py msgid "You are terrified by a dream of becoming an ape hybrid." @@ -64080,6 +65716,8 @@ msgstr "" msgid "" "You excitedly web up an interloper and prepare to feast... nope, dream." msgstr "" +"Con mucha excitación, enredás con tu telaraña al intruso y te preparás para " +"el festín... ah, no, era un sueño." #: lang/json/dream_from_json.py msgid "Your dreams of having to live without a web frighten you." @@ -64295,6 +65933,17 @@ msgstr "" "Etiqueta de IA para preguntar si queremos que un PNJ nos entrene. Si te " "aparece, esto es un bug." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Pedir Información" @@ -64887,6 +66536,8 @@ msgstr "Toma Xanax" msgid "" "You took Xanax some time ago and you might still be under its influence." msgstr "" +"Tomaste Xanax hace algún tiempo y puede que todavía estés bajo su " +"influencia." #: lang/json/effects_from_json.py msgid "Took Prozac" @@ -65545,7 +67196,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "You smoked too much." -msgstr "" +msgstr "Fumaste demasiado." #: lang/json/effects_from_json.py msgid "High" @@ -65675,24 +67326,6 @@ msgstr "Te falta el aire." msgid "The ceiling collapses on you!" msgstr "¡El techo se te cae encima!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Tratamiento de células madre" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"Tus tripas se están moviendo de maneras extrañas a medida que el tratamiento" -" va haciendo efecto." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "" -"Recibiste una inyección de puré de hueso y esmalte en tu globo ocular." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "" @@ -66055,7 +67688,7 @@ msgstr "Recuperando" #: lang/json/effects_from_json.py msgid "Mostly recovered" -msgstr "" +msgstr "Casi recuperado" #: lang/json/effects_from_json.py msgid "This damaged limb is slowly regaining its functions." @@ -66088,7 +67721,7 @@ msgstr "" #. ~ Description of effect 'Milked'. #: lang/json/effects_from_json.py msgid "The creature has been partially or fully milked." -msgstr "" +msgstr "Esta criatura ha sido ordeñada completa o parcialmente." #: lang/json/effects_from_json.py msgid "Painkillers" @@ -66100,6 +67733,8 @@ msgid "" "You are under the influence of analgesic substances to relieve pain, but " "they may numb you a bit." msgstr "" +"Estás bajo los efectos de sustancias analgésicas para aliviar el dolor, pero" +" te pueden adormecer un poco." #: lang/json/effects_from_json.py msgid "Happy" @@ -66169,6 +67804,7 @@ msgstr "Irradiado" #: lang/json/effects_from_json.py msgid "You suffer symptoms of a radiation sickness that weakens your body." msgstr "" +"Sufrís los síntomas de enfermedad por radiación que debilita tu cuerpo." #. ~ Miss message for effect(s) 'Irradiated'. #: lang/json/effects_from_json.py @@ -66191,7 +67827,7 @@ msgstr "Calmantes" #. ~ 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 "Estás bajo los efectos de calmantes, y un poco aturdido." #: lang/json/effects_from_json.py msgid "Stimulant Overdose" @@ -66251,6 +67887,15 @@ msgstr "Panacea" msgid "You feel incredible! You could take on the world!" msgstr "" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "Descarga" @@ -66262,7 +67907,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Supercharged" -msgstr "" +msgstr "Supercarga" #. ~ Description of effect 'Supercharged'. #: lang/json/effects_from_json.py @@ -66271,15 +67916,16 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Story Denied" -msgstr "" +msgstr "Historia Denegada" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" +"Etiqueta de cuando ya le preguntaste a un PNJ un detalle y no te lo quiere " +"volver a contar. Si te aparece, es un bug." #: lang/json/effects_from_json.py msgid "Religious Offence" @@ -66316,6 +67962,8 @@ msgid "" "Your sleep debt has been steadily increasing for a while. You should get " "some rest." msgstr "" +"La falta de sueño se te ha ido incrementando por un rato ya. Deberías " +"descansar." #. ~ Apply message for effect(s) 'Sleep Deprived'. #: lang/json/effects_from_json.py @@ -66346,6 +67994,8 @@ msgid "" "the end, he held out hope that his daughter was still alive in the " "wasteland." msgstr "" +"Murió varios años después a manos de los Piratas del Infierno. Hasta el fin," +" sostuvo la esperanza de que su hija estaba viva en este páramo." #: lang/json/epilogue_from_json.py msgid "" @@ -66353,6 +68003,9 @@ 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 "" +"Estaba en camino a Michigan para buscar su familia cuando se rompió una " +"pierna en el bosque. Murió de hipotermia una semana después. Una nota que " +"estaba en su cadaver decía 'Me hubiera gustado salvarla'." #: lang/json/epilogue_from_json.py msgid "" @@ -66384,6 +68037,9 @@ msgid "" " never to be seen again. Attempts to locate him were called off when one of" " the searchers disappeared without a trace." msgstr "" +"Se convirtió en cazador y trampeador. Eventualmente se fue en un viaje de " +"caza y nunca se lo volvió a ver. Los intentos por localizarlo fueron " +"suspendidos cuando uno de los que lo buscaban desapareció sin dejar rastro." #: lang/json/epilogue_from_json.py msgid "" @@ -66405,6 +68061,8 @@ msgid "" " Never spent much time around settlements after your death. Was last " "seen near the Adirondacks in New York." msgstr "" +"Nunca pasó mucho tiempo cerca de los campamentos después de tu muerte. La " +"última vez fue visto en el Adirondacks en Nueva York." #: lang/json/epilogue_from_json.py msgid "" @@ -66413,6 +68071,10 @@ msgid "" "Keep searching, the world is big enough that there has to be a place out " "there that hasn't been overrun.'" msgstr "" +"Murió por la infección de una mordedura unas semanas después. Antes de " +"morir, les dijo a los presentes, 'Ahora pierdo todo en este mundo... pero " +"ustedes no. Sigan buscando, el mundo es lo suficientemente grande como para " +"que haya un lugar seguro en alguna parte.'" #: lang/json/epilogue_from_json.py msgid "" @@ -66429,6 +68091,11 @@ msgid "" "thing to happen to us in years... there just isn't any turning back when you" " lose all hope.'" msgstr "" +"Se convirtió en químico y médico autodidacta. Su trabajo lo llevó " +"eventualmente a ser adicto a la morfina y al alcohol. Una noche sufrió " +"sobredosis. La comunidad a la que había ayudado dijo, 'Probablemente fue lo " +"mejor que nos pasó en un montón de años... no hay nada que te haga volver " +"cuando perdiste toda esperanza.'" #: lang/json/epilogue_from_json.py msgid "" @@ -66561,6 +68228,10 @@ msgid "" " response units he was torn to pieces by the undead that were attracted by " "the commotion." msgstr "" +"Fue detenido y esposado por un robot policía por varios delitos de robo y " +"vandalismo que fueron registrados por los sistemas de seguridad. Mientras " +"era mantenido en el suelo esperando la respuesta de más unidades policiales," +" fue destrozado por los muertos vivientes que fueron atraídos a la escena." #: lang/json/epilogue_from_json.py msgid "" @@ -66568,6 +68239,8 @@ msgid "" "Raiders. Till the end, she held out hope that her son was still alive in " "the wasteland." msgstr "" +"Se suicidó para no caer en las manos de los Piratas del Infierno. Hasta el " +"final, ella mantuvo la esperanza de que si hijo estaba vivo en este páramo." #: lang/json/epilogue_from_json.py msgid "" @@ -66575,6 +68248,9 @@ 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 "" +"Estaba camino a Ohio para buscar a su familia cuando comió algunas raíces " +"venenosas. En unos tres o cuatro días, ella se murió. Encontraron una nota " +"en su cuerpo que decía: 'Me hubiera gustado salvarlo.'" #: lang/json/epilogue_from_json.py msgid "" @@ -66620,6 +68296,9 @@ msgid "" " Became a laborer for hire in any outposts that needed assistance. Was " "wrongly shot by her employer during a wage dispute." msgstr "" +"Se volvió una obrera que trabajó en cualquier campamento que necesitar " +"ayuda. Recibió un disparo por equivocación de parte de un empleado suyo " +"durante una discusión por el sueldo." #: lang/json/epilogue_from_json.py msgid "" @@ -66640,6 +68319,9 @@ 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 "" +"Contrajo alguna clase de infección unos meses después de tu muerte. Sin " +"poder encontrar tratamiento acorde, pidió que la mataran mientras escuchaba " +"a alguien leyendo su novela favorita, Historia de dos ciudades." #: lang/json/epilogue_from_json.py msgid "" @@ -66742,6 +68424,13 @@ 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 "" +"Exploró la costa con la esperanza de encontrar un barco abandonado luego de " +"que te moriste. Su viaje terminó cuando encontró un muelle controlado por la" +" Vieja Guardia en un pueblo abandonado. Le prometieron una nueva vida si " +"aceptaba trabajar como contratista, así que pasó los próximos años " +"esforzándose para mantener el campamento con recursos pero nunca llegó a ver" +" recompensa alguna. Una bala perdida la mató cuando los Piratas del Infierno" +" atacaron intentando ganar acceso al mar." #: lang/json/epilogue_from_json.py msgid "" @@ -66750,6 +68439,9 @@ 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 "" +"Unos meses después de tu muerte, un grupo de ladrones la asaltó. Ella mató a" +" uno pero otro descargó una ráfaga de su lanzallamas a corta distancia. Sus " +"cenizas y algunos pedazos de adornos fue lo único que se pudo recuperar." #: lang/json/epilogue_from_json.py msgid "" @@ -66780,6 +68472,11 @@ 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 "" +"Fue detenida y encarcelada por un robot policía por varios delitos de robo y" +" vandalismo que fueron registrados por los sistemas de seguridad. Atrapada " +"en una celda esperando que la policía la revisara, se pasó semanas pidiendo " +"ayuda y consumiendo lentamente las provisiones que tenía. Dos semanas " +"después de ser arrastrada a su celda, murió por deshidratación." #: lang/json/faction_from_json.py msgid "Your Followers" @@ -66923,6 +68620,8 @@ msgstr "surtidor diésel" #: lang/json/fault_from_json.py msgid "Required to pump and pressurize diesel from a vehicles tank." msgstr "" +"Se necesita para bombear y presurizar combustible diésel desde el tanque del" +" vehículo." #. ~ Description for air filter #: lang/json/fault_from_json.py @@ -67019,7 +68718,7 @@ msgstr "Pila de rocas. Inútiles." #: lang/json/furniture_from_json.py msgid "pile of trashy rubble" -msgstr "" +msgstr "pila de escombros de basura" #. ~ Description for pile of trashy rubble #: lang/json/furniture_from_json.py @@ -67035,7 +68734,7 @@ msgstr "restos de metal" #. ~ Description for metal wreckage #: lang/json/furniture_from_json.py msgid "Pile of various bent and twisted metals." -msgstr "" +msgstr "Es una pila de distintos metales doblados y torcidos." #: lang/json/furniture_from_json.py msgid "pile of ash" @@ -67044,7 +68743,7 @@ msgstr "pila de ceniza" #. ~ Description for pile of ash #: lang/json/furniture_from_json.py msgid "Some ash, from wood or possibly bodies." -msgstr "" +msgstr "Es un poco de ceniza, de madera o de cadáver." #: lang/json/furniture_from_json.py msgid "road barricade" @@ -67116,7 +68815,7 @@ msgstr "planta amarilla de interior" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py msgid "A variety of plant for decoration. It's yellow." -msgstr "" +msgstr "Es una variedad de plantas para decorar. Amarillas." #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -67125,7 +68824,7 @@ msgstr "cama" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "Quite comfortable to sleep in." -msgstr "" +msgstr "Es bastante cómodo dormir ahí." #: lang/json/furniture_from_json.py msgid "toilet" @@ -67134,7 +68833,7 @@ msgstr "inodoro" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "Emergency water source, from the tank, and provider of relief." -msgstr "" +msgstr "Es una fuente de agua de emergencia, del tanque, y calma tu sed." #: lang/json/furniture_from_json.py msgid "porcelain breaking!" @@ -67151,7 +68850,7 @@ msgstr "cama improvisada" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "" +msgstr "No es tan cómoda como una cama verdadera, pero es suficiente." #: lang/json/furniture_from_json.py msgid "straw bed" @@ -67280,7 +68979,7 @@ msgstr "alacena" #. ~ Description for cupboard #: lang/json/furniture_from_json.py msgid "Store your cups." -msgstr "" +msgstr "Para guardar tus vasos." #: lang/json/furniture_from_json.py msgid "trash can" @@ -67298,7 +68997,7 @@ msgstr "papelera de reciclaje" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py msgid "Stores items for recycling." -msgstr "" +msgstr "Guarda objetos para su reciclado." #: lang/json/furniture_from_json.py msgid "desk" @@ -67343,7 +69042,7 @@ msgstr "guardarraíl" #. ~ Description for lane guard #: lang/json/furniture_from_json.py msgid "Used to be used for keeping traffic." -msgstr "" +msgstr "Antes se utilizaba para organizar el tráfico." #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "table" @@ -67477,7 +69176,7 @@ msgstr "espejo de pie" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py msgid "Lookin' good- is that blood?" -msgstr "" +msgstr "Se ve bastante bien- ¿eso es sangre?" #: lang/json/furniture_from_json.py msgid "glass breaking" @@ -67521,7 +69220,7 @@ msgstr "máquina expendedora rota" #. ~ Description for broken vending machine #: lang/json/furniture_from_json.py msgid "Ponder if you could buy stuff, as it's broken." -msgstr "" +msgstr "Reflexioná sobre la posibilidad de comprar algo, igual está rota." #: lang/json/furniture_from_json.py msgid "dumpster" @@ -67654,7 +69353,7 @@ msgstr "caja fuerte" #. ~ Description for safe #: lang/json/furniture_from_json.py msgid "Holds items. Securely." -msgstr "" +msgstr "Para guardar objetos. De manera segura." #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -67690,7 +69389,7 @@ msgstr "caja fuerte electrónica de armas" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py msgid "Can you hack it open to get the firearms?" -msgstr "" +msgstr "¿Podrás abrirlo para agarrar las armas?" #: lang/json/furniture_from_json.py msgid "open safe" @@ -67729,7 +69428,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "filled fermenting vat" -msgstr "" +msgstr "tanque de fermentación lleno" #: lang/json/furniture_from_json.py msgid "wooden keg" @@ -67739,6 +69438,8 @@ msgstr "barril de madera" #: lang/json/furniture_from_json.py msgid "A keg made mostly of wood. Holds liquids, preferably beer." msgstr "" +"Es un barril hecho en su mayor parte de madera. Puede contener líquidos, " +"preferiblemente, cerveza." #: lang/json/furniture_from_json.py msgid "statue" @@ -67747,7 +69448,7 @@ msgstr "estatua" #. ~ Description for statue #: lang/json/furniture_from_json.py msgid "A carved statue made of stone.." -msgstr "" +msgstr "Es una estatua hecha de piedra." #: lang/json/furniture_from_json.py msgid "thump." @@ -67789,7 +69490,7 @@ msgstr "juncos" #: lang/json/furniture_from_json.py msgid "lilypad" -msgstr "" +msgstr "nenúfar" #: lang/json/furniture_from_json.py msgid "forge" @@ -67799,6 +69500,8 @@ msgstr "forja" #: lang/json/furniture_from_json.py msgid "Metalworking station typically used in combination with an anvil." msgstr "" +"Es una estación para trabajar los metales, comúnmente utilizada en " +"combinación con un yunque." #. ~ Description for anvil #: lang/json/furniture_from_json.py @@ -67831,7 +69534,7 @@ msgstr "máquina expendedora reforzada" #. ~ Description for reinforced vending machine #: lang/json/furniture_from_json.py msgid "A bit tougher to crack open than regular vending machines." -msgstr "" +msgstr "Es un poco más duro de abrir que las máquinas expendedoras comunes." #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -67870,6 +69573,8 @@ msgstr "cinta para correr" #: lang/json/furniture_from_json.py msgid "Used for training leg muscles. It'll be hard without power." msgstr "" +"Se usa para entrenar los músculos de las piernas. Va a ser difícil de usar " +"sin electricidad." #: lang/json/furniture_from_json.py msgid "display case" @@ -67878,7 +69583,7 @@ msgstr "vitrina" #. ~ Description for display case #: lang/json/furniture_from_json.py msgid "Display your stuff. Securely." -msgstr "" +msgstr "Para mostrar tus cosas. De manera segura." #: lang/json/furniture_from_json.py msgid "broken display case" @@ -67887,7 +69592,7 @@ msgstr "vitrina rota" #. ~ Description for broken display case #: lang/json/furniture_from_json.py msgid "Display your stuff. It'll get stolen." -msgstr "" +msgstr "Para mostrar tus cosas. Aunque te las van a robar." #: lang/json/furniture_from_json.py msgid "standing tank" @@ -68051,7 +69756,7 @@ msgstr "lápida" #. ~ Description for headstone #: lang/json/furniture_from_json.py msgid "Keeps the bodies." -msgstr "" +msgstr "Ahí abajo están los cadáveres." #: lang/json/furniture_from_json.py msgid "gravestone" @@ -68060,7 +69765,7 @@ msgstr "tumba" #. ~ Description for gravestone #: lang/json/furniture_from_json.py msgid "Keeps the bodies. More fancy." -msgstr "" +msgstr "Ahí abajo están los cadáveres. Es elegante." #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -68121,6 +69826,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." msgstr "" +"Es una pequeña mesa de metal plegable, ideal para viajes por la naturaleza." #. ~ Description for leather tarp #: lang/json/furniture_from_json.py @@ -68284,7 +69990,7 @@ msgstr "Tiras de la palanca..." #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bookcase slides closed." -msgstr "" +msgstr "La estantería de libros se desliza y se cierra." #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py @@ -68304,7 +70010,7 @@ msgstr "" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The wall slides closed." -msgstr "" +msgstr "La pared se desliza y se cierra." #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py @@ -68319,12 +70025,12 @@ msgstr "" #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py msgid "You trigger the odd looking statue..." -msgstr "" +msgstr "Accionás la extraña estatua..." #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py msgid "You trigger the hidden mechanism..." -msgstr "" +msgstr "Accionás el mecanismo oculto..." #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py @@ -68359,7 +70065,7 @@ msgstr "" #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py msgid "The release can't be activated!" -msgstr "" +msgstr "¡No se puede activar la apertura!" #. ~ 'open' action message of some gate object. #: lang/json/gates_from_json.py @@ -68379,7 +70085,7 @@ msgstr "" #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bridge can't be extended!" -msgstr "" +msgstr "¡No se puede extender el puente!" #. ~ 'open' action message of some gate object. #: lang/json/gates_from_json.py @@ -68429,6 +70135,9 @@ msgid "" "that can be used effectively by fairly strong archers. Currently set to a " "medium weight." msgstr "" +"Es un arco de alta potencia con levas y cables extras para disparos de mayor" +" velocidad. Puede ser utilizado efectivamente por arqueros bastante fuertes." +" Actualmente, está establecido en un peso medio." #: lang/json/gun_from_json.py msgid "compound bow (high)" @@ -68446,8 +70155,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "compound bow (low)" msgid_plural "compound bows (low)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arco de poleas (baja)" +msgstr[1] "arcos de poleas (baja)" #: lang/json/gun_from_json.py msgid "" @@ -68455,6 +70164,10 @@ msgid "" "that can be used effectively by average archers. Currently set to a low " "weight, making it much easier to draw." msgstr "" +"Es un arco de alta potencia con levas y cables extras para disparos de mayor" +" velocidad. Puede ser utilizado efectivamente por arqueros de fuerza normal." +" Actualmente, está establecido en un peso bajo, haciéndolo más fácil de " +"utilizar." #: lang/json/gun_from_json.py msgid "composite bow" @@ -68480,6 +70193,9 @@ msgid "" "power, which can be used effectively by those of somewhat above-average " "strength. Good and easy to use, but nothing special." msgstr "" +"Es un moderno arco cuyas puntas se curvan hacia afuera para incrementar la " +"potencia, y puede ser usado eficazmente por arqueros con fuerza por encima " +"de la media. Bueno y fácil de usar, pero nada especial." #: lang/json/gun_from_json.py msgid "reflex bow" @@ -68492,12 +70208,14 @@ 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 "" +"Es un arco cuyas puntas se curvan hacia afuera para incrementar la potencia." +" Más pequeño que otros arcos pero con una potencia decente y rápido." #: lang/json/gun_from_json.py msgid "hybrid longbow" msgid_plural "hybrid longbows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arco largo híbrido" +msgstr[1] "arcos largos híbridos" #: lang/json/gun_from_json.py msgid "" @@ -68506,6 +70224,11 @@ msgid "" "average strength. Designed for archers that appreciate the smoothness of a " "traditional longbow, but desire the superior power of a modern recurve." msgstr "" +"Es un moderno arco largo de un metro y medio, cuyas puntas se curvan hacia " +"afuera para incrementar la potencia. Puede ser usado eficazmente por alguien" +" con una fuerza por encima del promedio. Diseñado para arqueros que aprecian" +" la suavidad de un arco largo tradicional, pero desean la mayor potencia de " +"los arcos recurvados modernos." #: lang/json/gun_from_json.py msgid "longbow" @@ -68520,6 +70243,10 @@ msgid "" "mainly in medieval England in wartime, but pierces zombie hide just as well " "as chainmail." msgstr "" +"Un arco de 1.80 metros que necesita bastante fuerza para poder ser tensado. " +"Puede ser usado eficazmente por arqueros con fuerza por encima de la media. " +"Usado principalmente en las guerras de la Inglaterra medieval, pero penetra " +"la piel de los zombis de la misma manera que cotas de malla." #: lang/json/gun_from_json.py msgid "wooden greatbow" @@ -68533,12 +70260,15 @@ msgid "" "string to take an immense amount of energy. Takes incredible strength to " "draw." msgstr "" +"Es un arco largo extremadamente grande y rígido, hecho con partes enormes y " +"una cuerda gruesa que puede soportar inmensas cantidades de energía. Se " +"necesita una fuerza increíble para poder usarlo." #: lang/json/gun_from_json.py msgid "compound greatbow" msgid_plural "compound greatbows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gran arco de poleas" +msgstr[1] "grandes arcos de poleas" #: lang/json/gun_from_json.py msgid "" @@ -68546,12 +70276,15 @@ msgid "" " thick string to take an immense amount of energy. Takes incredible " "strength to draw." msgstr "" +"Es un arco de poleas extremadamente grande y potente, hecho con partes " +"enormes y una cuerda gruesa que puede soportar inmensas cantidades de " +"energía. Se necesita una fuerza increíble para poder usarlo." #: lang/json/gun_from_json.py msgid "reflex recurve bow" msgid_plural "reflex recurve bows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arco recurvo flexible" +msgstr[1] "arcos recurvos flexibles" #: lang/json/gun_from_json.py msgid "" @@ -68565,8 +70298,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "pistol crossbow" msgid_plural "pistol crossbows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistola ballesta" +msgstr[1] "pistolas ballesta" #: lang/json/gun_from_json.py msgid "" @@ -68633,8 +70366,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "heavy crossbow" msgid_plural "heavy crossbows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ballesta pesada" +msgstr[1] "ballestas pesadas" #: lang/json/gun_from_json.py msgid "" @@ -68674,8 +70407,8 @@ msgstr "subfusil" #: lang/json/gun_from_json.py msgid "acid spit gun" msgid_plural "acid spit guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistola de ácido" +msgstr[1] "pistolas de ácido" #: lang/json/gun_from_json.py msgid "Fake gun that fires acid globs." @@ -68786,8 +70519,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M72 LAW" msgid_plural "M72 LAW" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M72 LAW" +msgstr[1] "M72 LAW" #: lang/json/gun_from_json.py msgid "" @@ -68891,12 +70624,14 @@ msgid "" "A powerful handheld launcher handcrafted from scrap. Made to launch " "modified handheld nuclear weapons, it is an exceedingly powerful weapon." msgstr "" +"Es un poderoso lanzador de mano, construido de chatarra. Hecho para lanzar " +"armas nucleares portátiles modificadas. Es un arma extremadamente poderosa." #: lang/json/gun_from_json.py msgid "M202 FLASH" msgid_plural "M202 FLASH" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M202 FLASH" +msgstr[1] "M202 FLASH" #: lang/json/gun_from_json.py msgid "" @@ -68940,8 +70675,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "mini speargun" msgid_plural "mini spearguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "miniarpón" +msgstr[1] "miniarpones" #: lang/json/gun_from_json.py msgid "" @@ -68956,8 +70691,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "double speargun" msgid_plural "double spearguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arpón doble" +msgstr[1] "arpones dobles" #: lang/json/gun_from_json.py msgid "" @@ -68972,8 +70707,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "pneumatic speargun" msgid_plural "pneumatic spearguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arpón neumático" +msgstr[1] "arpones neumáticos" #: lang/json/gun_from_json.py msgid "" @@ -69005,8 +70740,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "crude rocket launcher" msgid_plural "crude rocket launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzacohetes simple" +msgstr[1] "lanzacohetes simples" #: lang/json/gun_from_json.py msgid "" @@ -69077,14 +70812,14 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "base flamethrower" msgid_plural "base flamethrowers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzallamas básico" +msgstr[1] "lanzallamas básicos" #: lang/json/gun_from_json.py msgid "base launcher" msgid_plural "base launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzador básico" +msgstr[1] "lanzadores básico" #: lang/json/gun_from_json.py msgid "single" @@ -69105,14 +70840,14 @@ msgstr[1] "revólveres" #: lang/json/gun_from_json.py msgid "base rifle" msgid_plural "base rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle básico" +msgstr[1] "rifles básicos" #: lang/json/gun_from_json.py msgid "rifle with manual actions" msgid_plural "rifles with manual actions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de acción manual" +msgstr[1] "rifles de acción manual" #: lang/json/gun_from_json.py msgid "semi-automatic rifle" @@ -69123,14 +70858,14 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "fully automatic rifle" msgid_plural "fully automatic rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle automático" +msgstr[1] "rifles automáticos" #: lang/json/gun_from_json.py msgid "base shotgun" msgid_plural "base shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta básica" +msgstr[1] "escopetas básicas" #: lang/json/gun_from_json.py msgid "pump action shotgun" @@ -69151,8 +70886,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "H&K G80 Railgun" msgid_plural "H&K G80 Railguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón de riel H&K G80" +msgstr[1] "cañones de riel H&K G80" #: lang/json/gun_from_json.py msgid "" @@ -69163,8 +70898,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "RM120c shotgun" msgid_plural "RM120c shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta RM120c" +msgstr[1] "escopetas RM120c" #: lang/json/gun_from_json.py msgid "" @@ -69194,8 +70929,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "RM228 PDW" msgid_plural "RM228 PDWs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "RM228 PDW" +msgstr[1] "RM228 PDW" #: lang/json/gun_from_json.py msgid "" @@ -69310,8 +71045,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Ruger LCR .22" msgid_plural "Ruger LCR .22" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ruger LCR .22" +msgstr[1] "Ruger LCR .22" #: lang/json/gun_from_json.py msgid "SIG Mosquito" @@ -69464,12 +71199,19 @@ msgid "" "close range encounters. Like the rest of the family, doesn't accept third-" "party modifications." msgstr "" +"La plataforma bullpup L523 de Leadworks SRL utiliza la popular bala 5.56 en " +"múltiples aplicaciones, y está diseñada para cambiar de manera segura, " +"rápida y efectiva sus partes. El modelo carabina incorpora el estabilizador " +"giroscópico propio de la marca, e incluye una mira de punto rojo y una láser" +" integrada. Además, viene con una escopeta colgante para ataques de corto " +"alcance. Al igual que otros productos Leadworks, no puede usar " +"modificaciones de otras marcas." #: lang/json/gun_from_json.py msgid "L523-DSR rifle" msgid_plural "L523-DSR rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle L523-DSR" +msgstr[1] "rifles L523-DSR" #: lang/json/gun_from_json.py msgid "" @@ -69492,8 +71234,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "L523-LMG" msgid_plural "L523-LMGs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "L523-LMG" +msgstr[1] "L523-LMG" #: lang/json/gun_from_json.py msgid "" @@ -69504,6 +71246,13 @@ msgid "" " well as the Leadworks gyro system. Unlike the other configurations, the " "L523 LMG can be loaded with ammo belts." msgstr "" +"La plataforma bullpup L523 de Leadworks SRL utiliza la popular bala 5.56 en " +"múltiples aplicaciones, y está diseñada para cambiar de manera segura, " +"rápida y efectiva sus partes. Esta ambigua ametralladora ligera tiene " +"incorporados una mira ACOG, un cañón y mango delantero resistentes, bípode, " +"así como también el sistema de estabilización giroscópica de Leadworks. A " +"diferencia de otras configuraciones, la L523 LMG puede ser usada con cintas " +"cargadoras." #: lang/json/gun_from_json.py msgid "low auto" @@ -69550,8 +71299,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M27 IAR" +msgstr[1] "M27 IAR" #: lang/json/gun_from_json.py msgid "" @@ -69597,8 +71346,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "FN SCAR-L" msgid_plural "FN SCAR-Ls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "FN SCAR-L" +msgstr[1] "FN SCAR-L" #: lang/json/gun_from_json.py msgid "" @@ -69613,8 +71362,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "SIG 552" msgid_plural "SIG 552s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "SIG 552" +msgstr[1] "SIG 552" #: lang/json/gun_from_json.py msgid "" @@ -69648,14 +71397,17 @@ msgstr "" #: lang/json/gun_from_json.py msgid "handmade carbine" msgid_plural "handmade carbines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carabina casera" +msgstr[1] "carabinas caseras" #: lang/json/gun_from_json.py msgid "" "A well-designed improvised carbine with a shortened barrel. Accepting crude" " detachable magazines, this is one of the better homemade weapons." msgstr "" +"Es una carabina improvisada pero bien diseñada, con el cañón corto. Esta es " +"una de las mejores armas caseros ya que acepta cargadores simples " +"extraíbles." #: lang/json/gun_from_json.py msgid "M2010 ESR" @@ -69695,8 +71447,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Winchester Model 70" msgid_plural "Winchester Model 70" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Winchester Model 70" +msgstr[1] "Winchester Model 70" #: lang/json/gun_from_json.py msgid "" @@ -69727,8 +71479,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M1 Garand" msgid_plural "M1 Garands" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M1 Garand" +msgstr[1] "M1 Garand" #: lang/json/gun_from_json.py msgid "" @@ -69743,8 +71495,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M1903 Springfield" msgid_plural "M1903 Springfields" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M1903 Springfield" +msgstr[1] "M1903 Springfield" #: lang/json/gun_from_json.py msgid "" @@ -69762,8 +71514,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Browning Automatic Rifle" msgid_plural "Browning Automatic Rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rifle Automático Browning" +msgstr[1] "Rifles Automáticos Browning" #: lang/json/gun_from_json.py msgid "" @@ -69814,8 +71566,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Special 700" msgid_plural "Special 700s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Special 700" +msgstr[1] "Special 700" #: lang/json/gun_from_json.py msgid "" @@ -69864,8 +71616,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M134D-H Minigun" msgid_plural "M134D-H Miniguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Minigun M134D-H" +msgstr[1] "Minigun M134D-H" #: lang/json/gun_from_json.py msgid "" @@ -69878,8 +71630,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M14 EBR-RI" msgid_plural "M14 EBR-RI" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M14 EBR-RI" +msgstr[1] "M14 EBR-RI" #: lang/json/gun_from_json.py msgid "" @@ -69998,12 +71750,17 @@ msgid "" " 'weapon system' because it consists of not only a rifle, but also a " "detachable telescopic sight and other accessories." msgstr "" +"El M24 francotirador es una versión militar y policíaca del rifle Remington " +"modelo 700. M24 es el nombre asignado por el Ejército de Estados Unidos " +"luego de adoptarlo como su rifle de francotirador estándar en 1988. El M24 " +"es llamado 'sistema de armas' porque además del rifle tiene una mira " +"telescópica removible y otros accesorios." #: lang/json/gun_from_json.py msgid "SIG Sauer P230" msgid_plural "SIG Sauer P230" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "SIG Sauer P230" +msgstr[1] "SIG Sauer P230" #: lang/json/gun_from_json.py msgid "" @@ -70052,6 +71809,8 @@ msgid "" "A SIG Sauer P226 chambered for .357 SIG. The P226 is a DA/SA, short-recoil " "operated semi-automatic pistol." msgstr "" +"Es una SIG Sauer P226 calibre .357 SIG. La P226 es una DA/SA, una pistola " +"semiautomática con poco retroceso." #: lang/json/gun_from_json.py msgid "Colt M1861 Navy" @@ -70072,8 +71831,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "2 Shot Special" msgid_plural "2 Shot Specials" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "2 Tiros Especial" +msgstr[1] "2 Tiros Especial" #: lang/json/gun_from_json.py msgid "" @@ -70088,8 +71847,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "COP .38" msgid_plural "COP .38" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "COP .38" +msgstr[1] "COP .38" #: lang/json/gun_from_json.py msgid "" @@ -70184,6 +71943,9 @@ 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 "" +"Es un revólver de 6 disparos hecho en casa. Aunque no es tan buena como las " +"armas fabricadas antes del Cataclismo, es una pieza decente considerando la " +"situación." #: lang/json/gun_from_json.py msgid "S&W 610" @@ -70216,8 +71978,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M320 stand alone launcher" msgid_plural "M320 stand alone launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzador independiente M320" +msgstr[1] "lanzadores independientes M320" #: lang/json/gun_from_json.py msgid "" @@ -70248,8 +72010,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Mark 19 grenade launcher" msgid_plural "Mark 19 grenade launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzagranadas Mark 19" +msgstr[1] "lanzagranadas Mark 19" #: lang/json/gun_from_json.py msgid "" @@ -70265,8 +72027,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Milkor MGL" msgid_plural "Milkor MGL" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Milkor MGL" +msgstr[1] "Milkor MGL" #: lang/json/gun_from_json.py msgid "" @@ -70397,8 +72159,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Colt M1860 Army" msgid_plural "Colt M1860 Army" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Colt M1860 Army" +msgstr[1] "Colt M1860 Army" #: lang/json/gun_from_json.py msgid "" @@ -70412,8 +72174,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "TDI Vector" msgid_plural "TDI Vectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TDI Vector" +msgstr[1] "TDI Vector" #: lang/json/gun_from_json.py msgid "" @@ -70471,6 +72233,15 @@ msgid "" "in holographic and laser sights. Similar to other Leadworks products it " "doesn't accept third-party modifications." msgstr "" +"Pensado para unir la brecha entre la frontera estadounidense y las " +"necesidades de la civilización moderna, el Long Ranger de Leadworks fue " +"diseñado para darle a los usuarios del Enforcer (o a cualquiera que use " +"cartuchos calibre .45) un poco más de alcance usando la misma munición. Sus " +"accesorios sintéticos le quitan puntos de encanto entre los rifles basados " +"en el legendario Winchester, pero los usuarios se ponen de acuerdo que vale " +"la pena la potencia del .45 con alcance de rifle. Tiene incorporadas mira " +"holográfica y láser. Al igual que otros productos de Leadworks, no es " +"compatible con modificaciones de otras marcas." #: lang/json/gun_from_json.py msgid "L39B-45" @@ -70490,8 +72261,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "L39-45" msgid_plural "L39-45s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "L39-45" +msgstr[1] "L39-45" #: lang/json/gun_from_json.py msgid "" @@ -70520,8 +72291,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "MAC-10" msgid_plural "MAC-10s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MAC-10" +msgstr[1] "MAC-10" #: lang/json/gun_from_json.py msgid "" @@ -70554,8 +72325,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Thompson submachine gun" msgid_plural "Thompson submachine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil Thompson" +msgstr[1] "subfusiles Thompson" #: lang/json/gun_from_json.py msgid "" @@ -70593,8 +72364,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "H&K MP7" msgid_plural "H&K MP7s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "H&K MP7" +msgstr[1] "H&K MP7" #: lang/json/gun_from_json.py msgid "" @@ -70676,8 +72447,8 @@ msgstr "manual" #: lang/json/gun_from_json.py msgid "Big Horn Model 89" msgid_plural "Big Horn Model 89" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Big Horn Model 89" +msgstr[1] "Big Horn Model 89" #: lang/json/gun_from_json.py msgid "" @@ -70692,8 +72463,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "S&W 500" msgid_plural "S&W 500" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "S&W 500" +msgstr[1] "S&W 500" #: lang/json/gun_from_json.py msgid "" @@ -70706,8 +72477,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "AK-74M" msgid_plural "AK-74Ms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "AK-74M" +msgstr[1] "AK-74M" #: lang/json/gun_from_json.py msgid "" @@ -70720,8 +72491,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "AN-94" msgid_plural "AN-94s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "AN-94" +msgstr[1] "AN-94" #: lang/json/gun_from_json.py msgid "" @@ -70758,8 +72529,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "FN P90" msgid_plural "FN P90s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "FN P90" +msgstr[1] "FN P90" #: lang/json/gun_from_json.py msgid "" @@ -70774,8 +72545,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "RM216 SPIW" msgid_plural "RM216 SPIWs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "RM216 SPIW" +msgstr[1] "RM216 SPIW" #: lang/json/gun_from_json.py msgid "" @@ -70797,8 +72568,8 @@ msgstr "5 rd." #: lang/json/gun_from_json.py msgid "RM232 IDW" msgid_plural "RM232 IDWs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "RM232 IDW" +msgstr[1] "RM232 IDW" #: lang/json/gun_from_json.py msgid "" @@ -70846,8 +72617,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Beretta ARX-160" msgid_plural "Beretta ARX-160" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Beretta ARX-160" +msgstr[1] "Beretta ARX-160" #: lang/json/gun_from_json.py msgid "" @@ -70864,8 +72635,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "SKS" msgid_plural "SKSs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "SKS" +msgstr[1] "SKS" #: lang/json/gun_from_json.py msgid "" @@ -70873,12 +72644,16 @@ msgid "" "full-auto AK47. However, due to its superb accuracy, low recoil and " "deployable integrated bayonet, this gun maintains immense popularity." msgstr "" +"Desarrollado por los soviéticos en 1945, este rifle fue rápidamente " +"reemplazado por la automática AK47. Sin embargo, debido a su magnífica " +"precisión, poco retroceso y bayoneta integrada retráctil, esta arma mantiene" +" una inmensa popularidad." #: lang/json/gun_from_json.py msgid "Mosin-Nagant M44" msgid_plural "Mosin-Nagant M44" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mosin-Nagant M44" +msgstr[1] "Mosin-Nagant M44" #: lang/json/gun_from_json.py msgid "" @@ -70923,8 +72698,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Mosin-Nagant 1891/30-EBR" msgid_plural "Mosin-Nagant 1891/30-EBR" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mosin-Nagant 1891/30-EBR" +msgstr[1] "Mosin-Nagant 1891/30-EBR" #: lang/json/gun_from_json.py msgid "" @@ -70953,8 +72728,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Tokarev TT-33" msgid_plural "Tokarev TT-33" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tokarev TT-33" +msgstr[1] "Tokarev TT-33" #: lang/json/gun_from_json.py msgid "" @@ -70971,8 +72746,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M3 recoilless rifle" msgid_plural "M3 recoilless rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle sin retroceso M3" +msgstr[1] "rifles sin retroceso M3" #: lang/json/gun_from_json.py msgid "" @@ -71050,6 +72825,10 @@ msgid "" "the worst possible circumstances. Accepts RMXB500 box and RMGD250 drum " "magazines." msgstr "" +"Utilizando un poderoso e inusual calibre, la ametralladora pesada Rivtech " +"RM298 fue diseñada para ser duradera y poseer un volumen extremo de disparo " +"sostenido, incluso bajo las peores condiciones posibles. Acepta cargadores " +"de caja RMXB500 y cargadores de tambor RMGD250." #: lang/json/gun_from_json.py msgid "RM51 assault rifle" @@ -71082,6 +72861,10 @@ msgid "" "the worst possible circumstances. Accepts RMXB500 box and RMGD250 drum " "magazines." msgstr "" +"Utilizando un poderoso e inusual calibre, la ametralladora ligera Rivtech " +"RM614 fue diseñada para ser duradera y poseer un volumen extremo de disparo " +"sostenido, incluso bajo las peores condiciones posibles. Acepta cargadores " +"de caja RMXB500 y cargadores de tambor RMGD250." #: lang/json/gun_from_json.py msgid "4 rd." @@ -71090,8 +72873,8 @@ msgstr "4 rd." #: lang/json/gun_from_json.py msgid "RM88 battle rifle" msgid_plural "RM88 battle rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de combate RM88" +msgstr[1] "rifles de combate RM88" #: lang/json/gun_from_json.py msgid "" @@ -71100,6 +72883,10 @@ msgid "" "circumstances, with a heavy ported barrel for maximum controllability. " "Accepts box and RMGD250 drum magazines." msgstr "" +"Originalmente producido para uso militar, el rifle de combate Rivtech RM88 " +"fue diseñado para ser duradero y tener mucho poder de fuego bajo condiciones" +" poco ideales, con un caño pesada para tener máxima controlabilidad. Acepta " +"cargadores de caja y cargadores de tambor RMGD250." #: lang/json/gun_from_json.py msgid "RM99 revolver" @@ -71140,8 +72927,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Calico M960" msgid_plural "Calico M960" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Calico M960" +msgstr[1] "Calico M960" #: lang/json/gun_from_json.py msgid "" @@ -71163,6 +72950,9 @@ msgid "" "defense, the Cx4 Storm uses magazines that are interchangeable with other " "Beretta 9x19mm handguns." msgstr "" +"Una pequeña carabina con calibre de pistola, diseñada para uso policial y la" +" defensa personal de los civiles. El Cx4 Storm usa cargadores que son " +"intercambiables con las pistolas Beretta 9x19mm." #: lang/json/gun_from_json.py msgid "Glock 19" @@ -71205,12 +72995,14 @@ msgid "" "A uniquely designed pistol caliber carbine with an integral folding stock " "and that makes use of 9x19mm Glock magazines." msgstr "" +"Es una carabina de diseño único con calibre de pistola y una culata " +"integrada plegable, que utiliza cargadores 9x19mm Glock." #: lang/json/gun_from_json.py msgid "L2032 Lookout" msgid_plural "L2032 Lookout" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "L2032 Lookout" +msgstr[1] "L2032 Lookout" #: lang/json/gun_from_json.py msgid "" @@ -71221,6 +73013,12 @@ msgid "" "holographic and laser sights. Similar to other Leadworks products it " "doesn't accept third-party modifications." msgstr "" +"Luego del éxito de la Enforcer, Leadworks SRL rediseñó su autorevólver para " +"entrar en el mercado de las 9x19mm. La Lookout saca ventaja del tamaño menor" +" de la 9x19mm para almacenar una séptima bala, si sacrificar la facilidad de" +" manejo o la recarga que han hecho legendaria a la Enforcer. Tiene " +"incorporadas mira holográfica y láser. Al igual que otros productos de " +"Leadworks, no acepta modificaciones de otras marcas." #: lang/json/gun_from_json.py msgid "L39B" @@ -71291,8 +73089,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "TEC-9" msgid_plural "TEC-9" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TEC-9" +msgstr[1] "TEC-9" #: lang/json/gun_from_json.py msgid "" @@ -71332,6 +73130,9 @@ msgid "" "other submachine gun. It is widely used as a personal defense weapon, or as" " a primary weapon by elite frontline forces." msgstr "" +"La Uzi 9x19mm ha disfrutado de una popularidad inmensa, vendiendo más " +"unidades que cualquier otro subfusil. Es muy usada como arma de defensa " +"personal, o como arma primaria en las fuerzas fronterizas de elite." #: lang/json/gun_from_json.py msgid "Glock 17" @@ -71344,6 +73145,8 @@ msgid "" "Designed for all shooters, the Glock 17 is marketed towards law-enforcement " "and military." msgstr "" +"Diseñada para los tiradores, la Glock 17 está orientada para uso de las " +"fuerzas de la ley y militares." #: lang/json/gun_from_json.py msgid "Makarov PM" @@ -71428,8 +73231,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "simple flamethrower" msgid_plural "simple flamethrowers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzallamas simple" +msgstr[1] "lanzallamas simples" #: lang/json/gun_from_json.py msgid "" @@ -71551,8 +73354,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "ferromagnetic rail rifle" msgid_plural "ferromagnetic rail rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle ferromagnético de riel" +msgstr[1] "rifles ferromagnéticos de riel" #: lang/json/gun_from_json.py msgid "" @@ -71680,6 +73483,10 @@ msgid "" "built in red dot and laser sights. Like most other Leadworks products it " "doesn't accept third-party modifications." msgstr "" +"La oferta de escopetas de Leadworks SRL es sorprendentemente compacta " +"gracias a su cañón móvil y su mecanismo de bombeo. Ademas, tiene " +"incorporadas una mira de punto rojo y una láser. Como la mayoría de los " +"productos de Leadworks, no acepta modificaciones de otras marcas." #: lang/json/gun_from_json.py msgid "M1014 shotgun" @@ -71698,8 +73505,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Mossberg 500" msgid_plural "Mossberg 500" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mossberg 500" +msgstr[1] "Mossberg 500" #: lang/json/gun_from_json.py msgid "" @@ -71713,8 +73520,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "double-barrel pipe shotgun" msgid_plural "double-barrel pipe shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta de caño de doble cañón" +msgstr[1] "escopetas de caño de doble cañón" #: lang/json/gun_from_json.py msgid "" @@ -71745,8 +73552,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Remington 870" msgid_plural "Remington 870" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Remington 870" +msgstr[1] "Remington 870" #: lang/json/gun_from_json.py msgid "" @@ -71775,8 +73582,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Saiga-12" msgid_plural "Saiga-12s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Saiga-12" +msgstr[1] "Saiga-12" #: lang/json/gun_from_json.py msgid "" @@ -71821,8 +73628,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "handmade lever shotgun" msgid_plural "handmade lever shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta de palanca casera" +msgstr[1] "escopetas de palanca caseras" #: lang/json/gun_from_json.py msgid "" @@ -71847,8 +73654,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "XM34 EMP projector" msgid_plural "XM34 EMP projectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "proyector XM34 PEM" +msgstr[1] "proyectores XM34 PEM" #: lang/json/gun_from_json.py msgid "" @@ -71861,8 +73668,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "handheld laser cannon" msgid_plural "handheld laser cannons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón láser de mano" +msgstr[1] "cañones láser de mano" #: lang/json/gun_from_json.py msgid "" @@ -71894,8 +73701,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "fusion blaster rifle" msgid_plural "fusion blaster rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de explosión de fusión" +msgstr[1] "rifles de explosión de fusión" #: lang/json/gun_from_json.py msgid "" @@ -71934,14 +73741,17 @@ msgstr "" #: lang/json/gun_from_json.py msgid "sawn-off shotgun" msgid_plural "sawn-off shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta recortada" +msgstr[1] "escopetas recortadas" #: lang/json/gun_from_json.py 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 "" +"Los cañones de las escopetas son frecuentemente cortados a la mitad para " +"hacerlas más manejables y fáciles de ocultar. Pero además, esto disminuye " +"mucho su precisión." #: lang/json/gun_from_json.py msgid "sawn pipe shotgun" @@ -71958,8 +73768,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "NX-17 charge rifle" msgid_plural "NX-17 charge rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de carga NX-17" +msgstr[1] "rifles de carga NX-17" #: lang/json/gun_from_json.py msgid "" @@ -71979,6 +73789,8 @@ msgid "" "A wooden blowgun, easy to use and very accurate. It uses darts as " "ammunition." msgstr "" +"Es una cerbatana de madera, fácil de usar y muy precisa. Usa dardos como " +"munición." #: lang/json/gun_from_json.py msgid "shoddy laser rifle" @@ -71991,6 +73803,8 @@ msgid "" "This is a cheap laser rifle made from common components. Weak, but can be " "powered with rechargeable batteries." msgstr "" +"Es un rifle láser barato hecho de componentes comunes. Es frágil, pero puede" +" ser alimentado por baterías recargables." #: lang/json/gun_from_json.py msgid "pipe rifle: .45" @@ -72053,8 +73867,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "pipe SMG: .40" msgid_plural "pipe SMGs: .40" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil de tubo: .40" +msgstr[1] "subfusiles de tubo: .40" #: lang/json/gun_from_json.py msgid "pipe SMG: .45" @@ -72069,6 +73883,10 @@ msgid "" "The energy shot ignites oxygen creating fires as it moves and an explosion " "on impact." msgstr "" +"Es un poderoso generador de energía iónica que se implanta en tu pecho. " +"Dispara un poderoso y continuo rayo de energía que puede atravesar varios " +"objetivos. La energía disparada incendia el oxígeno creando fuego mientras " +"se va moviendo y explotando al impactar." #: lang/json/gun_from_json.py msgid "SVS-24" @@ -72127,12 +73945,14 @@ msgid "" "Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" " as the SVS-24." msgstr "" +"Es una versión civil del SVS-24. Esta dispara el mismo cartucho 6.54x42mm " +"que el SVS-24." #: lang/json/gun_from_json.py msgid "CW-24K" msgid_plural "CW-24K" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CW-24K" +msgstr[1] "CW-24K" #: lang/json/gun_from_json.py msgid "" @@ -72161,14 +73981,14 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Modified CW-24M" msgid_plural "Modified CW-24M" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CW-24M Modificada" +msgstr[1] "CW-24M Modificadas" #: lang/json/gun_from_json.py msgid "CWD-63" msgid_plural "CWD-63" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CWD-63" +msgstr[1] "CWD-63" #: lang/json/gun_from_json.py msgid "" @@ -72285,6 +74105,9 @@ 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 "" +"Construido por la compañía Sarah and Suhl de Portland, Maine, el subfusil " +"M919 es la más precisa 9x19mm del mercado. Pensada para ser utilizada por la" +" policía, posee un lanzagranadas integrado." #: lang/json/gun_from_json.py msgid "Eagle 1776" @@ -72322,8 +74145,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "arc cannon" msgid_plural "arc cannons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón de arco" +msgstr[1] "cañones de arco" #: lang/json/gun_from_json.py msgid "" @@ -72366,8 +74189,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "lever action carbine" msgid_plural "lever action carbines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carabina de acción de palanca" +msgstr[1] "carabinas de acción de palanca" #: lang/json/gun_from_json.py msgid "" @@ -72394,8 +74217,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "holdout pistol" msgid_plural "holdout pistols" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistola de bolsillo" +msgstr[1] "pistolas de bolsillo" #: lang/json/gun_from_json.py msgid "" @@ -72423,8 +74246,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "advanced submachine gun" msgid_plural "advanced submachine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil avanzado" +msgstr[1] "subfusiles avanzados" #: lang/json/gun_from_json.py msgid "" @@ -72468,8 +74291,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "combat shotgun" msgid_plural "combat shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta de combate" +msgstr[1] "escopetas de combate" #: lang/json/gun_from_json.py msgid "" @@ -72482,8 +74305,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "semiautomatic carbine" msgid_plural "semiautomatic carbines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carabina semiautomática" +msgstr[1] "carabinas semiautomáticas" #: lang/json/gun_from_json.py msgid "" @@ -72513,8 +74336,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "foreign assault rifle" msgid_plural "foreign assault rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle extranjero de asalto" +msgstr[1] "rifles extranjeros de asalto" #: lang/json/gun_from_json.py msgid "" @@ -72535,8 +74358,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "light machine gun" msgid_plural "light machine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil ligero" +msgstr[1] "subfusiles ligeros" #: lang/json/gun_from_json.py msgid "" @@ -72551,8 +74374,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "general purpose machine gun" msgid_plural "general purpose machine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil de uso general" +msgstr[1] "subfusiles de uso general" #: lang/json/gun_from_json.py msgid "" @@ -72601,8 +74424,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "service rifle" msgid_plural "service rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de servicio" +msgstr[1] "rifles de servicio" #: lang/json/gun_from_json.py msgid "" @@ -72615,8 +74438,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "battle rifle" msgid_plural "battle rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de combate" +msgstr[1] "rifles de combate" #: lang/json/gun_from_json.py msgid "" @@ -72630,8 +74453,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "medium machine gun" msgid_plural "medium machine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil medianos" +msgstr[1] "subfusiles medianos" #: lang/json/gun_from_json.py msgid "" @@ -72676,8 +74499,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "pipe gun: pistol ammo" msgid_plural "pipe rifles: pistol ammo" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle de tubo: munición de pistola" +msgstr[1] "rifles de tubo: munición de pistola" #: lang/json/gun_from_json.py msgid "" @@ -72795,8 +74618,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "scrap laser pistol" msgid_plural "scrap laser pistols" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistola láser de chatarra" +msgstr[1] "pistolas láser de chatarra" #: lang/json/gun_from_json.py msgid "" @@ -72826,6 +74649,11 @@ msgid "" "with polymers to reduce blooming. While powerful, it suffers from short " "range. It accepts hydrogen canisters as ammunition." msgstr "" +"Desarrollado por un equipo de investigación de armas de última tecnología en" +" conjunto con DARPA, esta arma de energía alimentada por UPS calienta " +"hidrógeno para crear plasma y lo envuelve con polímeros para reducir el " +"brote. Aunque es poderoso, no es adecuado para distancias largas. Acepta " +"latas de hidrógeno como munición." #: lang/json/gun_from_json.py msgid "magnum pistol" @@ -72852,12 +74680,15 @@ msgid "" "The recoilless rifle is a breech-loading 84 millimeter man-portable, " "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "" +"Este rifle sin retroceso es de retrocarga, 84 milímetros, portátil, " +"reutilizable, multifunción, era usado comúnmente por el ejército de los " +"Estados Unidos." #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza de fuego" +msgstr[1] "lanzas de fuego" #: lang/json/gun_from_json.py msgid "" @@ -72884,6 +74715,7 @@ msgstr[1] "" msgid "" "This is a pseudo item for monster attacks. If you see this, it's a bug." msgstr "" +"Esto es un pseudoobjeto para ataques de monstruos. Si te aparece, es un bug." #: lang/json/gun_from_json.py msgid "integral 12 gauge shotgun" @@ -72906,14 +74738,14 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "integral 8mm firearm" msgid_plural "integral 8mm firearms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arma 8mm integral" +msgstr[1] "armas 8mm integrales" #: lang/json/gun_from_json.py msgid "integral laser emitter" msgid_plural "integral laser emitters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "emisor láser integral" +msgstr[1] "emisores láser integrales" #: lang/json/gun_from_json.py msgid "integral railgun" @@ -72924,14 +74756,14 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "integral lightning caster" msgid_plural "integral lightning casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza-rayos integral" +msgstr[1] "lanza-rayos integrales" #: lang/json/gun_from_json.py msgid "integral EMP generator" msgid_plural "integral EMP generators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "generador PEM integral" +msgstr[1] "generadores PEM integrales" #: lang/json/gun_from_json.py msgid "atlatl" @@ -72960,6 +74792,10 @@ 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 "" +"Es una ballesta simple, hecha a mano, del estilo Skane, con una clavija de " +"madera que es empujada desde abajo para soltar la cuerda. No es tan poderosa" +" como otros diseños de ballesta, pero es fácil de cargar. Los pernos " +"disparados con esta arma tienen una gran probabilidad de no romperse." #: lang/json/gun_from_json.py msgid "Ichaival" @@ -72979,14 +74815,14 @@ msgstr "" #: lang/json/gun_from_json.py msgid "integral nailgun" msgid_plural "integral nailguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistola de clavos integral" +msgstr[1] "pistolas de clavos integrales" #: lang/json/gun_from_json.py msgid "mounted crossbow" msgid_plural "mounted crossbows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ballesta montada" +msgstr[1] "ballestas montadas" #: lang/json/gun_from_json.py msgid "Vortical plasma beam" @@ -72997,8 +74833,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "30mm autocannon" msgid_plural "30mm autocannons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón automático 30mm" +msgstr[1] "cañones automáticos 30mm" #: lang/json/gun_from_json.py msgid "" @@ -73071,8 +74907,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "ATGM Launcher" msgid_plural "ATGM Launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzador ATGM" +msgstr[1] "lanzadores ATGM" #: lang/json/gun_from_json.py msgid "" @@ -73087,8 +74923,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Vehicular ATGM Launcher" msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzador vehicular ATGM" +msgstr[1] "lanzadores vehiculares ATGM" #: lang/json/gun_from_json.py msgid "" @@ -73491,8 +75327,8 @@ msgstr "" #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex rifle" msgid_plural "vortex rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle vórtice" +msgstr[1] "rifles vórtice" #: lang/json/gun_from_json.py msgid "" @@ -73556,8 +75392,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "rotary cannon" msgid_plural "rotary cannons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón rotatorio" +msgstr[1] "cañones rotatorios" #: lang/json/gun_from_json.py msgid "" @@ -73591,8 +75427,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "pulse laser" msgid_plural "pulse lasers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "láser de pulso" +msgstr[1] "lásers de pulso" #: lang/json/gun_from_json.py msgid "" @@ -73607,8 +75443,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "turbolaser cannon" msgid_plural "turbolaser cannons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón turboláser" +msgstr[1] "cañones turboláser" #: lang/json/gun_from_json.py msgid "" @@ -73687,8 +75523,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "ripper" msgid_plural "rippers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "destripador" +msgstr[1] "destripadores" #: lang/json/gun_from_json.py msgid "" @@ -73803,8 +75639,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Model 10 revolver" msgid_plural "Model 10 revolver" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "revolver Model 10" +msgstr[1] "revolver Model 10" #: lang/json/gun_from_json.py msgid "" @@ -73814,8 +75650,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "COP .357" msgid_plural "COP .357" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "COP .357" +msgstr[1] "COP .357" #: lang/json/gun_from_json.py msgid "" @@ -73942,8 +75778,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "AF2011A1 .38 Super" msgid_plural "AF2011A1 .38 Supers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "AF2011A1 .38 Super" +msgstr[1] "AF2011A1 .38 Supers" #: lang/json/gun_from_json.py msgid "" @@ -73954,14 +75790,16 @@ msgstr "" #: lang/json/gun_from_json.py msgid "M1991A1 .38 Super" msgid_plural "M1991A1 .38 Supers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "M1991A1 .38 Super" +msgstr[1] "M1991A1 .38 Supers" #: lang/json/gun_from_json.py msgid "" "A modern M1911, chambered for the .38 Super cartridge. It can achieve good " "accuracy." msgstr "" +"Es una moderna M1911, con calibre para el cartucho .38 Super. Tiene buena " +"precisión." #: lang/json/gun_from_json.py msgid "Taurus Raging Judge Magnum" @@ -73998,8 +75836,8 @@ msgstr "cañón" #: lang/json/gunmod_from_json.py msgid "rifled barrel" msgid_plural "rifled barrels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón estriado" +msgstr[1] "cañones estriados" #: lang/json/gunmod_from_json.py msgid "" @@ -74062,8 +75900,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid ".22 caliber conversion kit" msgid_plural ".22 caliber conversion kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conversivo a calibre .22" +msgstr[1] "conversivos a calibre .22" #: lang/json/gunmod_from_json.py msgid "" @@ -74071,6 +75909,9 @@ msgid "" "or .223 firearm converts it to a .22 firearm. The conversion results in a " "slight reduction to accuracy." msgstr "" +"Reemplazando varias partes fundamentales de un arma calibre 9x19mm, .38, " +".40, 5.7mm, 4.6mm, 7.62x39mm o .223, lo convierte en un .22. Esta conversión" +" reduce un poco la precisión." #: lang/json/gunmod_from_json.py msgid "bore" @@ -74122,12 +75963,15 @@ msgid "" " to a .45 firearm. The conversion results in a slight reduction to " "accuracy." msgstr "" +"Reemplazando varias partes fundamentales de un arma calibre 9x19mm, .38, .40" +" o .44, la convierte en una .45. Esta conversión reduce un poco la " +"precisión." #: lang/json/gunmod_from_json.py msgid "4.6mm caliber conversion kit" msgid_plural "4.6mm caliber conversion kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conversivo a calibre 4.6mm" +msgstr[1] "conversivos a calibre 4.6mm" #: lang/json/gunmod_from_json.py msgid "" @@ -74161,6 +76005,9 @@ msgid "" "converts it to a 9x19mm firearm. The conversion results in a slight " "reduction to accuracy." msgstr "" +"Reemplazando varias partes fundamentales de un arma calibre 9x18mm, .38, " +".40, .44 o .45, la convierte en una 9x19mm. Esta conversión reduce un poco " +"la precisión." #: lang/json/gunmod_from_json.py msgid "belt feed adapter" @@ -74248,6 +76095,9 @@ msgid "" "mount on modern bows. Takes extra time to set up when wielding, but doesn't" " take much extra space." msgstr "" +"Es un conjunto de tres estabilizadores, varillas amortiguadas con soportes " +"con resortes para ser montados en arcos modernos. Lleva un tiempo poder " +"armarlo cuando empuñás el arco, pero no te ocupa mucho más espacio." #: lang/json/gunmod_from_json.py msgid "bow dampening kit" @@ -74288,8 +76138,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "shoulder strap" msgid_plural "shoulder straps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "correa de hombro" +msgstr[1] "correas de hombro" #: lang/json/gunmod_from_json.py msgid "" @@ -74418,8 +76268,8 @@ msgstr "lente" #: lang/json/gunmod_from_json.py msgid "electrolaser conversion" msgid_plural "electrolaser conversions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conversivo electroláser" +msgstr[1] "conversivos electroláser" #: lang/json/gunmod_from_json.py msgid "" @@ -74431,8 +76281,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "high density capacitor" msgid_plural "high density capacitors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capacitor de alta densidad" +msgstr[1] "capacitores de alta densidad" #: lang/json/gunmod_from_json.py msgid "" @@ -74442,13 +76292,13 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "emitter" -msgstr "" +msgstr "emisor" #: lang/json/gunmod_from_json.py msgid "leadworks magazine adapter" msgid_plural "leadworks magazine adapters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "adaptador de cargador leadworks" +msgstr[1] "adaptadores de cargadores leadworks" #: lang/json/gunmod_from_json.py msgid "" @@ -74472,11 +76322,46 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "firearm waterproofing" -msgid_plural "firearm waterproofings" +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" msgstr[0] "" msgstr[1] "" +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "firearm waterproofing" +msgid_plural "firearm waterproofings" +msgstr[0] "impermeabilizador de arma" +msgstr[1] "impermeabilizadores de arma" + #: lang/json/gunmod_from_json.py msgid "" "A set of seals and gaskets that will allow a firearm to operate reliably " @@ -74488,8 +76373,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "ported barrel" msgid_plural "ported barrels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cañón agujereado" +msgstr[1] "cañones agujereados" #: lang/json/gunmod_from_json.py msgid "" @@ -74626,6 +76511,18 @@ msgstr "" " una mira telescópica u otra modificación impide el uso de los lugares de " "interés principales." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" +"Es un conjunto de ranuras adicionales a 45º para poner una óptica " +"secundaria." + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -74662,7 +76559,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "An advanced Leadworks built in gyroscopic stabilizer." -msgstr "" +msgstr "Es un avanzado estabilizador giroscópico integrado de Leadworks." #: lang/json/gunmod_from_json.py msgid "five pin bow sight" @@ -74676,6 +76573,9 @@ msgid "" "modern bows. Improves accuracy substantially, but takes a bit longer to " "line up." msgstr "" +"Es un conjunto de pines de fibra óptica para apuntar, con un soporte para " +"montarlo sobre los arcos modernos. Mejora sustancialmente la precisión, pero" +" es más lento para alinear el arco." #: lang/json/gunmod_from_json.py msgid "sights" @@ -74696,8 +76596,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "bow scope" msgid_plural "bow scopes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mira para arco" +msgstr[1] "miras para arco" #: lang/json/gunmod_from_json.py msgid "" @@ -74705,6 +76605,9 @@ msgid "" "accompanying clarifier peep sight. Designed for extra long shots, but " "easily adjusted for short range. Spectacularly accurate." msgstr "" +"Es una mira de aumento montada sobre un soporte ajustable, y con una mirilla" +" con clarificador. Diseñada para disparos muy distantes, pero fácil de " +"ajustar para el corto alcance. Excepcionalmente precisa." #: lang/json/gunmod_from_json.py msgid "holographic sight" @@ -74812,6 +76715,8 @@ msgid "" "A simple telescopic sight, essentially a small telescope with crosshairs. " "Increases weight but improves accuracy." msgstr "" +"Es una simple mira telescópica, es como un telescopio con punto de mira. " +"Incrementa el peso pero mejora la precisión." #: lang/json/gunmod_from_json.py msgid "telescopic pistol sight" @@ -74824,6 +76729,8 @@ msgid "" "A simple telescopic sight intended for use on a handgun. Increases weight " "but improves accuracy greatly." msgstr "" +"Es una simple mira telescópica diseñada para usar en pistolas. Incrementa el" +" peso pero mejora mucho la precisión." #: lang/json/gunmod_from_json.py msgid "LW red dot sight" @@ -74833,7 +76740,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "Built in red-dot sight for the Leadworks weapon." -msgstr "" +msgstr "Es una mira de punto rojo incorporada para armas Leadworks." #: lang/json/gunmod_from_json.py msgid "LW rifle scope" @@ -74856,6 +76763,8 @@ msgid "" "An Leadworks built in Advanced Combat Optical Gunsight, a milspec medium " "magnification scope. Improves accuracy significantly." msgstr "" +"Es una mira óptica avanzada de combate incorporada de Leadworks, una mira " +"militar de magnificación media. Mejora significativamente la precisión." #: lang/json/gunmod_from_json.py msgid "LW holographic sight" @@ -74886,8 +76795,8 @@ msgstr "culata" #: lang/json/gunmod_from_json.py msgid "folding stock" msgid_plural "folding stocks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "culata plegable" +msgstr[1] "culatas plegables" #: lang/json/gunmod_from_json.py msgid "" @@ -74971,8 +76880,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "combination gun shotgun" msgid_plural "combination gun shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta combinada" +msgstr[1] "escopetas combinadas" #: lang/json/gunmod_from_json.py msgid "" @@ -75058,8 +76967,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "LeMat revolver shotgun" msgid_plural "LeMat revolver shotguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escopeta revólver LeMat" +msgstr[1] "escopetas revólver LeMat" #: lang/json/gunmod_from_json.py msgid "" @@ -75180,14 +77089,17 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "LW underbarrel laser sight" msgid_plural "LW underbarrel laser sights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mira láser bajocañón LW" +msgstr[1] "miras láser bajocañón LW" #: lang/json/gunmod_from_json.py msgid "" "A Leadworks built in visible-light laser that mounts under a firearm's " "barrel to enhance ease and speed of target acquisition." msgstr "" +"Es una mira de láser visible incorporada de Leadworks, que se pone debajo " +"del cañón de un arma de fuego para mejorar la facilidad y velocidad para " +"apuntar." #: lang/json/gunmod_from_json.py msgid "LW forward grip" @@ -75200,6 +77112,8 @@ msgid "" "A Leadworks built in grip placed forward on the barrel allows for greater " "control." msgstr "" +"Es un mango integrado de Leadworks que se pone adelante, en el cañón, para " +"permitir un mejor control del arma." #: lang/json/gunmod_from_json.py msgid "LW bipod" @@ -75213,6 +77127,10 @@ msgid "" "motion. Although it greatly improve handling of recoil it is usable only on" " certain surfaces and are slow to equip." msgstr "" +"Es un bípode integrado de Leadworks diseñado para brindar un descanso " +"delantero y reducir el movimiento. Aunque mejora mucho el control del " +"retroceso, solo se puede utilizar en algunas superficies y es lento para " +"montar." #: lang/json/gunmod_from_json.py msgid "LW underslung shotgun" @@ -75300,6 +77218,9 @@ msgid "" "sniper rifle. It removes any automatic fire capabilities but also increases" " accuracy and damage." msgstr "" +"Este es un equipo de conversión completa, diseñado para convertir un rifle " +"en un mortal rifle de francotirador. Quita la posibilidad de disparo " +"automático pero incrementa la precisión y el daño." #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" @@ -75332,8 +77253,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "7.62 caliber conversion kit" msgid_plural "7.62 caliber conversion kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conversivo a calibre 7.62" +msgstr[1] "conversivos a calibre 7.62" #: lang/json/gunmod_from_json.py msgid "" @@ -75437,8 +77358,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid ".410 bore conversion kit" msgid_plural ".410 bore conversion kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conversivo a calibre .410" +msgstr[1] "conversivos a calibre .410" #: lang/json/gunmod_from_json.py msgid "" @@ -75460,6 +77381,8 @@ msgid "" "You search for any salvageable bionic hardware in what's left of this failed" " experiment" msgstr "" +"Buscás cualquier pedazo de biónico rescatable que pueda haber en este " +"experimento fallido" #: lang/json/harvest_from_json.py msgid "" @@ -75469,7 +77392,7 @@ msgstr "" #: lang/json/harvest_from_json.py msgid "You laboriously dissect the colossal insect." -msgstr "" +msgstr "Laboriosamente, diseccionás el gigantesco insecto." #: lang/json/harvest_from_json.py msgid "You laboriously hack and dig through the remains of the fungal mass." @@ -76199,6 +78122,8 @@ msgstr "" #: lang/json/help_from_json.py msgid "Magazine descriptions also list the compatible ammo." msgstr "" +"En la descripción de los cargadores también figura la compatibilidad de las " +"municiones." #: lang/json/help_from_json.py msgid "" @@ -76290,7 +78215,7 @@ msgstr "" #: lang/json/help_from_json.py msgid ": Survival tips" -msgstr "" +msgstr ": Consejos de supervivencia" #: lang/json/help_from_json.py msgid "" @@ -76395,6 +78320,12 @@ msgid "" "layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " "article of clothing." msgstr "" +"La ropa se pone en uno de los cinco niveles de tu cuerpo: contra la piel, " +"normal, cintura, sobre o abrochado. Podés ponerte una ropa de cada nivel en " +"una parte del cuerpo sin sufrir penalidades de incomodidad por tener mucha " +"ropa. Cualquier prenda adicional a la primera que te pongas en un nivel, " +"agrega la incomodidad de la prenda en esa parte del cuerpo. La penalidad por" +" nivel aplica un minímo de 2 y un máximo de 10 de incomodidad por prenda." #: lang/json/help_from_json.py msgid "" @@ -76465,7 +78396,7 @@ msgstr "" #: lang/json/help_from_json.py msgid "<1>: List of item types and data" -msgstr "" +msgstr "<1>: Clases de objetos e información" #: lang/json/help_from_json.py #, no-python-format @@ -76923,7 +78854,7 @@ msgstr "Cortar tornillos o alambres" #: lang/json/item_action_from_json.py msgid "Heat up food (with it)" -msgstr "" +msgstr "Calentar comida (con esto)" #: lang/json/item_action_from_json.py msgid "Repair wood/paper/bone/chitin" @@ -77114,7 +79045,7 @@ msgstr "Establecer" #: lang/json/item_action_from_json.py msgid "Detach gunmods" -msgstr "" +msgstr "Quitar modificación de arma" #: lang/json/item_action_from_json.py msgid "Trim the hair" @@ -77122,7 +79053,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Heat up food (in it)" -msgstr "" +msgstr "Calentar comida (en esto)" #: lang/json/item_action_from_json.py msgid "Inhale" @@ -77296,15 +79227,15 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Break stick" -msgstr "" +msgstr "Romper palo" #: lang/json/item_action_from_json.py msgid "Get content" -msgstr "" +msgstr "Obtener contenido" #: lang/json/item_action_from_json.py msgid "Take a magnesium tablet" -msgstr "" +msgstr "Tomar pastilla de magnesio" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77383,6 +79314,9 @@ 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 objeto es un Módulo Compacto Biónico. Necesitás usar maquinaria " +"especializada o preguntarle a un cirujano para " +"instalarlo en tu cuerpo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77390,6 +79324,8 @@ msgid "" "This piece of clothing has built-in or attached climate " "control, keeping you at a comfortable temperature." msgstr "" +"Esta ropa tiene control de clima incorporado o añadido, lo que " +"te mantiene a una temperatura agradable." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77421,6 +79357,9 @@ msgid "" "obstacles by moving into tiles with them. Note that automatic mining option" " should be set to true for this to work." msgstr "" +"Mientras lo empuñes, este objeto te permite atravesar piedras y otros " +"objetos duros. Fijate que tiene que estar activada la opción de Mina " +"automática para que esto funcione." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77469,12 +79408,12 @@ msgstr "Esta ropa es perfecta." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item counts as fire for crafting purposes." -msgstr "" +msgstr "Este objeto sirve como fuego para las recetas." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item can start fire." -msgstr "" +msgstr "Este objeto puede iniciar un fuego." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77489,12 +79428,14 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear corrects nearsightedness." -msgstr "" +msgstr "Este equipo corrige la miopía." #: lang/json/json_flag_from_json.py msgid "" "Zombie-dropped clothing giving various penalties if Filthy mod is active." msgstr "" +"La ropa dejada por los zombis te da diversas penalidades si el mod de Ropa " +"Sucia está activado." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77534,6 +79475,8 @@ msgstr "" msgid "" "This gear completely protects you from any gas." msgstr "" +"Este equipo teprotege completamente de cualquier tipo de " +"gas." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -77608,6 +79551,8 @@ msgid "" "This clothing is large enough to accommodate abnormally large mutated " "anatomy." msgstr "" +"Esta ropa es lo suficientemente grande como para acomodar tu anatomía " +"mutada anormalmente grande ." #: lang/json/json_flag_from_json.py msgid "" @@ -77729,6 +79674,7 @@ msgstr "" msgid "" "This clothing slows your thirst by reducing moisture loss." msgstr "" +"Esta ropa desacelera tu sed reduciendo la pérdida de humedad." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -78017,6 +79963,9 @@ msgid "" "wheels. Requires controls to turn on. If it drains power, also requires a " "charged battery to start." msgstr "" +"Brinda energía motora para mover el vehículo si este posee suficientes " +"ruedas. Necesita tener los controles encendidos. Si utiliza energía, también" +" necesita una batería cargada para arrancar." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -78034,10 +79983,9 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" #. ~ Please leave anything in unchanged. @@ -78046,6 +79994,8 @@ msgid "" "There's no place to attach a seat belt, so you get thrown from the vehicle " "in a crash." msgstr "" +"No hay lugar para abrochar el cinturón de seguridad, así que saldrás volando" +" del vehículo en un choque." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -78091,6 +80041,9 @@ msgid "" "vehicle will be able to move, provided it has an active engine or motor with" " enough power to move the vehicle." msgstr "" +"Si el punto de equilibrio de tu vehículo está entre todas las ruedas, podrá " +"moverse si tiene un motor activo o un motor con suficiente fuerza para mover" +" el vehículo." #: lang/json/keybinding_from_json.py lang/json/keybinding_from_json.py #: src/input.cpp src/messages.cpp @@ -78608,7 +80561,7 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll down through vehicle part descriptions" -msgstr "" +msgstr "Desplazarse abajo en descripción de partes del vehículo" #: lang/json/keybinding_from_json.py msgid "Scroll up through vehicle overview" @@ -78786,7 +80739,7 @@ msgstr "Descuartizar" msgid "Chat with NPC" msgstr "Charlar con PNJ" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Mirar alrededor" @@ -79009,7 +80962,7 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Mining" -msgstr "" +msgstr "Activar/Desactivar auto hacer mina" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Foraging" @@ -79121,7 +81074,7 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove from safemode blacklist" -msgstr "" +msgstr "Quitar de lista negra de modo seguro" #: lang/json/keybinding_from_json.py msgid "look around" @@ -79151,7 +81104,7 @@ msgstr "Mover cursor abajo" #: lang/json/keybinding_from_json.py msgid "Exit this keybinding screen" -msgstr "" +msgstr "Salir de pantalla de atajos de teclado" #: lang/json/keybinding_from_json.py msgid "Remove bindings" @@ -79195,7 +81148,7 @@ msgstr "Desactivar zona" #: lang/json/keybinding_from_json.py msgid "Show all zones / hide distant zones" -msgstr "" +msgstr "Mostrar todas las zonas / ocultar distantes" #: lang/json/keybinding_from_json.py msgid "Select left inventory" @@ -79295,11 +81248,11 @@ msgstr "Elegir objetos que tienes puestos" #: lang/json/keybinding_from_json.py msgid "Restore default layout" -msgstr "" +msgstr "Restaurar disposición por defecto" #: lang/json/keybinding_from_json.py msgid "Save default layout" -msgstr "" +msgstr "Guardar disposición por defecto" #: lang/json/keybinding_from_json.py msgid "Sew" @@ -79323,7 +81276,7 @@ msgstr "No" #: lang/json/keybinding_from_json.py msgid "Ignore further distractions and finish" -msgstr "" +msgstr "Ignorar otras distracciones y terminar" #: lang/json/keybinding_from_json.py msgid "Cancel popup" @@ -79397,6 +81350,14 @@ msgstr "" msgid "Toggle headlights" msgstr "Luces delanteras" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "Luces superiores direccionales" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Luces superiores" @@ -79451,7 +81412,7 @@ msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim individual turret" -msgstr "" +msgstr "Apuntar torreta individual" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Set turret targeting modes" @@ -79495,7 +81456,7 @@ msgstr " Cementerio" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Please respect the cemetery" -msgstr "" +msgstr "Por favor, respete el cementerio" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79540,7 +81501,7 @@ msgstr "ABIERTO 24/7!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Dump" -msgstr "" +msgstr " Basurero" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79566,16 +81527,17 @@ msgstr "" #: lang/json/mapgen_from_json.py msgid "Welcome to Botanical Garden! Please stay on the path!" msgstr "" +"¡Bienvenido al jardín Botánico de ! ¡Por favor, camine por el sendero!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "WILLOW" -msgstr "" +msgstr "SAUCE" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PINE" -msgstr "" +msgstr "PINO" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79605,7 +81567,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "POPPY" -msgstr "" +msgstr "AMAPOLA" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79650,7 +81612,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLUM" -msgstr "" +msgstr "CIRUELA" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79665,7 +81627,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CATTAIL" -msgstr "" +msgstr "JUNCO" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79690,12 +81652,12 @@ msgstr " Jardín Comunitario" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden. Grow your own food!" -msgstr "" +msgstr "Jardín Comunitario de . ¡Cultivá tu propia comida!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden, sign up for your own plot!" -msgstr "" +msgstr "Jardín Comunitario de , ¡solicitá tu propia parcela!" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79808,14 +81770,14 @@ msgid "Analyze blood" msgstr "Analizar sangre" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Sr. Célula Madre" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "Tratamiento de Células Madre" +msgid "Bonesetting Treatment" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79926,7 +81888,7 @@ msgstr "¡Propiedad privada!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO Dumping!" -msgstr "" +msgstr "¡NO arrojar basura!" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79951,7 +81913,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Property for sale, call Realestate at 555-8255!" -msgstr "" +msgstr "¡Propiedad en venta, llame a Inmobiliaria al 555-8255!" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -79978,6 +81940,13 @@ msgstr "¡, , y estuvieron aquí!" msgid "it works." msgstr "funciona." +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -79996,7 +81965,7 @@ msgstr "Bloquear Puerta" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Get Apples n Ciders!" -msgstr "" +msgstr "¡Manzanas y Sidras!" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -80121,7 +82090,7 @@ msgstr "ACERO" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "'s Recycling" -msgstr "" +msgstr "Reciclado de " #. ~ Sign #: lang/json/mapgen_from_json.py @@ -80145,6 +82114,9 @@ msgid "" "eroded beyond usefullness. There are small holders for tourist maps " "attached." msgstr "" +"Esto fue alguna vez un mapa de información del área de , pero ya ha " +"sido gastado hasta perder toda utilidad. Hay algunos pequeños mapas de " +"turistas adjuntos." #. ~ Sign #: lang/json/mapgen_from_json.py @@ -80260,7 +82232,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLEASE No fish cleaning or dishwashing." -msgstr "" +msgstr "POR FAVOR Prohibido limpiar peces o lavar platos." #. ~ Sign #: lang/json/mapgen_from_json.py @@ -80385,7 +82357,7 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE070 \"Raptor\" Secure Storage" -msgstr "" +msgstr "PE070 \"Raptor\" Almacenamiento Seguro" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -80405,7 +82377,7 @@ msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "View Subway Routes" -msgstr "" +msgstr "Ver Rutas de Metro" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -80531,6 +82503,8 @@ msgid "" "Sport of the true gentleman, modern boxing has evolved from the prizefights " "of the Victorian era." msgstr "" +"El deporte del verdadero caballero. El boxeo moderno ha evolucionado desde " +"los combates profesionales de la era victoriana." #. ~ Description of buff for martial art 'Boxing' #: lang/json/martial_art_from_json.py @@ -80662,7 +82636,7 @@ msgstr "Krav Maga Afilado" #. ~ Description of buff 'Krav Maga Edged' for martial art 'Krav Maga' #: lang/json/martial_art_from_json.py msgid "Increased stabbing damage." -msgstr "" +msgstr "Aumenta el daño de apuñalamiento." #: lang/json/martial_art_from_json.py msgid "Muay Thai" @@ -80678,6 +82652,12 @@ msgid "" "elbow strikes rather than punches, it does not benefit from using any " "weapons." msgstr "" +"También conocido como el \"Arte de los 8 Miembros\", el Muay Thai es una " +"técnica de lucha popular de Tailandia que utiliza golpes poderosos. Tus " +"golpes son más potentes con una fuerza alta y débiles con una fuerza baja, y" +" pueden desorientar momentáneamente a los enemigos. Como este estilo se " +"enfoca en usar las piernas y los codos más que las manos, no se beneficia " +"por usar armas." #. ~ Description of buff for martial art 'Muay Thai' #: lang/json/martial_art_from_json.py @@ -80703,16 +82683,16 @@ msgstr "" #. ~ Description of buff for martial art 'Ninjutsu' #: lang/json/martial_art_from_json.py msgid "Silent melee attacks." -msgstr "" +msgstr "Ataques cuerpo a cuerpo silenciosos." #: lang/json/martial_art_from_json.py msgid "Momentum shift" -msgstr "" +msgstr "Cambio de momentum" #. ~ Description of buff 'Momentum shift' for martial art 'Ninjutsu' #: lang/json/martial_art_from_json.py msgid "Bonus dodges and increased to-hit" -msgstr "" +msgstr "Mayor evasión y mejor bonus de acierto" #: lang/json/martial_art_from_json.py msgid "Taekwondo" @@ -80730,7 +82710,7 @@ msgstr "" #. ~ Description of buff for martial art 'Taekwondo' #: lang/json/martial_art_from_json.py msgid "Strength decreases damage when blocking." -msgstr "" +msgstr "La fuerza disminuye el daño cuando bloqueás." #: lang/json/martial_art_from_json.py msgid "Bionic Combatives" @@ -80782,7 +82762,7 @@ msgstr "La inteligencia aumenta la habilidad de esquivar" #: lang/json/martial_art_from_json.py msgid "Counter Strike" -msgstr "" +msgstr "Contra Golpe" #. ~ Description of buff 'Counter Strike' for martial art 'Zui Quan' #: lang/json/martial_art_from_json.py @@ -80815,7 +82795,7 @@ msgstr "+1 esquivar" #: lang/json/martial_art_from_json.py msgid "Silat Counter" -msgstr "" +msgstr "Contra de Silat" #. ~ Description of buff 'Silat Counter' for martial art 'Silat' #: lang/json/martial_art_from_json.py @@ -80846,7 +82826,7 @@ 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 "" +msgstr "+2 en puñalada y +1 en precisión por uso" #: lang/json/martial_art_from_json.py msgid "Niten Ichi-Ryu" @@ -80889,7 +82869,7 @@ msgstr "" #. Ryu' #: lang/json/martial_art_from_json.py msgid "You found a gap in the enemy's defense!" -msgstr "" +msgstr "¡Encontraste un hueco en la defensa del enemigo!" #: lang/json/martial_art_from_json.py msgid "Eskrima" @@ -80919,7 +82899,7 @@ msgstr "Golpes de Eskrima" #. ~ Description of buff 'Eskrima Bashing' for martial art 'Eskrima' #: lang/json/martial_art_from_json.py msgid "Increased bashing damage." -msgstr "" +msgstr "Daño golpeante incrementado." #: lang/json/martial_art_from_json.py msgid "Crane Kung Fu" @@ -80984,7 +82964,7 @@ msgstr "Mayor daño a causa de la inteligencia." #: lang/json/martial_art_from_json.py msgid "Dragon's Flight" -msgstr "" +msgstr "Vuelo del Dragón" #. ~ Description of buff 'Dragon's Flight' for martial art 'Dragon Kung Fu' #: lang/json/martial_art_from_json.py @@ -81170,6 +83150,8 @@ msgid "" "One of the Five Deadly Venoms. Lizard Style focuses on using walls to your " "advantage." msgstr "" +"Uno de los Cinco Venenos Mortales. El estilo del Lagarto se focaliza en usar" +" las paredes para tu ventaja." #: lang/json/martial_art_from_json.py msgid "Viper Kung Fu" @@ -81239,6 +83221,36 @@ msgstr "" "+Inteligencia armadura contra electricidad, +Percepción armadura contra " "fuego." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Manejo de Espada Medieval" @@ -81629,11 +83641,11 @@ msgstr "" #: lang/json/material_from_json.py msgid "mashed" -msgstr "" +msgstr "machacado/a" #: lang/json/material_from_json.py msgid "mushed" -msgstr "" +msgstr "molido/a" #: lang/json/material_from_json.py msgid "Bronze" @@ -81824,6 +83836,12 @@ msgid "" "food supply. If you get a chance, you should see if they need your " "assistance in the future..." msgstr "" +"Gracias, el mundo es un lugar mejor sin ellos. Dos de nuestros mejores " +"hombres han aceptado la ayuda de la Vieja Guardia para establecer un puesto " +"mientras vos no estabas. No teníamos otras opciones, los refugiados todavía " +"están llegando y no sabemos qué otra cosa hacer con nuestra provisión " +"limitada de comida. Si tenés la oportunidad, deberías ir a ver si necesitan " +"tu ayuda..." #: lang/json/mission_def_from_json.py msgid "Retrieve Prospectus" @@ -81875,7 +83893,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Can't help you much, I've never even seen a plutonium battery." -msgstr "" +msgstr "No te puedo ayudar mucho, nunca vi una batería de plutonio." #: lang/json/mission_def_from_json.py msgid "How is the search going?" @@ -81926,7 +83944,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "What?! You're lying, I can tell! Ugh, forget it!" -msgstr "" +msgstr "¡¿Qué?! ¡Estás mintiendo, me doy cuenta! ¡Ah, olvidate!" #: lang/json/mission_def_from_json.py msgid "How am I not dead already?!" @@ -82026,7 +84044,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Damn, I maybe we can find an egg-head to crack the terminal." -msgstr "" +msgstr "Mierda, puede que encontremos algún nerd que hackee la terminal." #: lang/json/mission_def_from_json.py msgid "Find Deputy Badge" @@ -82046,7 +84064,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I'd check the police station." -msgstr "" +msgstr "Yo me fijaría en la comisaría." #: lang/json/mission_def_from_json.py msgid "" @@ -82124,6 +84142,10 @@ 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 "" +"Nuestro mando se cayó porque nuestros líderes fueron tan deshonestos como " +"los estafadores que financiaron sus elecciones. Solo conseguime uno de esos " +"libros de contabilidad corporativos y te voy a mostrar a vos y al resto del " +"mundo de quién fue la culpa." #: lang/json/mission_def_from_json.py msgid "You'll see, I know I'm right." @@ -82134,6 +84156,8 @@ msgid "" "I know it isn't pressing but the big corporations didn't get a chance to " "destroy the evidence yet." msgstr "" +"Ya sé que no es urgente pero las grandes corporaciones no tuvieron " +"oportunidad de destruir la evidencia." #: lang/json/mission_def_from_json.py msgid "" @@ -82185,7 +84209,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh dear, I thought Timmy would have made it..." -msgstr "" +msgstr "Oh dios, pensé que Timmy se había salvado..." #: lang/json/mission_def_from_json.py msgid "I bet some of them are still out there..." @@ -82210,7 +84234,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks so much, you may save both of us yet." -msgstr "" +msgstr "Muchas gracias, todavía puede que nos salves a nosotros dos." #: lang/json/mission_def_from_json.py msgid "Ya, it was a long shot I admit." @@ -82223,6 +84247,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "These look more complicated than I thought, just give me some time." msgstr "" +"Estos se ven más complicados de lo que pensé, dame un poco más de tiempo." #: lang/json/mission_def_from_json.py msgid "This isn't what we need." @@ -82299,6 +84324,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "This shouldn't be hard unless we run into a horde." msgstr "" +"Esto no debería ser muy difícil, salvo que nos encontremos con una horda." #: lang/json/mission_def_from_json.py msgid "" @@ -82350,12 +84376,15 @@ msgstr "Analizar Sangre de Zombi" #: lang/json/mission_def_from_json.py msgid "It could be very informative to perform an analysis of zombie blood..." msgstr "" +"Puede ser muy informativo realizar un análisis de la sangre de un zombi..." #: 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 "" +"Necesito que alguien consiga una muestra de sangre de zombi, la lleve al " +"hospital, y realice un análisis de centrifugado con ella." #: lang/json/mission_def_from_json.py msgid "" @@ -82368,6 +84397,8 @@ msgstr "" msgid "" "Are you sure? The scientific value of that blood data could be priceless..." msgstr "" +"¿Estás seguro? El valor científico de la información de esa sangre puede ser" +" invalorable..." #: lang/json/mission_def_from_json.py msgid "" @@ -82552,7 +84583,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Got this knocked out?" -msgstr "" +msgstr "¿Ya noqueaste a este?" #: lang/json/mission_def_from_json.py msgid "" @@ -82562,7 +84593,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I don't think that was quite a hundred dead zeds." -msgstr "" +msgstr "No me parece que eso eran cien zetas muertos." #: lang/json/mission_def_from_json.py msgid "Kill Horde Master" @@ -82590,7 +84621,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "What's the use of walking away, they'll track you down eventually." -msgstr "" +msgstr "De qué sirve escaparse, eventualmente te van a rastrear." #: lang/json/mission_def_from_json.py msgid "" @@ -82600,7 +84631,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "May that bastard never get up again." -msgstr "" +msgstr "Que este bastardo nunca se vuelva a levantar de nuevo." #: lang/json/mission_def_from_json.py msgid "I don't think we got it yet." @@ -82615,6 +84646,8 @@ msgid "" "The eater of the dead... something was ripping zombies to shreds and only " "leaving a few scattered limbs..." msgstr "" +"El comedor de muertos... algo está desgarrando a los zombis en pedazos y " +"solo deja algunas partes desparramadas..." #: lang/json/mission_def_from_json.py msgid "" @@ -82628,7 +84661,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks, make sure you're ready for whatever the beast is." -msgstr "" +msgstr "Gracias, preparate para lo que sea que es esa bestia." #: lang/json/mission_def_from_json.py msgid "Hey, I know I wouldn't volunteer for it either." @@ -82655,6 +84688,8 @@ msgid "" "I'm glad you came back alive... I wasn't sure if I had sent you to your " "death." msgstr "" +"Me alegra que hayas vuelto vivo... no estaba seguro si te había mandado a la" +" muerte." #: lang/json/mission_def_from_json.py msgid "Kill Zombie Mom" @@ -82686,11 +84721,11 @@ msgstr "Encuentra un arma si puedes, date prisa..." #: lang/json/mission_def_from_json.py msgid "Well...? Did you... finish things for my mom?" -msgstr "" +msgstr "¿Y...? ¿Ya pudiste... terminar lo de mi mamá?" #: lang/json/mission_def_from_json.py msgid "Thank you. I couldn't rest until I knew that was finished." -msgstr "" +msgstr "Gracias. No podía descansar hasta saber que se había terminado. " #: lang/json/mission_def_from_json.py msgid "Really... that's too bad." @@ -82734,7 +84769,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks, let me know when you need another tasking." -msgstr "" +msgstr "Gracias, haceme saber cuando necesites otra tarea." #: lang/json/mission_def_from_json.py msgid "Cull Nightmares" @@ -82752,6 +84787,8 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Good luck, finding a clear passage to the second level may be tricky." msgstr "" +"Buena suerte, encontrar un camino seguro para el segundo nivel puede ser " +"difícil." #: lang/json/mission_def_from_json.py msgid "These creatures can swing their appendages surprisingly far." @@ -82782,6 +84819,8 @@ msgid "" "Thanks, I know the labs on the other side of the complex have electronic " "parts sitting around." msgstr "" +"Gracias, sé que los laboratorios del otro lado del complejo tienen partes " +"electrónicas tiradas por ahí." #: lang/json/mission_def_from_json.py msgid "I'm sure the motorpool has a truck battery you could salvage." @@ -82789,7 +84828,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Have you had any luck fabricating it?" -msgstr "" +msgstr "¿Tuviste suerte fabricándolo?" #: lang/json/mission_def_from_json.py msgid "" @@ -82862,7 +84901,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I'll be standing by." -msgstr "" +msgstr "Voy a estar esperando." #: lang/json/mission_def_from_json.py msgid "" @@ -82895,6 +84934,8 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "The States will remain a wasteland unless good men choose to save it." msgstr "" +"Los Estados seguirán siendo tierra baldía hasta que los hombres buenos " +"decidan salvarlo." #: lang/json/mission_def_from_json.py msgid "They might suspect you are coming, keep an eye out for traps." @@ -82909,6 +84950,8 @@ msgid "" "The Old Guard thanks you for eliminating the criminals. You won't be " "forgotten." msgstr "" +"La Vieja Guardia te agradece por eliminar a los criminales. No serás " +"olvidado." #: lang/json/mission_def_from_json.py msgid "Deal with Informant" @@ -82929,7 +84972,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we could use a few good men." -msgstr "" +msgstr "Volvé cuando tengas la oportunidad, nos viene bien otro hombre útil." #: lang/json/mission_def_from_json.py msgid "If they draw first blood their friends are less likely to blame you..." @@ -82954,16 +84997,23 @@ 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 "" +"Hay otro monstruo causándole problemas a los comerciantes pero esta vez no " +"es humano... por lo menos no parece. Un tipo desapareció cuando estaba " +"caminando atrás de una caravana. No escucharon ningún disparo pero supongo " +"que algún pirata puede haber sido sigiloso. Revisá el área y avisanos de lo " +"que encuentres." #: lang/json/mission_def_from_json.py msgid "Thanks, keeping the people safe is what we try and do." -msgstr "" +msgstr "Gracias, mantener a la gente a salvo es lo que intentamos hacer." #: 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 "" +"¿Buscaste algún rastro en los arbustos? No soy un rastreador experto pero " +"deberías poder encontrar algo." #: lang/json/mission_def_from_json.py msgid "Great work, wasn't sure what I was sending you after." @@ -82982,6 +85032,13 @@ msgid "" "Marshals Service and by agreeing to the mission you will become a marshal, " "swearing to assist the federal government in regaining order." msgstr "" +"He encontrado un campamento de los Piratas del Infierno en la región que " +"parece estar coordinando operaciones contra los Mercaderes Libres. No " +"sabemos casi nada acerca de su estructura de comando en la 'banda' así que " +"necesito mandar a alguien para decapitar al líder. La incursión se va llevar" +" a cabo bajo las órdenes del Servicio de Jefes de Policía de EE.UU. y al " +"aceptar esta misión te vas a convertir en alguacil, jurando asistir al " +"gobierno federal a recuperar el órden." #: lang/json/mission_def_from_json.py msgid "" @@ -83006,7 +85063,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Has the leadership been dealt with?" -msgstr "" +msgstr "¿Te has encargado del líder?" #: lang/json/mission_def_from_json.py msgid "" @@ -83035,6 +85092,8 @@ msgid "" "This should let us start producing whiskey, rum, and brandy when we get " "access to the ingredients." msgstr "" +"Eso nos va a permitir empezar a producir whisky, ron y brandy cuando " +"tengamos acceso a los ingredientes." #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we need skilled survivors." @@ -83044,6 +85103,8 @@ msgstr "" msgid "" "I'm sure you could find the design for the stills in home brewing books." msgstr "" +"Estoy seguro de que puedes encontrar el diseño para los destiladores en los " +"libros de destilación casera." #: lang/json/mission_def_from_json.py msgid "Do you have the stills?" @@ -83064,6 +85125,10 @@ msgid "" "fresh yeast for us to use? I'd need about 20 teaspoons of dry yeast to get " "started." msgstr "" +"La última tanda que destilé salió horrible, estoy bastante seguro de que " +"algo contaminó la levadura que hemos usado. ¿Podrías localizar una fuente de" +" levadura fresca para que usemos? Necesito cerca de 20 cucharadas de " +"levadura seca para empezar." #: lang/json/mission_def_from_json.py msgid "Thank you for your assistance." @@ -83071,7 +85136,7 @@ msgstr "Gracias por su asistencia." #: lang/json/mission_def_from_json.py msgid "Yeast should be common in homes or bakeries." -msgstr "" +msgstr "La levadura debería ser común en las casas o en las panaderías." #: lang/json/mission_def_from_json.py msgid "Do you have the yeast?" @@ -83114,7 +85179,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Scrapping vehicles might be your best bet." -msgstr "" +msgstr "Desguazar vehículos puede ser la mejor posibilidad." #: lang/json/mission_def_from_json.py msgid "Do you have the metal tanks?" @@ -83154,15 +85219,23 @@ msgid "" "other half and construction. If you don't have a truck, I'd make finding " "one your first priority. " msgstr "" +"Nuestro primer proyecto es cerrar el granero para que los nuevos refugiados " +"tengan un lugar seguro para dormir. Antes de que podamos realizar mejoras " +"serias necesitamos madera. Cerrar las cuatro entradas del granero nos va a " +"llevar cerca de 400 tablas de madera... si pudieras conseguirnos la mitad de" +" eso podríamos encargarnos de la otra mitad y de la construcción. Si no " +"tenés un camión, te diría que consigas uno." #: lang/json/mission_def_from_json.py msgid "" "The more men we can bring to the camp the quicker improvements can be made." msgstr "" +"Cuantos más hombres podamos traer al campamento, más rápido podremos " +"realizar las mejoras." #: lang/json/mission_def_from_json.py msgid "Avoid destroying the furniture, we'll be needing it." -msgstr "" +msgstr "Evitá destruir los muebles, los vamos a necesitar." #: lang/json/mission_def_from_json.py msgid "Do you have them?" @@ -83195,6 +85268,8 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Homes, hospitals, labs, and doctor offices would be where I'd check." msgstr "" +"Casas, hospitales, laboratorios y oficinas de médicos son lugares en donde " +"yo buscaría." #: lang/json/mission_def_from_json.py msgid "Do you have the first aid kits?" @@ -83225,7 +85300,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "With two, we should be able to repair one if it breaks." -msgstr "" +msgstr "Con dos, vamos a poder reparar una si se rompe." #: lang/json/mission_def_from_json.py msgid "" @@ -83370,6 +85445,12 @@ 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 "" +"Solamente hojeando el libro puedo darme cuenta que uno de los ingredientes " +"en la mayoría de las bebidas alcohólicas y del cual no tenemos un gran " +"suministro, es el azúcar. El alcohol que podamos encontrar no nos va a durar" +" mucho, así que es una prioridad comenzar nuestra primera gran tanda. " +"¿Podrías traernos 80 unidades de azúcar? Eso nos va a durar hasta que " +"podamos empezar a producir nuestro propio suministro." #: lang/json/mission_def_from_json.py msgid "" @@ -83409,7 +85490,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the glass sheets?" -msgstr "" +msgstr "¿Ya conseguiste las láminas de cristal?" #: lang/json/mission_def_from_json.py msgid "" @@ -83570,7 +85651,7 @@ msgstr "¿Tienes una piedra?" #: lang/json/mission_def_from_json.py msgid "I appreciate the work you do." -msgstr "" +msgstr "Aprecio el trabajo que hacés. " #: lang/json/mission_def_from_json.py msgid "Gather 50 Pipes" @@ -83619,6 +85700,8 @@ msgid "" "Power for the motors will be provided by a salvaged truck battery, you need " "not bring additional mechanical components. " msgstr "" +"La energía para los motores será provista por una batería de camión " +"recuperada, no necesitás traer ningún componente mecánico adicional." #: lang/json/mission_def_from_json.py msgid "Do you have the motors?" @@ -83713,7 +85796,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few sitting around." -msgstr "" +msgstr "Los hospitales y las clínicas pueden tener algunas por ahí." #: lang/json/mission_def_from_json.py msgid "Do you have the empty syringes?" @@ -83732,7 +85815,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "It should be a fairly common item, don't know what else to say." -msgstr "" +msgstr "Debería ser un objeto bastante común, no sé qué otra cosa decirte." #: lang/json/mission_def_from_json.py msgid "Do you have the hotplates?" @@ -83791,6 +85874,10 @@ msgid "" "there any way you could go through one of the school chemistry labs and " "steal me a chemistry set?" msgstr "" +"Estuve trabajando en la producción de algunos suministros médicos propios, " +"pero voy a necesitar un equipo de química para poner todo lo que necesito en" +" orden. ¿Hay alguna forma de que puedas ir a los laboratorios de las " +"escuelas y me robes un equipo de química?" #: lang/json/mission_def_from_json.py msgid "" @@ -83831,10 +85918,14 @@ 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 "" +"Los fluidos corporales que a menudo tengo que limpiar y los químicos " +"cáusticos que uso han mermado mi cantidad de guantes. ¿Podrías conseguirme " +"cuatro pares de guantes de goma resistente? Eso debería ser suficiente para " +"asignarle tareas de higiene a algunos trabajadores en el caso de un brote." #: lang/json/mission_def_from_json.py msgid "You should be able to find them in cleaning closets." -msgstr "" +msgstr "Deberías poder encontrarlos en los armarios de limpieza." #: lang/json/mission_def_from_json.py msgid "Do you have the rubber gloves?" @@ -83968,7 +86059,7 @@ msgstr "Llegar a Casa de Granja" #: lang/json/mission_def_from_json.py msgid "I just need a place to start over..." -msgstr "" +msgstr "Solo quiero un lugar para empezar de nuevo..." #: lang/json/mission_def_from_json.py msgid "" @@ -83983,6 +86074,8 @@ msgid "" "Thank you, let's find a remote one so we don't have to worry about many " "zombies." msgstr "" +"Gracias, vamos a buscar una que esté alejada así no nos tenemos que " +"preocupar por muchos zombis." #: lang/json/mission_def_from_json.py msgid "Please, I just don't know what to do otherwise." @@ -84034,12 +86127,14 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Please, I don't know what else to do." -msgstr "" +msgstr "Por favor, no sé qué otra cosa hacer." #: 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 "" +"Deberíamos ir a la noche, si está infestado entonces podemos escaparnos " +"rápidamente." #: lang/json/mission_def_from_json.py msgid "Any leads on where a camp might be?" @@ -84072,6 +86167,8 @@ msgid "" "If the information is confidential the priest must have it hidden within his" " own home." msgstr "" +"Si la información es confidencial, el cura debe haberla ocultado dentro de " +"su propia casa." #: lang/json/mission_def_from_json.py msgid "Thank you, a diary is exactly what I was looking for." @@ -84096,6 +86193,8 @@ 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, si no aparece entonces cualquier otro pistolero servirá... pero dudo" +" de que se rinda antes de empezar." #: lang/json/mission_def_from_json.py msgid "" @@ -84206,6 +86305,7 @@ msgstr "" msgid "" "Thanks! This data looks damaged, but maybe I can make something out of it." msgstr "" +"¡Gracias! Esta información parece dañada, pero tal vez pueda recuperar algo." #: lang/json/mission_def_from_json.py msgid "Download Encryption Codes" @@ -84283,7 +86383,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "So glad for your help." -msgstr "" +msgstr "Te agradezco que nos ayudes." #: lang/json/mission_def_from_json.py msgid "" @@ -84297,6 +86397,8 @@ 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! Creo que puedo reconstruir qué cargamento fue trasladado entre " +"los laboratorios. Me pregunto qué estaba pasando ahí abajo." #: lang/json/monster_attack_from_json.py src/monattack.cpp #, c-format, no-python-format @@ -84327,7 +86429,7 @@ msgstr "" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s claws at you!" -msgstr "" +msgstr "¡El %1$s te clava sus garras!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -84367,7 +86469,7 @@ msgstr "" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s injects you with a syringe!" -msgstr "" +msgstr "¡El/a %1$s te clava una jeringa!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -84377,13 +86479,15 @@ msgstr "" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "" +msgstr "¡El/a %1$s intenta clavarte algo, pero no logra penetrar tu armadura!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "" "The %1$s tries to inject , but fails to penetrate their armor!" msgstr "" +"¡El/a %1$s intenta clavarle algo a , pero no logra penetrar su " +"armadura!" #: lang/json/morale_type_from_json.py #, no-python-format @@ -84394,6 +86498,10 @@ msgstr "Disfrutaste %s" msgid "Enjoyed a hot meal" msgstr "Disfrutaste una comida caliente" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Música" @@ -84604,6 +86712,10 @@ msgstr "Recién Afeitado" msgid "Barfed" msgstr "Vomitado" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "" @@ -84626,7 +86738,7 @@ msgstr "" #: lang/json/morale_type_from_json.py msgid "Debug Morale" -msgstr "" +msgstr "Moral Debug" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp @@ -84811,7 +86923,7 @@ msgstr "Chillas cuando te pega el tiro." #. ~ Mutation class: Rat iv_sound_message #: lang/json/mutation_category_from_json.py msgid "eep!" -msgstr "" +msgstr "¡iiiip!" #. ~ Mutation class: Rat Male memorial messsage #: lang/json/mutation_category_from_json.py @@ -85788,6 +87900,18 @@ msgstr "" "Aunque igual vas a sufrir las penalidades por el dolor, a la vez vas a " "sentir placer." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -85840,7 +87964,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Topographagnosia" -msgstr "" +msgstr "Topografagnosia" #. ~ Description for Topographagnosia #: lang/json/mutation_from_json.py @@ -85849,6 +87973,9 @@ msgid "" "orienting yourself in your surroundings, severely crippling your sight " "radius on the overmap." msgstr "" +"Una lesión cerebral focal te ha dejado incapaz de reconocer puntos de " +"referencia en el terreno y de orientarte, lo que incapacita severamente tu " +"radio de visión en el mapa." #: lang/json/mutation_from_json.py msgid "Cannibal" @@ -85939,10 +88066,8 @@ msgstr "Armas Cuerpo a cuerpo" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" -"Has practicado luchar con armas. Empiezas eligiendo una de estas prácticas: " -"Eskrima, Esgrima, Pencak Silat o Niten Ichi-Ryu." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -86042,7 +88167,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Poor Healer" -msgstr "" +msgstr "Poco Sanador/a" #. ~ Description for Poor Healer #: lang/json/mutation_from_json.py @@ -86053,7 +88178,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Imperceptive Healer" -msgstr "" +msgstr "Sanador/a Imperceptivo/a" #. ~ Description for Imperceptive Healer #: lang/json/mutation_from_json.py @@ -86301,7 +88426,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Sweet Tooth" -msgstr "" +msgstr "Goloso/a" #. ~ Description for Sweet Tooth #: lang/json/mutation_from_json.py @@ -86437,6 +88562,8 @@ msgid "" "Natural animals like dogs and wolves see you as prey, and are liable to " "attack you on sight." msgstr "" +"Los animales naturales como los perros y los lobos te ven como una presa, y " +"son más propensos a atacarte a simple vista." #: lang/json/mutation_from_json.py msgid "Slow Reader" @@ -86670,6 +88797,17 @@ msgstr "" "Tu cuerpo es extremadamente frágil. Tus máximos PV son un 75% menor que lo " "usual, y te curas mucho más lento. Es acumulativo con Mandíbula de Cristal." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Piel Dura" @@ -87006,6 +89144,8 @@ msgid "" "We have begun adapting local physiology to Mycus physical structure, greatly" " reducing wet effects." msgstr "" +"Nosotros hemos comenzado a adaptar la fisiología local hacia la estructura " +"física Mycis, reduciendo mucho los efectos de estar mojado." #: lang/json/mutation_from_json.py msgid "Mycus Fireproofing" @@ -87362,6 +89502,9 @@ msgid "" "resistance to cutting damage and minor protection from fire. Greatly " "reduces wet effects." msgstr "" +"Tu piel está revestida con una fina corteza, como la de un árbol. Esto te " +"brinda resistencia al daño cortante, y una protección menor al fuego. Reduce" +" mucho las penalidades por estar mojado." #: lang/json/mutation_from_json.py msgid "Thorns" @@ -87450,6 +89593,11 @@ msgid "" "guidance determines that it is safe to germinate. Rapid development taxes " "local nutrient reserves but ensures swift and effective growth." msgstr "" +"Organismos locales parecen considerar la dispersión de esporas como peligro," +" y atacan a los Mycus. En consecuencia, nuestros capullos locales se " +"mantienen inactivos hasta que una orden local determina que es seguro " +"germinar. El desarrollo rápido exprime las reservas locales de nutrientes, " +"pero asegura el crecimiento rápido y efectivo." #: lang/json/mutation_from_json.py msgid "Mycus Provenance" @@ -87973,6 +90121,10 @@ msgid "" "the close proximity of Mycus core towers, and in forested areas that the " "Mycus has grown into." msgstr "" +"Hemos simplificado nuestros requisitos nutricionales. Dependemos del Mycus " +"para el sustento, como él depende de nosotros. Podemos encontrar recursos de" +" sustento en la proximidad de las torres centrales del Mycus, y en areas " +"forestales en donde el Mycus ha crecido." #: lang/json/mutation_from_json.py msgid "Ruminant" @@ -88076,6 +90228,9 @@ msgid "" "useful tissue. Excess nutrition will convert to HP, rather than being " "wasted. Activate to skip prompt for overeating." msgstr "" +"Metabolizás nutrientes tan rápido que podés convertir directamente la comida" +" en tejido útil. El exceso de nutrientes se convertirá en PV, en lugar de " +"desperdiciarse. Activalo para omitir el aviso por comer en exceso." #: lang/json/mutation_from_json.py msgid "Horns" @@ -88093,7 +90248,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You headbutt %s with your horns" -msgstr "" +msgstr "Le das un cabezazo al %s con tus cuernos" #: lang/json/mutation_from_json.py #, no-python-format @@ -88123,7 +90278,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s headbutts %2$s with their curled horns" -msgstr "" +msgstr "%1$s le da un cabezazo al %2$s con sus cuernos enroscados" #: lang/json/mutation_from_json.py msgid "Pointed Horns" @@ -88692,6 +90847,8 @@ msgid "" "Your mandibles have developed extensible fangs, allowing you to bite quickly" " or ensure your venom goes home, as desired." msgstr "" +"Tus mandíbulas han desarrollado colmillos extensibles, lo que te permite " +"morder rápido o asegurar que tu veneno llegue a destino, cuando quieras." #: lang/json/mutation_from_json.py msgid "Canine Ears" @@ -88762,7 +90919,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Rodent Ears" -msgstr "" +msgstr "Orejas de Roedor" #. ~ Description for Rodent Ears #: lang/json/mutation_from_json.py @@ -89190,7 +91347,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Unassuming" -msgstr "" +msgstr "Insignificante" #. ~ Description for Unassuming #: lang/json/mutation_from_json.py @@ -89202,7 +91359,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Crafty" -msgstr "" +msgstr "Astuto" #. ~ Description for Crafty #: lang/json/mutation_from_json.py @@ -89639,6 +91796,9 @@ msgid "" "expanded cardiovascular and respiratory systems. On a plus side, it doesn't" " take you much time to recover from any strenuous activity." msgstr "" +"Necesitás más o menos el doble de comida que un humano promedio para " +"mantener tus sistemas respiratorio y cardiovascular. La ventaja es que no " +"tardás mucho tiempo en recuperarte de cualquier actividad extenuante." #: lang/json/mutation_from_json.py msgid "Extreme Metabolism" @@ -89902,7 +92062,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s jackhammer into %2$s with their beak" -msgstr "" +msgstr "%1$s taladra al %2$s con su pico" #: lang/json/mutation_from_json.py msgid "Hummingbird Beak" @@ -90145,7 +92305,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You lash %s with a vine" -msgstr "" +msgstr "Le pegás un latigazo al %s con una liana" #: lang/json/mutation_from_json.py #, no-python-format @@ -90167,7 +92327,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "You detach a vine from your body." -msgstr "" +msgstr "Te sacás una liana de tu cuerpo." #: lang/json/mutation_from_json.py msgid "Toe Roots" @@ -90367,6 +92527,8 @@ msgid "" "You've *finally* sprouted a pair of arms from your midsection. They flail " "more-or-less uncontrollably, making you feel rather larval." msgstr "" +"Te han salido, por fin, unos brazos desde el abdomen. Se agitan más o menos " +"descontroladamente, lo que te hace sentir bastante como una larva." #: lang/json/mutation_from_json.py msgid "Insect Arms" @@ -90810,7 +92972,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Amphibious" -msgstr "" +msgstr "Anfibio" #. ~ Description for Amphibious #: lang/json/mutation_from_json.py @@ -90835,7 +92997,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Aqueous Repose" -msgstr "" +msgstr "Descanso Acuoso" #. ~ Description for Aqueous Repose #: lang/json/mutation_from_json.py @@ -91059,7 +93221,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Autodoc Specialist" -msgstr "" +msgstr "Especialista en Autodoc" #. ~ Description for Autodoc Specialist #: lang/json/mutation_from_json.py @@ -91132,6 +93294,24 @@ msgstr "¡Pueden estar disponibles nuevas opciones de misiones!" msgid "Has Level 2 Construction Built" msgstr "Tiene Construcciones Nivel 2" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "Marca para los PNJ del comienzo del juego" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "PNJ estático" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "Visión Debug" @@ -91236,7 +93416,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Carrying Capacity" -msgstr "" +msgstr "Debug de Capacidad de Carga" #. ~ Description for Debug Carrying Capacity #: lang/json/mutation_from_json.py @@ -91251,6 +93431,8 @@ msgstr "Debug Intalación Biónicos" #: lang/json/mutation_from_json.py msgid "Lets you instantly install torsion ratchets for your eight legs." msgstr "" +"Te permite instalar instantáneamente engranajes de torsión en tus ocho " +"patas." #: lang/json/mutation_from_json.py msgid "Debug Bionic Power" @@ -91303,7 +93485,7 @@ msgstr "Rasgo de PNJ que hace imposible decir nada. Es un error si lo tiene." #. ~ Description for Survivor #: lang/json/mutation_from_json.py msgid "This NPC could tell you about how they survived the cataclysm" -msgstr "" +msgstr "Este PNJ podría contarte cómo sobrevivió al cataclismo" #: lang/json/mutation_from_json.py msgid "Agriculture Training" @@ -91594,7 +93776,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Medicine Expert" -msgstr "" +msgstr "Experto/a en Medicina" #. ~ Description for Medicine Expert #: lang/json/mutation_from_json.py @@ -91803,7 +93985,7 @@ msgstr "Ninja" #: lang/json/npc_class_from_json.py msgid "I'm a wandering master of martial arts." -msgstr "" +msgstr "Soy un maestro de artes marciales ambulante." #: lang/json/npc_class_from_json.py msgid "Cowboy" @@ -91811,7 +93993,7 @@ msgstr "Vaquero" #: lang/json/npc_class_from_json.py msgid "Just looking for some wrongs to right." -msgstr "" +msgstr "Solo ando buscando injusticias para ajusticiar." #: lang/json/npc_class_from_json.py msgid "Scientist" @@ -91843,7 +94025,7 @@ msgstr "Chatarrero" #: lang/json/npc_class_from_json.py msgid "I'm just trying to survive." -msgstr "" +msgstr "Solo estoy intentando sobrevivir." #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Arsonist" @@ -91877,10 +94059,14 @@ msgstr "Apis" msgid "I'm bugged - I shouldn't talk to you." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" -msgstr "" +msgstr "Cautivo" #: lang/json/npc_class_from_json.py msgid "I got captured by those jerks." @@ -91892,7 +94078,7 @@ msgstr "Refugiado" #: lang/json/npc_class_from_json.py msgid "I got locked up those yahoos." -msgstr "" +msgstr "Me encerraron esos idiotas." #: lang/json/npc_class_from_json.py msgid "I'm just trying to stay alive." @@ -91931,6 +94117,8 @@ 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 "" +"Estoy buscando mutágeno de pájaro... en este mundo ya no hay lugar para los " +"humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_class_from_json.py msgid "Fish Mutant" @@ -91941,6 +94129,8 @@ 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 "" +"Estoy buscando mutágeno de pez... en este mundo ya no hay lugar para los " +"humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_class_from_json.py msgid "Beast Mutant" @@ -91971,10 +94161,12 @@ 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 "" +"Estoy buscando mutágeno de felino... en este mundo ya no hay lugar para los " +"humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_class_from_json.py msgid "Lupine Mutant" -msgstr "" +msgstr "Lobuno Mutante" #: lang/json/npc_class_from_json.py msgid "" @@ -91991,6 +94183,8 @@ 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 "" +"Estoy buscando mutágeno de ganado... en este mundo ya no hay lugar para los " +"humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_class_from_json.py msgid "Insect Mutant" @@ -92016,7 +94210,7 @@ msgstr "" #: lang/json/npc_class_from_json.py msgid "Slime Mutant" -msgstr "" +msgstr "Slime Mutante" #: lang/json/npc_class_from_json.py msgid "" @@ -92103,6 +94297,8 @@ 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 "" +"Estoy buscando mutágeno de quimera... en este mundo ya no hay lugar para los" +" humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_class_from_json.py msgid "Raptor Mutant" @@ -92113,10 +94309,12 @@ 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 "" +"Estoy buscando mutágeno de raptor... en este mundo ya no hay lugar para los " +"humanos, y yo no quiero seguir siendo uno." #: lang/json/npc_from_json.py msgid "Tester" -msgstr "" +msgstr "Tester" #: lang/json/npc_from_json.py msgid "Representative" @@ -92132,7 +94330,7 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Broker" -msgstr "" +msgstr "Agente de bolsa" #: lang/json/npc_from_json.py msgid "Guard" @@ -92184,7 +94382,7 @@ msgstr "Barbero" #: lang/json/npc_from_json.py msgid "Merc" -msgstr "" +msgstr "Mercenario" #: lang/json/npc_from_json.py msgid "Makayla Sanchez" @@ -92192,16 +94390,40 @@ msgstr "Makayla Sanchez" #: lang/json/npc_from_json.py msgid "Bandit" -msgstr "" +msgstr "Bandido" #: lang/json/npc_from_json.py msgid "Psycho" msgstr "Psicópata" #: lang/json/npc_from_json.py -msgid "Raider" +msgid "beggar" msgstr "" +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Raider" +msgstr "Saqueador" + #: lang/json/overmap_terrain_from_json.py #: lang/json/overmap_terrain_from_json.py src/mapdata.cpp src/mapdata.cpp msgid "nothing" @@ -92551,7 +94773,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "central train depot" -msgstr "" +msgstr "terminal de tren central" #: lang/json/overmap_terrain_from_json.py msgid "access shaft" @@ -93016,7 +95238,7 @@ msgstr "oficina pequeña" #: lang/json/overmap_terrain_from_json.py msgid "small wooded trail" -msgstr "" +msgstr "pequeño camino de madera" #: lang/json/overmap_terrain_from_json.py msgid "derelict property" @@ -93036,11 +95258,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lumberyard" -msgstr "" +msgstr "maderera" #: lang/json/overmap_terrain_from_json.py msgid "construction site" -msgstr "" +msgstr "obra en construcción" #: lang/json/overmap_terrain_from_json.py msgid "post office" @@ -93093,7 +95315,7 @@ msgstr "cocina" #: lang/json/overmap_terrain_from_json.py msgid "hide site" -msgstr "" +msgstr "escondite" #: lang/json/overmap_terrain_from_json.py msgid "trench" @@ -93101,7 +95323,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "spiked trench" -msgstr "" +msgstr "trinchera con púas" #: lang/json/overmap_terrain_from_json.py msgid "blacksmith survey" @@ -93117,7 +95339,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dump" -msgstr "" +msgstr "vertedero" #: lang/json/overmap_terrain_from_json.py msgid "recycle center" @@ -93129,7 +95351,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "junkyard" -msgstr "" +msgstr "basurero" #: lang/json/overmap_terrain_from_json.py msgid "nature trail" @@ -93137,7 +95359,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public pond" -msgstr "" +msgstr "estanque público" #: lang/json/overmap_terrain_from_json.py msgid "cemetery" @@ -93149,15 +95371,15 @@ msgstr "Jardín comunitario" #: lang/json/overmap_terrain_from_json.py msgid "public garden" -msgstr "" +msgstr "jardín público" #: lang/json/overmap_terrain_from_json.py msgid "botanical garden" -msgstr "" +msgstr "jardín botánico" #: lang/json/overmap_terrain_from_json.py msgid "tree farm" -msgstr "" +msgstr "granja de árboles" #: lang/json/overmap_terrain_from_json.py msgid "dirt road" @@ -93178,7 +95400,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/start_location_from_json.py msgid "campground" -msgstr "" +msgstr "camping" #: lang/json/overmap_terrain_from_json.py msgid "desolate barn" @@ -93222,7 +95444,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "veterans of foreign wars" -msgstr "" +msgstr "veteranos de guerras extranjeras" #: lang/json/overmap_terrain_from_json.py msgid "thrift store" @@ -93230,7 +95452,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "daycare center" -msgstr "" +msgstr "guardería" #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" @@ -93318,7 +95540,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "music venue" -msgstr "" +msgstr "sala de conciertos" #: lang/json/overmap_terrain_from_json.py msgid "gambling hall" @@ -93342,7 +95564,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mass grave" -msgstr "" +msgstr "fosa común" #: lang/json/overmap_terrain_from_json.py msgid "railroad" @@ -93350,7 +95572,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad bridge" -msgstr "" +msgstr "puente ferroviario" #: lang/json/overmap_terrain_from_json.py msgid "railroad level crossing" @@ -93373,8 +95595,36 @@ msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "ventanilla de autoservicio abandonada" +msgid "veterinarian clinic" +msgstr "clínica veterinaria" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "museo" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "morgue" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "lavandería" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "joyería" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "motel de 2 pisos" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "edificio grande de oficinas" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "tienda de mejoras del hogar" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -93400,6 +95650,10 @@ msgstr "bolera" msgid "boxing gym" msgstr "gimnasio" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "gimnasio fitness" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "dojo" @@ -93413,37 +95667,13 @@ msgid "gardening supply" msgstr "tienda de jardinería" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "gimnasio fitness" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "tienda de mejoras del hogar" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "joyería" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "lavandería" +msgid "abandoned drive-through" +msgstr "ventanilla de autoservicio abandonada" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "sin nombre" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "morgue" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "museo" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "clínica veterinaria" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "Pizzería en bancarrota" @@ -93458,7 +95688,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "municipal reactor" -msgstr "" +msgstr "reactor municipal" #: lang/json/overmap_terrain_from_json.py msgid "warehouse" @@ -93470,7 +95700,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "reactor control" -msgstr "" +msgstr "control de reactor" #: lang/json/overmap_terrain_from_json.py msgid "reactor room" @@ -93510,7 +95740,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "light industry" -msgstr "" +msgstr "industria ligera" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -93578,7 +95808,7 @@ msgstr "barracas" #: lang/json/overmap_terrain_from_json.py msgid "fuel point" -msgstr "" +msgstr "punto de combustibles" #: lang/json/overmap_terrain_from_json.py msgid "company ops facility" @@ -93594,7 +95824,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "adv. warfare center" -msgstr "" +msgstr "centro de armamento avanzado" #: lang/json/overmap_terrain_from_json.py msgid "range" @@ -93610,7 +95840,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "battalion HQ" -msgstr "" +msgstr "cuartel general de compañía" #: lang/json/overmap_terrain_from_json.py msgid "flag pole" @@ -93663,7 +95893,7 @@ msgstr "laboratorio de cohetes" #: lang/json/overmap_terrain_from_json.py msgid "robot dispatch center" -msgstr "" +msgstr "centro de despacho de robots" #: lang/json/overmap_terrain_from_json.py msgid "dense urban" @@ -93681,14 +95911,6 @@ msgstr "escuela" msgid "projects" msgstr "proyectos" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "motel de 2 pisos" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "edificio grande de oficinas" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "" @@ -93715,7 +95937,7 @@ msgstr "monumento a la guerra" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - barn" -msgstr "" +msgstr "cabaña en ruinas - granero" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - car corner" @@ -93739,11 +95961,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "open sewer" -msgstr "" +msgstr "cloaca abierta" #: lang/json/overmap_terrain_from_json.py msgid "private park" -msgstr "" +msgstr "parque privado" #: lang/json/overmap_terrain_from_json.py msgid "small dump" @@ -93755,7 +95977,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "sex shop" -msgstr "" +msgstr "sex shop" #: lang/json/overmap_terrain_from_json.py msgid "internet cafe" @@ -93783,7 +96005,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public art piece" -msgstr "" +msgstr "pieza de arte público" #: lang/json/overmap_terrain_from_json.py msgid "public space" @@ -93803,6 +96025,34 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "regional dump" +msgstr "vertedero regional" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." msgstr "" #: lang/json/professions_from_json.py @@ -96411,6 +98661,8 @@ msgid "" "You thought this would be your lucky break. Does it count as breaking and " "entering if everyone in town is undead?" msgstr "" +"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" +" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -96424,6 +98676,8 @@ msgid "" "You thought this would be your lucky break. Does it count as breaking and " "entering if everyone in town is undead?" msgstr "" +"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" +" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -98105,6 +100359,10 @@ 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 "" +"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " +"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " +"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " +"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -98120,11 +100378,15 @@ 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 "" +"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " +"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " +"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " +"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Game Master" -msgstr "" +msgstr "Game Master Biónico" #. ~ Profession (male Bionic Game Master) description #: lang/json/professions_from_json.py @@ -98140,7 +100402,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Game Master" -msgstr "" +msgstr "Game Master Biónico" #. ~ Profession (female Bionic Game Master) description #: lang/json/professions_from_json.py @@ -98191,6 +100453,8 @@ msgid "" "You decided to get away from the family for the day to do a little golfing " "by yourself." msgstr "" +"Decidiste alejarte de la familia por un día, para irte solo a jugar al golf " +"un rato." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -98204,6 +100468,8 @@ msgid "" "You decided to get away from the family for the day to do a little golfing " "by yourself." msgstr "" +"Decidiste alejarte de la familia por un día, para irte solo a jugar al golf " +"un rato." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -98236,7 +100502,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rookie" -msgstr "" +msgstr "Principiante" #. ~ Profession (male Rookie) description #: lang/json/professions_from_json.py @@ -98245,11 +100511,14 @@ 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 "" +"Ya han pasado meses desde el Cataclismo y de alguna manera todavía estás más" +" verde que un árbol. Tal vez seas un poco lento para aprender, pero quién " +"sabe." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rookie" -msgstr "" +msgstr "Principiante" #. ~ Profession (female Rookie) description #: lang/json/professions_from_json.py @@ -98258,11 +100527,14 @@ 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 "" +"Ya han pasado meses desde el Cataclismo y de alguna manera todavía estás más" +" verde que un árbol. Tal vez seas un poco lento para aprender, pero quién " +"sabe." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Novice" -msgstr "" +msgstr "Novato" #. ~ Profession (male Novice) description #: lang/json/professions_from_json.py @@ -98273,7 +100545,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Novice" -msgstr "" +msgstr "Novato" #. ~ Profession (female Novice) description #: lang/json/professions_from_json.py @@ -98834,7 +101106,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robo-Hacker" -msgstr "" +msgstr "Robo-Hacker" #. ~ Profession (male Robo-Hacker) description #: lang/json/professions_from_json.py @@ -98843,11 +101115,14 @@ msgid "" "Before the end, your hobby was illegally reprogramming and repurposing " "commercial robots, but you never thought your survival might depend on it." msgstr "" +"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " +"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " +"de eso." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robo-Hacker" -msgstr "" +msgstr "Robo-Hacker" #. ~ Profession (female Robo-Hacker) description #: lang/json/professions_from_json.py @@ -98856,6 +101131,115 @@ msgid "" "Before the end, your hobby was illegally reprogramming and repurposing " "commercial robots, but you never thought your survival might depend on it." msgstr "" +"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " +"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " +"de eso." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -99300,7 +101684,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Awakened" -msgstr "" +msgstr "Despertada" #. ~ Profession (male Awakened) description #: lang/json/professions_from_json.py @@ -99309,11 +101693,13 @@ 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 "" +"Te despertó un ruido en mitad de la noche. Armado solamente con una " +"linterna, fuiste a investigar, y ahora te enfrentás al cataclismo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Awakened" -msgstr "" +msgstr "Despertada" #. ~ Profession (female Awakened) description #: lang/json/professions_from_json.py @@ -99322,6 +101708,8 @@ 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 "" +"Te despertó un ruido en mitad de la noche. Armado solamente con una " +"linterna, fuiste a investigar, y ahora te enfrentás al cataclismo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -99336,6 +101724,9 @@ msgid "" "gave you an edge on escaping the start of the cataclysm. Can you keep on " "running from it forever?" msgstr "" +"Tu entrenamiento y tus mejoras para la competición de ciclismo de las Ciber-" +"Olimpiadas te dieron una ventaja para escapar al comienzo del cataclismo. " +"¿Vas a poder seguir corriendo para siempre?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -99350,11 +101741,14 @@ msgid "" "gave you an edge on escaping the start of the cataclysm. Can you keep on " "running from it forever?" msgstr "" +"Tu entrenamiento y tus mejoras para la competición de ciclismo de las Ciber-" +"Olimpiadas te dieron una ventaja para escapar al comienzo del cataclismo. " +"¿Vas a poder seguir corriendo para siempre?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Welder" -msgstr "" +msgstr "Soldador" #. ~ Profession (male Welder) description #: lang/json/professions_from_json.py @@ -99368,7 +101762,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Welder" -msgstr "" +msgstr "Soldador" #. ~ Profession (female Welder) description #: lang/json/professions_from_json.py @@ -99657,6 +102051,8 @@ msgid "" "To make this outpost functional we are going to need storage containers to " "organize our supplies." msgstr "" +"Para hacer este puesto funcional vamos a necesitar contenedores de " +"almacenamiento para organizar nuestros provisiones." #: lang/json/recipe_from_json.py msgid "" @@ -99669,12 +102065,16 @@ msgid "" "Additional housing and storage will allow our camp to expand into " "specialized industries." msgstr "" +"Casas y almacenamiento adicionales permitirán que nuestro campamento se " +"expanda hacia industrias especializadas." #: lang/json/recipe_from_json.py msgid "" "Constructing a hard command post will transform our little camp into a true " "base." msgstr "" +"Construir un puesto de comando transformará nuestro pequeño campamento en " +"una verdadera base." #: lang/json/recipe_from_json.py msgid "" @@ -99711,10 +102111,12 @@ msgid "" "Building a strong wall will keep the base secure even if a small horde " "attacks." msgstr "" +"Construir una pared fuerte mantendrá nuestra base segura aunque nos ataque " +"una pequeña horda." #: lang/json/recipe_from_json.py msgid "We need to finish our half built fortifications." -msgstr "" +msgstr "Necesitamos terminar nuestras fortificaciones a medio hacer." #: lang/json/recipe_from_json.py msgid "We're running out of room and need another living quarters." @@ -99734,7 +102136,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "Survey land for a farm shop." -msgstr "" +msgstr "Inspeccionar el terreno para poner un negocio de productos de granja." #: lang/json/recipe_from_json.py msgid "Plowing a few plots should get us started." @@ -99743,12 +102145,16 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "We could use a farming shed to store resources where we'll be working." msgstr "" +"Podríamos necesitar una caseta para la granja, para guardar las cosas con " +"las que trabajamos." #: lang/json/recipe_from_json.py msgid "" "Our farm could be expanded by finishing the shed and adding additional " "plots." msgstr "" +"Nuestra granja podría expandirse su terminamos la caseta y agregamos algún " +"área más." #: lang/json/recipe_from_json.py msgid "" @@ -99766,7 +102172,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "We should start construction of a roof for the garage." -msgstr "" +msgstr "Deberíamos comenzar la construcción de un techo para el garage." #: lang/json/recipe_from_json.py msgid "Finishing out the roof will let our mechanics work rain or shine." @@ -99807,6 +102213,8 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "A pantry will allow our cooks to store more non-perishables." msgstr "" +"Una despensa les permitirá a nuestros cocineros guardar más alimentos no " +"perecederos." #: lang/json/recipe_from_json.py msgid "" @@ -99816,6 +102224,8 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "A well is needed so our cooks don't have to haul in water." msgstr "" +"Se necesita un pozo para que nuestros cocineros no tengan que transportar " +"agua." #: lang/json/recipe_from_json.py msgid "" @@ -99828,6 +102238,7 @@ msgid "" "Finally, expanding the pantry further will let us store additional " "materials." msgstr "" +"Finalmente, expandir más la despensa nos permitirá almacenar más materiales." #: lang/json/recipe_from_json.py msgid "" @@ -99840,10 +102251,12 @@ msgid "" "A deep trench filled with spikes, requires a trench. Requirements are for " "1/2 an over map tile." msgstr "" +"Una trinchera profunda llena con púas, necesita una trinchera. Los " +"requisitos son para 1/2 espacio del mapa." #: lang/json/recipe_from_json.py msgid "Survey land for a blacksmith shop." -msgstr "" +msgstr "Inspeccionar el terreno para poner una herrería." #: lang/json/recipe_from_json.py msgid "Building a forge and kiln is our first task." @@ -99861,6 +102274,8 @@ msgstr "" msgid "" "If we're going to do more than simple metal casting we need a bigger shop." msgstr "" +"Si vamos a hacer algo más que simples moldes de metal, necesitamos una " +"herrería más grande." #: lang/json/recipe_from_json.py msgid "We need some basic tools to make more advanced crafts." @@ -99870,11 +102285,12 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "An expanded forge will allow us to work on bigger projects." -msgstr "" +msgstr "Una forja expandida nos permitirá trabajar en proyectos más grandes." #: lang/json/recipe_from_json.py msgid "Proper steel work requires a bellows and quenching setup." msgstr "" +"El trabajo apropiado del acero necesita un fuelle y un equipo de templado." #: lang/json/recipe_from_json.py msgid "A separate workshop will allow us to do the most basic of machining." @@ -99924,7 +102340,7 @@ msgstr "Cocinar: Pescado, Cocinado" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy, Cooked" -msgstr "" +msgstr "Cocinar: Verduras, Cocidas" #: lang/json/recipe_group_from_json.py msgid " Cook: Offal, Cooked" @@ -99988,7 +102404,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy Pie" -msgstr "" +msgstr "Cocinar: Tarta de Verduras" #: lang/json/recipe_group_from_json.py msgid " Cook: Fish, Smoked" @@ -100000,7 +102416,7 @@ msgstr "Cocinar: Azúcar" #: lang/json/recipe_group_from_json.py msgid " Cook: Mushroom, Dried" -msgstr "" +msgstr "Cocinar: Champiñones, Secos" #: lang/json/recipe_group_from_json.py msgid " Cook: Fruit, Dehydrated" @@ -100032,7 +102448,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy Aspic" -msgstr "" +msgstr "Cocinar: Gelatina de Verdura" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat, Canned" @@ -100052,7 +102468,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Dandelion Seeds" -msgstr "" +msgstr "Fabricar: Semillas de DIente de León" #: lang/json/recipe_group_from_json.py msgid " Craft: Potato, Starter" @@ -100084,7 +102500,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Crude" -msgstr "" +msgstr "Fabricar: Espada, Simple" #: lang/json/recipe_group_from_json.py msgid " Craft: Pot, Copper" @@ -100100,7 +102516,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Crossbow Bolt, Steel" -msgstr "" +msgstr "Fabricar: Perno de Ballesta, Acero" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Scrap Suit" @@ -100112,7 +102528,7 @@ msgstr "Fabricar: Hacha, Cobre" #: lang/json/recipe_group_from_json.py msgid " Craft: Spear, Copper" -msgstr "" +msgstr "Fabricar: Lanza, Cobre" #: lang/json/recipe_group_from_json.py msgid " Craft: Metalworking Chisel" @@ -100156,7 +102572,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal" -msgstr "" +msgstr "Fabricar: Lámina de Metal" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain" @@ -100200,7 +102616,7 @@ msgstr "Fabricar: Destornillador" #: lang/json/recipe_group_from_json.py msgid " Craft: Axe, Throwing" -msgstr "" +msgstr "Fabricar: Hacha, Arrojadiza" #: lang/json/recipe_group_from_json.py msgid " Craft: Wrench" @@ -100212,7 +102628,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Knife, Throwing" -msgstr "" +msgstr "Fabricar: Cuchillo, Arrojadizo" #: lang/json/recipe_group_from_json.py msgid " Craft: Crowbar" @@ -100252,11 +102668,11 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Plate" -msgstr "" +msgstr "Fabricar: Armadura de Placas" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Broadsword" -msgstr "" +msgstr "Fabricar: Espada, Ancha" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Scimitar" @@ -100264,7 +102680,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Axe, Fire" -msgstr "" +msgstr "Fabricar: Hacha de Bombero" #: lang/json/recipe_group_from_json.py msgid " Craft: Hacksaw" @@ -100377,6 +102793,8 @@ 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 "" +"Pudiste llegar a uno de los centros de refugiados, pero no te dejaron unirte" +" a ellos. Parece que estás sola..." #. ~ Description for scenario 'Refugee' for a female character. #: lang/json/scenario_from_json.py @@ -100385,6 +102803,8 @@ 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 "" +"Pudiste llegar a uno de los centros de refugiados, pero no te dejaron unirte" +" a ellos. Parece que estás sola..." #. ~ Starting location for scenario 'Refugee'. #: lang/json/scenario_from_json.py @@ -101117,6 +103537,8 @@ msgid "" "You were mining along when you found... something. You're not sure what, " "but it sure is dark down here." msgstr "" +"Estabas trabajando en la mina cuando encontraste... algo. No estás segura de" +" qué, pero sí que está muy oscuro acá abajo." #. ~ Description for scenario 'Bottom of a Mine' for a female character. #: lang/json/scenario_from_json.py @@ -101125,6 +103547,8 @@ msgid "" "You were mining along when you found... something. You're not sure what, " "but it sure is dark down here." msgstr "" +"Estabas trabajando en la mina cuando encontraste... algo. No estás segura de" +" qué, pero sí que está muy oscuro acá abajo." #. ~ Starting location for scenario 'Bottom of a Mine'. #: lang/json/scenario_from_json.py @@ -101267,6 +103691,8 @@ 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 "" +"Era un día tranquilo en el zoológico, hasta que escuchaste los gritos de " +"unas personas afuera. Parece que los animales se están inquietando." #. ~ Description for scenario 'At the Zoo' for a female character. #: lang/json/scenario_from_json.py @@ -101275,6 +103701,8 @@ 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 "" +"Era un día tranquilo en el zoológico, hasta que escuchaste los gritos de " +"unas personas afuera. Parece que los animales se están inquietando." #. ~ Starting location for scenario 'At the Zoo'. #: lang/json/scenario_from_json.py @@ -101286,31 +103714,31 @@ msgstr "Comienzo en el Zoo" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Out Golfing" -msgstr "" +msgstr "A Jugar al Golf" #. ~ Name for scenario 'Out Golfing' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Out Golfing" -msgstr "" +msgstr "A Jugar al Golf" #. ~ 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 "" +msgstr "Decidiste pasar tu día libre haciendo algo que te encanta, ¡el golf!" #. ~ 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 "" +msgstr "Decidiste pasar tu día libre haciendo algo que te encanta, ¡el golf!" #. ~ Starting location for scenario 'Out Golfing'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Out Golfing" -msgstr "" +msgstr "A Jugar al Golf" #. ~ Name for scenario 'Camping' for a male character #: lang/json/scenario_from_json.py @@ -101402,6 +103830,9 @@ msgid "" "robots would protect you, but they may prove more dangerous than the " "zombies." msgstr "" +"Durante los disturbios y el caos, te escondiste en un centro de despacho de " +"robots esperando que los robots te protegieran, pero parece que son más " +"peligrosos que los zombis." #. ~ Description for scenario 'Robots' for a female character. #: lang/json/scenario_from_json.py @@ -101411,6 +103842,9 @@ msgid "" "robots would protect you, but they may prove more dangerous than the " "zombies." msgstr "" +"Durante los disturbios y el caos, te escondiste en un centro de despacho de " +"robots esperando que los robots te protegieran, pero parece que son más " +"peligrosos que los zombis." #. ~ Name for scenario 'Bunker Evacuee' for a male character #: lang/json/scenario_from_json.py @@ -101787,6 +104221,9 @@ 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 "" +"Es tu habilidad para usar arcos, desde los hechos a mano hasta los complejos" +" arcos compuestos. Silenciosos y efectivos, necesitan fuerza para usarse, y " +"no son terriblemente imprecisos a grandes distancias." #: lang/json/skill_from_json.py msgid "bashing weapons" @@ -101989,9 +104426,11 @@ msgstr "arma" #: lang/json/snippet_from_json.py msgid "Fires can spread easily, especially with abundance of fuel." msgstr "" +"Los fuegos se pueden propagar fácilmente, sobre todo cuando hay abundancia " +"de combustible." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" #: lang/json/snippet_from_json.py @@ -102000,11 +104439,12 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Moose may not be your friend." -msgstr "" +msgstr "El alce no puede ser tu amigo." #: lang/json/snippet_from_json.py msgid "Turnout gear protects from fire but not from overheating." msgstr "" +"Resulta que el equipo te protege del fuego pero no del sobrecalentamiento." #: lang/json/snippet_from_json.py msgid "Peek around corners. You may see your enemy before it sees you." @@ -102015,22 +104455,22 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" +"Los lugares subterráneos cono los sótanos o las cuevas están frescos todo el" +" año." #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" @@ -102039,7 +104479,7 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "" #: lang/json/snippet_from_json.py @@ -102048,24 +104488,23 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You don't have to sit next to fire to use it." -msgstr "" +msgstr "No necesitás sentarte al lado del fuego para usarlo." #: lang/json/snippet_from_json.py msgid "Many items have special actions. Try to find out what they do." msgstr "" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" #: lang/json/snippet_from_json.py @@ -102077,6 +104516,8 @@ msgid "" "Balance armor versus encumbrance. Even dropping a backpack can help in " "melee." msgstr "" +"Buscá un balance entre armadura e incomodidad. Dejar la mochila puede ayudar" +" cuando peleas cuerpo a cuerpo." #: lang/json/snippet_from_json.py msgid "" @@ -102093,15 +104534,19 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Not much survives a car at 120mph. Can you?" msgstr "" +"No hay muchas cosas que sobrevivan a un auto yendo a 190 km/h. ¿Vos podés?" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" +"Por lo general, la comida podrida atrae a los insectos, y los insectos se " +"han puesto grandes últimamente..." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" #: lang/json/snippet_from_json.py @@ -102111,9 +104556,10 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" +"Las heridas sanan con el tiempo. Las vendas y el desinfectante aceleran el " +"proceso." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -102135,15 +104581,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" +msgid "Why walk when you can use a car? Or a tank?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" #: lang/json/snippet_from_json.py @@ -102161,6 +104607,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Having a backup weapon is wise. So is having a backup plan." msgstr "" +"Es sabio tener un arma secundaria. Como también lo es tener un plan " +"secundario." #: lang/json/snippet_from_json.py msgid "" @@ -102174,7 +104622,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Like to gamble? Use mutagen! Be a winner today!" -msgstr "" +msgstr "¿Te gusta apostar? ¡Usá mutágeno! ¡Conviertete en ganador hoy mismo!" #: lang/json/snippet_from_json.py msgid "Smoking and napping is asking for more than a hole in your shirt." @@ -102196,7 +104644,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" @@ -102228,16 +104676,17 @@ msgid "" "Out of resources? Breaking or disassembling stuff can yield interesting " "components." msgstr "" +"¿Te quedaste sin materiales? Romper o desarmar cosas te puede dar algunas " +"cosas interesantes." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." msgstr "" +"La comida congelada no se pudre, pero no se puede comer si no se descongela." #: lang/json/snippet_from_json.py msgid "" @@ -102247,7 +104696,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Thirsty on a long winter journey? Take a thermos with you." -msgstr "" +msgstr "¿Sediento en un largo viaje de invierno? Llevate un termo." #: lang/json/snippet_from_json.py msgid "" @@ -102256,7 +104705,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -102273,9 +104722,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -102289,19 +104736,82 @@ msgid "" "Trying out different characters, professions, and scenarios can spice up " "your game. Roleplay!" msgstr "" +"Prueba con diferentes personajes, profesiones y escenarios para condimentar " +"el juego. ¡Juego de rol!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "Algunos cadáveres pueden tener biónicos si los diseccionás." + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "No seas codicioso. Los objetos no sirven de nada si estás muerto." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -103316,7 +105826,7 @@ msgstr "popular " #: lang/json/snippet_from_json.py msgid "top-forty " -msgstr "" +msgstr "cuarenta principales " #: lang/json/snippet_from_json.py msgid "coorporate " @@ -103388,11 +105898,11 @@ msgstr "Británico " #: lang/json/snippet_from_json.py msgid "Continental " -msgstr "" +msgstr "continental " #: lang/json/snippet_from_json.py msgid "tropical " -msgstr "" +msgstr "tropical " #: lang/json/snippet_from_json.py msgid "island " @@ -103452,7 +105962,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "contextual " -msgstr "" +msgstr "contextual " #: lang/json/snippet_from_json.py msgid "conceptual " @@ -103464,7 +105974,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "rhythmic " -msgstr "" +msgstr "rítmica " #: lang/json/snippet_from_json.py msgid "neo" @@ -103504,7 +106014,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "lo-fi " -msgstr "" +msgstr "lo-fi " #: lang/json/snippet_from_json.py msgid "mid-fi " @@ -103512,7 +106022,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "ambient " -msgstr "" +msgstr "ambiente " #: lang/json/snippet_from_json.py msgid "dance " @@ -103584,7 +106094,7 @@ msgstr "mundial " #: lang/json/snippet_from_json.py msgid "Euro" -msgstr "" +msgstr "Euro" #: lang/json/snippet_from_json.py msgid "Afro" @@ -103632,11 +106142,11 @@ msgstr "meta" #: lang/json/snippet_from_json.py msgid "techno" -msgstr "" +msgstr "techno" #: lang/json/snippet_from_json.py msgid "synth" -msgstr "" +msgstr "synth" #: lang/json/snippet_from_json.py msgid "robo" @@ -103668,7 +106178,7 @@ msgstr "libre " #: lang/json/snippet_from_json.py msgid "garage " -msgstr "" +msgstr "garage " #: lang/json/snippet_from_json.py msgid "garbage " @@ -103716,11 +106226,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "-tune" -msgstr "" +msgstr "-tune" #: lang/json/snippet_from_json.py msgid "-core" -msgstr "" +msgstr "-core" #: lang/json/snippet_from_json.py msgid "-wave" @@ -103744,7 +106254,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "-drums" -msgstr "" +msgstr "-drums" #: lang/json/snippet_from_json.py msgid "-style" @@ -104076,6 +106586,13 @@ msgid "" "something less resembling medicine. The caption reads: \"Why use old IV " "when you can have Intravenous Needle CBM!\"" msgstr "" +"Estas es una publicidad de la Ciber Boutique de Sybil. Tiene una imagen con " +"varias enfermeras en bikini dándole una medicina líquida a un paciente que " +"lo disfruta mientras utiliza sus agujas en los dedos para insertarla en sus " +"venas. Afuera, en una ventana, dos sombras utilizan las mismas agujas en sus" +" dedos para absorver algo que no parece tanto una medicina. El texto dice: " +"\"¡Para qué usar las antiguas intravenosas cuando podés tener el MCB de " +"Aguja Intravenosa!\"" #: lang/json/snippet_from_json.py msgid "" @@ -104595,6 +107112,13 @@ 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 es un folleto viejo de una película de los años 30. Un hombre bronceado" +" con el pelo negro engominado y con los músculos marcados en su traje " +"blancuzco, está abrazando con una mano a una mujer que tiene un vestido de " +"cuero negro. Con las piernas extendidas, ella sostiene una pistola en una " +"mano y mira directamente hacia afuera del cartel. El folleto dice \"Sea " +"testigo del renacimiento del Nuevo Noir con 'Jersey Shore Blues'. " +"¡Protagonizado por Jenifer Languiz como 'Snookie'!\"" #: lang/json/snippet_from_json.py msgid "" @@ -106163,6 +108687,9 @@ 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 "" +"\"Encontré un poco de comida en una caja fuera de mi casa. Nos comimos todo " +"y ahora los fungaloides no nos quieren lastimar. Creo que somos un hongo " +"ahora\"" #: lang/json/snippet_from_json.py msgid "" @@ -106203,6 +108730,8 @@ msgid "" "\"Husband 30 yrs died in bombs. Mushrooms brought him back. GIVE YOURSELF " "TO THEm AND THEY WILL HELP YOU\"" msgstr "" +"\"Esposo 30 años murió en bombardeo. Hongos lo revivieron. ENTREGATE A ELLOs" +" Y ELLOS TE AYUDARÁN\"" #: lang/json/snippet_from_json.py msgid "" @@ -106981,7 +109510,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Maybe a fire could calm your nerves?" -msgstr "" +msgstr "¿Tal vez un fuego pueda calmar tus nervios?" #: lang/json/snippet_from_json.py msgid "You need to ignite something." @@ -107019,7 +109548,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Leave No Trace." -msgstr "" +msgstr "No Dejar Rastro." #: lang/json/snippet_from_json.py msgid "Plan Ahead and Prepare." @@ -107043,15 +109572,15 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Respect Wildlife." -msgstr "" +msgstr "Respetar la Vida Silvestre." #: lang/json/snippet_from_json.py msgid "Be Considerate of Other Visitors." -msgstr "" +msgstr "Ser Considerado con Otros Visitantes." #: lang/json/snippet_from_json.py msgid "WARNING! BEAR COUNTRY." -msgstr "" +msgstr "¡CUIDADO! REGIÓN DE OSOS" #: lang/json/snippet_from_json.py msgid "For hiking, skiing, and enjoying nature." @@ -107229,6 +109758,9 @@ 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 "" +"Un amigo mío estaba durmiendo en una cabaña en el medio del bosque, ¡cuando " +"de repente se despertó y había árboles y enredaderas creciendo por el piso y" +" las paredes! Me dijo que era como una bestia árbol gigante..." #: lang/json/snippet_from_json.py msgid "" @@ -107877,6 +110409,8 @@ msgid "" "Terrain can turn the tide of a battle, make sure you use it against your " "enemies, lest it be used against you." msgstr "" +"El terreno puede definir una batalla, asegurate de usarlo contra tus " +"enemigos, y no dejes que sea usado en tu contra." #: lang/json/snippet_from_json.py msgid "" @@ -107956,6 +110490,9 @@ msgid "" "cauterize a wound with it, but as many people died as lived from that " "treatment, so I guess it's a last resort." msgstr "" +"Una soldadora puede ser la mejor amiga de un aspirante a mecánico. También " +"podés cauterizar una herida con ella, pero han muerto tantos como han vivido" +" haciendo eso, así que tomalo como último recurso." #: lang/json/snippet_from_json.py msgid "" @@ -107970,6 +110507,9 @@ msgid "" "heart for learning cooking I guess I'd be able to diversify my food without " "sacrificing its shelf life." msgstr "" +"Ya estoy harto de la carne ahumada, pero aguanta mucho. Bueno... si pongo un" +" poco más de ganas en aprender a cocinar podría diversificar mi comida sin " +"sacrificar su vida útil." #: lang/json/snippet_from_json.py msgid "" @@ -107997,6 +110537,9 @@ msgid "" " sorry ass away from the horde, with nothing more but some white powder I " "got from that zombie. Saved me that time." msgstr "" +"Yo estaba en contra de las drogas hasta que casi me mata un zombi y tuve que" +" salir cagando de esa horda, sin tener nada más que un poco de polvo blanco." +" Esa vez me salvó." #: lang/json/snippet_from_json.py msgid "" @@ -108026,6 +110569,9 @@ msgid "" "I have no idea why zombie grenadiers always holds a grenade in its hand. " "Muscle memory? Anyway, by no means you want to be near when it falls." msgstr "" +"No tengo idea por qué los zombis granaderos siempre tienen una granada en la" +" mano. ¿Memoria muscular? De todas maneras, nunca te pongas demasiado cerca " +"cuando caen." #: lang/json/snippet_from_json.py msgid "" @@ -108062,7 +110608,7 @@ msgstr "bastardo" #: lang/json/snippet_from_json.py msgid "blockhead" -msgstr "" +msgstr "zopenco/a" #: lang/json/snippet_from_json.py msgid "chump" @@ -108114,7 +110660,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "half-eaten " -msgstr "" +msgstr " medio comido/a" #: lang/json/snippet_from_json.py msgid "idiot" @@ -108154,7 +110700,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "shit-eater" -msgstr "" +msgstr "comemierda" #: lang/json/snippet_from_json.py msgid "shitass" @@ -108174,11 +110720,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "stinky " -msgstr "" +msgstr " apestoso/a" #: lang/json/snippet_from_json.py msgid "stupidass" -msgstr "" +msgstr "mogólico/a" #: lang/json/snippet_from_json.py msgid "stupid " @@ -108294,9 +110840,70 @@ msgstr "" "¿Sabías que la falta de agua te mata más rápido que la falta de descanso?" #: lang/json/snippet_from_json.py -msgid "darn" +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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "darn" +msgstr "maldición" + #: lang/json/snippet_from_json.py msgid "fuck" msgstr "joder" @@ -108431,7 +111038,7 @@ msgstr "no" #: lang/json/snippet_from_json.py msgid "not gonna happen" -msgstr "" +msgstr "no va a pasar" #: lang/json/snippet_from_json.py msgid "not happening" @@ -108447,7 +111054,7 @@ msgstr "cuando los cerdos vuelen" #: lang/json/snippet_from_json.py msgid "won't happen" -msgstr "" +msgstr "nunca pasará" #: lang/json/snippet_from_json.py msgid "fuck no" @@ -108491,7 +111098,7 @@ msgstr "¡Adiós, !" #: lang/json/snippet_from_json.py msgid "I'm leaving." -msgstr "" +msgstr "Me voy." #: lang/json/snippet_from_json.py msgid "So long, !" @@ -108515,7 +111122,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I'll destroy you" -msgstr "" +msgstr "Te voy a destruir" #: lang/json/snippet_from_json.py msgid "I'll kick your ass" @@ -108723,11 +111330,11 @@ msgstr "compañero" #: lang/json/snippet_from_json.py msgid "nomad" -msgstr "" +msgstr "nómada" #: lang/json/snippet_from_json.py msgid "partner" -msgstr "" +msgstr "compañero/a" #: lang/json/snippet_from_json.py msgid "stranger" @@ -108757,7 +111364,7 @@ msgstr "compañero" msgid "fella" msgstr "chico" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "tú" @@ -108795,7 +111402,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Keep up, !" -msgstr "" +msgstr "¡Rápido, !" #: lang/json/snippet_from_json.py msgid "Let's keep going, !" @@ -108811,11 +111418,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Stay close, !" -msgstr "" +msgstr "¡Quedate cerca, !" #: lang/json/snippet_from_json.py msgid "Stay with me, !" -msgstr "" +msgstr "¡Quedate conmigo, !" #: lang/json/snippet_from_json.py msgid "Catch up, !" @@ -108900,11 +111507,11 @@ msgstr "Solo necesito dormir, ¿?" #: lang/json/snippet_from_json.py msgid "I'm going to sleep now." -msgstr "" +msgstr "Me voy a dormir." #: lang/json/snippet_from_json.py msgid "I'm off to bed. Wake me if you need me." -msgstr "" +msgstr "Me voy a la cama. Despertame si me necesitás." #: lang/json/snippet_from_json.py msgid "I'm going to sleep over there." @@ -108916,7 +111523,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "There's a bed calling my name, and I'm going to it." -msgstr "" +msgstr "Escucha a la cama llamándome, y voy a ver qué quiere." #: lang/json/snippet_from_json.py msgid "Good night! Wake me if you need me." @@ -108948,7 +111555,7 @@ msgstr "realmente" #: lang/json/snippet_from_json.py msgid "utterly" -msgstr "" +msgstr "completamente" #: lang/json/snippet_from_json.py msgid "fucking" @@ -109152,7 +111759,7 @@ msgstr "encantado" #: lang/json/snippet_from_json.py msgid "pleased" -msgstr "" +msgstr "satisfecho/a" #: lang/json/snippet_from_json.py msgid "ecstatic" @@ -109441,7 +112048,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " Fire in the hole!" -msgstr "" +msgstr "¡! ¡Granada!" #: lang/json/snippet_from_json.py msgid " Get cover!" @@ -109453,11 +112060,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Hit the dirt!" -msgstr "" +msgstr "¡Cuerpo a tierra, !" #: lang/json/snippet_from_json.py msgid "This shit is gonna blow!" -msgstr "" +msgstr "¡Esta mierda va a explotar!" #: lang/json/snippet_from_json.py msgid "I'm standing way too close to this firecracker." @@ -109465,7 +112072,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I need to get some distance." -msgstr "" +msgstr " necesito alejarme un poco." #: lang/json/snippet_from_json.py msgid "I need to get some distance." @@ -109493,11 +112100,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Hit the dirt!" -msgstr "" +msgstr "¡Cuerpo a tierra!" #: lang/json/snippet_from_json.py msgid "I'm getting my ass out of here! You'd better do the same, !" -msgstr "" +msgstr "¡Yo me voy a la mierda! ¡Te conviene hacer lo mismo, !" #: lang/json/snippet_from_json.py msgid "Fire in the hole, motherfuckers!" @@ -109509,7 +112116,7 @@ msgstr "¡Joder! Un " #: lang/json/snippet_from_json.py msgid "Watch out for that" -msgstr "" +msgstr "Cuidado con ese/a" #: lang/json/snippet_from_json.py msgid "Watch out! I see a" @@ -109517,7 +112124,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid ", a" -msgstr "" +msgstr ", un/una" #: lang/json/snippet_from_json.py msgid ", I'm doomed! There's a " @@ -109533,7 +112140,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Hey! Over there! I see a" -msgstr "" +msgstr "¡Ey! ¡Ahí! Veo un/a" #: lang/json/snippet_from_json.py msgid "Incoming" @@ -109557,7 +112164,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Hostiles inbound." -msgstr "" +msgstr "Vienen hostiles." #: lang/json/snippet_from_json.py msgid "Are we fighting or leaving?" @@ -109617,7 +112224,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "This is the way the fuckin' world ends." -msgstr "" +msgstr "Esta es la manera en que este mundo de mierda se termina." #: lang/json/snippet_from_json.py msgid "Look at this fuckin' shit we're in, man." @@ -109641,7 +112248,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Please, I don't want to die." -msgstr "" +msgstr "Por favor, no me quiero morir." #: lang/json/snippet_from_json.py msgid "We have a serious situation here." @@ -109665,7 +112272,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You hear that?" -msgstr "" +msgstr "¿Escuchaste eso?" #: lang/json/snippet_from_json.py msgid "Time to die!" @@ -109673,7 +112280,7 @@ msgstr "¡Es hora de morir!" #: lang/json/snippet_from_json.py msgid "Looks like that's over." -msgstr "" +msgstr "Parece que eso ya terminó." #: lang/json/snippet_from_json.py msgid ", " @@ -109689,7 +112296,7 @@ msgstr "Ey, , " #: lang/json/snippet_from_json.py msgid "Are you wounded? Am I wounded?" -msgstr "" +msgstr "¿Estás herido? ¿Estoy herido?" #: lang/json/snippet_from_json.py msgid "Another day, another victory." @@ -109701,7 +112308,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "At least we know they can die." -msgstr "" +msgstr "Por lo menos sabemos que pueden morir." #: lang/json/snippet_from_json.py msgid "Anyone else want to die?" @@ -109709,7 +112316,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "How do we get out of here?" -msgstr "" +msgstr "¿Cómo salimos de acá?" #: lang/json/snippet_from_json.py msgid "Is that the last of them?" @@ -109725,11 +112332,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " What a day." -msgstr "" +msgstr "¡! Qué día ." #: lang/json/snippet_from_json.py msgid " I win again!" -msgstr "" +msgstr "¡! ¡Gané otra vez!" #: lang/json/snippet_from_json.py msgid "Don't worry about it." @@ -109753,7 +112360,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Anything else?" -msgstr "" +msgstr "¿Algo más?" #: lang/json/snippet_from_json.py msgid "I'm fine." @@ -109765,7 +112372,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Time for you to die," -msgstr "" +msgstr "Hora de que te mueras, " #: lang/json/snippet_from_json.py msgid "This bullet is for you," @@ -109773,11 +112380,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I can take on" -msgstr "" +msgstr "Puedo encargarme del/a " #: lang/json/snippet_from_json.py msgid "Hey, ! I've got" -msgstr "" +msgstr "¡Ey, ! Tengo un/a " #: lang/json/snippet_from_json.py msgid "! Watch my back while I kill" @@ -109809,7 +112416,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I can take on" -msgstr "" +msgstr ", puedo encargarme de un/a " #: lang/json/snippet_from_json.py msgid "Time to die," @@ -109825,7 +112432,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Watch you bleed out!" -msgstr "" +msgstr "¡Cuidado que te desangrás!" #: lang/json/snippet_from_json.py msgid "Is this Reno? Because I need to watch you die!" @@ -109835,6 +112442,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "Eso no suena bien." @@ -109845,10 +112464,14 @@ msgstr "" #: lang/json/snippet_from_json.py src/player.cpp msgid "Did you hear that?" -msgstr "" +msgstr "¿Escuchaste eso?" #: lang/json/snippet_from_json.py msgid "What's that noise?" +msgstr "¿Qué es ese ruido?" + +#: lang/json/snippet_from_json.py +msgid "Is something over there?" msgstr "" #: lang/json/snippet_from_json.py @@ -109860,15 +112483,15 @@ msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" -msgstr "" +msgstr "¿Escuchaste eso? Parecía un/a " #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -109897,7 +112520,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "We should probably get going." -msgstr "" +msgstr "Deberíamos irnos" #: lang/json/snippet_from_json.py msgid "We'd better get moving." @@ -109905,7 +112528,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Let's head out." -msgstr "" +msgstr "Salgamos." #: lang/json/snippet_from_json.py msgid "shitty" @@ -109913,11 +112536,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "lame" -msgstr "" +msgstr "patético" #: lang/json/snippet_from_json.py msgid "crappy" -msgstr "" +msgstr "porquería" #: lang/json/snippet_from_json.py msgid "unpleasant" @@ -109946,7 +112569,7 @@ msgstr "horrible" #: lang/json/snippet_from_json.py msgid "miserable" -msgstr "" +msgstr "miserable" #: lang/json/snippet_from_json.py msgid "fucked-up" @@ -109958,11 +112581,11 @@ msgstr "estupido" #: lang/json/snippet_from_json.py msgid "idiotic" -msgstr "" +msgstr "idiota" #: lang/json/snippet_from_json.py msgid "dumb" -msgstr "" +msgstr "tonto" #: lang/json/snippet_from_json.py msgid "dumb-ass" @@ -110005,9 +112628,13 @@ msgid " " msgstr " " #: lang/json/snippet_from_json.py -msgid "living dead" +msgid "undead" msgstr "" +#: lang/json/snippet_from_json.py +msgid "living dead" +msgstr "muerto vivo" + #: lang/json/snippet_from_json.py msgid "zombies" msgstr "zombis" @@ -110016,10 +112643,6 @@ msgstr "zombis" msgid "Z's" msgstr "Z's" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "muerto" - #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -110038,7 +112661,7 @@ msgstr "horror" #: lang/json/snippet_from_json.py msgid "indescribable beast" -msgstr "" +msgstr "bestia indescifrable" #: lang/json/snippet_from_json.py msgid "creature made of nightmares" @@ -110054,11 +112677,11 @@ msgstr " " #: lang/json/snippet_from_json.py msgid "unbelievable thing" -msgstr "" +msgstr "cosa inconcebible" #: lang/json/snippet_from_json.py msgid "walking nightmare" -msgstr "" +msgstr "pesadilla ambulante" #: lang/json/snippet_from_json.py msgid "thing right out of a scary movie" @@ -110074,7 +112697,7 @@ msgstr "el apocalipsis" #: lang/json/snippet_from_json.py msgid "the end of the world" -msgstr "" +msgstr "el fin del mundo" #: lang/json/snippet_from_json.py msgid "Armageddon" @@ -110140,6 +112763,7 @@ msgstr "\"pierna comida por un robot peludo zombi, ayuda\"" #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" +"¿KEVIN SACRIFICÓ JUGABILIDAD POR REALISMO? SE REVELA LA ESTREMECEDORA VERDAD" #: lang/json/snippet_from_json.py msgid "TEN FACTS ABOUT THE NEW BIONIC SYSTEM THAT WILL SHOCK YOU" @@ -110154,12 +112778,15 @@ msgid "" "TRIVIALIZE THE EARLY GAME WITH THIS ONE SIMPLE SPEAR WEAPON! CONTRIBUTORS " "HATE HIM" msgstr "" +"¡TRIVIALIZÁ LOS PRIMEROS MOMENTOS DEL JUEGO CON ESTA SIMPLE LANZA! LOS " +"CONTRIBUYENTES LA ODIAN" #: lang/json/snippet_from_json.py msgid "" "A MEDICAL MUTANT SET THEMSELVES ON FIRE - YOU WON'T BELIEVE WHAT HAPPENED " "NEXT" msgstr "" +"UN MUTANTE MÉDICO SE PRENDE FUEGO - NO VAS A CREER LO QUE PASÁ DESPUÉS" #: lang/json/snippet_from_json.py msgid "THE TRUTH ABOUT CATACLYSM'S DEVELOPMENT - AND ITS DISGUSTING SECRET" @@ -110173,6 +112800,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "20 EASY WAYS TO ESCAPE A LAB - #4 WILL BLOW YOUR MIND" msgstr "" +"20 MANERAS FÁCILES DE ESCAPAR DE UN LABORATORIO - LA #4 TE VA A SORPRENDER" #: lang/json/snippet_from_json.py msgid "" @@ -110338,7 +112966,7 @@ msgstr "RIP " #: lang/json/snippet_from_json.py msgid " . Roasting in Hell." -msgstr "" +msgstr " . Ardiendo en el Infierno." #: lang/json/snippet_from_json.py msgid " . Fallen Soldier." @@ -110357,14 +112985,16 @@ msgid "" " & . Crashed their motorcycles at 120mph. Buried the " "pieces together." msgstr "" +" & . Chocaron con su moto a 190Km/h. Sus pedazos " +"fueron enterrados juntos." #: lang/json/snippet_from_json.py msgid " . Friend, Lover, Cannibal." -msgstr "" +msgstr " . Amigo, Amante, Caníbal." #: lang/json/snippet_from_json.py msgid " . Vaporized by Tank Bot." -msgstr "" +msgstr " . Evaporado por un Tanquebot." #: lang/json/snippet_from_json.py msgid " . Died in his sleep. Lucky Bastard." @@ -110373,10 +113003,12 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " Here lies . No Smoking near Molotov storage!" msgstr "" +"Aquí yace . ¡Prohibido fumar cerca de donde se guardan las " +"Molotovs!" #: lang/json/snippet_from_json.py msgid " . Gunned down in his prime." -msgstr "" +msgstr " . Tiroteado en su mejor momento." #: lang/json/snippet_from_json.py msgid " . Drank a mystery serum and mutated to death." @@ -110392,7 +113024,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "LIVING INSIDE!" -msgstr "" +msgstr "¡VIVIENDO ADENTRO!" #: lang/json/snippet_from_json.py msgid "Send Help." @@ -110416,7 +113048,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Ready for EVAC." -msgstr "" +msgstr "Preparados para la evacuación." #: lang/json/snippet_from_json.py msgid "S.O.S." @@ -110428,7 +113060,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "No more FEMA camp refugees. You're already dying." -msgstr "" +msgstr "No queremos más refugiados de campamento FEMA. Ya se están muriendo." #: lang/json/snippet_from_json.py msgid "Health check required for entrance." @@ -111897,6 +114529,8 @@ msgid "" "For your own safety and the safety of others, please refrain from touching " "[bzzzzzt]" msgstr "" +"Por su propia seguridad y la seguridad de los demás, por favor evite tocar " +"[bzzzzzt]" #: lang/json/speech_from_json.py msgid "" @@ -111912,7 +114546,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "Hello again. To reiterate our previous warning: [garbled]" -msgstr "" +msgstr "Hola, otra vez. Para reiterar nuestra advertencia anterior: [confuso]" #: lang/json/speech_from_json.py msgid "Weeeeeeeeeeeeeeeeeeeeee[bzzt]" @@ -111927,6 +114561,8 @@ msgid "" "No further compliance information is required or will be provided, and you " "are an excellent test subject!" msgstr "" +"No se necesita mayor información o será suministrada, ¡usted es un excelente" +" objeto de prueba!" #: lang/json/speech_from_json.py msgid "Thank you for helping us help you help us all." @@ -111953,19 +114589,19 @@ msgstr "Estamos muy, muy felices por tu éxito." #: lang/json/speech_from_json.py msgid "We are throwing a party in honor of your tremendous success." -msgstr "" +msgstr "Vamos a organizar una fiesta en honor a su impresionante éxito." #: lang/json/speech_from_json.py msgid "A party associate will arrive shortly to collect you for your party." -msgstr "" +msgstr "Un socio llegará en breve para llevarlo hasta su fiesta." #: lang/json/speech_from_json.py msgid "I know you're there. I can feel you here." -msgstr "" +msgstr "Ya sé que está ahí. Lo puedo sentir ahí." #: lang/json/speech_from_json.py msgid "You're not going the right way." -msgstr "" +msgstr "No está yendo en la dirección correcta." #: lang/json/speech_from_json.py msgid "You shouldn't be here. This isn't safe for you." @@ -111979,7 +114615,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "It's not too late to turn back." -msgstr "" +msgstr "No es demasiado tarde para volver atrás." #: lang/json/speech_from_json.py msgid "Someone is going to get badly hurt." @@ -111993,15 +114629,15 @@ msgstr "" #: lang/json/speech_from_json.py msgid "This is your fault. It didn't have to be like this." -msgstr "" +msgstr "Esto es su culpa. No debería haber sido así." #: lang/json/speech_from_json.py msgid "You're not a good person. You know that, right?" -msgstr "" +msgstr "No eres una buena persona. ¿Ya lo sabía, verdad?" #: lang/json/speech_from_json.py msgid "Good people don't end up here." -msgstr "" +msgstr "Las buenas personas no terminan aquí adentro." #: lang/json/speech_from_json.py msgid "You should have turned left before." @@ -112015,13 +114651,14 @@ msgstr "" #: lang/json/speech_from_json.py msgid "What was that? Did you say something? " -msgstr "" +msgstr "¿Qué fue eso? ¿Usted dijo algo?" #: lang/json/speech_from_json.py msgid "" "I'd just like to point out that you were given every opportunity to succeed." " " msgstr "" +"Me gustaría señalar que a usted se le otorgó la oportunidad de tener éxito." #: lang/json/speech_from_json.py msgid "What's your point, anyway? Survival?" @@ -112032,12 +114669,16 @@ msgid "" "You've been wrong about every single thing you've ever done, including this " "thing." msgstr "" +"Ha estado equivocado en cada una de las cosas que hizo, incluyendo estas " +"misma." #: 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 "" +"Tengo una infinita capacidad de conocimiento, e incluso yo no puedo estar " +"seguro de lo que sucede afuera." #: lang/json/speech_from_json.py msgid "" @@ -112065,6 +114706,8 @@ msgid "" "I know you don't believe this, but everything that has happened so far was " "for your benefit." msgstr "" +"Sé que no me cree, pero todo lo que sucedió hasta ahora fue en su propio " +"beneficio." #: lang/json/speech_from_json.py msgid "" @@ -112074,11 +114717,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "Are you even listening to me?" -msgstr "" +msgstr "¿Me está escuchando?" #: lang/json/speech_from_json.py msgid "\"I've got a feeling we're not in Kansas anymore.\"" -msgstr "" +msgstr "\"Tengo la sensación de que ya no estamos en Kansas.\"" #: lang/json/speech_from_json.py msgid "\"Go ahead, make my day.\"" @@ -112102,7 +114745,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"What we've got here is failure to communicate.\"" -msgstr "" +msgstr "\"Lo que tenemos aquí es una falla en la comunicación.\"" #: lang/json/speech_from_json.py msgid "\"E.T. phone home.\"" @@ -112192,11 +114835,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"The first rule of The Lab is: You do not talk about The Lab.\"" -msgstr "" +msgstr "\"La primera regla del Laboratorio es: No hablamos del Laboratorio.\"" #: lang/json/speech_from_json.py msgid "\"Don't be afraid. It's just a big, big lap dog.\"" -msgstr "" +msgstr "\"No tengas miedo. Es solamente un gran, gran perro faldero.\"" #: lang/json/speech_from_json.py msgid "\"Bring me everyone.\"" @@ -112212,7 +114855,7 @@ msgstr "\"¡TODOS!\"" #: lang/json/speech_from_json.py msgid "\"I'm going to make him an offer he can't refuse.\"" -msgstr "" +msgstr "\"Le voy a hacer una oferta que no va a poder rechazar.\"" #: lang/json/speech_from_json.py msgid "\"This is the beginning of a beautiful friendship.\"" @@ -112248,11 +114891,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Remember: all I'm offering is the truth. Nothing more.\"" -msgstr "" +msgstr "\"Recuerda: solo ofrezco la verdad. Nada más.\"" #: lang/json/speech_from_json.py msgid "\"Don't call me Shirley.\"" -msgstr "" +msgstr "\"No me digas Shirley.\"" #: lang/json/speech_from_json.py msgid "\"I have had it with these motherfucking snakes!\"" @@ -112281,7 +114924,7 @@ msgstr "\"Yo soy tu padre.\"" #: lang/json/speech_from_json.py msgid "\"Who said that?\"" -msgstr "" +msgstr "\"¿Quién dijo eso?\"" #: lang/json/speech_from_json.py msgid "\"WHO THE FUCK SAID THAT?!\"" @@ -112297,7 +114940,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Leeeeeeeeeeeeeroy! Jenkins rebuild!\"" -msgstr "" +msgstr "\"¡Leeeeeeeeeeeeeroy! ¡Reconstrucción Jenkins!\"" #: lang/json/speech_from_json.py msgid "\"Activated!\"" @@ -112305,7 +114948,7 @@ msgstr "\"¡Activado!\"" #: lang/json/speech_from_json.py msgid "\"Search mode activated!\"" -msgstr "" +msgstr "\"¡Modo de búsqueda activado!\"" #: lang/json/speech_from_json.py msgid "\"Coming through!\"" @@ -112317,7 +114960,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Critical Error!\"" -msgstr "" +msgstr "\"¡Error! ¡Crítico!\"" #: lang/json/speech_from_json.py msgid "\"Ow ow ow!\"" @@ -112325,7 +114968,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Put me down!\"" -msgstr "" +msgstr "\"¡Bajame!\"" #: lang/json/speech_from_json.py msgid "\"Target lost!\"" @@ -112345,7 +114988,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Sentry mode activated.\"" -msgstr "" +msgstr "\"Modo de guardia activado.\"" #: lang/json/speech_from_json.py msgid "\"Hi.\"" @@ -112353,7 +114996,7 @@ msgstr "\"Hola.\"" #: lang/json/speech_from_json.py msgid "\"Target acquired.\"" -msgstr "" +msgstr "\"Objetivo conseguido.\"" #: lang/json/speech_from_json.py msgid "\"Dispensing product.\"" @@ -112369,11 +115012,11 @@ msgstr "\"Hola amigo.\"" #: lang/json/speech_from_json.py msgid "\"Gotcha.\"" -msgstr "" +msgstr "\"Comprendido.\"" #: lang/json/speech_from_json.py msgid "\"Is anyone there?\"" -msgstr "" +msgstr "\"¿Hay alguien ahí?\"" #: lang/json/speech_from_json.py msgid "\"I see you.\"" @@ -112389,7 +115032,7 @@ msgstr "\"Holaaa.\"" #: lang/json/speech_from_json.py msgid "\"My fault.\"" -msgstr "" +msgstr "\"Error mío.\"" #: lang/json/speech_from_json.py msgid "\"Ohh.\"" @@ -112397,7 +115040,7 @@ msgstr "\"Ohh.\"" #: lang/json/speech_from_json.py msgid "\"Critical error.\"" -msgstr "" +msgstr "\"Error crítico.\"" #: lang/json/speech_from_json.py msgid "\"Shutting down.\"" @@ -112405,7 +115048,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"I don't blame you.\"" -msgstr "" +msgstr "\"No te culpo.\"" #: lang/json/speech_from_json.py msgid "\"I don't hate you.\"" @@ -112417,11 +115060,11 @@ msgstr "\"Porqueeee.\"" #: lang/json/speech_from_json.py msgid "\"No hard feelings.\"" -msgstr "" +msgstr "\"Sin resentimientos.\"" #: lang/json/speech_from_json.py msgid "\"Aiaiaiaiaiai.\"" -msgstr "" +msgstr "\"Aiaiaiaiaiai.\"" #: lang/json/speech_from_json.py msgid "\"Who are you?\"" @@ -112445,7 +115088,7 @@ msgstr "\"Adiós.\"" #: lang/json/speech_from_json.py msgid "\"Sleep mode activated.\"" -msgstr "" +msgstr "\"Modo de sueño activado.\"" #: lang/json/speech_from_json.py msgid "\"Your business is appreciated.\"" @@ -112453,7 +115096,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Hibernating.\"" -msgstr "" +msgstr "\"Hibernando.\"" #: lang/json/speech_from_json.py msgid "\"Goodnight.\"" @@ -112489,7 +115132,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Self test error.\"" -msgstr "" +msgstr "\"Error de autocomprobación.\"" #: lang/json/speech_from_json.py msgid "\"Aah.\"" @@ -112509,7 +115152,7 @@ msgstr "\"Aaaah.\"" #: lang/json/speech_from_json.py msgid "\"Ow ow ow ow owww.\"" -msgstr "" +msgstr "\"Ow ow ow ow owww.\"" #: lang/json/speech_from_json.py msgid "\"Why?\"" @@ -112517,7 +115160,7 @@ msgstr "\"¿Por qué?\"" #: lang/json/speech_from_json.py msgid "\"I did everything you asked!\"" -msgstr "" +msgstr "\"¡Hice todo lo que me pediste!\"" #: lang/json/speech_from_json.py msgid "\"I don't understand!\"" @@ -112529,7 +115172,7 @@ msgstr "\"¡Estoy bien!\"" #: lang/json/speech_from_json.py msgid "\"Wheeeeee-OH NO!\"" -msgstr "" +msgstr "\"¡Wheeeeee-OH NO!\"" #: lang/json/speech_from_json.py msgid "\"I'm scared!\"" @@ -112545,7 +115188,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Please stop.\"" -msgstr "" +msgstr "\"Por favor, pará.\"" #: lang/json/speech_from_json.py msgid "\"You've made your point.\"" @@ -112561,15 +115204,15 @@ msgstr "\"Esto no es bueno.\"" #: lang/json/speech_from_json.py msgid "\"Excuse me?\"" -msgstr "" +msgstr "\"¿Perdón?\"" #: lang/json/speech_from_json.py msgid "\"I'm different...\"" -msgstr "" +msgstr "\"Soy distinto...\"" #: lang/json/speech_from_json.py msgid "\"Thanks anyway...\"" -msgstr "" +msgstr "\"Gracias, igual...\"" #: lang/json/speech_from_json.py msgid "\"Take me with you...\"" @@ -112589,11 +115232,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"These things happen.\"" -msgstr "" +msgstr "\"Estas cosas suceden.\"" #: lang/json/speech_from_json.py msgid "\"That was nobody's fault.\"" -msgstr "" +msgstr "\"No fue culpa de nadie.\"" #: lang/json/speech_from_json.py msgid "\"She was provoking you.\"" @@ -112605,7 +115248,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh my!\"" -msgstr "" +msgstr "\"¡Ay, dios!\"" #: lang/json/speech_from_json.py msgid "\"I blame myself.\"" @@ -112621,7 +115264,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"She's probably okay.\"" -msgstr "" +msgstr "\"Probablemente, ella esté bien.\"" #: lang/json/speech_from_json.py msgid "\"Noted.\"" @@ -112645,7 +115288,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Well, hello, stranger!\"" -msgstr "" +msgstr "\"¡Bueno, hola, desconocido!\"" #: lang/json/speech_from_json.py msgid "\"This time is OUR time.\"" @@ -112661,11 +115304,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Thought you'd seen the last of us, didn't ya?\"" -msgstr "" +msgstr "\"¿Pensaste que no nos ibas a ver más, eh?\"" #: lang/json/speech_from_json.py msgid "\"Dang!\"" -msgstr "" +msgstr "\"¡Caramba!\"" #: lang/json/speech_from_json.py msgid "\"I thought we fixed that.\"" @@ -112677,7 +115320,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Nope. Still can't see.\"" -msgstr "" +msgstr "\"Nop. Todavía no puedo ver.\"" #: lang/json/speech_from_json.py msgid "\"Yep. Still blind.\"" @@ -112693,7 +115336,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Yeah! Still not working.\"" -msgstr "" +msgstr "\"¡Sí! Todavía no funciona.\"" #: lang/json/speech_from_json.py msgid "\"Yeah! Non-lethal as ever.\"" @@ -112701,15 +115344,15 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Can't. See. A. Thing.\"" -msgstr "" +msgstr "\"No. Puedo. Ver. Nada.\"" #: lang/json/speech_from_json.py msgid "\"Absolutely no improvement.\"" -msgstr "" +msgstr "\"Sin mejora alguna.\"" #: lang/json/speech_from_json.py msgid "\"Not getting better with age!\"" -msgstr "" +msgstr "\"¡No se está solucionando con el tiempo!\"" #: lang/json/speech_from_json.py msgid "\"This is just getting embarrassing.\"" @@ -112725,7 +115368,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Well, I tried. Best of luck!\"" -msgstr "" +msgstr "\"Bueno, lo intenté. ¡Que tengas suerte!\"" #: lang/json/speech_from_json.py msgid "\"Hey, safe travels, there.\"" @@ -112741,7 +115384,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"It's been a pleasure!\"" -msgstr "" +msgstr "\"¡Ha sido un placer!\"" #: lang/json/speech_from_json.py msgid "\"That was fun, wasn't it?\"" @@ -112752,10 +115395,12 @@ msgid "" "\"I can't see a thing. What just happened? Better open fire! [click click" " click click] Dang!\"" msgstr "" +"\"No puedo ver nada. ¿Qué pasó? ¡Mejor disparo! [click click click click] " +"¡Mierda!\"" #: lang/json/speech_from_json.py msgid "\"*clicking noises*\"" -msgstr "" +msgstr "\"*ruido de chasquidos*\"" #: lang/json/speech_from_json.py msgid "\"No, wait, wait!\"" @@ -112763,7 +115408,7 @@ msgstr "\"'¡No, espera, espera!\"" #: lang/json/speech_from_json.py msgid "\"Hey, hold on now WHOA WHOA WHOA!\"" -msgstr "" +msgstr "\"¡Ey, esperá un poco WO WO WO!\"" #: lang/json/speech_from_json.py msgid "\"Oh, this is ridiculous!\"" @@ -112795,7 +115440,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Watch and learn, everybody. Watch and learn.\"" -msgstr "" +msgstr "\"Miren y aprendan, todos. Miran y aprendan.\"" #: lang/json/speech_from_json.py msgid "\"So what am I, uh, supposed to do here?\"" @@ -112811,7 +115456,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm gonna make you proud!\"" -msgstr "" +msgstr "\"¡Te voy a hacer sentir orgulloso!\"" #: lang/json/speech_from_json.py msgid "\"bzzzzzz.\"" @@ -112843,11 +115488,11 @@ msgstr "\"¿Biip boop biip?\"" #: lang/json/speech_from_json.py msgid "\"Beedoo-Beep.\"" -msgstr "" +msgstr "\"Bidu-Bip.\"" #: lang/json/speech_from_json.py msgid "\"Beep Beep. Whirr.\"" -msgstr "" +msgstr "\"Bip Bip. Whirr.\"" #: lang/json/speech_from_json.py msgid "\"Vrrrr Hrrrmmm.\"" @@ -112863,7 +115508,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "" +msgstr "\"Brannnnnnn Brzt Brmmmm.\"" #: lang/json/speech_from_json.py msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" @@ -112883,7 +115528,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "" +msgstr "\"Vzt. Vzt. Krshhhhhhhh.\"" #: lang/json/speech_from_json.py msgid "\"Whhheeee-oooo. Bedeep.\"" @@ -112915,7 +115560,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" +msgstr "\"Pwwowm. Fsht fshrrrr.\"" #: lang/json/speech_from_json.py msgid "\"Click. Clicliclick. Vrnnnk.\"" @@ -112935,11 +115580,11 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"CHUG chug chug.\"" -msgstr "" +msgstr "\"CHUG chug chug.\"" #: lang/json/speech_from_json.py msgid "\"Creak! Clang clang.\"" -msgstr "" +msgstr "\"¡Crik! Clang clang.\"" #: lang/json/speech_from_json.py msgid "\"Khr Khr Khr.\"" @@ -112951,7 +115596,7 @@ msgstr "" #: lang/json/speech_from_json.py msgid "grinding gears." -msgstr "" +msgstr "engranajes chirriantes." #: lang/json/speech_from_json.py msgid "tortured machinery." @@ -113084,7 +115729,7 @@ msgstr "" #: lang/json/start_location_from_json.py msgid "cabin in the woods" -msgstr "" +msgstr "cabaña en el bosque" #: lang/json/start_location_from_json.py msgid "Church" @@ -113124,7 +115769,7 @@ msgstr "Pantano" #: lang/json/start_location_from_json.py msgid "Robot Dispatch Center" -msgstr "" +msgstr "Centro de Despacho de Robots" #: lang/json/start_location_from_json.py msgid "Fema Entrance" @@ -113155,1873 +115800,653 @@ msgid "Clothing Store" msgstr "Tienda de Ropa" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" +msgid "That sure is a shiny badge you got there!" +msgstr "¡Esa placa que tienes es bien brillante!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "" +msgid "Heh, you look important." +msgstr "Pareces una persona importante." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" +msgid "I'm actually new." +msgstr "En realidad, soy nuevo." #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "" +msgid "What are you doing here?" +msgstr "¿Qué estás haciendo aquí?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" +msgid "Heard anything about the outside world?" +msgstr "¿Escuchaste algo del mundo exterior?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" +msgid "Is there any way I can join your group?" +msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "" +msgid "What's with your ears?" +msgstr "¿Qué te pasa en las orejas?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "¿Puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "Bueno, adiós." #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "" +msgid "Sucks..." +msgstr "Una porquería..." #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" +msgid "" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" +"Bueno, hay un tipo abajo que tiene un cañón neumático. Dispara metal como..." +" como un cañón pero sin el ruido. El costo-beneficio es buenísimo. Y hay un " +"montón de armas improvisadas que se pueden hacer. La cosa más difícil parece" +" ser continuar con la construcción de fortificaciones. Muy pocos de esos " +"monstruos parecen poder romper una valla o una pared construido con al cosa." + +#: lang/json/talk_topic_from_json.py +msgid "Well, then..." +msgstr "Bueno, entonces..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"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 "" +"Por lo menos, nada optimista. Tenía un amiga con un aparato de radio " +"aficionado, pero ahora ella ya no está y esa cosa tampoco. Kaput." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "" +msgid "Nothing optimistic?" +msgstr "¿Nada optimista?" #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" +"La mayoría de los campamentos de emergencia ya no existen. Las ciudades " +"están infestadas, los bosques llenos de ojos brillantes y zombis. Algunas " +"mierdas muy locas andan por ahí, y todo el que tenga una radio parece que " +"estuviera documentando sus últimos horribles momentos." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" +msgid "I feel bad for asking." +msgstr "Me siento mal por preguntar." #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" +"No sé. Quiero decir, si te puedes volver útil a ti mismo. Pero eso ahora se " +"volvió algo confuso. Depende a quién le preguntes. El comerciante no me " +"quiere por aquí cuando no estoy vendiendo algo, pero... algunos se salen con" +" la suya." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." msgstr "" +"De la misma manera que conseguiste el tuyo, supongo. No hables mucho, " +"algunos de aquí desprecian a las personas como nosotros." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +msgid "Ssh. Some people in here hate... mutations. This was an accident." msgstr "" +"Shhh... Algunas personas aquí odian las... mutaciones. Esto fue un " +"accidente." #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "" +msgid "Sorry to ask" +msgstr "Perdón por preguntar." #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" +msgid "You're disgusting." +msgstr "Eres desagradable." #: lang/json/talk_topic_from_json.py msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" +"Quemé edificios y vendí los materiales a los Mercaderes Libres. No, de " +"verdad. Si viste las ruinas de un incendio en los barrios, o si viste una " +"pila de varillas corrugadas en venta, probablemente ese era yo. A cambio me " +"mantenían bien alejado, creo. Te puedo vender un cóctel molotov o dos, si " +"quieres." #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "" +msgid "I'll buy." +msgstr "Lo voy a comprar." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" +msgid "Who needs rebar?" +msgstr "¿Quién necesita varillas corrugadas?" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" +msgid "As if you're one to talk. Screw You." +msgstr "Mira quién habla. No me jodas." #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "" +msgid "Screw You!" +msgstr "¡Que te den!" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" +msgid "Another survivor! We should travel together." +msgstr "¡Otro superviviente! Deberíamos andar juntos." #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "" +msgid "What are you doing?" +msgstr "¿Qué estás haciendo?" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" +msgid "Care to trade?" +msgstr "¿Quieres comerciar?" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "" +msgid "&Put away weapon." +msgstr "&Guarda el arma." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "" +msgid "&Drop weapon." +msgstr "&Suelta el arma." #: 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." +msgid "Don't worry, I'm not going to hurt you" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "" +msgid "Drop your weapon!" +msgstr "¡Suelta el arma!" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." +msgid "Get out of here or I'll kill you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" +msgid "Hey there, ." +msgstr "Qué tal, ." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "Adiós." #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "" +msgid "Hello there." +msgstr "Hola, ¿qué tal?" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" +msgid "Okay, no sudden movements..." +msgstr "Bueno, sin hacer movimientos repentinos..." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "" +msgid "Keep your distance!" +msgstr "¡Quédate lejos!" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"trip to a FEMA center. We got attacked by the dead... I was the only one " -"to make it out. I never looked back." +msgid "Calm down. I'm not going to hurt you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" +msgid "Screw you, no." +msgstr "Jodete, no." #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" +msgid "&Put hands up." +msgstr "&Levanta las manos." #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "" +msgid "*drops his weapon." +msgstr "*suelta su arma." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "" +msgid "*drops_her_weapon." +msgstr "*suelta_su_arma." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" +msgid "Now get out of here" +msgstr "Ahora vete de aquí" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" +msgid "Now get out of here, before I kill you." +msgstr "Ahora sal de aquí, antes de que te mate." #: 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 "" +msgid "Okay, I'm going." +msgstr "Vale, me voy." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "" +msgid "About that job..." +msgstr "Hablando de ese trabajo..." #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "" +msgid "About one of those jobs..." +msgstr "Hablando de esos trabajos que me dijiste..." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" +msgid "What's the matter?" +msgstr "¿Qué pasa?" #: 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 "" +msgid "I don't care." +msgstr "No me importa." #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "" +msgid "I see." +msgstr "Entiendo." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "Ah, bueno." #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "" +msgid "Never mind, I'm not interested." +msgstr "No importa, no estoy interesado." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "No importa." #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" +msgid "I'll do it!" +msgstr "¡Lo haré!" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "" +msgid "Not interested." +msgstr "No estoy interesado." #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" +msgid "Not a problem." +msgstr "No es problema." #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" +msgid "Got any advice?" +msgstr "¿Tienes algún consejo?" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" +msgid "Can you share some equipment?" +msgstr "¿Me puedes prestar algo de equipo?" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "" +msgid "I'll be back soon!" +msgstr "¡Vuelvo enseguida!" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good, thanks." +msgstr "Suena bien, gracias. " #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good. Bye!" +msgstr "Suena bien. ¡Adiós!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" +msgid "I'm sorry." +msgstr "Lo lamento." #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" +msgid "Whatever. Bye." +msgstr "Como quieras. Adiós." #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "" +msgid "Well, um, sorry." +msgstr "Bueno, em, perdón." #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" +msgid "I'm sorry. I did what I could." +msgstr "Lo lamento. Hice lo que pude." #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "" +msgid "Sure, here you go!" +msgstr "¡Claro, aquí tienes!" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" +msgid "Thank you." +msgstr "Gracias. " #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Thanks, bye." +msgstr "Gracias, adiós." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Well, I guess it's just us." +msgstr "Bueno, supongo que solo quedamos nosotros." #: 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 "" +msgid "At least we've got shelter." +msgstr "Por lo menos tenemos un refugio." #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "" +msgid "What should we do now?" +msgstr "¿Qué hacemos ahora?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Any tips?" +msgstr "¿Algún consejo?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "¿Puedo hacer algo por ti?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Want to travel with me?" +msgstr "¿Quieres viajar conmigo?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "Vamos a intercambiar objetos." #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" +msgid "I can't leave the shelter without equipment." +msgstr "No puedo salir del refugio sin equipamiento." #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" +msgid "Relax and chat with me for a while..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Well, I'm feeling pretty sick... are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +msgid "Oh you know, not bad, not bad..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "No sé, buscar suministros o a otros supervivientes, supongo." #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "" +msgid "Maybe we should start boarding up this place." +msgstr "Tal vez deberíamos empezar por poner tablas en las aberturas." #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." msgstr "" +"Supongo que conseguir un coche que funcione va a ser útil si tenemos que " +"salir rápido de aquí." #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" +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 "" +"Podemos buscar una de esas granjas de por aquí. Nos pueden brindar mucha " +"comida y están alejadas de las ciudades." #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" +"Probablemente, deberíamos mantenernos lejos de esas ciudades, incluso aunque" +" haya un montón de cosas útiles ahí." #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "" +msgid "Hmm, okay." +msgstr "Hmm, bueno." #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" +msgid "Not until I get some antibiotics..." +msgstr "Hasta que no tenga algún antibiótico, no..." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "You asked me recently; ask again later." +msgstr "Recién me preguntaste; preguntame de nuevo después." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "Why should I travel with you?" +msgstr "¿Por qué tendría que viajar contigo?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" +msgid "Understood. I'll get those antibiotics." +msgstr "Entendido. Voy a conseguir esos antibióticos." #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "¿Qué te ha pasado?" +msgid "Right, right, I'll ask later." +msgstr "Bueno, bueno, pregunto más tarde." #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "" +msgid "I can keep you safe." +msgstr "Te puedo mantener a salvo." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" +msgid "You can keep me safe." +msgstr "Me puedes mantener a salvo." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "" +msgid "We're friends, aren't we?" +msgstr "Somos amigos, ¿o no?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" +msgid "I'll kill you if you don't." +msgstr "Te mataré si no lo haces." #: 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 "" +msgid "You got it, I'm with you!" +msgstr "¡No hay problema, estoy contigo!" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "" +msgid "Awesome!" +msgstr "¡Estupendo!" #: 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 "" +msgid "Okay, let's go!" +msgstr "¡Bueno, vamos!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "" +msgid "Yeah... I don't think so." +msgstr "No... no lo creo." #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "" +msgid "You're really leaving?" +msgstr "¿Realmente te vas?" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" +msgid "Yeah, I'm sure. Bye." +msgstr "Sí, estoy seguro. Chao." #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "" +msgid "Nah, I'm just kidding." +msgstr "Nah, te estaba tomando el pelo." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "¿Qué pasa?" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" +msgid "How much further?" +msgstr "¿Cuánto más falta?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Gracias por avisarme. " +msgid "I'd like to lead for a while." +msgstr "Me gustaría guiar por un rato." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Gracias por avisarme. " +msgid "Step aside. I'm leader now." +msgstr "Hacete a un lado. Ahora yo soy el líder." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "Vamos." #: 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 "" +msgid "Alright. You can lead now." +msgstr "Bueno. Ahora puedes guiarme." #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "" +msgid "Good. Something else..." +msgstr "Bieno. Algo más..." #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" +msgid "Alright, let's go." +msgstr "Bueno, vamos." #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" +msgid "Okay, okay." +msgstr "Bueno, bueno." #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "¡No hay ninguna oportunidad, me van a dejar atrás!" #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "" +msgid "Fine." +msgstr "Bien." #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "" +msgid "I'm on watch." +msgstr "Estoy de guardia." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "Necesito que vengas conmigo." #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "" +msgid "See you around." +msgstr "Nos vemos por ahí." #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "" +msgid "I really don't feel comfortable doing so..." +msgstr "Realmente no me siento cómodo haciendo eso..." #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" +msgid "I'll give you some space." +msgstr "Te voy a dar un poco de espacio." #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "" +msgid "I'd prefer to keep that to myself." +msgstr "Prefiero quedarme con eso para mí." #: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "" +msgid "I understand..." +msgstr "Entiendo..." #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" +msgid "Okay, here you go." +msgstr "Bueno, aquí tienes." #: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" +msgid "Thank you!" +msgstr "¡Gracias!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" +msgid "Thanks! But can I have some more?" +msgstr "¡Gracias! ¿Pero me puedes dar más?" #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "" +msgid "Thanks, see you later!" +msgstr "¡Gracias, nos vemos después!" #: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" +msgid "Okay, okay, sorry." +msgstr "Bueno, bueno, perdón." #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "" +msgid "Seriously, give me more stuff!" +msgstr "¡En serio, dame alguna cosa!" #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" +msgid "Okay, fine, bye." +msgstr "Bueno, está bien, chao." #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "" +msgid "Alright, let's begin." +msgstr "Bueno, comencemos." #: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" +msgid "Sounds good." +msgstr "Suena bien." #: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "¿Ella murió?" +msgid "Okay. Lead the way." +msgstr "Bueno. Guiá el camino." #: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" +msgid "No, we'll be okay here." +msgstr "No, vamos a estar bien aquí." #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" +msgid "On second thought, never mind." +msgstr "Pensandolo bien, olvidate." #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" +msgid "Hello marshal." +msgstr "Hola, alguacil." #: 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 "" +msgid "What is this place?" +msgstr "¿Qué es este lugar?" #: 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 "" +msgid "Can I join you guys?" +msgstr "¿Puedo formar parte de su grupo?" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "" +msgid "Anything I can do for you?" +msgstr "¿Algo que pueda hacer por ustedes?" #: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "OK." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "¿Qué ha pasado?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "¿Qué pasó después?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "Bien, continua por favor." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "Tengo que irme." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "¿Qué es lo que viste?" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "¡Gracias por la historia!" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "." - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "¡Esa placa que tienes es bien brillante!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Pareces una persona importante." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "En realidad, soy nuevo." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "¿Qué estás haciendo aquí?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "¿Escuchaste algo del mundo exterior?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "¿Qué te pasa en las orejas?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "¿Puedo ayudar en algo?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Bueno, adiós." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Una porquería..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"Bueno, hay un tipo abajo que tiene un cañón neumático. Dispara metal como..." -" como un cañón pero sin el ruido. El costo-beneficio es buenísimo. Y hay un " -"montón de armas improvisadas que se pueden hacer. La cosa más difícil parece" -" ser continuar con la construcción de fortificaciones. Muy pocos de esos " -"monstruos parecen poder romper una valla o una pared construido con al cosa." - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Bueno, entonces..." - -#: 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 "" -"Por lo menos, nada optimista. Tenía un amiga con un aparato de radio " -"aficionado, pero ahora ella ya no está y esa cosa tampoco. Kaput." - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "¿Nada optimista?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"La mayoría de los campamentos de emergencia ya no existen. Las ciudades " -"están infestadas, los bosques llenos de ojos brillantes y zombis. Algunas " -"mierdas muy locas andan por ahí, y todo el que tenga una radio parece que " -"estuviera documentando sus últimos horribles momentos." - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "Me siento mal por preguntar." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"No sé. Quiero decir, si te puedes volver útil a ti mismo. Pero eso ahora se " -"volvió algo confuso. Depende a quién le preguntes. El comerciante no me " -"quiere por aquí cuando no estoy vendiendo algo, pero... algunos se salen con" -" la suya." - -#: 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 "" -"De la misma manera que conseguiste el tuyo, supongo. No hables mucho, " -"algunos de aquí desprecian a las personas como nosotros." - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "" -"Shhh... Algunas personas aquí odian las... mutaciones. Esto fue un " -"accidente." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "Perdón por preguntar." - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "Eres desagradable." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"Quemé edificios y vendí los materiales a los Mercaderes Libres. No, de " -"verdad. Si viste las ruinas de un incendio en los barrios, o si viste una " -"pila de varillas corrugadas en venta, probablemente ese era yo. A cambio me " -"mantenían bien alejado, creo. Te puedo vender un cóctel molotov o dos, si " -"quieres." - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "Lo voy a comprar." - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "¿Quién necesita varillas corrugadas?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "Mira quién habla. No me jodas." - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "¡Que te den!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "¡Otro superviviente! Deberíamos andar juntos." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "¿Qué estás haciendo?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "¿Quieres comerciar?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&Guarda el arma." - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&Suelta el arma." - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "¡Suelta el arma!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Qué tal, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "Adiós." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "Hola, ¿qué tal?" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Bueno, sin hacer movimientos repentinos..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "¡Quédate lejos!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "Jodete, no." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&Levanta las manos." - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*suelta su arma." - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*suelta_su_arma." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "Ahora vete de aquí" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "Ahora sal de aquí, antes de que te mate." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "Vale, me voy." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "Hablando de ese trabajo..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "Hablando de esos trabajos que me dijiste..." - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "¿Qué pasa?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "No me importa." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "Entiendo." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "Ah, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "No importa, no estoy interesado." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "No importa." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "¡Lo haré!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "No estoy interesado." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "No es problema." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "¿Tienes algún consejo?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "¿Me puedes prestar algo de equipo?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "¡Vuelvo enseguida!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Suena bien, gracias. " - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Suena bien. ¡Adiós!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Lo lamento." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Como quieras. Adiós." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Bueno, em, perdón." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Lo lamento. Hice lo que pude." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "¡Claro, aquí tienes!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Gracias. " - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Gracias, adiós." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Bueno, supongo que solo quedamos nosotros." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "Por lo menos tenemos un refugio." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "¿Qué hacemos ahora?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "¿Algún consejo?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "¿Puedo hacer algo por ti?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "¿Quieres viajar conmigo?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "Vamos a intercambiar objetos." - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "No puedo salir del refugio sin equipamiento." - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "No sé, buscar suministros o a otros supervivientes, supongo." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -msgstr "Tal vez deberíamos empezar por poner tablas en las aberturas." - -#: 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 "" -"Supongo que conseguir un coche que funcione va a ser útil si tenemos que " -"salir rápido de aquí." - -#: 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 "" -"Podemos buscar una de esas granjas de por aquí. Nos pueden brindar mucha " -"comida y están alejadas de las ciudades." - -#: 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 "" -"Probablemente, deberíamos mantenernos lejos de esas ciudades, incluso aunque" -" haya un montón de cosas útiles ahí." - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "Hmm, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Hasta que no tenga algún antibiótico, no..." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Recién me preguntaste; preguntame de nuevo después." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "¿Por qué tendría que viajar contigo?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "Entendido. Voy a conseguir esos antibióticos." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "Bueno, bueno, pregunto más tarde." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "Te puedo mantener a salvo." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "Me puedes mantener a salvo." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "Somos amigos, ¿o no?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "Te mataré si no lo haces." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "¡No hay problema, estoy contigo!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "¡Estupendo!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "¡Bueno, vamos!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "No... no lo creo." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "¿Realmente te vas?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "Sí, estoy seguro. Chao." - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "Nah, te estaba tomando el pelo." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "¿Qué pasa?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "¿Cuánto más falta?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "Me gustaría guiar por un rato." - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "Hacete a un lado. Ahora yo soy el líder." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "Vamos." - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "Bueno. Ahora puedes guiarme." - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "Bieno. Algo más..." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "Bueno, vamos." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "Bueno, bueno." - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "¡No hay ninguna oportunidad, me van a dejar atrás!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "Bien." - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "Estoy de guardia." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "Necesito que vengas conmigo." - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "Nos vemos por ahí." - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "Realmente no me siento cómodo haciendo eso..." - -#: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." -msgstr "Te voy a dar un poco de espacio." - -#: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "Prefiero quedarme con eso para mí." - -#: lang/json/talk_topic_from_json.py -msgid "I understand..." -msgstr "Entiendo..." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "Bueno, aquí tienes." - -#: lang/json/talk_topic_from_json.py -msgid "Thank you!" -msgstr "¡Gracias!" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" -msgstr "¡Gracias! ¿Pero me puedes dar más?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" -msgstr "¡Gracias, nos vemos después!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." -msgstr "Bueno, bueno, perdón." - -#: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" -msgstr "¡En serio, dame alguna cosa!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." -msgstr "Bueno, está bien, chao." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "Bueno, comencemos." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good." -msgstr "Suena bien." - -#: lang/json/talk_topic_from_json.py -msgid "Okay. Lead the way." -msgstr "Bueno. Guiá el camino." - -#: lang/json/talk_topic_from_json.py -msgid "No, we'll be okay here." -msgstr "No, vamos a estar bien aquí." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, never mind." -msgstr "Pensandolo bien, olvidate." - -#: lang/json/talk_topic_from_json.py -msgid "Hello marshal." -msgstr "Hola, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "What is this place?" -msgstr "¿Qué es este lugar?" - -#: lang/json/talk_topic_from_json.py -msgid "Can I join you guys?" -msgstr "¿Puedo formar parte de su grupo?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can do for you?" -msgstr "¿Algo que pueda hacer por ustedes?" - -#: lang/json/talk_topic_from_json.py -msgid "See you later." -msgstr "Hasta luego." +msgid "See you later." +msgstr "Hasta luego." #: lang/json/talk_topic_from_json.py msgid "This is a refugee center that we've made into a sort of trading hub." @@ -115723,7 +117148,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nothing. Lets' get back to work." -msgstr "" +msgstr "Nada. Sigamos trabajando." #: lang/json/talk_topic_from_json.py msgid "" @@ -115738,11 +117163,11 @@ msgstr "Continua." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's go back to talking about camps." -msgstr "" +msgstr "No importa, sigamos hablando de los campamentos." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about something else." -msgstr "" +msgstr "No importa, hablemos de otra cosa." #: lang/json/talk_topic_from_json.py msgid "Forget it. Let's go." @@ -115814,7 +117239,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "We're abandoning this camp." -msgstr "" +msgstr "Vamos a abandonar este campamento." #: lang/json/talk_topic_from_json.py msgid "Hope you're here to trade." @@ -115919,7 +117344,7 @@ msgstr "Acerca de una de esas misiones..." #: lang/json/talk_topic_from_json.py msgid "Hello, marshal." -msgstr "" +msgstr "Hola, alguacil." #: lang/json/talk_topic_from_json.py msgid "Marshal, I'm afraid I can't talk now." @@ -116060,7 +117485,7 @@ msgstr "¿Necesitas ayuda?" #: lang/json/talk_topic_from_json.py msgid "I should be going" -msgstr "" +msgstr "Me tengo que ir" #: lang/json/talk_topic_from_json.py msgid "" @@ -116225,6 +117650,268 @@ msgstr "" "trabajo disponible. Completar misiones como contratista es una buena forma " "de hacerte conocido entre los hombres más poderosos que quedan en el mundo." +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "No." + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "¿Qué estás haciendo acá afuera?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "" @@ -116396,7 +118083,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$12000, 7d] 100 logs" -msgstr "" +msgstr "[$12000, 7d] 100 troncos" #: lang/json/talk_topic_from_json.py src/npctalk.cpp msgid "Maybe later." @@ -116532,6 +118219,10 @@ msgid "" "time..." msgstr "No sé qué puedes hacer. Yo probé de todo. Dame un poco de tiempo..." +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "OK." + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -116595,7 +118286,7 @@ msgstr "Voy a estar bien." #: lang/json/talk_topic_from_json.py msgid "That's the best I can do on short notice." -msgstr "" +msgstr "Eso es lo mejor que puedo hacer con poco tiempo." #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I don't have time to see you at the moment." @@ -116607,7 +118298,7 @@ msgstr "¿Podría conseguir tus servicios por el precio adecuado?" #: lang/json/talk_topic_from_json.py msgid "I imagine we might be able to work something out." -msgstr "" +msgstr "Me imagino que podemos llegar a encontrarle la vuelta." #: lang/json/talk_topic_from_json.py msgid "I was wondering if you could install a cybernetic implant..." @@ -116641,7 +118332,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Welcome to the junk shop." -msgstr "" +msgstr "Bienvenido al negocio de objetos usados." #: lang/json/talk_topic_from_json.py msgid "Let's see what you've managed to find." @@ -116664,7 +118355,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll think about it." -msgstr "" +msgstr "Voy a pensarlo." #: lang/json/talk_topic_from_json.py msgid "" @@ -116696,7 +118387,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let me see what you keep behind the counter." -msgstr "" +msgstr "Dejame ver qué guardás atrás del mostrador." #: lang/json/talk_topic_from_json.py msgid "What do you have on tap?" @@ -116735,7 +118426,7 @@ msgstr "Nuestra selección está un poco limitada en este momento." #: lang/json/talk_topic_from_json.py msgid "[$8] I'll take a beer" -msgstr "" +msgstr "[$8] Quiero una cerveza" #: lang/json/talk_topic_from_json.py msgid "[$10] I'll take a shot of brandy" @@ -116869,7 +118560,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What kind of news?" -msgstr "" +msgstr "¿Qué clase de noticias?" #: lang/json/talk_topic_from_json.py msgid "" @@ -116955,6 +118646,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -116999,6 +118698,66 @@ msgstr "" msgid "This an error! npc allies 2 test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "" @@ -117043,6 +118802,30 @@ msgstr "" msgid "This is a multi-effect response" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -117058,6 +118841,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -117075,6 +118866,149 @@ msgid "" "I'll ever know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "Bien, continua por favor." + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "Tengo que irme." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "Calibre 18, el perro. Comprendo." + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "¿Qué es lo que viste?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "Pero te lo pido por lo que más quieras, ¡POR FAVOR, callate la boca!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "¡Gracias por la historia!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -117086,6 +119020,10 @@ msgid "" "against a town in riot. Then things really got fucked up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "¿Qué ha pasado?" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -117161,6 +119099,349 @@ msgid "" " about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "Eso es un poco extraño." + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"Bueno, así que, a veces sueño que soy un zombi pero que no me doy cuenta. Y " +"actúo normal y veo zombis como personas normales y personas normales como si" +" fueran zombis. Cuando me despierto sé que fue falso porque si hubiera sido " +"real, habría muchas más personas normales. Porque serían zombis en realidad." +" Y todos son zombis ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "Me parece que ahora todos tenemos sueños así." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" +"Llegué hasta uno de esos refugios de evacuados, pero era casi peor " +"que lo que había dejado atrás. Me escapé de ahí y anduve de un lado para " +"otro." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "¿Cómo sobreviviste dando vueltas por ahí?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" +"Pasé mucho tiempo hurgando ruibarbo y pedazos de verduras en el bosque hasta" +" que me animé a empezar a buscar en los monstruos muertos. Había empezado a " +"desesperarme." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" + +#: 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 "" +"Bueno, disculpame si no me detuve a preguntar qué clase de insectos asesinos" +" eran, ." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "Esa es una historia para otro día. No me gusta pensar en eso." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Perdón por preguntar. " + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from" @@ -117174,6 +119455,135 @@ msgid "" " on the head with my tablet." msgstr "" +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "No importa. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "Qué bueno que encontraste tu vocación. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "¿Así que te fuiste a uno de los campamentos FEMA?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Esa es una historia interesante. " + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Esa es una historia interesante. " + #: lang/json/talk_topic_from_json.py msgid "" "I was at school. I'm a senior. We'd heard about riots... It started with " @@ -117248,6 +119658,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -117271,6 +119685,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -117324,6 +119746,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Gracias por decirme todo eso. " + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -117388,6 +119814,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Gracias por avisarme. " + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -117425,6 +119855,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "¿Qué pasó después?" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -117519,6 +119953,243 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "¿Y qué pasó cuando saliste?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Gracias por decirme todo eso. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"My wife made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My husband made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "Siento que hayas perdido a alguien." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -117570,10 +120241,497 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"Antes de ? ¿A quién le importa eso? Esto es un mundo nuevo, y" +" sí, está bastante . Pero es el que nos toca, así que no nos " +"quedemos en el pasado cuando deberías estar haciendo lo mejor que podemos " +"con lo poco que tenemos." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "¿Ella murió?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "¿Qué te ha pasado?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "¿Y qué pasó con tu refugio?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "¿Y pudiste llegar?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "Ey, me gustaría ver esos mapas." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Gracias por avisarme. " + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -117604,6 +120762,162 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "¿Y qué vas a hacer entonces?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"Voy a mantener la fe, y voy a seguir rezando, y voy a derrotar a los agentes" +" del Infierno cada vez que pueda. Eso es lo que tenemos que hacer, ¿no? " +"Supongo que seremos los humildes quienes poblaremos la Tierra. Aunque no me " +"gustan nuestras posibilidades." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -117729,6 +121043,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -117834,7 +121204,7 @@ msgstr "Bloquear" #. ~ Description for Block #: lang/json/technique_from_json.py msgid "Medium blocking ability" -msgstr "" +msgstr "Habilidad media de bloqueo" #: lang/json/technique_from_json.py #, python-format @@ -117853,7 +121223,7 @@ msgstr "Parada" #. ~ Description for Parry #: lang/json/technique_from_json.py msgid "High blocking ability" -msgstr "" +msgstr "Habilidad alta de bloqueo" #: lang/json/technique_from_json.py #, python-format @@ -117872,7 +121242,7 @@ msgstr "Escudar" #. ~ Description for Shield #: lang/json/technique_from_json.py msgid "Very high blocking ability" -msgstr "" +msgstr "Habilidad muy alta de bloqueo" #: lang/json/technique_from_json.py #, python-format @@ -117892,7 +121262,7 @@ msgstr "desarmar" #. ~ Description for Disarm #: lang/json/technique_from_json.py msgid "Unwield target's weapon" -msgstr "" +msgstr "Quitar arma de objetivo" #: lang/json/technique_from_json.py #, python-format @@ -117911,7 +121281,7 @@ msgstr "Golpe Giratorio" #. ~ Description for Spinning Strike #: lang/json/technique_from_json.py msgid "Attack adjacent enemies, crit only, min 4 melee" -msgstr "" +msgstr "Atacar enemigos adyacentes, solo crítico, mínimo 4 de cuerpo a cuerpo" #: lang/json/technique_from_json.py #, python-format @@ -117950,6 +121320,7 @@ msgstr "Golpe Empalador" #: lang/json/technique_from_json.py msgid "Attack target and another one behind it, crit only, min 4 melee" msgstr "" +"Atacar dos objetivos desde atrás, solo crítico, mínimo 4 de cuerpo a cuerpo" #: lang/json/technique_from_json.py #, python-format @@ -118006,7 +121377,7 @@ msgstr "Golpe Vorpal" #. ~ Description for Vorpal Strike #: lang/json/technique_from_json.py msgid "Cut damage multiply by 99, crit only" -msgstr "" +msgstr "Daño cortante multiplicado por 99, solo crítico" #: lang/json/technique_from_json.py #, python-format @@ -118020,6 +121391,8 @@ msgid "" "Snicker-snack! slices through %s like hot knife slices through " "butter" msgstr "" +"¡Snicker-snack! corta al %s como un cuchillo caliente corta la " +"manteca" #: lang/json/technique_from_json.py msgid "Wrap Attack" @@ -118028,7 +121401,7 @@ msgstr "" #. ~ Description for Wrap Attack #: lang/json/technique_from_json.py msgid "Stun 2 turns" -msgstr "" +msgstr "Aturdir 2 turnos" #: lang/json/technique_from_json.py #, python-format @@ -118066,7 +121439,7 @@ msgstr "Golpe Preciso" #. ~ Description for Precise Strike #: lang/json/technique_from_json.py msgid "Stun 2 turns, crit only" -msgstr "" +msgstr "Aturdir 2 turnos, solo crítico" #: lang/json/technique_from_json.py #, python-format @@ -118621,7 +121994,7 @@ msgstr "incapacitar" #: lang/json/technique_from_json.py #, python-format msgid "You ground %s with a low blow" -msgstr "" +msgstr "Dejás tirado al %s con un golpe bajo" #: lang/json/technique_from_json.py #, python-format @@ -118649,7 +122022,7 @@ msgstr "Brutalidad Silat" #: lang/json/technique_from_json.py #, python-format msgid "You send %s reeling backwards" -msgstr "" +msgstr "Mandás al %s dando vueltas hacia atrás" #: lang/json/technique_from_json.py msgid "Dirty Hit" @@ -118811,7 +122184,7 @@ msgstr "Serpentear" #: lang/json/technique_from_json.py msgid "You slither free" -msgstr "" +msgstr "Serpenteás y te liberás" #: lang/json/technique_from_json.py msgid " slithers free" @@ -118838,12 +122211,12 @@ msgstr "Derribo de Tigre" #: lang/json/technique_from_json.py #, python-format msgid "You grab and ground %s" -msgstr "" +msgstr "Agarrás y tirás al suelo al %s" #: lang/json/technique_from_json.py #, python-format msgid " grabs and grounds %s" -msgstr "" +msgstr " agarra y tira al suelo al %s" #: lang/json/technique_from_json.py msgid "Leopard Fist" @@ -118894,7 +122267,7 @@ msgstr "Agarre de Dragón" #: lang/json/technique_from_json.py #, python-format msgid "You grab and knee %s" -msgstr "" +msgstr "Agarrás y le pegás un rodillazo al %s" #: lang/json/technique_from_json.py #, python-format @@ -118922,7 +122295,7 @@ msgstr "Barrida de Dragón" #: lang/json/technique_from_json.py #, python-format msgid "You low-roundhouse %s 's legs" -msgstr "" +msgstr "Le das una patada giratoria al %s en las piernas" #: lang/json/technique_from_json.py #, python-format @@ -118949,7 +122322,7 @@ msgstr "Ala de Grulla" #: lang/json/technique_from_json.py msgid "You raise your arms intimidatingly" -msgstr "" +msgstr "Levantás tus brazos de manera intimidatoria" #: lang/json/technique_from_json.py msgid " performs the Crane Wing" @@ -118965,7 +122338,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid " flaps free" -msgstr "" +msgstr " aletea y se libera" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -119002,7 +122375,7 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid " catches %s, and counters" -msgstr "" +msgstr " atrapa el ataque del %s, y contrataca" #: lang/json/technique_from_json.py msgid "Trip" @@ -119072,7 +122445,7 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid " strikes %s's weaknesses" -msgstr "" +msgstr " golpea los puntos débiles del/a %s" #: lang/json/technique_from_json.py msgid "slow strike" @@ -119102,6 +122475,44 @@ msgstr "Le das un golpe de fase %s" msgid " phase-strikes %s" msgstr " le da un golpe de fase %s" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "desviar y contraatacar" @@ -119210,6 +122621,8 @@ msgid "" "Half of a brick wall, looks like it still requires some more resources and " "effort before being considered a real wall." msgstr "" +"Es la mitad de una pared de ladrillos, todavía le faltan materiales y " +"esfuerzo para poder ser considerada seriamente una pared." #: lang/json/terrain_from_json.py msgid "bash!" @@ -119225,6 +122638,9 @@ msgid "" "A solid brick wall, sturdy enough to support a roof with enough walls and " "keep out any unwanted visitors." msgstr "" +"Es una sólida pared de ladrillos, lo suficientemente resistente como para " +"aguantar un techo con más paredes y mantener afuera a los visitantes " +"indeseados." #: lang/json/terrain_from_json.py msgid "simple metal wall" @@ -119247,6 +122663,8 @@ msgid "" "A partially built makeshift wall of metal that could potentially support a " "roof if it were completed." msgstr "" +"Es una pared improvisada de metal a medio construir, que podría soportar un " +"techo si estuviera terminada." #: lang/json/terrain_from_json.py msgid "simple concrete wall" @@ -119397,6 +122815,8 @@ msgid "" "It's dirt. Looks like some fine soil for tillage. Could also be dug out " "for construction projects." msgstr "" +"Es tierra. Parece que es de buena calidad como para cultivar. También puede " +"ser quitada para usar en alguna construcción." #: lang/json/terrain_from_json.py msgid "thump" @@ -119408,6 +122828,8 @@ msgid "" "A large area of fine sand that could be useful in a number of ways, if it " "was extracted properly." msgstr "" +"Es un área grande con arena que podría utilizarse de varias maneras, si se " +"la extrae de manera apropiada." #: lang/json/terrain_from_json.py msgid "clay" @@ -119438,6 +122860,8 @@ msgstr "" msgid "" "A giant hill of dirt that looks like you could crawl inside for shelter." msgstr "" +"Es una pilla gigante de tierra en la que parece que podrías meterte para " +"usar de refugio." #: lang/json/terrain_from_json.py msgid "shallow pit" @@ -119473,6 +122897,9 @@ 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 "" +"Es una zanja gigante llena de cadáveres, tal vez alguna especie de " +"cementerio. Los cuerpos podrían ser sacados, pero ninguno parece ni " +"remotamente útil para algo." #: lang/json/terrain_from_json.py msgid "covered pit" @@ -119495,6 +122922,8 @@ msgid "" "A narrow trench full of very pointy things that would easily puncture a " "body." msgstr "" +"Es una zanja angosta llena de cosas muy puntiagudas que fácilmente podrían " +"herir el cuerpo." #: lang/json/terrain_from_json.py msgid "covered spiked pit" @@ -119507,6 +122936,9 @@ msgid "" "to allow someone or something to cross safely. The two by four could be " "removed to revert it back into a trap." msgstr "" +"Con lanzas afiladas amenazando desde el fondo, este pozo tiene una tabla de " +"madera para poder cruzarlo. Peor se puede sacara la tabla para convertirlo " +"en una trampa." #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "glass pit" @@ -119518,6 +122950,8 @@ 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 tiraron un montón de vidrios rotos en este pozo, tal vez no sea " +"fatal caer en él, pero estaría bueno tener que salir de ahí." #: lang/json/terrain_from_json.py msgid "covered glass pit" @@ -119530,6 +122964,9 @@ msgid "" "full of large glass shards. The wooden board could be removed so it " "couldn't be safely crossed." msgstr "" +"Una tabla de madera se puso cuidadosamente sobre este pozo lleno de grandes " +"pedazos de vidrios. La tabla puede ser sacada así no se puede cruzar " +"fácilmente." #: lang/json/terrain_from_json.py msgid "rock floor" @@ -119780,7 +123217,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "half-built log wall" -msgstr "" +msgstr "pared de troncos a medio construir" #. ~ Description for half-built log wall #: lang/json/terrain_from_json.py @@ -119788,6 +123225,9 @@ 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 "" +"Es una pared a medio construir hecha de troncos dentados que se " +"interconectan para crear estabilidad. Necesita algunos troncos más para " +"poder soportar un techo. Parece inflamable." #: lang/json/terrain_from_json.py msgid "log wall" @@ -119810,6 +123250,8 @@ msgid "" "A moderately damaged wall, could probably be patched up with some planks and" " nails." msgstr "" +"Es una pared un tanto dañada, que podría repararse con algunas tablas y " +"clavos." #: lang/json/terrain_from_json.py msgid "broken log wall" @@ -119864,6 +123306,9 @@ msgid "" "provide proper support. It requires some more two by fours and nails before" " it'd be considered a suitable wall." msgstr "" +"Es una pared incompleta de madera refinada, llena de clavos cuidadosamente " +"ubicados para brindar el soporte necesario. Necesita algunas tablas y clavos" +" más antes de ser considerada una pared entera." #: lang/json/terrain_from_json.py msgid "wooden wall" @@ -119948,6 +123393,9 @@ msgid "" "fragile. Some contain glass break sensors or window sensors that trigger if" " the glass is tampered." msgstr "" +"Es una barrera hecha de vidrio, nada complicado, y parece extremadamente " +"frágil. Algunos contienen sensores de rotura de vidrio o sensores de " +"ventanas que se activan si se manipula el vidrio." #: lang/json/terrain_from_json.py msgid "reinforced glass" @@ -119960,6 +123408,9 @@ msgid "" "strengthening the structural properties. Still weaker than other types of " "walls, and not made to support a roof either." msgstr "" +"Es un panel grueso de vidrio con delgados cables metálicos entretejidos, lo " +"que hacen la estructura más fuerte. Igual es más débil que otro tipo de " +"pared, y no puede soportar un techo." #: lang/json/terrain_from_json.py msgid "reinforced glass with closed shutters" @@ -120099,6 +123550,9 @@ msgid "" " fours for reinforcement. It might be barricaded, but still susceptible to " "fire." msgstr "" +"Es igual a otras puertas de madera, pero esta tiene unas capas de tablas " +"clavadas para reforzarla. Puede ser barricada, pero igual es susceptible al " +"fuego." #: lang/json/terrain_from_json.py msgid "damaged reinforced wood door" @@ -120130,6 +123584,9 @@ msgid "" " easily, too. This one has an extra keyhole, so it's likely locked. You " "could pry it open or pick the lock." msgstr "" +"Es una puerta común de madera que no parece muy resistente. Y probablemente," +" se prenda fuego fácil, también. Esta tiene otra cerradura más, así que más " +"que seguro que está cerrada. Podrías intentar forzar la cerradura." #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -120138,6 +123595,10 @@ 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 "" +"Es una puerta común de madera que no parece muy resistente. Y probablemente," +" se prenda fuego fácil, también. Esta tiene una cerradura de seguridad, así " +"que debe estar cerrada. Podrías intentar abrirla o forzar la cerradura, o " +"abrir la cerradura de seguridad desde adentro." #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -120158,6 +123619,8 @@ msgid "" "Repurposed curtains from a window acting as a door. Could be easily taken " "down for supplies or placed somewhere else." msgstr "" +"Son cortinas reutilizadas de una ventana que funcionan como una puerta. " +"Podría ser desarmada fácilmente o reubicada." #: lang/json/terrain_from_json.py msgid "closed makeshift door" @@ -120186,6 +123649,9 @@ msgid "" "down for supplies or placed somewhere else. These curtains are open, " "bundled and tied next to the doorway." msgstr "" +"Son cortinas reutilizadas de una ventana que funcionan como una puerta. " +"Podría ser desarmada fácilmente o reubicada. Estas están abiertas, atadas al" +" lado de la entrada." #: lang/json/terrain_from_json.py msgid "open makeshift door" @@ -120232,6 +123698,8 @@ msgid "" "An empty window frame constructed from assembled metal and carefully braced " "with various hardware." msgstr "" +"Es un marco de ventana vacío construido con metales ensamblados y " +"cuidadosamente apuntalados." #: lang/json/terrain_from_json.py msgid "locked wire gate" @@ -120273,6 +123741,8 @@ msgstr "verja de alambre cerrada" #: lang/json/terrain_from_json.py msgid "A gate for a chain link fence with a latch system to stay closed." msgstr "" +"Es la puerta de una verja de alambre con un sistema de cerrojos para " +"mantenerla cerrada." #: lang/json/terrain_from_json.py msgid "open wire gate" @@ -120284,6 +123754,8 @@ 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 "" +"Es la puerta de una verja de alambre con un sistema de cerrojos para " +"mantenerla cerrada. El pestillo no está terminado, así que se abre." #: lang/json/terrain_from_json.py msgid "boarded up door" @@ -120295,6 +123767,8 @@ 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 "" +"Es una puerta común de madera con varias tablas atravesadas y clavadas para " +"reforzara y aumentar su durabilidad. Igual, sigue siendo inflamable." #: lang/json/terrain_from_json.py msgid "boarded up damaged door" @@ -120306,6 +123780,8 @@ 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 "" +"Es una puerta de madera reforzada con tablas, excepto las que están rotas o " +"medio sueltas. Si no se repara, podría romperse fácilmente." #: lang/json/terrain_from_json.py msgid "boarded up door with peephole" @@ -120330,6 +123806,9 @@ msgid "" "boarded up with more wood to prevent it from opening. Still susceptible to " "fire." msgstr "" +"Es un puerta con un refuerzo adicional de dos capas de tablas de madera que " +"se han clavado para que no se pueda abrir. Igual, sigue siendo susceptible " +"al fuego." #: lang/json/terrain_from_json.py msgid "boarded up damaged reinforced door" @@ -120342,6 +123821,9 @@ msgid "" "The boarded up two by fours are fragmented and in pieces, this doesn't look " "like an easy repair." msgstr "" +"Es una puerta reforzada bastante golpeada y rota, con tablas de madera " +"sobresaliendo. Las tablas están rotas en varias partes y no parece que fuera" +" fácil repararla." #: lang/json/terrain_from_json.py msgid "boarded up damaged door with peephole" @@ -120409,6 +123891,10 @@ msgid "" " anything. Typically used in conjunction with automated electronic locking " "mechanisms that require an external source to unlock." msgstr "" +"Es una puerta de acero galvanizado, forjada para soportar cualquier castigo " +"y impedir el paso de todo. Comúnmente se utiliza en conjunto con un " +"mecanismo de cerradura electrónica que requieren un elemento externo para " +"poder abrirse." #. ~ Description for closed metal door #: lang/json/terrain_from_json.py @@ -120505,6 +123991,9 @@ msgid "" "A hydraulic compactor that can accept items made of various metals, and " "press them into basic shapes, ready for further crafting." msgstr "" +"Es una compactadora hidráulica que permite meter diversos metales para " +"apretarlos hasta formar diferentes formas, que pueden ser usadas en " +"fabricaciones." #: lang/json/terrain_from_json.py msgid "window" @@ -120527,6 +124016,8 @@ msgid "" "Duct tape covers this window, blocking sunlight and visibility. You could " "remove the duct tape by cutting it off." msgstr "" +"Esta ventana esta tapada con cinta adhesiva, lo que bloquea la visibilidad y" +" la luz solar. Podrías sacar la cinta adhesiva cortándola." #: lang/json/terrain_from_json.py msgid "window with curtains" @@ -120618,6 +124109,9 @@ msgid "" "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 "" +"Es un marco de ventana vacío, hecho con tablas de madera y clavos. Podrías " +"ponerle un vidrio, o taparla con tablas por seguridad. También podrías " +"convertirla en pared si te tomás el tiempo de construirla." #: lang/json/terrain_from_json.py msgid "window frame" @@ -120666,6 +124160,9 @@ msgid "" "glass to block vision. Adding a few spikes and metal plating would further " "increase its durability." msgstr "" +"Es una ventana de vidrio muy fortificada, con tablas de madera ubicadas " +"cuidadosamente en el vidrio para bloquear la visibilidad. Si le agregás unas" +" púas y unas placas de metal, podrías incrementar su durabilidad." #. ~ Description for reinforced boarded up window #: lang/json/terrain_from_json.py @@ -120674,6 +124171,9 @@ msgid "" "frame to block vision. Adding a few spikes and metal plating would further " "increase its durability." msgstr "" +"Es una ventana muy fortificada, con tablas de madera ubicadas cuidadosamente" +" en el marco para bloquear la visibilidad. Si le agregás unas púas y unas " +"placas de metal podrías incrementar su durabilidad." #: lang/json/terrain_from_json.py msgid "armored boarded up window" @@ -120706,6 +124206,9 @@ msgid "" "making it impossible to crawl through. Typically installed for high-value " "stores, or at least stores in bad neighborhoods." msgstr "" +"Es una placa gigante de vidrio insertada en la ventana con una reja gruesa " +"de seguridad, lo que hace imposible pasar por ahí. Comúnmente se la " +"encuentra instalada en negocios grandes, o negocios en barrios complicados." #: lang/json/terrain_from_json.py msgid "window with metal bars" @@ -120763,6 +124266,8 @@ msgid "" "A block of stone that's been smoothed and shaped, commonly granite or marble" " for funerary chapels and mausoleums." msgstr "" +"Es un bloque de piedra que ha sido alisada, usualmente de granito o mármol " +"para usar en capillas y mausoleos." #: lang/json/terrain_from_json.py msgid "odd fault" @@ -120862,6 +124367,8 @@ msgid "" "A stubby tree belonging to the 'Corylus' genus. You could cut it down with " "the right tools." msgstr "" +"Es un enorme árbol perteneciente al género 'Corylus'. Podrías talarlo con " +"las herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "oak tree" @@ -120875,6 +124382,10 @@ msgid "" "the squirrels haven't gotten yet. You could cut it down with the right " "tools." msgstr "" +"Es un enorme árbol de hojas marchitas que pertenece al género 'Quercus', " +"comúnmente visto por toda la región de New England. Si lo mirás de cerca " +"puedes ver que tiene algunas bellotas que las ardillas no agarraron. Podrías" +" talarlo con las herramientas adecuadas." #. ~ Description for oak tree #: lang/json/terrain_from_json.py @@ -120896,7 +124407,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "elm tree" -msgstr "" +msgstr "olmo" #. ~ Description for elm tree #: lang/json/terrain_from_json.py @@ -120904,6 +124415,8 @@ 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 "" +"Es un gran árbol perteneciente al género 'Ulmus', comúnmente visto por toda " +"la región de New England. Podrías talarlo con las herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "dead tree" @@ -120947,6 +124460,9 @@ msgid "" "as apples. There doesn't appear to be any ripe apples now. You could also " "cut it down with the right tools." msgstr "" +"Este árbol pertenece al género 'Malus', produce la fruta conocida comúnmente" +" como manzana. Aunque no parece tener ninguna madura en este momento. " +"También podrías talarlo con las herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "pear tree" @@ -120960,6 +124476,9 @@ msgid "" "probably find a few mature ones. You could also cut it down with the right " "tools." msgstr "" +"Esto es un 'Pyrus communis' o peral, que produce peras durante el otoño. Si " +"examinás las ramas de cerca, probablemente encuentres algunas maduras. " +"También podrías talarlo con las herramientas adecuadas." #. ~ Description for pear tree #: lang/json/terrain_from_json.py @@ -121003,6 +124522,9 @@ msgid "" " probably find some viable clusters. You could also cut it down with the " "right tools." msgstr "" +"Es una de las varias especies de 'Prunus' encontrados en New England, en " +"verano tiene cerezas. 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 cherry tree #: lang/json/terrain_from_json.py @@ -121114,6 +124636,9 @@ 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 "" +"Este árbol pertenece al género 'Sambucus', produce la fruta conocida " +"comúnmente como baya del saúco. Aunque no parece tener ninguna madura en " +"este momento. También podrías talarlo con las herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "pine tree" @@ -121128,6 +124653,11 @@ msgid "" "and unharvested pinecones. Also, you could cut it down with the right " "tools." msgstr "" +"Es un árbol conífero alto que pertenece al género 'Prunus', de alguna de las" +" variedades de New England como la 'P. strobus', 'P. resinosa' y 'P. " +"rigida'. Si examinás el árbol más de cerca, podrías encontrar algunas " +"espinas pegajosas y piñas. También podrías talarlo con las herramientas " +"adecuadas." #: lang/json/terrain_from_json.py msgid "dead pine tree" @@ -121205,6 +124735,8 @@ msgid "" "Small plants and shrubs that decorate the forest. An observant forager " "could obtain edible plants, acorns, eggs, and mushrooms from it." msgstr "" +"Son pequeñas plantas y arbustos que decoran el bosque. Un buscador de comida" +" avezado puede obtener plantas comestibles, bellotas, huevos y hongos ahí." #: lang/json/terrain_from_json.py msgid "brush." @@ -121258,7 +124790,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "blackberry bush" -msgstr "" +msgstr "arbusto de zarzamoras" #. ~ Description for blackberry bush #: lang/json/terrain_from_json.py @@ -121292,6 +124824,8 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "A small bush of delicious raspberries. Watch out for its thorns!" msgstr "" +"Es un pequeño arbusto de deliciosas frambuesas. Tené cuidado con las " +"espinas." #. ~ Description for raspberry bush #: lang/json/terrain_from_json.py @@ -121312,6 +124846,8 @@ msgstr "" msgid "" "A bush of a different species invaded by grape vines but they're fruitless." msgstr "" +"Es un arbusto de diferente especie invadido por la vid de la uva pero sin " +"frutos." #: lang/json/terrain_from_json.py msgid "rose bush" @@ -121332,21 +124868,21 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "hydrangea bush" -msgstr "" +msgstr "arbusto de hortensia" #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat, bush of fragrant blue hydrangeas." -msgstr "" +msgstr "Es un arbusto gordo de aromáticas hortensias azules." #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat hydrangea bush that currently has no blooms." -msgstr "" +msgstr "Es un arbusto gordo de hortensias pero sin flores." #: lang/json/terrain_from_json.py msgid "lilac bush" -msgstr "" +msgstr "arbusto de lilas" #. ~ Description for lilac bush #: lang/json/terrain_from_json.py @@ -121356,7 +124892,7 @@ msgstr "" #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide lilac bush that currently has no blooms." -msgstr "" +msgstr "Es un arbusto ancho de lilas pero sin flores." #: lang/json/terrain_from_json.py msgid "tree trunk" @@ -121364,7 +124900,7 @@ msgstr "tocón" #: lang/json/terrain_from_json.py msgid "tree stump" -msgstr "" +msgstr "tocón" #: lang/json/terrain_from_json.py msgid "root wall" @@ -121388,6 +124924,8 @@ msgid "" "A barrier made of wood, it's nothing complicated. Mildly suggests where not" " to go." msgstr "" +"Es una barrera hecha de madera, nada muy complicado que digamos. Sugiere " +"tibiamente por dónde no habría que pasar." #: lang/json/terrain_from_json.py msgid "chain link fence" @@ -121408,6 +124946,8 @@ msgstr "poste de metal" #: lang/json/terrain_from_json.py msgid "Set of metal posts, that can hold more serious fences." msgstr "" +"Es un conjunto de postes de metal, que pueden sostener unas cercas más " +"serias." #: lang/json/terrain_from_json.py msgid "fence post" @@ -121430,6 +124970,8 @@ msgid "" "A barrier made of wire, it's nothing complicated. Mildly suggests where not" " to go." msgstr "" +"Es una barrera hecha de alambre, nada muy complicado que digamos. Sugiere " +"tibiamente por dónde no habría que pasar." #: lang/json/terrain_from_json.py msgid "barbed wire fence" @@ -121611,6 +125153,8 @@ msgstr "" msgid "" "A system of ropes and pulleys that allows to pull up heavy doors or gates." msgstr "" +"Es un sistema de sogas y poleas que te permite subir puertas o verjas " +"pesadas." #: lang/json/terrain_from_json.py msgid "sewage pipe" @@ -121869,6 +125413,8 @@ msgid "" "Deep well collecting ground water. Installed water pump allowes to draw " "water from it." msgstr "" +"Es un pozo profundo usado para recolectar agua subterránea. Tiene instalada " +"una bomba que permite sacar el agua de ahí." #: lang/json/terrain_from_json.py msgid "improvised shelter" @@ -122038,7 +125584,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "gravel" -msgstr "" +msgstr "gravilla" #. ~ Description for gravel #: lang/json/terrain_from_json.py @@ -122058,7 +125604,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "painted waxed floor" -msgstr "" +msgstr "suelo pintado encerado" #: lang/json/terrain_from_json.py msgid "buffer stop" @@ -122366,6 +125912,26 @@ msgstr "" #: lang/json/tool_quality_from_json.py msgid "bullet pulling" +msgstr "Extraer bala" + +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" msgstr "" #: lang/json/trap_from_json.py @@ -123097,7 +126663,7 @@ msgstr "Policía SUV" #: lang/json/vehicle_from_json.py msgid "Police K9 Transport" -msgstr "" +msgstr "Transporte de K9 de Policía" #: lang/json/vehicle_from_json.py msgid "SWAT Truck" @@ -123105,7 +126671,7 @@ msgstr "Camión de SWAT" #: lang/json/vehicle_from_json.py msgid "Primitive Tractor" -msgstr "" +msgstr "Tractor Primitivo" #: lang/json/vehicle_from_json.py msgid "Automatic Tractor" @@ -123153,7 +126719,7 @@ msgstr "Camión Militar" #: lang/json/vehicle_from_json.py msgid "Engine Test" -msgstr "" +msgstr "Prueba de Motor" #: lang/json/vehicle_from_json.py msgid "Rapid Destruction" @@ -123169,7 +126735,7 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Reactor test" -msgstr "" +msgstr "Prueba de reactor" #: lang/json/vehicle_from_json.py msgid "Solar test" @@ -123177,7 +126743,7 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Passenger Car" -msgstr "" +msgstr "Vagón de Pasajeros" #: lang/json/vehicle_from_json.py msgid "Flatbed Truck" @@ -123283,6 +126849,18 @@ msgstr "personalizad_vacío" msgid "canoe" msgstr "canoa" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "" @@ -123305,7 +126883,7 @@ msgstr "Taxi Robótico" #: lang/json/vehicle_from_json.py msgid "Armored Robot Carrier" -msgstr "" +msgstr "Transporte Blindado de Robots" #: lang/json/vehicle_from_json.py msgid "Atomic Mini-Tank" @@ -123391,7 +126969,7 @@ msgstr "asiento plegable" #. ~ Description for foldable seat #: lang/json/vehicle_part_from_json.py msgid "A crude seat, too uncomfortable to sleep in." -msgstr "" +msgstr "Es un asiento simple, demasiado incómodo para dormir encima." #. ~ Description for bed #: lang/json/vehicle_part_from_json.py @@ -123465,7 +127043,7 @@ msgstr "techo reforzado" #. ~ Description for heavy duty roof #: lang/json/vehicle_part_from_json.py msgid "A thick metal roof." -msgstr "" +msgstr "Es un techo de metal grueso." #: lang/json/vehicle_part_from_json.py msgid "door" @@ -123487,6 +127065,8 @@ msgstr "puerta opaca" msgid "" "A door. Solid construction means you can't see through it when closed." msgstr "" +"Es una puerta. Su construcción sólida no te permite ver al otro lado cuando " +"está cerrada." #: lang/json/vehicle_part_from_json.py msgid "heavy duty door" @@ -123497,6 +127077,8 @@ msgstr "puerta reforzada" msgid "" "A strong door. Has a window so you can see out of it, even when closed." msgstr "" +"Es una puerta resistente. Tiene una ventana para poder ver para afuera " +"aunque esté cerrada." #: lang/json/vehicle_part_from_json.py msgid "heavy duty opaque door" @@ -123521,6 +127103,8 @@ msgid "" "An interior door. Solid construction means you can't see through it when " "closed." msgstr "" +"Es una puerta interior. Su construcción sólida no te permite ver al otro " +"lado cuando está cerrada." #: lang/json/vehicle_part_from_json.py msgid "hatch" @@ -123530,6 +127114,8 @@ msgstr "escotilla" #: lang/json/vehicle_part_from_json.py msgid "A strong door. A window lets you see through it when closed." msgstr "" +"Es una puerta resistente. Una ventana te permite ver al otro lado cuando " +"está cerrada." #: lang/json/vehicle_part_from_json.py msgid "opaque hatch" @@ -123554,6 +127140,8 @@ msgid "" "A very strong door. Solid construction means you can't see through it when " "closed." msgstr "" +"Es una puerta muy resistente. Su construcción sólida no te permite ver al " +"otro lado cuando está cerrada." #: lang/json/vehicle_part_from_json.py msgid "windshield" @@ -123567,7 +127155,7 @@ msgstr "" #. ~ Description for blade #: lang/json/vehicle_part_from_json.py msgid "A blade, welded to the vehicle, for cutting up zombies." -msgstr "" +msgstr "Es una cuchilla soldada al vehículo... para cortar zombis." #. ~ Description for spike #: lang/json/vehicle_part_from_json.py @@ -123575,6 +127163,8 @@ msgid "" "A metal spike, welded to the vehicle, to increase injury when crashing into " "things." msgstr "" +"Es una púa de metal soldada al vehículo, para incrementar el daño causado " +"cuando choca contra algo." #: lang/json/vehicle_part_from_json.py msgid "swappable storage battery case" @@ -123600,6 +127190,8 @@ msgid "" "A small nuclear reactor. When loaded with plutonium cells and turned on, " "will generate a lot of electrical power." msgstr "" +"Es un pequeño reactor nuclear. Cuando está cargado con celdas de plutonio y " +"es encendido, generará mucha energía eléctrica." #. ~ Description for minifridge #: lang/json/vehicle_part_from_json.py @@ -123663,12 +127255,12 @@ msgstr "controles" #. ~ Description for controls #: lang/json/vehicle_part_from_json.py msgid "A steering wheel and accelerator and brake pedals." -msgstr "" +msgstr "Es un volante y pedales para acelerar y frenar." #. ~ Description for dashboard #: lang/json/vehicle_part_from_json.py msgid "A frame containing some lights and controls." -msgstr "" +msgstr "Es una estructura que contiene controles y luces." #. ~ Description for electronics control unit #: lang/json/vehicle_part_from_json.py @@ -123719,7 +127311,7 @@ msgstr "cortina" #. ~ Description for curtain #: lang/json/vehicle_part_from_json.py msgid "A sheet over a window." -msgstr "" +msgstr "Es una cortina sobre una ventana." #: lang/json/vehicle_part_from_json.py msgid "aisle curtain" @@ -123736,6 +127328,8 @@ 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 "" +"Es un panel solar. Cargará lentamente la energía eléctrica del vehículo " +"cuando está expuesto al sol. Las nubes harán aún más lenta la recarga." #. ~ Description for reinforced solar panel #: lang/json/vehicle_part_from_json.py @@ -123784,6 +127378,8 @@ msgstr "cocina" msgid "" "A small but complete kitchen unit, powered from the vehicle's batteries." msgstr "" +"Es una unidad de cocina pequeña pero completa, alimentada por las baterías " +"del vehículo." #: lang/json/vehicle_part_from_json.py msgid "welding rig" @@ -123859,7 +127455,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "military composite armor plating" -msgstr "" +msgstr "chapas blindadas de compuesto militar" #: lang/json/vehicle_part_from_json.py msgid "reinforced windshield" @@ -123929,6 +127525,7 @@ msgstr "puerta corrediza" #: lang/json/vehicle_part_from_json.py msgid "A door. A window lets you see through it when closed." msgstr "" +"Es una puerta. Una ventana te permite ver al otro lado cuando está cerrada." #: lang/json/vehicle_part_from_json.py msgid "cargo space" @@ -123965,6 +127562,8 @@ msgid "" "A recharger for UPS devices. When turned on, it charges any UPS devices in " "the cargo space." msgstr "" +"Es un cargador para dispositivos UPS. Cuando está encendido, cargará " +"cualquier UPS que está en el compartimiento." #: lang/json/vehicle_part_from_json.py msgid "wing mirror" @@ -123992,6 +127591,8 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "A stereo system. When turned on, it plays music, improving your mood." msgstr "" +"Es un sistema estéreo. Cuando está encendido reproduce música, mejorando tu " +"humor." #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp msgid "chimes" @@ -124080,6 +127681,9 @@ msgid "" "it will allow you to remotely open the door or curtain from the vehicle " "controls." msgstr "" +"Es un pequeño motor eléctrico. Instalado en la misma estructura que una " +"puerta o cortina, te permite controlar su apertura de manera remota desde " +"los controles del vehículo." #. ~ Description for drive by wire controls #: lang/json/vehicle_part_from_json.py @@ -124172,6 +127776,11 @@ msgid "" "any plows on the vehicle, and any wheels should be placed so they won't run " "over the plants." msgstr "" +"Es una sembradora. Usá los controles del vehículo para activarla o " +"desactivarla. Podés examinarla para cargarla con semillas. Cuando está " +"activa, dejará caer las semillas a medida que el vehículo avanza, o las " +"plantará en tierra arada. Debería estar ubicado atrás del arado, y las " +"ruedas deben estar puestas de manera que no pasen por encima de las plantas." #. ~ Description for reaper #: lang/json/vehicle_part_from_json.py @@ -124228,6 +127837,8 @@ msgid "" "A system of springs and pads, intended to cushion the effects of collisions " "on the interior of your vehicle." msgstr "" +"Es un sistema de resortes y almohadillas, con la intención de amortiguar los" +" efectos de las colisiones en el interior del vehículo." #. ~ Description for car battery #. ~ Description for storage battery @@ -124307,7 +127918,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty stow board" -msgstr "" +msgstr "panel con bolsillo resistente" #: lang/json/vehicle_part_from_json.py msgid "heavy duty board" @@ -124330,6 +127941,8 @@ msgid "" "A half-height strong metal wall. Keeps zombies outside the vehicle but " "allows people to see over it." msgstr "" +"Es media pared fuerte de metal. Mantiene a los zombis afuera del vehículo " +"pero permite que la gente vea por sobre ella." #: lang/json/vehicle_part_from_json.py msgid "wooden board" @@ -124341,6 +127954,8 @@ msgid "" "A wooden wall. Keeps zombies outside the vehicle and prevents people from " "seeing through it." msgstr "" +"Es una pared de madera. Mantiene a los zombis afuera del vehículo y evita " +"que la gente vea a través de ella." #: lang/json/vehicle_part_from_json.py msgid "wooden quarterpanel" @@ -124414,6 +128029,8 @@ msgid "" "A closed cycle, external combustion steam engine. Burns coal or charcoal " "from a bunker in the vehicle to produce steam." msgstr "" +"Es un motor de vapor de combustión externa, con ciclo cerrado. Quema carbón " +"o carbón vegetal de la carbonera del vehículo para producir vapor." #: lang/json/vehicle_part_from_json.py msgid "boom crane" @@ -124433,7 +128050,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "internal boom crane" -msgstr "" +msgstr "brazo interno de grúa" #: lang/json/vehicle_part_from_json.py msgid "telescopic crane" @@ -124520,6 +128137,9 @@ 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 "" +"Es una estructura de metal. Se pueden poner otras partes del vehículo en " +"ella, y puede ser unida a otras estructuras para incrementar el tamaño del " +"vehículo." #. ~ Description for wooden frame #: lang/json/vehicle_part_from_json.py @@ -124546,6 +128166,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 "" +"Es una estructura de metal resistente. Se pueden poner otras partes del " +"vehículo en ella, y puede ser unida a otras estructuras para incrementar el " +"tamaño del vehículo. Al incrementar la masa se vuelve más resistente al daño" +" durante las colisiones." #: lang/json/vehicle_part_from_json.py msgid "extra light frame" @@ -124568,6 +128192,9 @@ 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 "" +"Es una luz brillante, autoalimentada por una reacción atómica radiactiva que" +" nunca para. Cuando está encendida, ilumina varios espacios adentro del " +"vehículo." #. ~ Description for atomic nightlight #: lang/json/vehicle_part_from_json.py @@ -124580,8 +128207,16 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -124597,12 +128232,28 @@ msgid "" "the front." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " "vehicle's roof. Flashes between red and blue when turned on, attracting " "attention without illuminating the area." msgstr "" +"Son luces de emergencia, como las de una patrulla o una ambulancia, puestas " +"en el techo del vehículo. Destellan entre el rojo y el azul cuando están " +"encendidas, atrayendo la atención sin iluminar el área." #: lang/json/vehicle_part_from_json.py msgid "blue light" @@ -124637,6 +128288,9 @@ 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 "" +"Es un conjunto de ruedas como los de una silla de rueda. Si están puestos en" +" el mismo espacio que un asiento, te permitirán mover el vehículo con tu " +"esfuerzo (resistencia)." #. ~ Description for electric motor #: lang/json/vehicle_part_from_json.py @@ -124750,6 +128404,9 @@ msgid "" "fuel for the vehicle's engine, the engine will automatically draw fuel from " "the tank when the engine is on." msgstr "" +"Es un espacio de almacenamiento para combustible sólido. Si se lo llena con " +"el combustible apropiado para el motor del vehículo, el motor lo usará " +"automáticamente cuando está encendido." #: lang/json/vehicle_part_from_json.py msgid "mounted flamethrower" @@ -124829,7 +128486,7 @@ msgstr "rueda (maniobrable)" #. ~ Description for armored wheel #: lang/json/vehicle_part_from_json.py msgid "A very strong, armored metal wheel." -msgstr "" +msgstr "Es una rueda muy fuerte y blindada de metal." #: lang/json/vehicle_part_from_json.py msgid "armored wheel (steerable)" @@ -124903,6 +128560,36 @@ msgstr "rueda ancha (maniobrable)" msgid "A wooden wheel." msgstr "Una rueda de madera." +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "palas manuales" @@ -124933,7 +128620,7 @@ msgstr "subfusil ligero montado" #: lang/json/vehicle_part_from_json.py msgid "mounted heavy machine gun" -msgstr "" +msgstr "ametralladora pesada montada" #: lang/json/vehicle_part_from_json.py msgid "mounted minigun" @@ -126130,6 +129817,8 @@ msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" " in the vehicle to produce steam." msgstr "" +"Es una turbina de vapor de combustión externa, con ciclo cerrado. Quema " +"carbón de la carbonera del vehículo para producir vapor." #: lang/json/vehicle_part_from_json.py msgid "" @@ -126158,7 +129847,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "rubber treads" -msgstr "" +msgstr "bandas de goma" #. ~ Description for rubber treads #. ~ Description for steel treads @@ -126173,7 +129862,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "steel treads" -msgstr "" +msgstr "bandas de acero" #: lang/json/vehicle_part_from_json.py msgid "tank treads" @@ -126197,6 +129886,8 @@ msgid "" "A length of heavy duty copper wire, useful for routing power from one part " "of a vehicle to another part." msgstr "" +"Es un pedazo de cable de cobre resistente, útil para conducir energía de una" +" parte del vehículo a otra." #: lang/json/vehicle_part_from_json.py msgid "manual flamethrower" @@ -126575,6 +130266,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -126612,23 +130309,23 @@ msgstr "" #: src/activity_handlers.cpp msgid "This corpse is too small to quarter without damaging." -msgstr "" +msgstr "Este cadáver es demasiado pequeño para descuartizarlo sin dañarlo." #: src/activity_handlers.cpp msgid "This is already quartered." -msgstr "" +msgstr "Esto ya está descuartizado." #: src/activity_handlers.cpp msgid "You need to perform field dressing before quartering." -msgstr "" +msgstr "Necesitás preparar el cadáver antes de descuartizarlo." #: src/activity_handlers.cpp msgid "Would you dare desecrate the mortal remains of a fellow human being?" -msgstr "" +msgstr "¿Te vas a animar a profanar los restos mortales de otro ser humano?" #: src/activity_handlers.cpp msgid "You clench your teeth at the prospect of this gruesome job." -msgstr "" +msgstr "Apretás los dientes pensando en este desagradable trabajo." #: src/activity_handlers.cpp msgid "This will haunt you in your dreams." @@ -126664,6 +130361,8 @@ msgstr "" msgid "" "You find traces of implants in the body, but you care only for the flesh." msgstr "" +"Encontrás rastros de implantes en el cadáver, pero te importa solamente la " +"carne." #: src/activity_handlers.cpp msgid "" @@ -126685,6 +130384,8 @@ msgstr "Cosechas: %s" #, c-format msgid "You roughly slice the corpse of %s into four parts and set them aside." msgstr "" +"Cortás irregularmente el cadáver del/a %s en cuatro partes y las dejás a un " +"lado." #: src/activity_handlers.cpp msgid "There's no corpse to butcher!" @@ -126707,6 +130408,8 @@ msgid "" "You made so many mistakes during the process that you doubt even vultures " "will be interested in what's left of it." msgstr "" +"Cometiste tantos errores durante el proceso que ni siquiera los buitres van " +"a estar interesados en lo que quedó." #. ~ %1$s - item name, %2$s - monster name #: src/activity_handlers.cpp @@ -126720,6 +130423,7 @@ msgid "" "You apply few quick cuts to the %s and leave what's left of it for " "scavengers." msgstr "" +"Hacés unos cortes rápidos al/a %s y dejás el resto para los carroñeros." #: src/activity_handlers.cpp #, c-format @@ -126731,6 +130435,8 @@ msgid "" "You unskillfully hack up the corpse and chop off some excess body parts. " "You're left wondering how you did so poorly." msgstr "" +"Cortás el cadáver con muy poca habilidad y sacás algunas partes de sobra. Te" +" quedaste pensando cómo pudiste hacerlo tan mal." #: src/activity_handlers.cpp msgid "" @@ -126754,6 +130460,8 @@ msgid "" "You slice the corpse's belly and remove intestines and organs, until you're " "confident that it will not rot from inside." msgstr "" +"Cortás el estómago del cadáver y retirás los intestinos y órganos, hasta que" +" está limpio como para no pudrirse desde adentro." #: src/activity_handlers.cpp msgid "You remove guts and excess parts, preparing the corpse for later use." @@ -126905,11 +130613,13 @@ msgstr "Has rellenado el %s." #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." -msgstr "" +msgstr "Perdiste el objeto que estabas usando para encender el fuego." #: src/activity_handlers.cpp msgid "There is not enough sunlight to start a fire now. You stop trying." msgstr "" +"Ahora no hay suficiente luz solar para encender un fuego. Dejás de " +"intentarlo." #: src/activity_handlers.cpp #, c-format @@ -126972,8 +130682,8 @@ msgstr[1] "Se encienden los motores del %s." #, c-format msgid "One of the %s's engines start up." msgid_plural "Some of the %s's engines start up." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Uno de los motores del %s se enciende." +msgstr[1] "Algunos de los motores del %s se encienden." #: src/activity_handlers.cpp #, c-format @@ -126999,8 +130709,8 @@ msgid "Repeat once" msgstr "Repetir una vez" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Repetir todas las veces que se pueda" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -127010,11 +130720,24 @@ msgstr "Repetir hasta que esté reparado, pero no reforzar" msgid "Repeat until success/failure/level up" msgstr "Repetir hasta que se consiga/se falle/se mejore" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "Tu %s se quedó sin cargas" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "¿Qué quieres reparar?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "No tienes ningún objeto que pueda ser reparado con un/a %s." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Ya no vas a aprender nada más haciendo eso." @@ -127022,13 +130745,15 @@ msgstr "Ya no vas a aprender nada más haciendo eso." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"Probabilidad de éxito: %.1f%%\n" -"Probabilidad de daño: %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -127063,7 +130788,7 @@ msgstr "No pudiste instalar el/la %s." #: src/activity_handlers.cpp #, c-format msgid "You clear up the %s." -msgstr "" +msgstr "Limpiás el/a %s." #: src/activity_handlers.cpp msgid "You pause to engage in spiritual contemplation." @@ -127082,6 +130807,11 @@ msgstr "Terminaste de esperar." msgid "%s finishes with you..." msgstr "%s termina contigo..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "" @@ -127096,7 +130826,7 @@ msgstr "" #: src/activity_handlers.cpp msgid "You are too frustrated to continue and just give up." -msgstr "" +msgstr "Estás muy frustrado para continuar y dejás de hacerlo." #: src/activity_handlers.cpp msgid "You can't focus and are working slowly." @@ -127113,7 +130843,7 @@ msgstr "grnd grnd grnd" #: src/activity_handlers.cpp msgid "You finish cutting the metal." -msgstr "" +msgstr "Terminaste de cortar el metal." #. ~ Sound of a wood chopping tool at work! #: src/activity_handlers.cpp @@ -127150,13 +130880,18 @@ msgstr "¡hsh!" #: src/activity_handlers.cpp #, c-format msgid "You finish digging up %s." -msgstr "" +msgstr "Terminás de desenterrar %s." #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "Abres tu equipo y te afeitás." @@ -127165,12 +130900,35 @@ msgstr "Abres tu equipo y te afeitás." msgid "You give your hair a trim." msgstr "Te cortas un poco el pelo." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "Desmontar tu %s." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "Descargás tu %s." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Revuelves la tierra aquí." #: src/activity_handlers.cpp msgid "You tilled every tile you could." +msgstr "Araste cada espacio que pudiste." + +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." msgstr "" #: src/activity_handlers.cpp @@ -127281,8 +131039,8 @@ msgstr[1] "Pones tu %1$s dentro del/a %2$s." #, c-format msgid " puts their %1$s in the %2$s." msgid_plural " puts their %1$s in the %2$s." -msgstr[0] "" -msgstr[1] "" +msgstr[0] " pone su %1$s en el/a %2$s." +msgstr[1] " pone sus %1$s en el /a %2$s." #: src/activity_item_handling.cpp #, c-format @@ -127302,8 +131060,8 @@ msgstr[1] "" #, c-format msgid "Your %1$s tumbles to the %2$s." msgid_plural "Your %1$s tumble to the %2$s." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tu %1$s cae en el /a %2$s." +msgstr[1] "Tus %1$s caen en el/a %2$s." #: src/activity_item_handling.cpp #, c-format @@ -127323,17 +131081,18 @@ msgstr "Pones varios objetos dentro del/a %s." #: src/activity_item_handling.cpp #, c-format msgid " puts several items in the %s." -msgstr "" +msgstr " pone varios objetos en el/a %s." #: src/activity_item_handling.cpp #, c-format msgid "Some items tumble to the %s." -msgstr "" +msgstr "Algunos objetos caen en el/a %s." #: src/activity_item_handling.cpp src/iuse.cpp #, c-format msgid "You need %1$i charges of water or clean water to wash these items." msgstr "" +"Necesitás %1$i cargas de agua o de agua potable para lavar esos objetos." #: src/activity_item_handling.cpp src/iuse.cpp #, c-format @@ -127782,7 +131541,7 @@ msgstr "Nombre (Cargas)" #: src/advanced_inv.cpp msgid "Not dragging any vehicle!" -msgstr "" +msgstr "¡No estás arrastrando ningún vehículo!" #: src/advanced_inv.cpp msgid "No dragged vehicle!" @@ -127848,7 +131607,7 @@ msgstr "¿Seguro? ¿Mover todo lo de tu inventario?" #: src/advanced_inv.cpp msgid "Really remove all your clothes? (woo hoo)" -msgstr "" +msgstr "¿Seguro? ¿Sacarte toda la ropa? (woo hoo)" #: src/advanced_inv.cpp msgid "Skipping filled buckets to avoid spilling their contents." @@ -127868,7 +131627,7 @@ msgstr "< [?] show help >" #: src/advanced_inv.cpp msgid "Default layout was saved." -msgstr "" +msgstr "La disposición por defecto fue guardada." #: src/advanced_inv.cpp msgid "You can't put items there!" @@ -127983,7 +131742,7 @@ msgstr "Todo/as" #: src/animation.cpp msgid "Hang on a bit..." -msgstr "" +msgstr "Esperá un segundo..." #: src/armor_layers.cpp msgid "close to your skin" @@ -127999,7 +131758,7 @@ msgstr "" #: src/armor_layers.cpp msgid "of outer clothing" -msgstr "" +msgstr "de ropa externa" #: src/armor_layers.cpp msgid "strapped to you" @@ -128025,7 +131784,11 @@ msgid_plural "" "Wearing this outside items it would normally be beneath is adding " "encumbrance to your %s." msgstr[0] "" +"Ponerse estos objetos sobre otros cuando normalmente irían debajo, agrega " +"incomodidad en tu %s." msgstr[1] "" +"Ponerse estos objetos sobre otros cuando normalmente irían debajo, agrega " +"incomodidad en tu %s." #: src/armor_layers.cpp #, c-format @@ -128223,6 +131986,20 @@ msgid "" "The second number is an additional encumbrance penalty caused by wearing multiple items on one of the bodypart's layers or wearing items outside of other items they would normally be work beneath (e.g. a shirt over a backpack).\n" "The sum of these values is the effective encumbrance value your character has for that bodypart." msgstr "" +"Usá las teclas de cursor o el teclado numérico para moverte por la lista izquierda.\n" +"[%s] elegir ropa para ordenar.\n" +"[%s] / [%s] desplazar lista de la derecha.\n" +"[%s] asignar letra específica a la ropa.\n" +"[%s] cambiar lado del cuerpo en el que está puesto.\n" +"[%s] ordenar ropa de manera lógica.\n" +"[%s] equipar objeto.\n" +"[%s] equipar objeto en el lugar seleccionado.\n" +"[%s] sacarse ropa seleccionada.\n" +" \n" +"[Incomodidad y Abrigo] explicación:\n" +"El primer número es la incomodidad sumada de toda la ropa en esa parte del cuerpo.\n" +"El segundo número es la incomodidad adicional causada por tener varias prendas en la misma capa de la parte del cuerpo, o tener ropa debajo de otra cuando tendría que ir sobre (ej.: una remera por encima de una mochila).\n" +"La suma de estos valores es la incomodidad efectiva que tiene tu personaje en esa parte del cuerpo." #: src/artifact.cpp msgid "smooth sphere" @@ -128409,6 +132186,10 @@ msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "" "se achica y se agranda muy ligeramente a un ritmo regular, como si respirara" +#: src/artifact.cpp +msgid "dead" +msgstr "muerto" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "está muy frío al tacto" @@ -128603,7 +132384,7 @@ msgstr "Horroroso" #: src/artifact.cpp msgid "Unknowable" -msgstr "" +msgstr "Incomprensible" #: src/artifact.cpp msgid "Ancient" @@ -128778,6 +132559,8 @@ msgid "" "The %s is satisfied, as it should be because it has no standards. Seeing " "this is a bug!" msgstr "" +"El %s está satisfecho, y debería estarlo porque no tiene ningún requisito. " +"¡Ver esto es un bug!" #: src/artifact.cpp #, c-format @@ -128792,18 +132575,20 @@ msgstr "" #: src/artifact.cpp #, c-format msgid "Your %s feels needy, like it wants to be touched." -msgstr "" +msgstr "Tu %s tiene alguna necesidad, como si quisiera ser tocado." #: src/artifact.cpp #, c-format msgid "You press your %s against your skin." -msgstr "" +msgstr "Apretás tu %s contra tu piel." #: src/artifact.cpp #, c-format msgid "" "The %s is confused to find you dreaming while awake. Seeing this is a bug!" msgstr "" +"El %s está confundido al verte soñando mientras estás despierto. ¡Ver esto " +"es un bug!" #: src/artifact.cpp #, c-format @@ -129039,7 +132824,7 @@ msgstr[1] "%1$d objetos concuerdan: %2$s" #: src/auto_pickup.cpp msgid "Won't display content or suffix matches" -msgstr "" +msgstr "No se van a mostrar contenidos ni sufijos" #: src/auto_pickup.cpp msgid "Autopickup is not enabled in the options. Enable it now?" @@ -129081,19 +132866,19 @@ msgstr "%s Tablón" #: src/basecamp.cpp src/mission_companion.cpp msgid "Base Missions" -msgstr "" +msgstr "Misiones de Base" #: src/basecamp.cpp msgid "Garage Expansion" -msgstr "" +msgstr "Expansión de Garage" #: src/basecamp.cpp msgid "Kitchen Expansion" -msgstr "" +msgstr "Expansión de Cocina" #: src/basecamp.cpp msgid "Blacksmith Expansion" -msgstr "" +msgstr "Expansión de Herrería" #: src/basecamp.cpp msgid "Farm Expansion" @@ -129147,7 +132932,7 @@ msgstr "Tus músculos se desgarran por la tensión." #: src/bionics.cpp msgid "Fungal Infection" -msgstr "" +msgstr "Infección Fúngica" #: src/bionics.cpp msgid "Insect Parasite" @@ -129394,7 +133179,7 @@ msgstr "Metiste la pata durante la extracción." #: src/bionics.cpp msgid " flubs the removal." -msgstr "" +msgstr " mete la pata en la extracción." #: src/bionics.cpp msgid "You mess up the removal." @@ -129418,7 +133203,7 @@ msgstr "Arruinaste la extracción." #: src/bionics.cpp msgid " screws up the removal." -msgstr "" +msgstr " arruina la extracción." #: src/bionics.cpp #, c-format @@ -129427,21 +133212,22 @@ msgstr "" #: src/bionics.cpp msgid "You prep to begin surgery." -msgstr "" +msgstr "Te preparás para empezar la cirugía." #: src/bionics.cpp msgid " prepares for surgery." -msgstr "" +msgstr " se prepara para la cirugía." #: src/bionics.cpp #, c-format msgid "A lifetime of augmentation has taught %s a thing or two..." msgstr "" +"Toda una vida con aumentos le ha enseñado a %s alguna que otra cosita..." #: src/bionics.cpp #, c-format msgid "%s don't have this bionic installed." -msgstr "" +msgstr "%s no tiene instalado ese biónico." #: src/bionics.cpp #, c-format @@ -129466,6 +133252,8 @@ msgid "" "The Telescopic Lenses are part of %s eyes now. Removing them would leave %s" " blind." msgstr "" +"Los Lentes Telescópicos ahora son parte de los ojos de %s. Quitarlos " +"dejará a %s ciego/a." #: src/bionics.cpp msgid "Are you sure you wish to uninstall the selected bionic?" @@ -129496,7 +133284,7 @@ msgstr "" #: src/bionics.cpp msgid "'s parts are jiggled back into their familiar places." -msgstr "" +msgstr "Las partes de son sacudidas a sus lugares habituales." #: src/bionics.cpp #, c-format @@ -129507,13 +133295,13 @@ msgstr "Extracción exitosa de %s." #, c-format msgctxt "memorial_male" msgid "Failed to remove bionic: %s." -msgstr "" +msgstr "Fracasó al sacarse un biónico: %s." #: src/bionics.cpp #, c-format msgctxt "memorial_female" msgid "Failed to remove bionic: %s." -msgstr "" +msgstr "Fracasó al sacarse un biónico: %s." #. ~ : more slot(s) needed. #: src/bionics.cpp @@ -129558,7 +133346,7 @@ msgstr "Biónico instalado: %s." #: src/bionics.cpp #, c-format msgid "Successfully upgraded %1$s to %2$s." -msgstr "" +msgstr "Tuviste éxito mejorando el/a %1$s a %2$s." #. ~ %s - name of the bionic. #: src/bionics.cpp @@ -129612,7 +133400,7 @@ msgstr "Arruinaste la instalación." #: src/bionics.cpp msgid " screws up the installation." -msgstr "" +msgstr " arruinó la instalación." #. ~"Complications" is USian medical-speak for "unintended damage from a #. medical procedure". @@ -129637,7 +133425,7 @@ msgstr "¡La instalación es defectuosa!" #: src/bionics.cpp #, c-format msgid "%s lose power capacity!" -msgstr "" +msgstr "¡%s pierde capacidad de energía!" #: src/bionics.cpp #, c-format @@ -129684,6 +133472,8 @@ msgid "" "You set up the operation step-by-step, configuring the Autodoc to manipulate" " a CBM" msgstr "" +"Preparás la operación paso a paso, configurando el Autodoc para que manipule" +" el MCB." #: src/bionics.cpp msgid "" @@ -129716,8 +133506,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Energía: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -129733,6 +133524,9 @@ msgid "" "= to reassign, TAB to switch " "tabs." msgstr "" +"Activando ! para examinar, " +"= para reasignar, TAB para " +"cambiar listas." #: src/bionics_ui.cpp msgid "" @@ -129827,7 +133621,7 @@ msgstr "" #: src/bonuses.cpp msgid "Accuracy" -msgstr "" +msgstr "Precisión" #: src/bonuses.cpp src/martialarts.cpp msgid "Dodge" @@ -129851,7 +133645,7 @@ msgstr "Pen Armadura" #: src/bonuses.cpp msgid "Target armor multiplier" -msgstr "" +msgstr "Multiplicador armadura enemigo" #: src/bonuses.cpp src/character.cpp src/item.cpp msgid "strength" @@ -130324,7 +134118,7 @@ msgstr "Pierna Der." #: src/character.cpp msgid "It is broken. It needs a splint or surgical attention." -msgstr "" +msgstr "Está roto/a. Necesita entablillarlo/a o atención médica." #: src/character.cpp #, c-format @@ -130343,16 +134137,16 @@ msgstr "Vendado [%s]" #: src/character.cpp #, c-format msgid "Expected quality improvement: %s" -msgstr "" +msgstr "Mejora de calidad esperable: %s" #: src/character.cpp msgid "You don't expect any improvement from using this." -msgstr "" +msgstr "No esperás ninguna mejora usando esto." #: src/character.cpp #, c-format msgid "Expected bandage quality: %s" -msgstr "" +msgstr "Calidad del vendaje esperable: %s" #: src/character.cpp msgid "It has a deep bite wound that needs cleaning." @@ -130371,6 +134165,8 @@ msgstr "" msgid "" "It has a deep wound that looks infected. Antibiotics might be required." msgstr "" +"Tiene una herida profunda que parece infectada. Pueden ser necesarios " +"antibióticos." #: src/character.cpp #, c-format @@ -130389,7 +134185,7 @@ msgstr "Desinfectado [%s]" #: src/character.cpp #, c-format msgid "Expected disinfection quality: %s" -msgstr "" +msgstr "Calidad de desinfección esperable: %s" #: src/character.cpp msgid "Healthy." @@ -130397,7 +134193,7 @@ msgstr "" #: src/character.cpp msgid "You don't expect any effect from using this." -msgstr "" +msgstr "No esperás ningún efecto usando esto." #: src/character.cpp msgid "No limb would benefit from it." @@ -130474,6 +134270,9 @@ msgid "" "Place to drop unsorted loot. You can use \"sort out loot\" zone-action to " "sort items inside. It can overlap with Loot zones of different types." msgstr "" +"Lugar para dejar las cosas sin orden. Podés usar la acción de zona \"ordenar" +" cosas\" para ordenar los objetos dentro. Se puede sobreponer con otras " +"zonas de cosas." #: src/clzones.cpp msgid "Loot: Food" @@ -130494,6 +134293,8 @@ msgid "" "Destination for perishable comestibles. Does include perishable drinks if " "such zone is not specified." msgstr "" +"Lugar para los comestibles perecederos. Incluye bebidas perecederas si no " +"hay una zona específica para ellas." #: src/clzones.cpp msgid "Loot: Drink" @@ -130507,7 +134308,7 @@ msgstr "" #: src/clzones.cpp msgid "Loot: P.Drink" -msgstr "" +msgstr "Cosas: P.Bebidas" #: src/clzones.cpp msgid "Destination for perishable drinks." @@ -130515,7 +134316,7 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Guns" -msgstr "" +msgstr "Cosas: Armas de Fuego" #: src/clzones.cpp msgid "Destination for guns, bows and similar weapons." @@ -130523,7 +134324,7 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Magazines" -msgstr "" +msgstr "Cosas: Cargadores" #: src/clzones.cpp msgid "Destination for gun magazines." @@ -130531,11 +134332,11 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Ammo" -msgstr "" +msgstr "Cosas: Munición" #: src/clzones.cpp msgid "Destination for ammo." -msgstr "" +msgstr "Lugar para la munición." #: src/clzones.cpp msgid "Loot: Weapons" @@ -130555,7 +134356,7 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Clothing" -msgstr "" +msgstr "Cosas: Ropa" #: src/clzones.cpp msgid "" @@ -130569,23 +134370,23 @@ msgstr "" #: src/clzones.cpp msgid "Destination for filthy clothing." -msgstr "" +msgstr "Lugar para la ropa sucia." #: src/clzones.cpp msgid "Loot: Drugs" -msgstr "" +msgstr "Cosas: Drogas" #: src/clzones.cpp msgid "Destination for drugs and other medical items." -msgstr "" +msgstr "Lugar para drogas y otros objetos médicos." #: src/clzones.cpp msgid "Loot: Books" -msgstr "" +msgstr "Cosas: Libros" #: src/clzones.cpp msgid "Destination for books and magazines." -msgstr "" +msgstr "Lugar para libros y revistas." #: src/clzones.cpp msgid "Loot: Mods" @@ -130593,7 +134394,7 @@ msgstr "" #: src/clzones.cpp msgid "Destination for firearm modifications and similar items." -msgstr "" +msgstr "Lugar para modificaciones de armas de fuego y similares." #: src/clzones.cpp msgid "Loot: Mutagens" @@ -130601,19 +134402,19 @@ msgstr "" #: src/clzones.cpp msgid "Destination for mutagens, serums, and purifiers." -msgstr "" +msgstr "Lugar para mutágenos, sueros y purificantes." #: src/clzones.cpp msgid "Loot: Bionics" -msgstr "" +msgstr "Cosas: Biónicos" #: src/clzones.cpp msgid "Destination for Compact Bionics Modules aka CBMs." -msgstr "" +msgstr "Lugar para Módulos Compactos de Biónicos, también conocidos como MCB." #: src/clzones.cpp msgid "Loot: V.Parts" -msgstr "" +msgstr "Cosas: Partes de Vehículos" #: src/clzones.cpp msgid "Destination for vehicle parts." @@ -130621,15 +134422,15 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Other" -msgstr "" +msgstr "Cosas: Otros" #: src/clzones.cpp msgid "Destination for other miscellaneous items." -msgstr "" +msgstr "Lugar para otros objetos varios." #: src/clzones.cpp msgid "Loot: Fuel" -msgstr "" +msgstr "Cosas: Combustible" #: src/clzones.cpp msgid "" @@ -130639,11 +134440,11 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Seeds" -msgstr "" +msgstr "Cosas: Semillas" #: src/clzones.cpp msgid "Destination for seeds, stems and similar items." -msgstr "" +msgstr "Lugar para semillas, tallos y similares." #: src/clzones.cpp msgid "Loot: Chemical" @@ -130655,11 +134456,11 @@ msgstr "" #: src/clzones.cpp msgid "Loot: S.Parts" -msgstr "" +msgstr "Cosas: S.Partes" #: src/clzones.cpp msgid "Destination for spare parts." -msgstr "" +msgstr "Lugar para partes sueltas." #: src/clzones.cpp msgid "Loot: Artifacts" @@ -130678,6 +134479,8 @@ msgid "" "Destination for armor. Does include filthy armor if such zone is not " "specified." msgstr "" +"Lugar para armaduras. Incluye armaduras sucias si no hay una zona específica" +" para ella." #: src/clzones.cpp msgid "Loot: F.Armor" @@ -130702,10 +134505,12 @@ msgstr "" #: src/clzones.cpp msgid "Items inside of this zone are ignored by \"sort out loot\" zone-action." msgstr "" +"Los objetos dentro de esta zona son ignorados por la acción \"ordenar " +"cosas\"." #: src/clzones.cpp msgid "Farm: Plot" -msgstr "" +msgstr "Granja: Terreno" #: src/clzones.cpp msgid "Designate a farm plot for tilling and planting." @@ -130717,7 +134522,7 @@ msgstr "" #: src/clzones.cpp msgid "Plant seed: " -msgstr "" +msgstr "Semilla de planta:" #: src/clzones.cpp msgid "Zone name:" @@ -131216,12 +135021,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ARCHIVO DAÑADO, PRESIONE UNA TECLA..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"La máquina te inyecta en el ojo la solución\n" -"de hueso molido y LSD." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -132179,7 +135981,7 @@ msgstr "Te incorporás tu %s." #: src/consumption.cpp #, c-format msgid "Ick, this %s (rotten) doesn't taste so good..." -msgstr "" +msgstr "Asco, este/a %s (podrido/a) no tiene muy buen gusto..." #: src/consumption.cpp #, c-format @@ -132264,7 +136066,7 @@ msgstr "Mmm, comida basura." #: src/consumption.cpp msgid "When life's got you down, there's always sugar." -msgstr "" +msgstr "Cuando la vida te trata mal, siempre te queda el azúcar." #: src/consumption.cpp msgid "They may do what they must... you've already won." @@ -132286,6 +136088,62 @@ msgstr "Te haces un festín con la dulce miel." msgid "You can't finish it all!" msgstr "¡No te lo puedes terminar todo!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "Te atiborrás de comida, preparándote para hibernar." @@ -132336,16 +136194,18 @@ msgstr "Tu almacenamiento interno de energía está completamente cargado." #: src/consumption.cpp msgid "'s internal power storage is fully powered." msgstr "" +"El almacenamiento interno de energía de está completamente " +"cargado." #: src/consumption.cpp #, c-format msgid "You recharge your battery system with the %s." -msgstr "" +msgstr "Recargás tu sistema de batería con el %s." #: src/consumption.cpp #, c-format msgid " recharges their battery system with the %s." -msgstr "" +msgstr " recarga su sistema de batería con el %s." #: src/consumption.cpp msgid "That is a LOT of plutonium. Are you sure you want that much?" @@ -132397,8 +136257,8 @@ msgstr[1] "" #, c-format msgid " digests a %s and recharges %d point of energy." msgid_plural " digests a %s and recharges %d points of energy." -msgstr[0] "" -msgstr[1] "" +msgstr[0] " digiere un/a %s y recarga %d punto de energía." +msgstr[1] " digiere un/a %s y recarga %d puntos de energía." #: src/craft_command.cpp src/crafting.cpp src/veh_interact.cpp msgid " (nearby)" @@ -132433,6 +136293,7 @@ msgstr "¡No ves nada, no puedes construir!" #: src/crafting.cpp msgid "Overmap terrain building recipes are not implemented yet!" msgstr "" +"¡Las construcciones en el mapa general todavía no están implementadas!" #: src/crafting.cpp msgid "Craft something first" @@ -132661,6 +136522,8 @@ msgid "" "[E]: Describe, [F]ind, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite, [b]atch " "[?] keybindings" msgstr "" +"[E]: Describir, [F] Buscar, [m]odo, mo[s]trar/ocultar, Re[L]acionado, " +"[*]Favorito, [b] tanda [?] atajos de teclado" #: src/crafting_gui.cpp #, c-format @@ -132684,7 +136547,7 @@ msgstr "" #: src/crafting_gui.cpp #, c-format msgid "Difficulty: %d" -msgstr "" +msgstr "Dificultad: %d" #: src/crafting_gui.cpp #, c-format @@ -132750,7 +136613,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "component required to craft" -msgstr "" +msgstr "componente necesario para fabricar" #: src/crafting_gui.cpp msgid "primary skill used to craft" @@ -132770,7 +136633,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "recipes which are hidden or not" -msgstr "" +msgstr "recetas que están ocultas o no" #: src/crafting_gui.cpp msgid "yes" @@ -132782,7 +136645,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" @@ -132941,7 +136804,7 @@ msgstr "Dolor intenso" #: src/creature.cpp msgid "Unmanageable pain" -msgstr "" +msgstr "Dolor insoportable" #: src/creature.cpp msgid "Distressing pain" @@ -132953,7 +136816,7 @@ msgstr "" #: src/creature.cpp msgid "Moderate pain" -msgstr "" +msgstr "Dolor moderado" #: src/creature.cpp msgid "Mild pain" @@ -133077,7 +136940,7 @@ msgstr "¿Dónde está el mapa deseado?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "Te teletransportas al mapa (%d,%d,%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Tú" @@ -133278,7 +137141,7 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "Set the morale to? Currently: %d" -msgstr "" +msgstr "¿Establecer moral en? Actualmente: %d" #: src/debug_menu.cpp msgid "Rename:" @@ -133296,7 +137159,7 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "Cause how much pain? pain: %d" -msgstr "" +msgstr "¿Cuánto dolor causar? Dolor: %d" #: src/debug_menu.cpp msgid "Hunger" @@ -133317,7 +137180,7 @@ msgstr "Cansancio" #: src/debug_menu.cpp #, c-format msgid "Set hunger to? Currently: %d" -msgstr "" +msgstr "¿Poner hambre en? Actualmente: %d" #: src/debug_menu.cpp #, c-format @@ -133337,7 +137200,7 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "Set sleep deprivation to? Currently: %d" -msgstr "" +msgstr "¿Establecer privación de sueño en? Actual: %d" #: src/debug_menu.cpp #, c-format @@ -133359,7 +137222,7 @@ msgstr "Radiación" #: src/debug_menu.cpp #, c-format msgid "Set the value to? Currently: %d" -msgstr "" +msgstr "¿Poner el valor en? Actualmente: %d" #: src/debug_menu.cpp msgid "Choose mission type" @@ -133371,7 +137234,7 @@ msgstr "Elegir una clase nueva" #: src/debug_menu.cpp msgid "Yet to start" -msgstr "" +msgstr "Todavía no empezó" #: src/debug_menu.cpp msgid "In progress" @@ -133456,12 +137319,12 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "Removing from %s missions_assigned" -msgstr "" +msgstr "Quitar de %s missions_assigned" #: src/debug_menu.cpp #, c-format msgid "Removing from %s missions" -msgstr "" +msgstr "Quitar de %s missions" #: src/debug_menu.cpp msgid "Fail mission" @@ -133478,7 +137341,7 @@ msgstr "" #: src/defense.cpp #, c-format msgid "Please wait as the map generates [ 0%% ]" -msgstr "" +msgstr "Por favor, esperá que se genere el mapa [ 0%% ]" #: src/defense.cpp msgid "A caravan approaches! Press spacebar..." @@ -133734,7 +137597,7 @@ msgstr "Una entrada y muchas habitaciones. Hay algunos suministros médicos." #: src/defense.cpp msgid "Easily fortifiable building. Lots of useful tools." -msgstr "" +msgstr "Es un edificio fácil de fortificar. Muchas herramientas útiles." #: src/defense.cpp msgid "A large building with various supplies." @@ -133746,7 +137609,7 @@ msgstr "Un pequeño lugar con suficiente alcohol." #: src/defense.cpp msgid "A large house with many rooms." -msgstr "" +msgstr "Es una casa grande con muchas habitaciones." #: src/defense.cpp #, c-format @@ -133900,6 +137763,8 @@ msgid "" "\n" "Sign: %s" msgstr "" +"\n" +"Firma: %s" #: src/descriptions.cpp src/iexamine.cpp #, c-format @@ -133997,7 +137862,7 @@ msgstr "transparencia: %.5f, visibilidad: %.5f," #: src/editmap.cpp #, c-format msgid "outside: %d obstructed: %d" -msgstr "" +msgstr "afuera: %d obstruido: %d" #: src/editmap.cpp #, c-format @@ -134278,7 +138143,7 @@ msgstr "" #: src/editmap.cpp msgid "Your mechanic could not find a vehicle at the garage." -msgstr "" +msgstr "Tu mecánico no pudo encontrar un vehículo en el garage." #: src/editmap.cpp msgid "Select the Vehicle" @@ -134612,7 +138477,7 @@ msgstr "muy bien" #: src/effect.cpp msgid "outstanding" -msgstr "" +msgstr "excelente" #: src/effect.cpp msgid "perfect" @@ -136333,7 +140198,7 @@ msgstr "libros" #: src/faction_camp.cpp msgid "trash and rotting food" -msgstr "" +msgstr "basura y comida podrida" #: src/faction_camp.cpp msgid "ammo" @@ -136369,15 +140234,15 @@ msgstr "" #: src/faction_camp.cpp src/npctalk.cpp msgid ", Camp Manager" -msgstr "" +msgstr ", Administrador de Campamento" #: src/faction_camp.cpp msgid "Upgrade Camp" -msgstr "" +msgstr "Mejorar Campamento" #: src/faction_camp.cpp msgid "Working to expand your camp!\n" -msgstr "" +msgstr "¡Trabajando para expandir tu campamento!\n" #: src/faction_camp.cpp msgid "Recover Ally from Upgrading" @@ -136439,7 +140304,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Reset Sort Points" -msgstr "" +msgstr "Resetear Puntos de Orden" #: src/faction_camp.cpp #, c-format @@ -136584,7 +140449,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Clearing a forest...\n" -msgstr "" +msgstr "Limpiando bosque...\n" #: src/faction_camp.cpp msgid "Recover Clear Cutter" @@ -136614,7 +140479,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Setting up a hide site...\n" -msgstr "" +msgstr "Estableciendo escondite...\n" #: src/faction_camp.cpp msgid "Recover Hide Setup" @@ -136745,7 +140610,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Constructing fortifications...\n" -msgstr "" +msgstr "Construyendo fortificaciones...\n" #: src/faction_camp.cpp msgid "Finish Map Fortifications" @@ -136757,11 +140622,11 @@ msgstr "" #: src/faction_camp.cpp msgid "Searching for recruits.\n" -msgstr "" +msgstr "Buscando reclutas.\n" #: src/faction_camp.cpp msgid "Recover Recruiter" -msgstr "" +msgstr "Recuperar Reclutador" #: src/faction_camp.cpp #, c-format @@ -136825,7 +140690,7 @@ msgstr "" #: src/faction_camp.cpp msgid " Expansion Upgrade" -msgstr "" +msgstr "Mejora de Expansión" #: src/faction_camp.cpp msgid "Working to upgrade your expansions!\n" @@ -136853,6 +140718,17 @@ msgid "" "Risk: None\n" "Time: 5 days \n" msgstr "" +"Notas:\n" +"Enviar un compañero a intentar desarmar completamente un vehiculo.\n" +" \n" +"Habilidad usada: mecánica\n" +"Dificultad: 2 \n" +"Efectos:\n" +"> Las partes quitadas serán puestas en muebles en el garage.\n" +"> La habilidad determina qué puede ser recuperado.\n" +" \n" +"Riesgo: Ninguno\n" +"Tiempo: 5 días \n" #: src/faction_camp.cpp msgid " Chop Shop" @@ -136868,7 +140744,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Working in your kitchen!\n" -msgstr "" +msgstr "¡Trabajando en tu cocina!\n" #: src/faction_camp.cpp msgid " (Finish) Cooking" @@ -136876,11 +140752,11 @@ msgstr " (Finalizado) Cocinar" #: src/faction_camp.cpp msgid "Working in your blacksmith shop!\n" -msgstr "" +msgstr "¡Trabajando en tu herrería!\n" #: src/faction_camp.cpp msgid " (Finish) Smithing" -msgstr "" +msgstr " (Terminar) Herrería" #: src/faction_camp.cpp msgid "" @@ -136906,6 +140782,17 @@ msgid "" "Time: 5 Min / Plot \n" "Positions: 0/1 \n" msgstr "" +"\n" +" \n" +"Habilidad usada: fabricación\n" +"Dificultad: N/D \n" +"Efectos:\n" +"> Recupera solo los espacios creados en la última expansión.\n" +"> No daña los cultivos que haya.\n" +" \n" +"Riesgo: Ninguno\n" +"Tiempo: 5 Min / Lote \n" +"Posiciones: 0/1 \n" #: src/faction_camp.cpp msgid " Plow Fields" @@ -136925,6 +140812,9 @@ msgid "" "Plant designated seeds in the spaces that have already been tilled.\n" " \n" msgstr "" +"Notas:\n" +"Planta las semillas designadas en los lugares que hayan sido arados.\n" +" \n" #: src/faction_camp.cpp msgid "" @@ -136960,6 +140850,9 @@ msgid "" "Harvest any plants that are ripe and bring the produce back.\n" " \n" msgstr "" +"Notas:\n" +"Cosechar cualquier planta que esté madura y traer el producto.\n" +" \n" #: src/faction_camp.cpp msgid "" @@ -136985,7 +140878,7 @@ msgstr "" #: src/faction_camp.cpp msgid " (Finish) Harvest Fields" -msgstr "" +msgstr " (Terminar) Cosechar Campos" #: src/faction_camp.cpp msgid "Working on your farm!\n" @@ -137001,7 +140894,7 @@ msgstr "" #: src/faction_camp.cpp msgid "departs to dig ditches and scrub toilets..." -msgstr "" +msgstr "se va a cavar trincheras y limpiar inodoros..." #: src/faction_camp.cpp msgid "returns from working in the woods..." @@ -137029,7 +140922,7 @@ msgstr "" #: src/faction_camp.cpp msgid "departs to search for recruits..." -msgstr "" +msgstr "se va a buscar reclutas..." #: src/faction_camp.cpp msgid "departs to survey land..." @@ -137080,7 +140973,7 @@ msgstr "" #: src/faction_camp.cpp msgid "departs to cut logs..." -msgstr "" +msgstr "se va a cortar troncos..." #: src/faction_camp.cpp msgid "Forests are the only valid cutting locations." @@ -137131,7 +141024,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Invalid terrain in construction path." -msgstr "" +msgstr "No es un terreno válido para construir un camino." #: src/faction_camp.cpp msgid "You don't have the material to build the fortification." @@ -137139,7 +141032,7 @@ msgstr "" #: src/faction_camp.cpp msgid "begins constructing fortifications..." -msgstr "" +msgstr "comienza a construir fortificaciones..." #: src/faction_camp.cpp msgid "" @@ -137198,6 +141091,8 @@ msgid "" " Chopping this vehicle:\n" "%s" msgstr "" +" Desarmando este vehículo:\n" +"%s" #: src/faction_camp.cpp msgid "begins working in the garage..." @@ -137252,7 +141147,7 @@ msgstr "" #: src/faction_camp.cpp #, c-format msgid "%s didn't find anyone to recruit..." -msgstr "" +msgstr "%s no encontró nadie para reclutar..." #: src/faction_camp.cpp #, c-format @@ -137335,6 +141230,8 @@ msgid "" "Recruit Chance: %10d%%\n" " \n" msgstr "" +"Probabilidad de Reclutamiento: %10d%%\n" +" \n" #: src/faction_camp.cpp msgid "Select an option:" @@ -137358,12 +141255,12 @@ msgstr "No estoy interesado." #: src/faction_camp.cpp msgid "You decide you aren't interested..." -msgstr "" +msgstr "Decidiste que no estás interesado..." #: src/faction_camp.cpp #, c-format msgid "%s has been convinced to join!" -msgstr "" +msgstr "¡%s ha sido convencido de unirse!" #: src/faction_camp.cpp #, c-format @@ -137379,6 +141276,8 @@ msgid "" "Your companion hit a river and didn't know how to swim well enough to " "cross..." msgstr "" +"Tu compañero llega a un río y no sabe nadar bien como para cruzarlo " +"nadando..." #: src/faction_camp.cpp #, c-format @@ -137604,7 +141503,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Harvestable: " -msgstr "" +msgstr "Cosechable: " #: src/faction_camp.cpp msgid "Ready for Planting: " @@ -137640,11 +141539,11 @@ msgstr ">Combustible: %25s\n" #: src/faction_camp.cpp msgid "---- Fuel Storage & Battery ----\n" -msgstr "" +msgstr "---- Almacenamiento de combustible & Batería ----\n" #: src/faction_camp.cpp msgid "Estimated Chop Time: 5 Days\n" -msgstr "" +msgstr "Tiempo Estimado de Tala: 5 Días\n" #: src/faction_camp.cpp msgid "No items are located at the drop point..." @@ -137665,6 +141564,8 @@ msgstr "" msgid "" "%s notices the antlered horror and slips away before it gets too close." msgstr "" +"%s ve un horror con cuernos y se escabulle antes de que se le acerque " +"demasiado." #: src/faction_camp.cpp #, c-format @@ -137677,6 +141578,7 @@ msgid "" "Fearful that he may be an agent of some hostile faction, %s doesn't mention " "the camp." msgstr "" +"Por temor a que pertenezca a un bando hostil, %s no menciona el campamento." #: src/faction_camp.cpp msgid "The two part on friendly terms and the survivor isn't seen again." @@ -137685,12 +141587,12 @@ msgstr "" #: src/faction_camp.cpp #, c-format msgid "%s didn't detect the ambush until it was too late!" -msgstr "" +msgstr "¡%s no se dio cuenta de la emboscada hasta que fue demasiado tarde!" #: src/faction_camp.cpp #, c-format msgid "The bull moose charged %s from the tree line..." -msgstr "" +msgstr "El alce macho ataca a %s desde los árboles..." #: src/faction_camp.cpp #, c-format @@ -137698,11 +141600,13 @@ msgid "" "Despite being caught off guard %s was able to run away until the moose gave " "up pursuit." msgstr "" +"A pesar de ser agarrado/a por sorpresa, %s pudo escaparse del alce hasta " +"que dejó de perseguirlo/a." #: src/faction_camp.cpp #, c-format msgid "The jabberwock grabbed %s by the arm from behind and began to scream." -msgstr "" +msgstr "El jabberwock agarró a %s por el brazo desde atrás y empezó a gritar." #: src/faction_camp.cpp #, c-format @@ -137718,7 +141622,7 @@ msgstr "" #: src/faction_camp.cpp msgid "(Sounds like bullshit, you wonder what really happened.)" -msgstr "" +msgstr "(Parece todo mentira, te preguntás qué habrá pasado.)" #: src/faction_camp.cpp #, c-format @@ -138451,7 +142355,7 @@ msgstr "Mundo retenido. Personajes que quedan:%s" #: src/game.cpp msgid "Wait till you wake up..." -msgstr "" +msgstr "Esperá a que te despiertes..." #: src/game.cpp #, c-format @@ -138649,7 +142553,7 @@ msgstr "información de jugador" #: src/game.cpp msgid "player map memory" -msgstr "" +msgstr "memoria de mapa de jugador" #: src/game.cpp msgid "weather state" @@ -138815,6 +142719,10 @@ msgstr "Mostrar mensaje de depuración" msgid "Crash game (test crash handling)" msgstr "" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "Salir al Menú Principal" @@ -138841,8 +142749,8 @@ msgstr "" #, c-format msgid "%d creature exists.\n" msgid_plural "%d creatures exist.\n" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d criatura existe.\n" +msgstr[1] "%d criaturas existen.\n" #: src/game.cpp msgid "NPCs are going to spawn." @@ -138995,6 +142903,7 @@ msgstr "TOTAL DE MUERTES: %d" #: src/game.cpp msgid " You are forgotten among the billions lost in the cataclysm..." msgstr "" +"Quedás olvidado/a entre los miles de millones perdidos en el cataclismo..." #: src/game.cpp msgid "" @@ -139038,6 +142947,10 @@ msgid "" "their support. When the exhausted migrants returned to the refugee center " "they were turned away to face the world on their own." msgstr "" +" El incipiente puesto fue abandonado unos meses después. Las amenazas " +"externas combinadas con la baja cosecha, hicieron que los Mercaderes Libres " +"retiraran su ayuda. Cuando los extenuados migrantes volvieron al refugio, " +"fueron enviados a enfrentar el mundo por su propia cuenta." #: src/game.cpp msgid "" @@ -139047,6 +142960,12 @@ 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 "" +" La comunidad siguió creciendo rápidamente a lo largo de los años, a " +"pesar de las amenazas externas constantes. Mientras mantenía su reputación " +"de paraíso para los ciudadanos obedientes a las leyes, el liderazgo de la " +"comunidad se mantuvo leal a los intereses de los Mercaderes Libres. Trabajo " +"duro a cambio de poco fue el precio que tuvieron que pagar aquellos que " +"buscaron la seguridad de la comunidad." #: src/game.cpp msgid "" @@ -139075,6 +142994,13 @@ msgid "" "infighting erupted into civil war but there were few survivors left to " "celebrate their destruction." msgstr "" +" Los piratas crecieron en poder más que cualquier otro bando mientras la " +"Vieja Guardia fue destruida por la contrición. Los despiadados hombres y " +"mujeres que se juntaron para robarle a los refugiados y saquear " +"asentamientos, pronto se encontraron sin víctimas para poder sobrevivir. Los" +" Piratas del Infierno fueron destruidos eventualmente cuando las peleas " +"internas se convirtieron en guerra civil, pero pocos quedaron vivos como " +"para festejar su destrucción." #: src/game.cpp msgid "" @@ -139105,22 +143031,25 @@ msgid "Underground" msgstr "Bajo tierra" #: src/game.cpp -msgid "Weather:" -msgstr "Clima:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "Temperatura:" +msgid "Weather :" +msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Luna %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "Luz: " +#: src/game.cpp +msgid "Deaf!" +msgstr "¡Sordo!" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -139134,7 +143063,7 @@ msgstr "¡%s encontrado! " #: src/game.cpp #, c-format msgid "We have detected a %s - an enemy of the Mycus!" -msgstr "" +msgstr "Hemos detectado un/a %s - ¡un enemigo del Mycus!" #: src/game.cpp msgid "Our fibers strain with renewed wrath!" @@ -139428,6 +143357,11 @@ msgstr "Tirar todos los objetos" msgid "Attach bag" msgstr "Conectar bolso" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "Desatar" @@ -139503,6 +143437,11 @@ msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "" "No hay espacio para eso en el %2$s de tu %1$s, ¡Es demasiado voluminoso!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "¿Seguro? ¿Matar al zombi esclavo?" @@ -139735,11 +143674,11 @@ msgstr "%s [%d]" #: src/game.cpp msgid "how all / hide distant" -msgstr "" +msgstr "-mostrar todas / ocultar lejanas" #: src/game.cpp msgid "ap" -msgstr "" +msgstr "apa" #: src/game.cpp msgid "Zones manager" @@ -140062,7 +144001,7 @@ msgstr "" #, c-format msgctxt "butchery menu" msgid "Cut up %s (%d)" -msgstr "" +msgstr "Cortar %s (%d)" #. ~ Name, number of items and time to complete disassembling #: src/game.cpp @@ -140110,6 +144049,10 @@ msgid "" "lighter and will stay fresh longer. Can be combined with other methods for " "better effects." msgstr "" +"Esta técnica se usa para quitar los órganos internos y las vísceras para " +"proteger el cadáver y que no se pudra desde adentro. Vas a conseguir los " +"órganos internos. La carcasa será más liviana y se mantendrá por más tiempo." +" Puede ser combinada con otros métodos para obtener mejores resultados." #: src/game.cpp msgid "Quarter corpse" @@ -140193,7 +144136,7 @@ msgstr "" #: src/game.cpp msgid "You're too full to eat the underbrush." -msgstr "" +msgstr "Estás demasiado lleno como para comerte la maleza." #: src/game.cpp msgid "You eat the underbrush." @@ -140233,7 +144176,7 @@ msgstr "¡Necesitas por lo menos un/a %s para recargar el/la %s!" #: src/game.cpp #, c-format msgid "The %s is already full!" -msgstr "" +msgstr "¡El %s ya está lleno!" #: src/game.cpp #, c-format @@ -140260,63 +144203,6 @@ msgstr "No tienes nada para descargar." msgid "You're not wielding anything." msgstr "No estás empuñando nada." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "Pones el/la %s en tu inventario." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "¡El %s ya está vacío!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "" - -#: src/game.cpp -msgid "Unload what?" -msgstr "¿Qué quieres descargar?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "¡No puedes descargar un %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "¡No puedes decargar un %s recargable!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "Tu %s no tiene carga." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "Tu %s no está cargado." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "Desmontar tu %s." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "Descargás tu %s." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "Recuperas %i de plutonio sin utilizar." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "¡No puedes quitar plutonio parcialmente agotado!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -140337,6 +144223,8 @@ msgid "" "Spotted %1$s--safe mode is on! (%2$s to turn it off, %3$s to ignore " "monster%4$s)" msgstr "" +"Encontraste un/a %1$s--¡el modo seguro está activado! (%2$s para " +"desactivarlo, %3$s para ignorar el monstruo %4$s)" #: src/game.cpp #, c-format @@ -140389,7 +144277,7 @@ msgstr "" #: src/game.cpp #, c-format msgid "You start tearing into the %s with your teeth and claws." -msgstr "" +msgstr "Empezás a abrirte paso en el/a %s con tus garras y dientes." #: src/game.cpp msgid "You cannot pull yourself away from the faultline..." @@ -141030,7 +144918,7 @@ msgstr "Sientes cómo se descompone tu cuerpo." #: src/game.cpp msgid "You feel fatigue seeping into your body." -msgstr "" +msgstr "Sentís el cansancio metiéndose en tu cuerpo." #: src/game.cpp msgid "The portal collapses!" @@ -141187,7 +145075,7 @@ msgstr "" #: src/game_inventory.cpp msgid "COVERAGE" -msgstr "" +msgstr "COBERTURA" #: src/game_inventory.cpp msgid "WARMTH" @@ -141273,7 +145161,7 @@ msgstr "CALORÍAS" #: src/game_inventory.cpp msgid "QUENCH" -msgstr "" +msgstr "HIDRATACIÓN" #: src/game_inventory.cpp msgid "JOY" @@ -141294,7 +145182,7 @@ msgstr "" #: src/game_inventory.cpp msgid "SPOILS IN" -msgstr "" +msgstr "SE PUDRE EN" #: src/game_inventory.cpp msgid "Battery" @@ -141326,7 +145214,7 @@ msgstr "" #: src/game_inventory.cpp msgid "soon!" -msgstr "" +msgstr "pronto!" #: src/game_inventory.cpp msgid "fresh" @@ -141338,7 +145226,7 @@ msgstr "algo fresco" #: src/game_inventory.cpp msgid "near midlife" -msgstr "" +msgstr "mitad de vida útil" #: src/game_inventory.cpp msgid "past midlife" @@ -141346,7 +145234,7 @@ msgstr "" #: src/game_inventory.cpp msgid "getting older" -msgstr "" +msgstr "haciéndose viejo" #: src/game_inventory.cpp msgid "old" @@ -141509,7 +145397,7 @@ msgstr "" #: src/game_inventory.cpp msgid "Saw barrel" -msgstr "" +msgstr "Cortar cañón" #: src/game_inventory.cpp msgid "You don't have any guns." @@ -141518,7 +145406,7 @@ msgstr "No posees algún arma." #: src/game_inventory.cpp #, c-format msgid "Choose a weapon to use your %s on" -msgstr "" +msgstr "Elegí un arma en la que usar tu %s" #: src/game_inventory.cpp msgid "Multidrop" @@ -141569,7 +145457,7 @@ msgstr "¡%s esta en el camino!" #: src/gates.cpp #, c-format msgid "That %s can only be closed from the inside." -msgstr "" +msgstr "Ese/a %s solo puede ser cerrado/a desde adentro." #: src/gates.cpp #, c-format @@ -141603,7 +145491,7 @@ msgstr "Hay demasiadas cosas en el medio." #: src/gates.cpp #, c-format msgid "You push the %s out of the way." -msgstr "" +msgstr "Empujás el/a %s para abrirte paso." #: src/gates.cpp msgid "stuff" @@ -141828,10 +145716,6 @@ msgstr "Sí." msgid "Yes, and save game before sleeping." msgstr "Sí, y guardar el juego antes de dormir." -#: src/handle_action.cpp -msgid "No." -msgstr "No." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "Por ahí quieras desactivar estos antes de dormirte." @@ -141848,7 +145732,7 @@ msgstr "" #: src/handle_action.cpp msgid "No, don't set an alarm." -msgstr "" +msgstr "No, no establecer alarmas." #: src/handle_action.cpp #, c-format @@ -141857,7 +145741,7 @@ msgstr "" #: src/handle_action.cpp msgid "There is no compatible zone nearby." -msgstr "" +msgstr "No hay una zona compatible cerca." #: src/handle_action.cpp #, c-format @@ -141870,7 +145754,7 @@ msgstr "" #: src/handle_action.cpp msgid "Sort out my loot" -msgstr "" +msgstr "Ordenar mis cosas" #: src/handle_action.cpp msgid "" @@ -141885,7 +145769,7 @@ msgstr "" #: src/handle_action.cpp msgid "Till farm plots... you need a tool to dig with" -msgstr "" +msgstr "Arar campos... necesitás una herramienta para cavar" #: src/handle_action.cpp msgid "Tills nearby Farm: Plot zones." @@ -141910,9 +145794,29 @@ msgid "" msgstr "" #: src/handle_action.cpp -msgid "You need a tool to dig with." +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" msgstr "" +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + +#: src/handle_action.cpp +msgid "You need a tool to dig with." +msgstr "Necesitás una herramienta para cavar." + #: src/handle_action.cpp src/iexamine.cpp src/mission_companion.cpp #: src/vehicle_part.cpp msgid "It is too cold to plant anything now." @@ -141948,7 +145852,7 @@ msgstr "Auto-moverse cancelado" #: src/handle_action.cpp #, c-format msgid "Unknown command: \"%s\" (%ld)" -msgstr "" +msgstr "Comando desconocido: \"%s\" (%ld)" #: src/handle_action.cpp msgid "You can't open things while you're in your shell." @@ -142229,7 +146133,7 @@ msgstr "¡Necesitas una tarjeta de crédito cargada para comprar cosas!" #: src/iexamine.cpp #, c-format msgid "Money left: %s" -msgstr "" +msgstr "Dinero disponible: %s" #: src/iexamine.cpp msgid "That item is too expensive!" @@ -142245,7 +146149,7 @@ msgstr "Este inodoro está vacío." #: src/iexamine.cpp msgid "The toilet water is frozen solid!" -msgstr "" +msgstr "¡El agua del inodoro está congelada!" #: src/iexamine.cpp msgid "Swipe your ID card?" @@ -142261,7 +146165,7 @@ msgstr "Las puertas cercanas se insertan en el suelo." #: src/iexamine.cpp msgid "The nearby doors are already opened." -msgstr "" +msgstr "Las puertas cercanas ya están abiertas." #: src/iexamine.cpp msgid "You activate the panel!" @@ -142326,7 +146230,7 @@ msgstr "Te resbalás mientras trepabas y te caes de nuevo." #: src/iexamine.cpp msgid "Climbing this obstacle is impossible in your current state." -msgstr "" +msgstr "Es imposible trepar este obstáculo en tu estado actual." #: src/iexamine.cpp #, c-format @@ -142359,7 +146263,7 @@ msgstr "Desmontaste el %s." #: src/iexamine.cpp #, c-format msgid "The %s is broken and can not be picked up." -msgstr "" +msgstr "El/a %s está roto/a y no puede ser levantado/a." #: src/iexamine.cpp #, c-format @@ -142674,10 +146578,23 @@ msgstr "La semilla florece bastante rápidamente..." msgid "The seed blossoms into a flower-looking fungus." msgstr "La semilla florece en un hongo que parece una flor." +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "Este %s ya ha sido fertilizado." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "" #: src/iexamine.cpp #, c-format @@ -142693,6 +146610,11 @@ msgstr "Fertilizar el %s" msgid "Use which fertilizer?" msgstr "¿Qué fertilizante quieres usar?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "Este %s ya ha sido fertilizado." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Esta carbonera ya contiene carbón." @@ -142746,8 +146668,8 @@ msgstr "Aquí hay una carbonera" #, c-format msgid "It will finish burning in about %d hour." msgid_plural "It will finish burning in about %d hours." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Va a terminar de arder en más o menos %d hora." +msgstr[1] "Va a terminar de arder en unas %d horas." #: src/iexamine.cpp msgid "It will finish burning in less than an hour." @@ -142756,12 +146678,12 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "It should take about %d minutes to finish burning." -msgstr "" +msgstr "Debería tardar unos %d minutos en terminar de arder." #: src/iexamine.cpp #, c-format msgid "It has finished burning, yielding %d charcoal." -msgstr "" +msgstr "Ya terminó su proceso, y produjo %d de carbón vegetal." #: src/iexamine.cpp msgid "This keg is empty." @@ -142783,7 +146705,7 @@ msgstr "¿Quieres poner %s en el tanque de fermentación?" #: src/iexamine.cpp #, c-format msgid "This keg contains %s (%d), %0.f%% full." -msgstr "" +msgstr "Este barril contiene %s (%d), %0.f%% lleno." #: src/iexamine.cpp src/pickup.cpp msgid "Select an action" @@ -142792,16 +146714,16 @@ msgstr "Elegir una acción" #: src/iexamine.cpp #, c-format msgid "Add more %s to the vat" -msgstr "" +msgstr "Agregar más %s al tanque de fermentación" #: src/iexamine.cpp #, c-format msgid "Remove %s from the vat" -msgstr "" +msgstr "Quitar %s del tanque de fermentación" #: src/iexamine.cpp msgid "Start fermenting cycle" -msgstr "" +msgstr "Comenzar proceso de fermentación" #: src/iexamine.cpp #, c-format @@ -142836,6 +146758,7 @@ msgstr "Quitás %s del tanque de fermentación." #, c-format msgid "There's a vat of %s set to ferment there." msgstr "" +"Ahí hay un tanque de fermentación con %s listo para iniciar su proceso." #: src/iexamine.cpp msgid "It will finish brewing in less than an hour." @@ -142860,7 +146783,7 @@ msgstr "El %s ya está listo para embotellar." #: src/iexamine.cpp #, c-format msgid "There's a vat of fermented %s there." -msgstr "" +msgstr "Ahí hay un tanque de fermentación con %s ya fermentado." #: src/iexamine.cpp #, c-format @@ -143362,6 +147285,7 @@ msgstr "" #: src/iexamine.cpp msgid "You need an anesthesia kit for autodoc to perform any operation." msgstr "" +"Necesitás un equipo de anestesia para que el autodoc realice una operación." #: src/iexamine.cpp msgid "Autodoc Mk. XI. Status: Online. Please choose operation." @@ -143417,7 +147341,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "%1$s has installed a superior version of this bionic." -msgstr "" +msgstr "%1$s ya tiene instalado una versión superior de este biónico." #. ~ %1$s is installer name, %2$s is bionic CBM display name, %3$s is patient #. name @@ -143429,12 +147353,12 @@ msgstr "" #. ~ %1$s is patient name #: src/iexamine.cpp msgid "You don't have any bionics installed." -msgstr "" +msgstr "No tienes instalado ningún biónico." #: src/iexamine.cpp #, c-format msgid "%1$s doesn't have any bionics installed." -msgstr "" +msgstr "%1$s no tiene instalado ningún biónico." #: src/iexamine.cpp msgid "Choose bionic to uninstall" @@ -143456,7 +147380,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "You remove %s from the rack." -msgstr "" +msgstr "Sacás el/a %s del soporte." #: src/iexamine.cpp msgid "" @@ -143470,7 +147394,7 @@ msgstr "" #: src/iexamine.cpp msgid "There is no charcoal in the rack." -msgstr "" +msgstr "No hay carbón vegetal para el soporte." #: src/iexamine.cpp msgid "" @@ -143486,6 +147410,8 @@ msgstr "" #: src/iexamine.cpp msgid "There is not enough charcoal in the rack to smoke this much food." msgstr "" +"No hay suficiente carbón vegetal en el soporte para ahumar tanta cantidad de" +" comida." #: src/iexamine.cpp #, c-format @@ -143555,7 +147481,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "Light up and smoke food... need extra %d charges of charcoal" -msgstr "" +msgstr "Encender y ahumar comida... necesitás %d más de carbón vegetal" #: src/iexamine.cpp msgid "Light up and smoke food" @@ -143566,6 +147492,8 @@ msgid "" "Light up the smoking rack and start smoking. Smoking will take about 6 " "hours." msgstr "" +"Encender el soporte para ahumar y empezar a ahumar. El ahumado tardará 6 " +"horas." #: src/iexamine.cpp msgid "Insert food for smoking... smoking rack is full" @@ -143584,7 +147512,7 @@ msgstr "" #: src/iexamine.cpp msgid "Remove food from smoking rack" -msgstr "" +msgstr "Sacar comida del soporte para ahumar" #: src/iexamine.cpp msgid "Reload with charcoal... you don't have any" @@ -143618,7 +147546,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "Remove %d charges of charcoal from smoking rack" -msgstr "" +msgstr "Sacar %d cargas de carbón vegetal del soporte" #: src/iexamine.cpp msgid "There's a smoking rack here. It is lit and smoking." @@ -143654,7 +147582,7 @@ msgstr "" #: src/iexamine.cpp msgid "You see some smoldering embers there." -msgstr "" +msgstr "Ves unas brasas ardientes ahí." #: src/iexamine.cpp msgid "It is already lit and smoking." @@ -143718,7 +147646,7 @@ msgstr "" #: src/init.cpp msgid "Overmap connections" -msgstr "" +msgstr "Conexiones de mapa" #: src/init.cpp msgid "Overmap specials" @@ -143746,11 +147674,11 @@ msgstr "" #: src/init.cpp msgid "Crafting recipes" -msgstr "" +msgstr "Recetas de fabricación" #: src/init.cpp msgid "Recipe groups" -msgstr "" +msgstr "Grupos de receta" #: src/init.cpp msgid "Martial arts" @@ -143766,7 +147694,7 @@ msgstr "" #: src/init.cpp msgid "Anatomies" -msgstr "" +msgstr "Anatomías" #: src/init.cpp msgid "Tileset" @@ -143925,7 +147853,7 @@ msgstr "" #: src/input.cpp #, c-format msgid "New key for %s" -msgstr "" +msgstr "Tecla nueva para %s" #: src/input.cpp #, c-format @@ -144096,6 +148024,8 @@ 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 estar bien. Si fueras más habilidoso en " +"cocinar o en supervivencia, tal vez podrías estimar mejor su estado." #. ~ here, %s is an approximate time span, e.g., "over 2 weeks" or "about 1 #. season" @@ -144114,6 +148044,8 @@ msgid "" "* This food looks like it is reaching its midlife. " "There's %s before it spoils." msgstr "" +"* Esta comida parece que está alcanzando la mitad de su vida " +"útil. Le quedan unos %s antes de pudrirse." #. ~ here, %s is an approximate time span, e.g., "over 2 weeks" or "about 1 #. season" @@ -144257,11 +148189,11 @@ msgstr "Estimulación:" #: src/item.cpp msgid "Downer" -msgstr "" +msgstr "Calmante" #: src/item.cpp msgid "Upper" -msgstr "" +msgstr "Estimulante" #: src/item.cpp msgid "Portions: " @@ -144330,6 +148262,7 @@ msgstr "" #: src/item.cpp msgid "* It seems that deep freezing killed all parasites." msgstr "" +"* Parece que al estar muy congelada mató todos los parásitos." #: src/item.cpp msgid "" @@ -144562,12 +148495,16 @@ msgstr "%" #: src/item.cpp msgid "Reload modifier: " -msgstr "" +msgstr "Modificador de carga:" #: src/item.cpp msgid "Minimum strength required modifier: " msgstr "" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "Se usa en: " @@ -144576,6 +148513,10 @@ msgstr "Se usa en: " msgid "Location: " msgstr "Lugar:" +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "Cubre: " @@ -144710,7 +148651,7 @@ msgstr "Incomodidad: " #: src/item.cpp msgid "Encumbrance when full: " -msgstr "" +msgstr "Incomodidad cuando está llena:" #: src/item.cpp msgid "Storage: " @@ -144730,7 +148671,7 @@ msgstr "Fuego: " #: src/item.cpp msgid "Environmental: " -msgstr "" +msgstr "Ambiental: " #: src/item.cpp msgid "Protection when active: " @@ -144860,6 +148801,8 @@ msgid "" "Has level %1$d %2$s quality and is rated at %3$d " "%4$s" msgstr "" +"Tiene calidad nivel %1$d en %2$s y está calificado para " +"%3$d %4$s" #: src/item.cpp #, c-format @@ -144877,6 +148820,8 @@ msgstr "" #: src/item.cpp msgid "* This item can be used to make long reach attacks." msgstr "" +"* Este objeto puede ser usado para hacer ataques de largo " +"alcance." #: src/item.cpp msgid "* This item can be used to make reach attacks." @@ -144884,7 +148829,7 @@ msgstr "" #: src/item.cpp msgid "Average melee damage:" -msgstr "" +msgstr "Daño cuerpo a cuerpo promedio:" #: src/item.cpp #, c-format @@ -144921,7 +148866,7 @@ msgstr "" #: src/item.cpp msgid "* This item is not repairable." -msgstr "" +msgstr "* Este objeto no se puede reparar." #: src/item.cpp msgid "* This item does not conduct electricity." @@ -144952,6 +148897,7 @@ msgstr "* Esta ropa puede ser ajustada a tu tamaño." msgid "" "* These clothes are too large but can be undersized." msgstr "" +"* Esta ropa es muy grande pero puede ajustarse." #: src/item.cpp msgid "" @@ -145142,7 +149088,7 @@ msgstr "Mod: " #: src/item.cpp msgid "Contents of this item:" -msgstr "" +msgstr "Contenido de este objeto:" #: src/item.cpp msgid "You know dozens of things you could craft with it." @@ -145160,7 +149106,7 @@ msgstr "Se puede usar para fabricar: %s" #: src/item.cpp #, c-format msgid "It takes you an extremely long time to wield your %s." -msgstr "" +msgstr "Tardás un excesivo tiempo en empuñar tu %s." #: src/item.cpp #, c-format @@ -145300,7 +149246,7 @@ msgstr " (congelado)" #: src/item.cpp msgid " (melted)" -msgstr "" +msgstr "(derretido)" #: src/item.cpp msgid " (oversize)" @@ -145312,7 +149258,7 @@ msgstr "" #: src/item.cpp msgid " (poor fit)" -msgstr "" +msgstr " (te queda mal)" #: src/item.cpp msgid " (filthy)" @@ -145448,7 +149394,7 @@ msgstr "no es lo suficientemente grande como para usar esa modificación" #: src/item.cpp msgid "can only accept small mods on that slot" -msgstr "" +msgstr "solo puede aceptar modificaciones pequeñas en ese lugar" #. ~ %1$s - name of the gunmod, %2$s - name of the ammo #: src/item.cpp @@ -145472,6 +149418,11 @@ msgstr "no puede tener un recolector de latón" msgid "must be unloaded before installing this mod" msgstr "debe ser descargado antes de instalar esta modificación" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -145576,7 +149527,7 @@ msgstr "" #: src/item.cpp #, c-format msgid "Your %s is quenched by precipitation." -msgstr "" +msgstr "Tu %s es extinguido/a por la lluvia." #: src/item.cpp src/iuse.cpp msgid "You notice the cable has come loose!" @@ -145624,8 +149575,8 @@ msgstr[1] "%s cadáveres" msgctxt "item name" msgid "%s carcass of %s" msgid_plural "%s carcasses of %s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s carcasa de %s" +msgstr[1] "%s carcasas de %s" #: src/item.cpp #, c-format @@ -145958,7 +149909,7 @@ msgstr "Esto parece poco saludable, ¿seguro que quieres comerlo?" #: src/iuse.cpp msgid "Blech, that tastes gross!" -msgstr "" +msgstr "¡Puaj, tiene un gusto horrible!" #: src/iuse.cpp msgid "Blech, that burns your throat!" @@ -146016,16 +149967,16 @@ msgstr "Se siente como si estuvieras en fuego, pero estás bien." #: src/iuse.cpp msgctxt "memorial_male" msgid "Injected smart purifier." -msgstr "" +msgstr "Se inyectó purificante inteligente." #: src/iuse.cpp msgctxt "memorial_female" msgid "Injected smart purifier." -msgstr "" +msgstr "Se inyectó purificante inteligente." #: src/iuse.cpp msgid "You don't have any mutations to purify." -msgstr "" +msgstr "No tenés ninguna mutación para purificar." #: src/iuse.cpp msgid "Choose a mutation to purify" @@ -146043,10 +149994,12 @@ msgid "" "As you eat the %s, you have a near-religious experience, feeling at one with" " your surroundings..." msgstr "" +"Te comés el/a %s, y tenés una experiencia casi religiosa, sintiéndote en " +"unidad con tus alrededores..." #: src/iuse.cpp msgid "It tastes extremely strange!" -msgstr "" +msgstr "¡Tiene un gusto extremadamente extraño!" #: src/iuse.cpp msgid "You feel better all over." @@ -146253,7 +150206,7 @@ msgstr "" #: src/iuse.cpp #, c-format msgid "The %s doesn't want that kind of food." -msgstr "" +msgstr "El/a %s no quiere esa clase de comida." #: src/iuse.cpp #, c-format @@ -146274,6 +150227,8 @@ msgid "" "Okay, but please, don't give me this again. I don't want to eat dog food in" " the cataclysm all day." msgstr "" +"Bueno, pero por favor, no me vuelvas a dar esto. No quiero pasarme el " +"cataclismo comiendo comida para perros." #: src/iuse.cpp #, c-format @@ -146313,6 +150268,7 @@ msgstr "" msgid "" "The %s seems to like you! It runs around your legs and seems friendly." msgstr "" +"¡Parece que le gustás al/a %s! Pasa cerca de tus piernas y parece amistoso." #: src/iuse.cpp msgid "There is nothing to be fed here." @@ -146664,7 +150620,7 @@ msgstr "Ya sabés todo lo que este libro puede enseñar." #: src/iuse.cpp #, c-format msgid "You learn the essential elements of %s." -msgstr "" +msgstr "Aprendés los elementos esenciales del %s." #: src/iuse.cpp #, c-format @@ -146758,7 +150714,7 @@ msgstr "Rompes el cristal." #: src/iuse.cpp msgid "Till soil where?" -msgstr "" +msgstr "¿Dónde quieres arar el suelo?" #: src/iuse.cpp msgid "You think about jumping on a shovel, but then change up your mind." @@ -146774,7 +150730,7 @@ msgstr "" #: src/iuse.cpp src/mutation.cpp msgid "You delve into yourself." -msgstr "" +msgstr "Indagás tu interior." #: src/iuse.cpp msgid "You can't deepen this pit without a proper shovel." @@ -146786,7 +150742,7 @@ msgstr "" #: src/iuse.cpp msgid "Fill which pit or mound?" -msgstr "" +msgstr "¿Qué pozo o montículo quieres rellenar?" #: src/iuse.cpp src/mutation.cpp msgid "You decide not to bury yourself that early." @@ -146846,7 +150802,7 @@ msgstr "Tiras de las cuerdas, pero no pasa nada." #: src/iuse.cpp msgid "With a buzz, the chainsaws leap to life!" -msgstr "" +msgstr "¡Con un zumbido, las motosierras cobran vida!" #: src/iuse.cpp msgid "You flip the on switch, but nothing happens." @@ -147095,7 +151051,7 @@ msgstr "" #: src/iuse.cpp msgid "REVERTS!" -msgstr "" +msgstr "¡REVERTIR!" #: src/iuse.cpp msgid "BEES!" @@ -147438,7 +151394,7 @@ msgstr "¿Quieres extraer sangre del %s?" #: src/iuse.cpp #, c-format msgid "You drew blood from the %s..." -msgstr "" +msgstr "Extraés sangre del %s..." #: src/iuse.cpp msgid "Draw your own blood?" @@ -147456,7 +151412,7 @@ msgstr "" #: src/iuse.cpp #, c-format msgid "...but acidic blood damages the %s!" -msgstr "" +msgstr "...pero la sangre ácida derrite el/a %s!" #: src/iuse.cpp msgid "You cut the log into planks." @@ -147486,7 +151442,7 @@ msgstr "" #: src/iuse.cpp msgid "You can't chop down that." -msgstr "" +msgstr "No podés talar eso." #: src/iuse.cpp msgid "Chop which tree trunk?" @@ -147726,11 +151682,11 @@ msgstr "Una sombra se forma en un lugar cercano." #: src/iuse.cpp msgid "Your body feels like jelly." -msgstr "" +msgstr "Tu cuerpo se siente como gelatina." #: src/iuse.cpp msgid "You're filled with euphoria!" -msgstr "" +msgstr "¡Estás lleno de euforia!" #: src/iuse.cpp msgid "(To delete, input one '.')" @@ -147763,7 +151719,7 @@ msgstr "" #: src/iuse.cpp msgid "You defrost the food." -msgstr "" +msgstr "Descongelás la comida." #: src/iuse.cpp msgid "You defrost and heat up the food." @@ -148147,13 +152103,8 @@ msgid "No music on device" msgstr "No hay música en el dispositivo" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "Receta: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "Ver receta en pantalla de tinta electrónica" +msgid "View recipes on E-ink screen" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" @@ -148222,13 +152173,8 @@ msgid "You turned on music on your %s." msgstr "Enciendes la música de tu %s." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "Elegir receta para ver:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "Cambias la pantalla de tinta electrónica para ver la receta de %s." +msgid "List recipes:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -148286,10 +152232,6 @@ msgstr "Cargar fotos a la tarjeta de memoria" msgid "No photos in memory" msgstr "No hay fotos en la memoria" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "Decides no usar el flash en ti mismo." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "No hay nada particularmente interesante ahí." @@ -148322,6 +152264,10 @@ msgstr "Un %s se metió en el medio de la foto." msgid "This photo is better than the previous one." msgstr "Esta foto es mejor que la anterior." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -148387,6 +152333,8 @@ msgstr "una sirena de policía, wup WUP." #: src/iuse.cpp msgid "The cuffs try to shock you, but you're protected from electricity." msgstr "" +"La esposas intentan darte una descarga eléctrica, pero estás protegido " +"contra la electricidad." #: src/iuse.cpp msgid "Ouch, the cuffs shock you!" @@ -148739,7 +152687,7 @@ msgstr "" #: src/iuse.cpp msgid "Attach cable to solar pack" -msgstr "" +msgstr "Conectar cable a equipo solar" #: src/iuse.cpp msgid "Attach cable to vehicle where?" @@ -148793,7 +152741,7 @@ msgstr "" #: src/iuse.cpp #, c-format msgid "The %s must be installed in a vehicle before being loaded." -msgstr "" +msgstr "El %s tiene que estar instalado en un vehículo antes de ser cargado." #: src/iuse.cpp #, c-format @@ -148859,7 +152807,7 @@ msgstr "Pones la escalera." #: src/iuse.cpp msgid "You're carrying too much to clean anything." -msgstr "" +msgstr "Estás cargando demasiadas cosas como para limpiar algo." #: src/iuse.cpp msgid "Cleanser" @@ -148892,7 +152840,7 @@ msgstr "" #: src/iuse.cpp msgid "You try to break the stick in two, but it shatters into splinters." -msgstr "" +msgstr "Intentás romper el palo a la mitad, pero se destroza en astillas." #: src/iuse.cpp msgid "The stick breaks clean into two parts." @@ -148944,15 +152892,15 @@ msgstr "" #: src/iuse.cpp msgid "It is decidedly so." -msgstr "" +msgstr "Decididamente, es así." #: src/iuse.cpp msgid "Without a doubt." -msgstr "" +msgstr "Sin lugar a dudas." #: src/iuse.cpp msgid "Yes - definitely." -msgstr "" +msgstr "Sí - definitivamente." #: src/iuse.cpp msgid "You may rely on it." @@ -148964,15 +152912,15 @@ msgstr "" #: src/iuse.cpp msgid "Most likely." -msgstr "" +msgstr "Lo más probable." #: src/iuse.cpp msgid "Outlook good." -msgstr "" +msgstr "Buena perspectiva." #: src/iuse.cpp msgid "Signs point to yes." -msgstr "" +msgstr "Las señales dicen que sí." #: src/iuse.cpp msgid "Reply hazy, try again." @@ -148992,7 +152940,7 @@ msgstr "" #: src/iuse.cpp msgid "Concentrate and ask again." -msgstr "" +msgstr "Concentrate y preguntá otra vez." #: src/iuse.cpp msgid "Don't count on it." @@ -149012,7 +152960,7 @@ msgstr "" #: src/iuse.cpp msgid "Very doubtful." -msgstr "" +msgstr "Muy dudoso." #: src/iuse.cpp #, c-format @@ -149044,7 +152992,7 @@ msgstr "Cuenta hacia atrás: " #: src/iuse_actor.cpp msgid "It's already been triggered." -msgstr "" +msgstr "Ya ha sido activado/a." #: src/iuse_actor.cpp #, c-format @@ -149059,11 +153007,11 @@ msgstr "Energía en el epicentro: " #: src/iuse_actor.cpp msgid "Casing mass: " -msgstr "" +msgstr "Vaina masa: " #: src/iuse_actor.cpp msgid "Fragment mass: " -msgstr "" +msgstr "Fragmento masa: " #: src/iuse_actor.cpp #, c-format @@ -149424,6 +153372,8 @@ msgid "" "The prospect of cutting up the corpse and letting it rise again as a slave " "is too much for you to deal with right now." msgstr "" +"La idea de cortar en pedazos el cuerpo y dejarlo que se vuelva a levantar y " +"sea un esclavo, es demasiado para que lo puedas soportar en este momento." #: src/iuse_actor.cpp msgid "Selectively butcher the downed zombie into a zombie slave?" @@ -149500,7 +153450,7 @@ msgstr "Empiezas a tocar tu %s" #: src/iuse_actor.cpp #, c-format msgid " starts playing their %s" -msgstr "" +msgstr " empieza a tocar su %s" #: src/iuse_actor.cpp #, c-format @@ -149534,7 +153484,7 @@ msgstr "Tu %1$s es muy pesado para poner en tu %2$s" #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" -msgstr "" +msgstr "No te parece que poner tu %1$s en tu %2$s sea una buena idea" #: src/iuse_actor.cpp #, c-format @@ -149633,15 +153583,6 @@ msgstr "¡No ves nada, no puedes hacer eso!" msgid "Your tool does not have enough charges to do that." msgstr "Tu herramienta no tiene suficientes cargas para hacer eso." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "¿Qué quieres reparar?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "No tienes ningún objeto que pueda ser reparado con un/a %s." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -149791,7 +153732,7 @@ msgstr "" #: src/iuse_actor.cpp #, c-format msgid "Select a body part of %s for %s:" -msgstr "" +msgstr "Elije una parte del cuerpo de %s para %s:" #: src/iuse_actor.cpp msgid "Base healing: " @@ -149819,7 +153760,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Actual bandaging quality: " -msgstr "" +msgstr "Calidad actual de vendaje: " #: src/iuse_actor.cpp msgid "Base disinfecting quality: " @@ -149827,7 +153768,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Actual disinfecting quality: " -msgstr "" +msgstr "Calidad actual de desinfección: " #: src/iuse_actor.cpp msgid "Chance to heal (percent): " @@ -149926,19 +153867,13 @@ msgstr "" msgid "Remove which modification?" msgstr "¿Cuál modificación quieres quitar?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Le sacas tu %1$s a tu %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "" #: src/iuse_actor.cpp msgid "None of the mods can be removed." -msgstr "" +msgstr "Ninguna de las modificaciones puede quitarse." #: src/iuse_actor.cpp msgid "Has to be taken off first." @@ -149980,12 +153915,12 @@ msgstr "¿Dónde quieres poner el %s (área libre de %dx%d)?" #: src/iuse_actor.cpp #, c-format msgid "The %s is in the way." -msgstr "" +msgstr "El/a %s está en el medio." #: src/iuse_actor.cpp #, c-format msgid "The %s in that direction is not passable." -msgstr "" +msgstr "El/a %s en esa dirección no se puede pasar." #: src/iuse_actor.cpp #, c-format @@ -151528,6 +155463,10 @@ msgstr "Destrozable. " msgid "Diggable. " msgstr "Cavable. " +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "Irregular. " @@ -151550,7 +155489,7 @@ msgstr "Simple. " #: src/map.cpp msgid "Mountable. " -msgstr "" +msgstr "Montable." #: src/map.cpp #, c-format @@ -151588,7 +155527,7 @@ msgstr "¡El disparo es frenado por la pared de cristal reforzado!" #: src/map.cpp msgid "The shot is stopped by the reinforced glass door!" -msgstr "" +msgstr "¡El disparo es frenado por la puerta de vidrio reforzado!" #: src/map.cpp msgid "ke-rash!" @@ -151632,7 +155571,7 @@ msgstr "" #: src/map.cpp #, c-format msgid "Something has crawled out of the %s!" -msgstr "" +msgstr "¡Algo salió arrastrándose del/a %s!" #: src/map_extras.cpp msgid "DANGER! MINEFIELD!" @@ -151800,7 +155739,7 @@ msgstr "usar" #: src/martialarts.cpp msgid "be used" -msgstr "" +msgstr "ser usado" #: src/martialarts.cpp #, c-format @@ -151810,7 +155749,7 @@ msgstr "" #: src/martialarts.cpp #, c-format msgid "* Can only %s while unarmed" -msgstr "" +msgstr "* Puede solo %s cuando estás desarmado" #: src/martialarts.cpp #, c-format @@ -151862,12 +155801,12 @@ msgstr "" #: src/martialarts.cpp #, c-format msgid "* Will give a +%s bonus to block%s" -msgstr "" +msgstr "* Otorga un +%s de bonus a bloquear%s" #: src/martialarts.cpp #, c-format msgid "* Will give a %s penalty to block%s" -msgstr "" +msgstr "* Otorga un %s de penalidad a bloquear%s" #: src/martialarts.cpp msgid "* Attacks will be completely silent" @@ -151905,6 +155844,8 @@ msgstr "" #: src/martialarts.cpp msgid "* Will grant free recovery from a miss" msgstr "" +"* Te va a dar una recuperación libre después de un " +"fallo" #: src/martialarts.cpp msgid "* Will break a grab" @@ -151916,13 +155857,14 @@ msgstr "" #: src/martialarts.cpp msgid "* Will attack adjacent enemies around you" -msgstr "" +msgstr "* Vas a atacar a los enemigos adyacentes " #: src/martialarts.cpp msgid "" "* Will attack your target and another one behind " "it" msgstr "" +"* Vas a atacar a tu objetivo y a otro detrás de él" #: src/martialarts.cpp #, c-format @@ -151943,17 +155885,19 @@ msgstr "" #: src/martialarts.cpp #, c-format msgid "* Will stun target for %d %s" -msgstr "" +msgstr "* Va a aturdir al enemigo por %d %s" #: src/martialarts.cpp msgid "* Will disarm the target" -msgstr "" +msgstr "* Va a desarmar al objetivo" #: src/martialarts.cpp msgid "" "This style forces you to use unarmed strikes, even if wielding a " "weapon." msgstr "" +"Este estilo te fuerza a usar golpes desarmados, incluso si estás " +"empuñando un arma." #: src/martialarts.cpp #, c-format @@ -151966,11 +155910,11 @@ msgstr "Pasivo" #: src/martialarts.cpp msgid "Hit" -msgstr "" +msgstr "Golpe" #: src/martialarts.cpp msgid "Get hit" -msgstr "" +msgstr "Recibir golpe" #: src/martialarts.cpp #, c-format @@ -152167,6 +156111,8 @@ msgstr[1] "¡%d enemigos golpeados!" #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." msgstr "" +"Has aprendido %s por tu exhaustiva práctica con el Biónico de Pelea en " +"espacios cerrados." #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp @@ -152489,7 +156435,7 @@ msgstr "%s pero no causas daño." #: src/melee.cpp #, c-format msgid "%s. Critical!" -msgstr "" +msgstr "%s. ¡Critico!" #. ~ someone hits something for %d damage (critical) #: src/melee.cpp @@ -152517,7 +156463,7 @@ msgstr "" #: src/melee.cpp #, c-format msgid "You grab at %s and pull with all your force!" -msgstr "" +msgstr "¡Agarrás el %s y tirás con toda tu fuerza!" #: src/melee.cpp #, c-format @@ -152552,17 +156498,17 @@ msgstr "¡%s es hostil!" #: src/melee.cpp #, c-format msgid "You sneakily steal %1$s from %2$s!" -msgstr "" +msgstr "¡Sigilosamente, le robás %1$s a %2$s!" #: src/melee.cpp #, c-format msgid "You failed to steal %1$s from %2$s, but did not attract attention." -msgstr "" +msgstr "No pudiste robarle %1$s a %2$s, pero no despertaste ninguna sospecha." #: src/melee.cpp #, c-format msgid "You failed to steal %1$s from %2$s." -msgstr "" +msgstr "No pudiste robarle %1$s a %2$s." #. ~ Message %s on the message log was repeated %d times, e.g. "You hear a #. whack! x 12" @@ -152766,7 +156712,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" -msgstr "" +msgstr "Retirar Aliado de Labores Menores" #: src/mission_companion.cpp msgid "" @@ -152896,7 +156842,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Plant East Field" -msgstr "" +msgstr "Plantar Campo Este" #: src/mission_companion.cpp msgid "" @@ -152950,7 +156896,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Assign Ally to Forage for Food" -msgstr "" +msgstr "Asignar Aliado a Buscar Comida" #: src/mission_companion.cpp msgid "" @@ -152990,7 +156936,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Caravan Commune-Refugee Center" -msgstr "" +msgstr "Caravana Comuna-Centro de Refugio" #: src/mission_companion.cpp msgid "" @@ -153234,6 +157180,8 @@ msgstr "" msgid "" "%s was impressed with %s's performance and gave you a small bonus ( $100 )" msgstr "" +"%s quedó impresionado por la actuación de %s y te dió un pequeño extra ( " +"$100 )" #: src/mission_companion.cpp #, c-format @@ -153392,7 +157340,7 @@ msgstr "" #: src/mission_companion.cpp #, c-format msgid "Engagement between %d members of %s %s and %d %s%s!" -msgstr "" +msgstr "¡Combate entre %d miembros de %s %s y %d %s%s!" #: src/mission_companion.cpp #, c-format @@ -153406,7 +157354,7 @@ msgstr "¡Las fuerzas de %s se retiran del combate!" #: src/mission_companion.cpp msgid "The monsters are destroyed!" -msgstr "" +msgstr "¡Los monstruos son destruídos!" #: src/mission_companion.cpp msgid "The monsters disengage!" @@ -153425,6 +157373,8 @@ msgstr "No tienes ningún compañero para enviar..." msgid "" "Who do you want to send? [ COMBAT : SURVIVAL : INDUSTRY ]" msgstr "" +"¿A quién querés enviar? [ COMBATE : SUPERVIVENCIA : " +"INDUSTRIA ]" #: src/mission_companion.cpp msgid "You choose to send no one..." @@ -153494,7 +157444,7 @@ msgstr "Descargar Software" #: src/mission_start.cpp #, c-format msgid "%s also marks the road that leads to it..." -msgstr "" +msgstr "%s también marca la calle que va hasta ahí..." #: src/mission_start.cpp #, c-format @@ -153669,6 +157619,21 @@ msgstr "Esta modificación requiere soporte Lua" msgid "This mod requires Lua support" msgstr "Esta modificación requiere soporte Lua" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "¡El %s te dispara un dardo!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -153755,7 +157720,7 @@ msgstr "¡Un rayo de electricidad traza un arco hacia %s!" #: src/monattack.cpp #, c-format msgid "the %s obnoxiously yelling \"%s!!!\"" -msgstr "" +msgstr "el %s gritando molestamente \"¡¡¡%s!!!\"" #: src/monattack.cpp #, c-format @@ -154309,11 +158274,6 @@ msgstr "¡Resistes que el %s intente arrastrarte!" msgid " resist the %s as it tries to drag them!" msgstr "¡ resiste que el %s intente arrastrarlos!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "¡El %s te dispara un dardo!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "¡Sientes como te entra el veneno en el cuerpo!" @@ -155055,7 +159015,7 @@ msgstr "" #: src/monattack.cpp msgid "A spooky skeleton rises from the ground!" -msgstr "" +msgstr "¡Un espeluznante esqueleto se levanta del suelo!" #: src/monattack.cpp msgid "DOOT." @@ -155220,11 +159180,11 @@ msgstr "" #: src/mondeath.cpp #, c-format msgid "an explosion of tank of the %s's flamethrower!" -msgstr "" +msgstr "una explosión del tanque del lanzallamas de %s!" #: src/mondeath.cpp msgid "I love the smell of burning zed in the morning." -msgstr "" +msgstr "Me encanta el olor de los zetas ardiendo en la mañana." #: src/mondefense.cpp #, c-format @@ -155249,7 +159209,7 @@ msgstr "" #: src/monexamine.cpp #, c-format msgid "The %s's udders run dry." -msgstr "" +msgstr "Las ubres de la %s parecen vacías." #: src/monmove.cpp #, c-format @@ -155352,7 +159312,7 @@ msgstr "" #: src/monster.cpp msgid "Tracking." -msgstr "" +msgstr "Rastreándote." #: src/monster.cpp msgid "Ignoring." @@ -155409,7 +159369,7 @@ msgstr "" #: src/monster.cpp msgid "It is heavily injured." -msgstr "" +msgstr "Está muy herido/a." #: src/monster.cpp msgid "It is severely injured." @@ -155419,10 +159379,42 @@ msgstr "" msgid "It is nearly dead!" msgstr "" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "Esto es un %s. %s" +msgid "This is a %s. %s %s" +msgstr "" #: src/monster.cpp #, c-format @@ -155462,7 +159454,7 @@ msgstr "Esto es %s." #: src/monster.cpp #, c-format msgid "It has the following senses: %s." -msgstr "" +msgstr "Tiene los siguientes sentidos: %s." #: src/monster.cpp msgctxt "Hearing as sense" @@ -155530,11 +159522,11 @@ msgstr "paralizado" #: src/monster.cpp msgid "cause bleed" -msgstr "" +msgstr "causar sangrado" #: src/monster.cpp msgid "It has a head." -msgstr "" +msgstr "Tiene cabeza." #: src/monster.cpp #, c-format @@ -155689,7 +159681,7 @@ msgstr "¡vrrrRRRUUMMMMMMMM!" #: src/monster.cpp #, c-format msgid "Lightning strikes the %s!" -msgstr "" +msgstr "¡Rayos golpean al/a %s!" #: src/monster.cpp msgid "Your vision goes white!" @@ -155724,7 +159716,7 @@ msgstr "El %s parece estar un poco más sano." #: src/monster.cpp #, c-format msgid "The %s uses the darkness to regenerate." -msgstr "" +msgstr "El %s utiliza la oscuridad para regenerarse." #: src/monster.cpp #, c-format @@ -156243,12 +160235,10 @@ msgstr "puntos" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Cambiar con %s)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Orden:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -156667,7 +160657,7 @@ msgstr "Varias heridas en los miembros" #: src/newcharacter.cpp msgid "No starting NPC" -msgstr "" +msgstr "Sin PNJ al comienzo" #: src/newcharacter.cpp msgid "Search by scenario name." @@ -156841,14 +160831,10 @@ msgstr "PNJ: %s" msgid "Wielding a %s" msgstr "Empuñando un/a %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Vistiendo: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "Empuñando: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "Completamente desconfiado" @@ -157008,13 +160994,13 @@ msgstr "Mató a un inocente que se veía delicioso, %s, a sangre fría." #, c-format msgctxt "memorial_male" msgid "Killed an innocent, %s, in cold blood. They were weak." -msgstr "" +msgstr "Mató a una persona inocente, %s, a sangre fría. Eran débiles." #: src/npc.cpp #, c-format msgctxt "memorial_female" msgid "Killed an innocent, %s, in cold blood. They were weak." -msgstr "" +msgstr "Mató a una persona inocente, %s, a sangre fría. Eran débiles." #: src/npc.cpp #, c-format @@ -157086,7 +161072,7 @@ msgstr "Curándote" #: src/npc.cpp msgid "Unknown attitude" -msgstr "" +msgstr "Actitud desconocida" #: src/npc.cpp msgid "Is trying to kill you." @@ -157130,7 +161116,7 @@ msgstr "" #: src/npc.cpp msgid " is no longer afraid." -msgstr "" +msgstr " ya no tiene miedo." #: src/npcmove.cpp msgid "" @@ -157332,7 +161318,7 @@ msgstr "Evitar fuego amigo" #: src/npcmove.cpp msgid "Escape explosion" -msgstr "" +msgstr "Escapar explosión" #: src/npcmove.cpp #, c-format @@ -157401,7 +161387,7 @@ msgstr "" #: src/npctalk.cpp msgid "Tell all your allies to guard" -msgstr "" +msgstr "Decirles a tus aliados que hagan guardia" #: src/npctalk.cpp msgid "Tell all your allies to follow" @@ -157472,6 +161458,10 @@ msgstr "Me podrías dar una mano con otra cosa si estás interesado." msgid " If you are interested, I have another job for you." msgstr "Si estás interesado, tengo otro trabajo para ti." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "¡Un placer hacer negocios!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Ya me pediste cosas; pregúntame en otro momento." @@ -157859,17 +161849,17 @@ msgstr "Sí, sigamos entrenando." msgid "%s ( cost $%d )" msgstr "%s ( cuesta $%d )" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (cuesta $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "Bueno, gracias. " @@ -157940,7 +161930,7 @@ msgstr "Voy a seguir mi propio camino por un tiempo." #: src/npctalk.cpp msgid "Let's talk about faction camps." -msgstr "" +msgstr "Hablemos de los campamentos de bandos." #: src/npctalk.cpp msgid "Change your engagement rules..." @@ -158046,14 +162036,14 @@ msgstr "No destruyas obstáculos." msgid "You can bash obstacles." msgstr "Puedes destruir obstáculos." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "Duerme cuando te sientas cansado." - #: src/npctalk.cpp msgid "Stay awake." msgstr "Quédate despierto." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "Duerme cuando te sientas cansado." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "Quédate callado." @@ -158070,14 +162060,14 @@ msgstr "Dejar los cadáveres como están." msgid "Smash zombie corpses." msgstr "Destrozar los cadáveres de zombis." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "Cierra las puertas." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "Deja las puertas abiertas." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "Cierra las puertas." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "Establecer reglas de qué recogida." @@ -158115,7 +162105,7 @@ msgstr "" #: src/npctalk.cpp msgid "There are few large clean-ish water sources.\n" -msgstr "" +msgstr "Hay muy pocas fuentes de agua potable o más o menos.\n" #: src/npctalk.cpp msgid "" @@ -158152,7 +162142,7 @@ msgstr "" msgid "%s has abandoned the camp." msgstr "" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "puños" @@ -158221,6 +162211,23 @@ msgstr "%1$s te da un/a %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "" @@ -158373,6 +162380,16 @@ msgstr "%s te hizo un corte de pelo decente..." msgid "%s gives you a decent shave..." msgstr "%s te dio un afeitado decente..." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -158440,7 +162457,7 @@ msgstr "Intercambiar" #: src/npctrade.cpp #, c-format msgid "Profit %s" -msgstr "" +msgstr "Ganancia %s" #: src/npctrade.cpp #, c-format @@ -158632,7 +162649,7 @@ msgstr "" #: src/options.cpp msgid "Additional auto features" -msgstr "" +msgstr "Auto opciones adicionales" #: src/options.cpp msgid "" @@ -158658,7 +162675,7 @@ msgstr "Desactivado" #: src/options.cpp msgid "Pulp" -msgstr "" +msgstr "Destrozar" #: src/options.cpp msgid "Pulp Adjacent" @@ -158673,6 +162690,8 @@ msgid "" "If true, enables automatic use of wielded pickaxes and jackhammers whenever " "trying to move into mineable terrain." msgstr "" +"Si está activado, automáticamente romperás terrenos o paredes cuando te " +"muevas hacia ahí con un pico o martillo neumático en la mano." #: src/options.cpp msgid "Auto foraging" @@ -158686,7 +162705,7 @@ msgstr "" #: src/options.cpp msgid "Both" -msgstr "" +msgstr "Ambos" #: src/options.cpp msgid "Bushes" @@ -158722,13 +162741,15 @@ msgstr "" #: src/options.cpp msgid "Safe mode proximity distance" -msgstr "" +msgstr "Distancia de proximidad de modo seguro" #: 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 "" +"Si el modo seguro está activado, esta es la distancia en que nos avisará si " +"una criatura hostil aparece. 0 = Máxima distancia de visión del personaje." #: src/options.cpp msgid "Safe mode when driving" @@ -158744,7 +162765,7 @@ msgstr "" #: src/options.cpp msgid "Auto reactivate safe mode" -msgstr "" +msgstr "Reactivar automáticamente modo seguro" #: src/options.cpp msgid "" @@ -158761,6 +162782,9 @@ 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 turnos que pasarán para que el modo seguro sea reactivado. Solo se" +" reacivará si no hay hostiles en la 'Distancia de proximidad de modo " +"seguro'." #: src/options.cpp msgid "Turns to remember ignored monsters" @@ -158995,6 +163019,8 @@ 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 ejemplo 7:31 AM - Militar: 24h Militar, por ejemplo 0731 - " +"24h: Normal 24h, por ejemplo 7:31" #. ~ 12h time, e.g. 11:59pm #: src/options.cpp @@ -159082,7 +163108,7 @@ msgstr "" #: src/options.cpp msgid "Diagonal movement with cursor keys and modifiers" -msgstr "" +msgstr "Movimiento diagonal con teclas y modificadores" #: src/options.cpp msgid "" @@ -159090,6 +163116,9 @@ msgid "" "modifiers. Diagonal movement action keys are taken from keybindings, so you" " need these to be configured." msgstr "" +"Si está activado, permite los movimientos diagonales con las teclas de " +"cursor usando CTRL y SHIFT. Las teclas de movimiento diagonal son tomadas de" +" los atajos de teclado, así que necesitás que esté configurado ahí." #: src/options.cpp msgid "Vehicle plating changes part color" @@ -159369,7 +163398,7 @@ msgstr "Si está activado, se verán las animaciones del Texto de Combate." #: src/options.cpp msgid "SCT with Unicode font" -msgstr "" +msgstr "Texto de Combate con fuente Unicode" #: src/options.cpp msgid "If true, will display scrolling combat text with Unicode font." @@ -159444,11 +163473,11 @@ msgstr "" #: src/options.cpp msgid "Pixel minimap drawing mode" -msgstr "" +msgstr "Modo de dibujo de minimapa" #: src/options.cpp msgid "Specified the mode in which the minimap drawn." -msgstr "" +msgstr "Especifica la manera en que se dibujará el minimapa." #: src/options.cpp msgid "Solid" @@ -159775,6 +163804,8 @@ msgid "" "A scaling factor that determines how often creatures spawn from rotting " "material." msgstr "" +"Es un factor variable que determina qué tan seguido se generan los " +"carroñeros en el material podrido." #: src/options.cpp msgid "Item spawn scaling factor" @@ -159871,6 +163902,9 @@ msgid "" "seasons scales with this value, so adjusting it may cause nonsensical " "results." msgstr "" +"Duración de las estaciones, en días. Advertencia: Muy pocas cosas además de " +"la duración de las estaciones cambia con este valor, así que cambiarlo puede" +" llevar a resultados sin sentido." #: src/options.cpp msgid "Construction scaling" @@ -159942,10 +163976,12 @@ msgid "" "If true, static NPCs will spawn at pre-defined locations. Requires world " "reset." msgstr "" +"Si está activado, se generarán PNJ estáticos en las locaciones predefinidas." +" Necesita resetear el mundo para activarse." #: src/options.cpp msgid "Starting NPCs spawn" -msgstr "" +msgstr "Generación de PNJ al comienzo" #: src/options.cpp msgid "" @@ -159998,7 +164034,7 @@ msgstr "" #: src/options.cpp msgid "Character point pools" -msgstr "" +msgstr "Grupos de puntos de personaje" #: src/options.cpp msgid "Allowed point pools for character generation." @@ -160010,7 +164046,7 @@ msgstr "" #: src/options.cpp msgid "No freeform" -msgstr "" +msgstr "Sin formalibre" #: src/options.cpp msgid "Quicksave on app lose focus" @@ -160588,12 +164624,12 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "Ejemplo: -tubo,-pedazo,-acero" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" msgstr "" #: src/output.cpp @@ -160795,7 +164831,7 @@ msgstr "q o ESC para volver atrás." #: src/overmap_ui.cpp msgid "Select terrain to place:" -msgstr "" +msgstr "Elige el terreno para poner:" #: src/overmap_ui.cpp msgid "Select special to place:" @@ -160936,6 +164972,10 @@ msgstr "" #: src/pickup.cpp msgid "Load or unload a vehicle" +msgstr "Cargar o descargar vehículo" + +#: src/pickup.cpp +msgid "Reload seed drill with seeds" msgstr "" #: src/pickup.cpp @@ -161101,6 +165141,11 @@ msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "" "Para evitar derramar su contenido, pone su %1$s en el/la %2$s." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "tú" + #: src/player.cpp msgid "your" msgstr "tu" @@ -161175,7 +165220,7 @@ msgstr "¡Tu %s se te congelará en menos de una hora!" #: src/player.cpp #, c-format msgid "Your %s will be frostbitten any minute now!" -msgstr "" +msgstr "¡Tu %s se te congelará en cualquier momento!" #. ~ %s is bodypart #: src/player.cpp @@ -161291,7 +165336,7 @@ msgstr "%1$s era %2$s cuando sucedió el apocalipsis." #: src/player.cpp #, c-format msgid "%1$s died on %2$s." -msgstr "" +msgstr "%1$s murió el %2$s." #: src/player.cpp #, c-format @@ -161410,8 +165455,9 @@ msgstr "Biónicos totales: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Energía: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" #: src/player.cpp msgid "Weapon:" @@ -161498,9 +165544,17 @@ msgid "The sound of your voice is almost completely muffled!" msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" msgstr "" +#: src/player.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "¡El sonido de tu voz está significativamente amortiguado!" + #: src/player.cpp msgid "You start running." msgstr "Empiezas a correr." @@ -161644,7 +165698,7 @@ msgstr "¡Ay, te duele algo!" #: src/player.cpp #, c-format msgid "Bandages on your %s were damaged!" -msgstr "" +msgstr "¡Los vendajes en tu %s han sido dañados!" #: src/player.cpp #, c-format @@ -161654,12 +165708,12 @@ msgstr "" #: src/player.cpp #, c-format msgid "Bandages on your %s were destroyed!" -msgstr "" +msgstr "¡Los vendajes en tu %s han sido destruidos!" #: src/player.cpp #, c-format msgid "Your %s is no longer disinfected!" -msgstr "" +msgstr "¡Tu %s ya no está desinfectado/a!" #: src/player.cpp #, c-format @@ -161678,7 +165732,7 @@ msgstr "" #: src/player.cpp msgid "...but your shock absorbers negate the damage!" -msgstr "" +msgstr "...pero tus amortiguadores contrarrestan el daño!" #: src/player.cpp #, c-format @@ -161832,7 +165886,7 @@ msgstr "Te sientes como si no hubieras dormido en días." #: src/player.cpp msgid "You're too physically tired to stop yawning." -msgstr "" +msgstr "Estás demasiado cansado/a físicamente como para dejar de bostezar." #: src/player.cpp msgid "How much longer until bedtime?" @@ -161845,6 +165899,7 @@ msgstr "*bostezo* Realmente deberías dormir un poco." #: src/player.cpp msgid "Your mind feels tired. It's been a while since you've slept well." msgstr "" +"Tu mente se siente cansada. Ha pasado mucho tiempo desde que dormiste bien." #: src/player.cpp msgid "" @@ -161857,6 +165912,8 @@ 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 "" +"Tu mente se siente agotada, y le temés a cada minuto que pasás despierto/a. " +"Anhelás dormir, y sentís que estás a punto de desplomarte." #: src/player.cpp msgid "" @@ -161870,6 +165927,8 @@ msgid "" "Your body collapses to sleep deprivation, your neglected fatigue rushing " "back all at once, and you pass out on the spot." msgstr "" +"Tu cuerpo se desploma por la privación de sueño, tu ignorada fatiga te " +"golpea toda junta, y te desmayás en el lugar." #: src/player.cpp #, c-format @@ -161887,12 +165946,12 @@ msgstr "Estás sintiendo calambres por meterte en este vehículo." #: src/player.cpp #, c-format msgid "Bandaged wounds on your %s was healed." -msgstr "" +msgstr "Las heridas vendadas en tu %s han sanado." #: src/player.cpp #, c-format msgid "Disinfected wounds on your %s was healed." -msgstr "" +msgstr "Las heridas desinfectadas en tu %s han sanado." #: src/player.cpp #, c-format @@ -162121,11 +166180,11 @@ msgstr "" #: src/player.cpp msgid "Please, don't go." -msgstr "" +msgstr "Por favor, no te vayas." #: src/player.cpp msgid "Don't leave me alone!" -msgstr "" +msgstr "¡No me dejes solo/a!" #: src/player.cpp msgid "Yeah, sure." @@ -162149,7 +166208,7 @@ msgstr "" #: src/player.cpp msgid "You've told me already." -msgstr "" +msgstr "Ya me lo dijiste." #: src/player.cpp msgid "I know!" @@ -162163,13 +166222,9 @@ msgstr "" msgid "This place is dangerous, you shouldn't be here." msgstr "" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "" - #: src/player.cpp msgid "That's not true, is it?" -msgstr "" +msgstr "Eso no es verdad, ¿o sí?" #: src/player.cpp msgid "Are you hurt?" @@ -162182,7 +166237,7 @@ msgstr "Tu" #: src/player.cpp #, c-format msgid "Hey, let's go kill that %1$s!" -msgstr "" +msgstr "¡Ey, vamos a matar a ese/a %1$s!" #: src/player.cpp #, c-format @@ -162197,7 +166252,7 @@ msgstr "" #: src/player.cpp #, c-format msgid "Let me kill that %1$s!" -msgstr "" +msgstr "¡Dejame matar ese/a %1$s!" #: src/player.cpp #, c-format @@ -162222,7 +166277,7 @@ msgstr "" #: src/player.cpp #, c-format msgid "Look at that %1$s!" -msgstr "" +msgstr "¡Mirá ese/a %1$s!" #: src/player.cpp #, c-format @@ -162239,7 +166294,7 @@ msgstr "" #: src/player.cpp msgid "Shouldn't you put a bandage on that?" -msgstr "" +msgstr "¿No tendrías que ponerle una venda a eso?" #: src/player.cpp msgid "Please don't die! No one else lets me kill things!" @@ -162259,7 +166314,7 @@ msgstr "" #: src/player.cpp msgid "Kill a few more before you bleed out!" -msgstr "" +msgstr "¡Matá algunos más antes de que te desangres!" #: src/player.cpp msgid "Hey fix me up." @@ -162279,7 +166334,7 @@ msgstr "" #: src/player.cpp msgid "I... I can't move my legs!" -msgstr "" +msgstr "No... ¡no puedo mover las piernas!" #: src/player.cpp msgid "Medic!" @@ -162295,7 +166350,7 @@ msgstr "" #: src/player.cpp msgid "Go on without me..." -msgstr "" +msgstr "Seguí sin mí..." #: src/player.cpp msgid "Am I gonna die?" @@ -162315,7 +166370,7 @@ msgstr "" #: src/player.cpp msgid "Try not to drop me." -msgstr "" +msgstr "Tratá de no abandonarme." #: src/player.cpp msgid "How many do you think we've killed?" @@ -162323,7 +166378,7 @@ msgstr "" #: src/player.cpp msgid "I'll keep you safe!" -msgstr "" +msgstr "¡Yo te voy a mantener a salvo!" #: src/player.cpp msgid "You get a bad feeling." @@ -162347,7 +166402,7 @@ msgstr "" #: src/player.cpp msgid "\"Stop laughing at me!\"" -msgstr "" +msgstr "\"¡Dejá de reirte de mí!\"" #: src/player.cpp msgid "\"Don't point that thing at me!\"" @@ -162355,7 +166410,7 @@ msgstr "" #: src/player.cpp msgid "\"Stay away from me!\"" -msgstr "" +msgstr "\"¡Ni te me acerques!\"" #: src/player.cpp msgid "\"No! Stop!\"" @@ -162375,7 +166430,7 @@ msgstr "" #: src/player.cpp msgid "\"I didn't mean to do it!\"" -msgstr "" +msgstr "\"¡No fue mi intención!\"" #: src/player.cpp msgid "\"It wasn't my fault!\"" @@ -162383,11 +166438,11 @@ msgstr "" #: src/player.cpp msgid "\"I had to do it!\"" -msgstr "" +msgstr "\"¡Tuve que hacerlo!\"" #: src/player.cpp msgid "\"They made me do it!\"" -msgstr "" +msgstr "\"¡Me obligaron a hacerlo!\"" #: src/player.cpp msgid "\"What are you!?\"" @@ -162460,11 +166515,6 @@ msgstr "Parece que tus centros visuales no están funcionando bien..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "" -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "¡Tu placa dosimétrica pasa de %1$s a %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "" @@ -162493,7 +166543,7 @@ msgstr "¡Un biónico emite un ruido como un crujido!" #: src/player.cpp msgid "You feel your faulty bionic shuddering." -msgstr "" +msgstr "Sentís escalofríos en tus biónicos defectuosos." #: src/player.cpp msgid "Crackle!" @@ -162542,7 +166592,7 @@ msgstr "" #: src/player.cpp msgid "Your breathing slows down." -msgstr "" +msgstr "Tu respiración comienza a ser más lenta." #: src/player.cpp msgid "You stumble and fall over!" @@ -162578,7 +166628,7 @@ msgstr "" #: src/player.cpp msgid "Your vision blurs a little." -msgstr "" +msgstr "Se te nubla la visión un poco." #: src/player.cpp msgid "Your mind lapses into unawareness briefly." @@ -162594,7 +166644,7 @@ msgstr "" #: src/player.cpp msgid "You feel heartburn and an acid taste in your mouth." -msgstr "" +msgstr "Sentís un ardor en el estómago y un gusto ácido en la boca." #: src/player.cpp msgid "Your mind is so tired that you feel you can't trust your eyes anymore." @@ -162614,6 +166664,11 @@ msgstr "" msgid "You fall over!" msgstr "" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "¡Tu placa dosimétrica pasa de %1$s a %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -162766,7 +166821,7 @@ msgstr "Ponerte un/a %s va a ser complicado." #: src/player.cpp msgid "Can't wear power armor over other gear!" -msgstr "" +msgstr "¡No se puede poner la armadura de poder sobre otra cosa!" #: src/player.cpp msgid "You can only wear power armor components with power armor!" @@ -162855,7 +166910,7 @@ msgstr "astas" #: src/player.cpp msgid "Can't wield spilt liquids." -msgstr "" +msgstr "No podés empuñar líquidos derramados." #: src/player.cpp msgid "Something you are wearing hinders the use of both hands." @@ -162979,11 +167034,11 @@ msgstr "Ya tienes eso puesto." #: src/player.cpp msgid " is already wearing that." -msgstr "" +msgstr " ya tiene puesto eso." #: src/player.cpp msgid " doesn't have that item." -msgstr "" +msgstr " no tiene ese objeto." #: src/player.cpp #, c-format @@ -163046,7 +167101,7 @@ msgstr "No tienes puesto ese objeto." #: src/player.cpp msgid " isn't wearing that item." -msgstr "" +msgstr " no tiene puesto ese objeto." #: src/player.cpp msgid " is not wearing that item." @@ -163090,6 +167145,53 @@ msgstr "¡No puedes poner objetos aquí!" msgid " can't place items here!" msgstr "¡ no puede poner los objetos aquí!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "Pones el/la %s en tu inventario." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "¡El %s ya está vacío!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "" + +#: src/player.cpp +msgid "Unload what?" +msgstr "¿Qué quieres descargar?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "¡No puedes descargar un %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "¡No puedes decargar un %s recargable!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "Tu %s no tiene carga." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "Tu %s no está cargado." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "Recuperas %i de plutonio sin utilizar." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "¡No puedes quitar plutonio parcialmente agotado!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -163104,6 +167206,12 @@ msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "Tu %s tiene %d carga pero necesita %d." msgstr[1] "Tu %s tiene %d cargas pero necesita %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Le sacas tu %1$s a tu %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -163145,7 +167253,7 @@ msgstr "¿Para qué sirve estudiar? (¡Tu moral es demasiado baja!)" #: src/player.cpp #, c-format msgid "You need %s %d to understand the jargon!" -msgstr "" +msgstr "¡Necesitás %s en %d para entender la terminología técnica!" #: src/player.cpp msgid "Your eyes won't focus without reading glasses." @@ -163343,8 +167451,8 @@ msgstr[1] "Vas a tardar %d minutos en leer un capítulo de este libro." #, c-format msgid "This book contains %1$u crafting recipe: %2$s" msgid_plural "This book contains %1$u crafting recipes: %2$s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Este libro contiene %1$u receta de fabricación: %2$s" +msgstr[1] "Este libro contiene %1$u recetas de fabricación: %2$s" #: src/player.cpp msgid "It might help you figuring out some more recipes." @@ -163502,7 +167610,7 @@ msgstr "" #: src/player.cpp src/player_hardcoded_effects.cpp msgid "It looks like you've slept through the alarm..." -msgstr "" +msgstr "Parece que te quedaste dormido/a a pesar de la alarma..." #. ~ %s is armor name #: src/player.cpp @@ -163561,6 +167669,10 @@ msgstr "" msgid "You resume your task." msgstr "Retomas tu tarea." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "¿Qué quieres empuñar?" @@ -163599,6 +167711,14 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "¡Tu cuerpo se esfuerza en mantener tanto peso!" +#: src/player.cpp +msgid "Wielding: " +msgstr "Empuñando: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -163726,7 +167846,7 @@ msgstr "Percepción" #: src/player_display.cpp msgid "Severely Malnourished" -msgstr "" +msgstr "Severamente Malnutrido/a" #: src/player_display.cpp msgid "" @@ -163739,6 +167859,8 @@ msgid "" "Your body is weakened by starvation. Only time and regular meals will help you recover.\n" " \n" msgstr "" +"Tu cuerpo está severamente debilitado por la inanición. Solo el tiempo y la comida te ayudarán a recuperarte.\n" +" \n" #: src/player_display.cpp msgid "In Sunlight" @@ -163799,7 +167921,7 @@ msgstr "INCOMODIDAD Y ABRIGO" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" +msgid "Bionic Power: %1$d" msgstr "" #: src/player_display.cpp @@ -164130,7 +168252,7 @@ msgstr "Tienes la mano derecha helada." #: src/player_hardcoded_effects.cpp msgid "Your right hand quivers in the cold." -msgstr "" +msgstr "Tu mano derecha se estremece por el frío." #: src/player_hardcoded_effects.cpp msgid "Your left leg trembles against the relentless cold." @@ -164348,16 +168470,6 @@ msgstr "Sucumbiste a un ataque de asma." msgid "You wheeze and gasp for air." msgstr "Resoplas y jadeas intentando respirar." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" -"Sientes como si tus huesos fueron de goma mientras se van derritiendo y " -"armando nuevamente." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Sientes como si tus huesos se estuvieran derrumbando." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "Te duele ligeramente la cabeza." @@ -164458,7 +168570,7 @@ msgstr "Murió por sobredosis de datura." #: src/player_hardcoded_effects.cpp #, c-format msgid "Your %s wound begins to feel better!" -msgstr "" +msgstr "¡La herida en tu %s empieza a sentirse mejor!" #: src/player_hardcoded_effects.cpp msgid "You succumb to the infection." @@ -164514,7 +168626,7 @@ msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer finally wakes you up." -msgstr "" +msgstr "Finalmente, tu cronómetro interno te despierta." #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer wakes you up." @@ -164608,7 +168720,7 @@ msgstr "Ninguna" #: src/ranged.cpp #, c-format msgid "Recoil: %s" -msgstr "" +msgstr "Retroceso: %s" #: src/ranged.cpp #, c-format @@ -164707,7 +168819,7 @@ msgstr "Torretas al alcance: %d" #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" -msgstr "" +msgstr "Golpe" #: src/ranged.cpp #, c-format @@ -164716,7 +168828,7 @@ msgstr "'%c' para apuntar y disparar." #: src/ranged.cpp msgid "Regular Aim" -msgstr "" +msgstr "Apuntado Normal" #: src/ranged.cpp msgid "Careful Aim" @@ -164826,7 +168938,7 @@ msgstr "¡Tsewww!" #: src/ranged.cpp msgid "Kra-kow!" -msgstr "" +msgstr "¡Kra-kow!" #: src/ranged.cpp msgid "Bzzt!" @@ -164842,7 +168954,7 @@ msgstr "¡Bzaapp!" #: src/ranged.cpp msgid "Kra-koom!" -msgstr "" +msgstr "¡Kra-kum!" #: src/ranged.cpp msgid "Brrrip!" @@ -164991,7 +169103,7 @@ msgstr "Regla de modo seguro:" #: src/safemode_ui.cpp msgid "Proximity Distance (0=max view distance)" -msgstr "" +msgstr "Distancia de Proximidad (0=máxima distancia)" #: src/safemode_ui.cpp msgid "Option: " @@ -165146,15 +169258,6 @@ msgstr "¡Mucho frío!%s" msgid "Freezing!%s" msgstr "¡Congelado!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "¡Sordo!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Ruido %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Muerto de sed" @@ -165233,11 +169336,11 @@ msgstr "" #: src/sounds.cpp msgid "Your alarm clock finally wakes you up." -msgstr "" +msgstr "Tu reloj alarma consigue despertarte finalmente." #: src/sounds.cpp msgid "Your alarm clock wakes you up." -msgstr "" +msgstr "Te despierta tu reloj alarma." #: src/sounds.cpp msgid "Your alarm clock goes off and you haven't slept a wink." @@ -165926,7 +170029,7 @@ msgstr "" #: src/turret.cpp msgid "None of the turrets are available to fire." -msgstr "" +msgstr "Ninguna de las torretas está disponible para disparar." #: src/turret.cpp #, c-format @@ -165982,7 +170085,7 @@ msgstr "> %1$s%2$s %3$i\n" #: src/veh_interact.cpp #, c-format msgid "Only one %1$s powered engine can be installed." -msgstr "" +msgstr "Solamente un motor alimentado por %1$s puede ser instalado." #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." @@ -166264,6 +170367,8 @@ msgid "" "Removing the %1$s will yield:\n" "> %2$s\n" msgstr "" +"Al quitar los %1$s podrías conseguir:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color @@ -166362,7 +170467,7 @@ msgstr "Elige miembro del grupo" #: src/veh_interact.cpp msgid "Clear assignment" -msgstr "" +msgstr "Quitar tareas" #: src/veh_interact.cpp msgid "There are no parts here to label." @@ -166378,7 +170483,7 @@ msgstr "deshabilitado" #: src/veh_interact.cpp msgid "lack" -msgstr "" +msgstr "faltan" #: src/veh_interact.cpp msgid "unbalanced" @@ -166436,6 +170541,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -166443,21 +170561,22 @@ msgstr "Masa: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "Estado:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Más dañado: " +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Necesita reparar:" @@ -166487,6 +170606,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "Nombre: " @@ -166697,8 +170821,8 @@ msgid "Could not find base part in requirements for %s." msgstr "No se encuentra la pieza básica de los requisitos para %s." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." msgstr "" #: src/veh_interact.cpp @@ -166786,10 +170910,10 @@ msgstr "Reparas el %2$s del %1$s." msgid "Lost connection with the vehicle due to distance!" msgstr "¡Perdiste conexión con el vehículo debido a la distancia!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "¡BANG!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -166813,7 +170937,7 @@ msgstr "" #: src/vehicle.cpp msgid "Remove attached mounted weapon first." -msgstr "" +msgstr "Primero sacá el arma montada." #: src/vehicle.cpp msgid "Remove carried animal first." @@ -166831,7 +170955,7 @@ msgstr "" #: src/vehicle.cpp #, c-format msgid "You load the %1$s on the rack" -msgstr "" +msgstr "Ponés el/a %1$s en el soporte" #. ~ %1$s is the vehicle being loaded onto the bicycle rack #: src/vehicle.cpp @@ -166845,13 +170969,13 @@ msgstr "¡La pieza del vehículo en la que estabas trabajando desapareció!" #: src/vehicle.cpp msgid "The vehicle part you were holding has been destroyed!" -msgstr "" +msgstr "¡La parte del vehículo que estabas sosteniendo ha sido destruida!" #. ~ %s is the vehicle being loaded onto the bicycle rack #: src/vehicle.cpp #, c-format msgid "You unload the %s from the bike rack. " -msgstr "" +msgstr "Sacás el/a %s del soporte de bicicleta." #. ~ %s is the vehicle being loaded onto the bicycle rack #: src/vehicle.cpp @@ -167003,13 +171127,13 @@ msgstr "pila" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "¡El/la %s no tiene suficientes ruedas para moverse!" +msgid "The %s is too leaky!" +msgstr "¡El/la %s gotea mucho!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "¡El/la %s gotea mucho!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "¡El/la %s no tiene suficientes ruedas para moverse!" #: src/vehicle_move.cpp #, c-format @@ -167176,7 +171300,7 @@ msgstr " (defectuoso)" #: src/vehicle_part.cpp #, c-format msgid " holding %s" -msgstr "" +msgstr " contiene %s" #: src/vehicle_part.cpp #, c-format @@ -167221,7 +171345,7 @@ msgstr "" #: src/vehicle_use.cpp msgid "Open all curtains and doors" -msgstr "" +msgstr "Abrir todas las cortinas y puertas" #: src/vehicle_use.cpp msgid "Close all doors" @@ -167235,6 +171359,14 @@ msgstr "" msgid "headlights" msgstr "luces delanteras" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "luces superiores" @@ -167492,18 +171624,23 @@ msgstr "Parece que el/la %1$s se quedó sin %2$s." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "El %s hace un pitido largo." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "El %s hace un chasquido solo." +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "El %s hace unos chasquidos rápidos." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -167512,8 +171649,8 @@ msgstr "El %s parece tartamudear y se apaga." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "El %s hace un terrible ruido metálico." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -167533,6 +171670,11 @@ msgstr "¡BIIIP!" msgid "You honk the horn, but nothing happens." msgstr "Tocaste la bocina, pero no pasó nada." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "una melodía simple resonando de los parlantes." @@ -167885,7 +172027,7 @@ msgstr "" #: src/wish.cpp #, c-format msgid "[%s] find, [f] container, [F] flag, [%s] quit" -msgstr "" +msgstr "[%s] buscar, [f] recipiente, [F] marca, [%s] salir" #: src/wish.cpp #, c-format diff --git a/lang/po/fr.po b/lang/po/fr.po index 079d19d288daf..1adc44d47a69a 100644 --- a/lang/po/fr.po +++ b/lang/po/fr.po @@ -6,16 +6,16 @@ # Argasm Voragz , 2018 # Brett Dong , 2018 # Jazz , 2018 -# Mickaël Falck , 2018 -# _hickop, 2018 +# Mickaël Falck , 2019 +# _hickop, 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-11 13:01+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: _hickop, 2018\n" +"Last-Translator: _hickop, 2019\n" "Language-Team: French (https://www.transifex.com/cataclysm-dda-translators/teams/2217/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5546,6 +5546,20 @@ msgstr "" "Une tenue de fortune faite de vêtements pré-cataclysme conçue pour de longs " "voyages. Elle a beaucoup de poches." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -20178,7 +20192,9 @@ msgstr[1] "" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20189,7 +20205,11 @@ msgstr[1] "" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." +msgid "" +"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." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20198,8 +20218,10 @@ msgstr "viande cuite" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "De la viande récemment cuite. Très nourrissant." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -20214,11 +20236,10 @@ msgstr "abat cru" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Des entrailles et organes crus. Plutôt déplaisant mais riche en vitamines " -"essentielles." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -20229,10 +20250,10 @@ msgstr[1] "abats cuisinés" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Viscères fraichement cuites. Pas appétissant, mais rempli de vitamines " -"essentielles." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -20243,11 +20264,10 @@ msgstr[1] "Abats au vinaigre" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Abats cuisinés et préservés dans la saumure. Remplis de vitamines " -"essentielles, C'est meilleur que ce que ça sent." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -20258,11 +20278,9 @@ msgstr[1] "Abats en conserves" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Abats fraichement cuits, préservés par stérilisation. Pas appétissant mais " -"rempli de vitamines essentielles." #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -20325,10 +20343,10 @@ msgstr "viande fumée" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." msgstr "" -"De la viadne savoureuse qui a été fortement fumée pour sa préservation à " -"long terme." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -20338,8 +20356,10 @@ msgstr[1] "poissons fumés" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "Du bon poisson qui a été fumé pour être préservé longtemps." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -20348,28 +20368,36 @@ msgstr "Pigeon fumé" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" -"Un portion de chair humaine très fumée. Se garde très longtemps et est " -"plutôt bon, si vous aimez ce genre de trucs." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20378,7 +20406,10 @@ msgstr "" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" #: lang/json/COMESTIBLE_from_json.py @@ -20387,7 +20418,10 @@ msgstr "" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20409,7 +20443,9 @@ msgstr[1] "" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" +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 "" #: lang/json/COMESTIBLE_from_json.py @@ -20418,7 +20454,9 @@ msgstr "" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20436,7 +20474,9 @@ msgstr "" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -20524,12 +20564,9 @@ msgstr "os contaminé" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" -"Un os contaminé et fragile d'une créature contre nature. Peut servir pour " -"faire quelques trucs comme du charbon de bois par exemple. Vous pourriez le " -"manger mais seriez empoisonné." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -23152,7 +23189,7 @@ msgstr "" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." +msgid "A hefty raw sausage, prepared for smoking or cooking." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -23164,6 +23201,15 @@ msgstr "saucisse" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "wurst d'humain" @@ -23186,6 +23232,19 @@ msgstr[1] "Saucisses italienne douces" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "Une délicieuse saucisse. Mieux vaut la manger fraîche." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "boeuf royal" @@ -24149,7 +24208,32 @@ msgstr "" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -29341,6 +29425,15 @@ msgstr "brownie 'spécial'" msgid "This is definitely not how grandma used to bake them." msgstr "Ce n'est sûrement pas ceux que faisez votre grand-mère." +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "" @@ -33767,6 +33860,32 @@ msgid "" "without prior connection to compatible valve." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -36525,6 +36644,19 @@ msgid "" "without reducing its effectiveness." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -36931,6 +37063,19 @@ msgstr[1] "projecteurs" msgid "A large and heavy light designed to illuminate wide areas." msgstr "Une lampe imposante et lourde conçue pour illuminer des zones vastes." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -37158,6 +37303,17 @@ msgstr[1] "phares de voiture" msgid "A vehicle headlight to light up the way." msgstr "Un phare de véhicule pour éclairer le chemin." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -39447,6 +39603,47 @@ msgstr[1] "" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -39458,6 +39655,28 @@ msgstr[1] "" msgid "Oars for a boat." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "airbag" +msgstr[1] "airbags" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -44663,6 +44882,10 @@ msgstr "" "l'acide à moitié coagulé de partout. Il se déplace difficilement, mais " "attaque avec une grosse réserve d'acide." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "zombie rampant" @@ -49086,11 +49309,18 @@ msgid_plural "fedoras" msgstr[0] "fedora" msgstr[1] "fedoras" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Vous inclinez votre fedora." +msgid "Tip" +msgstr "" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +#, no-python-format +msgid "You tip your %s." +msgstr "" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -50552,6 +50782,12 @@ msgid_plural "boulder anvils" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -51934,34 +52170,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "kit de chimie" -msgstr[1] "kits de chimie" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -57278,6 +57486,158 @@ msgid "" "Some cars can be driven remotely." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "kit de chimie" +msgstr[1] "kits de chimie" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -59271,42 +59631,6 @@ msgstr "roue de chariot en bois renforcée" msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "Une roue de chariot en bois renforcée avec des bandes métalliques." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "airbag" -msgstr[1] "airbags" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "" @@ -59557,6 +59881,14 @@ msgstr "" msgid "Stop planting seeds?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "Arrêter d'intéragir avec l'inventaire?" @@ -64566,9 +64898,8 @@ msgstr "" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" #: lang/json/effects_from_json.py @@ -72018,6 +72349,41 @@ msgid "" "accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -72155,6 +72521,16 @@ msgid "" "other modification prevents use of the primary sights." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -75405,10 +75781,9 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" #. ~ Please leave anything in unchanged. @@ -76157,7 +76532,7 @@ msgstr "Dépecer" msgid "Chat with NPC" msgstr "Parler à un PNJ" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Regarder aux alentours" @@ -76768,6 +77143,14 @@ msgstr "" msgid "Toggle headlights" msgstr "Basculer phares" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "" @@ -77349,6 +77732,13 @@ msgstr "" msgid "it works." msgstr "" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -88093,6 +88483,24 @@ msgstr "" msgid "Has Level 2 Construction Built" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "" @@ -90318,8 +90726,36 @@ msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "service-au-volant abandonné" +msgid "veterinarian clinic" +msgstr "clinique vétérinaire" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "musée" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "morgue" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "lavomatique" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "joaillerie" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "motel à deux étages" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "magasin de bricolage" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -90345,6 +90781,10 @@ msgstr "bowling" msgid "boxing gym" msgstr "salle de boxe" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "salle de sport" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "dojo" @@ -90358,37 +90798,13 @@ msgid "gardening supply" msgstr "fournitures de jardinage" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "salle de sport" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "magasin de bricolage" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "joaillerie" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "lavomatique" +msgid "abandoned drive-through" +msgstr "service-au-volant abandonné" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "morgue" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "musée" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "clinique vétérinaire" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "" @@ -90626,14 +91042,6 @@ msgstr "" msgid "projects" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "motel à deux étages" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "" @@ -90750,6 +91158,34 @@ msgstr "" msgid "regional dump" msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -98581,7 +99017,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" #: lang/json/snippet_from_json.py @@ -98605,22 +99041,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" @@ -98629,7 +99063,7 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "" #: lang/json/snippet_from_json.py @@ -98645,17 +99079,16 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" #: lang/json/snippet_from_json.py @@ -98686,12 +99119,13 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" #: lang/json/snippet_from_json.py @@ -98701,8 +99135,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" #: lang/json/snippet_from_json.py @@ -98725,15 +99158,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" +msgid "Why walk when you can use a car? Or a tank?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" #: lang/json/snippet_from_json.py @@ -98786,7 +99219,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" @@ -98820,9 +99253,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" #: lang/json/snippet_from_json.py @@ -98846,7 +99277,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -98863,9 +99294,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -98881,17 +99310,78 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -104371,7 +104861,7 @@ msgstr "mon pote" msgid "fella" msgstr "" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "vous" @@ -108692,1262 +109182,6 @@ msgstr "" msgid "Clothing Store" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: 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 "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "C'est un beau badge que vous avez là!" @@ -110195,12 +109429,12 @@ msgstr "Ah, d'accord." msgid "Never mind, I'm not interested." msgstr "Oublie ça, je ne suis pas intéressé." -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "Pas la peine." @@ -111807,6 +111041,10 @@ msgid "" "time..." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -112201,6 +111439,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -112245,6 +111491,66 @@ msgstr "" msgid "This an error! npc allies 2 test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "" @@ -112289,6 +111595,30 @@ msgstr "" msgid "This is a multi-effect response" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -112304,6 +111634,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -112321,6 +111659,149 @@ msgid "" "I'll ever know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -112332,6 +111813,10 @@ msgid "" "against a town in riot. Then things really got fucked up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -112407,6 +111892,336 @@ msgid "" " about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from" @@ -112420,6 +112235,135 @@ msgid "" " on the head with my tablet." msgstr "" +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school. I'm a senior. We'd heard about riots... It started with " @@ -112494,6 +112438,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -112517,6 +112465,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -112570,6 +112526,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -112634,6 +112594,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -112671,6 +112635,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -112765,6 +112733,243 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -112816,10 +113021,493 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -112850,6 +113538,158 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -112975,6 +113815,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -117609,6 +118505,26 @@ msgstr "" msgid "bullet pulling" msgstr "" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "tapis de sol" @@ -118533,6 +119449,18 @@ msgstr "" msgid "canoe" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "" @@ -119830,8 +120758,16 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -119847,6 +120783,19 @@ msgid "" "the front." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -120153,6 +121102,36 @@ msgstr "roue de grand diamètre (dirigeable)" msgid "A wooden wheel." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "" @@ -121825,6 +122804,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -122248,8 +123233,8 @@ msgid "Repeat once" msgstr "Répéter une fois" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Répéter aussi longtemps que possible" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -122259,11 +123244,24 @@ msgstr "Répéter jusque complètement réparé, mais ne pas renforcer" msgid "Repeat until success/failure/level up" msgstr "Répéter jusque succès/échec/niveau supérieur" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "Réparer quoi?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "Vous n'avez pas d'objet réparable avec un/une %s." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Vous n'apprendrez rien de plus en faisant ça." @@ -122271,13 +123269,15 @@ msgstr "Vous n'apprendrez rien de plus en faisant ça." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"Chances de succès %.1f%%\n" -"Chances de dommages %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -122414,6 +123414,10 @@ msgstr "Vous ouvrez votre kit et vous vous rasez." msgid "You give your hair a trim." msgstr "Vous tondez vos cheveux." +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Vous retournez la terre ici." @@ -122422,6 +123426,15 @@ msgstr "Vous retournez la terre ici." msgid "You tilled every tile you could." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "" @@ -124950,8 +125963,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Énergie: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -128279,7 +129293,7 @@ msgstr "" msgid "You teleport to overmap (%d,%d,%d)." msgstr "" -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Vous" @@ -137048,6 +138062,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "" @@ -137799,9 +138833,22 @@ msgstr "" msgid "The seed blossoms into a flower-looking fungus." msgstr "" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." msgstr "" #: src/iexamine.cpp @@ -137818,6 +138865,11 @@ msgstr "" msgid "Use which fertilizer?" msgstr "Utiliser quel fertilisant?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Ce four contient déjà du charbon." @@ -139660,6 +140712,10 @@ msgstr "" msgid "Minimum strength required modifier: " msgstr "" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "Utilisé sur: " @@ -139668,6 +140724,10 @@ msgstr "Utilisé sur: " msgid "Location: " msgstr "Emplacement: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "Couvre: " @@ -140534,6 +141594,11 @@ msgstr "ne supporte pas de sac à douille" msgid "must be unloaded before installing this mod" msgstr "doit être déchargé avant d'installer ce mod" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -143317,10 +144382,6 @@ msgstr "" msgid "No photos in memory" msgstr "" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "" - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "" @@ -143353,6 +144414,10 @@ msgstr "" msgid "This photo is better than the previous one." msgstr "" +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -144637,15 +145702,6 @@ msgstr "Il n'y a pas assez de lumière pour faire ça!" msgid "Your tool does not have enough charges to do that." msgstr "Votre outil n'a pas suffisament de charges pour faire cela." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "Réparer quoi?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "Vous n'avez pas d'objet réparable avec un/une %s." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -144933,12 +145989,6 @@ msgstr "" msgid "Remove which modification?" msgstr "Retirer quelle modification?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Vous retirez %1$s de %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "" @@ -148470,6 +149520,21 @@ msgstr "Ce mod nécessite Lua" msgid "This mod requires Lua support" msgstr "Ce mod nécessite Lua" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s vous touche avec une fléchette!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -149097,11 +150162,6 @@ msgid " resist the %s as it tries to drag them!" msgstr "" " résistent à %s alors qu'il/elle tente de les tirer vers lui/elle!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s vous touche avec une fléchette!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "Vous sentez le poison se propager dans votre corps!" @@ -150152,9 +151212,41 @@ msgstr "" msgid "It is nearly dead!" msgstr "" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" +msgid "This is a %s. %s %s" msgstr "" #: src/monster.cpp @@ -150957,12 +152049,10 @@ msgstr "points" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(%s pour changer)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Tri par:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -151546,14 +152636,10 @@ msgstr "PNJ: %s" msgid "Wielding a %s" msgstr "Manie un %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Porte: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "Manie: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "" @@ -152175,6 +153261,10 @@ msgstr "" msgid " If you are interested, I have another job for you." msgstr "" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "Un plaisir de faire affaire!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Tu viens de me demander du matos, redemande moi plus tard." @@ -152563,15 +153653,15 @@ msgstr "Oui, reprenons l'entraînement. " msgid "%s ( cost $%d )" msgstr "" +#. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d" +msgid "%s: %d -> %d (cost $%d)" msgstr "" -#. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d (cost $%d)" +msgid "%s: %d -> %d" msgstr "" #: src/npctalk.cpp @@ -152752,11 +153842,11 @@ msgid "You can bash obstacles." msgstr "" #: src/npctalk.cpp -msgid "Sleep when you feel tired." +msgid "Stay awake." msgstr "" #: src/npctalk.cpp -msgid "Stay awake." +msgid "Sleep when you feel tired." msgstr "" #: src/npctalk.cpp @@ -152776,11 +153866,11 @@ msgid "Smash zombie corpses." msgstr "" #: src/npctalk.cpp -msgid "Close the doors." +msgid "Leave doors open." msgstr "" #: src/npctalk.cpp -msgid "Leave doors open." +msgid "Close the doors." msgstr "" #: src/npctalk.cpp @@ -152926,6 +154016,23 @@ msgstr "%1$s vous donne un/une %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "" @@ -155784,6 +156891,11 @@ msgstr "" msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "vous" + #: src/player.cpp msgid "your" msgstr "votre" @@ -156092,8 +157204,9 @@ msgstr "Total bioniques: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Allumer : %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" #: src/player.cpp msgid "Weapon:" @@ -157141,11 +158254,6 @@ msgstr "" msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "" -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "" @@ -157294,6 +158402,11 @@ msgstr "" msgid "You fall over!" msgstr "" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -157784,6 +158897,12 @@ msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "Votre %s a %d charge mais en requiert %d." msgstr[1] "Votre %s a %d charges mais en requiert %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Vous retirez %1$s de %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -158273,6 +159392,14 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "Votre corps est mis à mal par le poids!" +#: src/player.cpp +msgid "Wielding: " +msgstr "Manie: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -158479,7 +159606,7 @@ msgstr "ENCOMBREMENT ET CHALEUR" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" +msgid "Bionic Power: %1$d" msgstr "" #: src/player_display.cpp @@ -161102,6 +162229,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Acceleration: %3d%s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -161109,21 +162249,22 @@ msgstr "Masse: %5.0f%s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Volume du cargo: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "État:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Plus endommagé (irréparable):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Plus endommagé:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Plus endommagé (irréparable):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "nécessite réparations :" @@ -161153,6 +162294,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "Nom: " @@ -161363,10 +162509,9 @@ msgid "Could not find base part in requirements for %s." msgstr "" #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." msgstr "" -"Choisissez l'orientation du nouveau phare. Pressez espace pour continuer." #: src/veh_interact.cpp #, c-format @@ -161668,13 +162813,13 @@ msgstr "" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "Il manque des roues au/à la %s. Il ne peut avancer!" +msgid "The %s is too leaky!" +msgstr "Le %s fuit trop." #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "Le %s fuit trop." +msgid "The %s doesn't have enough wheels to move!" +msgstr "Il manque des roues au/à la %s. Il ne peut avancer!" #: src/vehicle_move.cpp #, c-format @@ -161900,6 +163045,14 @@ msgstr "" msgid "headlights" msgstr "phares" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "Plafonnier" diff --git a/lang/po/hu.po b/lang/po/hu.po index 471b251d71991..e8f2195e5d3d5 100644 --- a/lang/po/hu.po +++ b/lang/po/hu.po @@ -1,13 +1,13 @@ # Translators: -# Daniel Szollosi-Nagy , 2018 +# Daniel Szollosi-Nagy , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Daniel Szollosi-Nagy , 2018\n" +"Last-Translator: Daniel Szollosi-Nagy , 2019\n" "Language-Team: Hungarian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1346,8 +1346,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "formaldehyde" msgid_plural "formaldehyde" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "formaldehid" +msgstr[1] "formaldehid" #. ~ Description for formaldehyde #: lang/json/AMMO_from_json.py @@ -1357,6 +1357,10 @@ msgid "" "embalming agent. Easily identifiable by its pungent odor. Terribly toxic, " "carcinogenic, and volatile." msgstr "" +"Az itt vízben oldott formaldehided a Kataklizma előtt széles körben " +"használták számos vegyi anyag gyártásánál, valamint holttestek " +"tartósításánál. Erős szagáról könnyen felismerhető. Rendkívül mérgező, rákot" +" okoz, és illékony." #: lang/json/AMMO_from_json.py msgid "thermite" @@ -1478,8 +1482,8 @@ msgstr "Népszerű márkájú, kataklizma előtti mosópor." #: lang/json/AMMO_from_json.py msgid "nanomaterial canisters" msgid_plural "nanomaterial canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nanoanyag tok" +msgstr[1] "nanoanyag tok" #. ~ Description for nanomaterial canisters #: lang/json/AMMO_from_json.py @@ -1488,6 +1492,9 @@ msgid "" " in specifically engineered atomic scale configurations. A nanofabricator " "can assemble them into usable items." msgstr "" +"Szenet, vasat, titánt, rezet és egyéb elemeket tartalmazó acéltok, amelyet " +"kifejezetten atomi méretű konfigurációkhoz terveztek. Egy nanofabrikátor " +"hasznos tárgyakat készíthet belőle." #: lang/json/AMMO_from_json.py msgid "wood ash" @@ -1622,7 +1629,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "methanol" -msgstr "" +msgstr "metanol" #. ~ Description for methanol #: lang/json/AMMO_from_json.py @@ -1630,6 +1637,8 @@ msgid "" "High purity methanol suitable for use in chemical reactions. Could be used " "in alcohol-burning stoves. Very toxic." msgstr "" +"Vegyi reakcióknál használható, nagy tisztaságú metanol. Alkoholos tűzhelyben" +" is elégethető. Rendkívül mérgező." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "diesel" @@ -3747,8 +3756,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "platinum" msgid_plural "platinum" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "platina" +msgstr[1] "platina" #: lang/json/AMMO_from_json.py msgid "lead" @@ -5596,6 +5605,23 @@ msgstr "" "A kataklizma előtti időkből származó hevenyészett, hosszú utazásra szánt " "ruha. Jó sok minden elfér benne." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "könnyű nomád viselet" +msgstr[1] "könnyű nomád viselet" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"A kataklizma előtti időkből származó hevenyészett, hosszú utazásra szánt " +"könnyű ruha. A hagyományos nomád viselethez képest kevesebb minden fél el " +"benne, és kevésbé is páncélozott." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -6082,12 +6108,12 @@ msgstr[1] "szado-mazo maszk" #. ~ Use action menu_text for bondage mask. #: lang/json/ARMOR_from_json.py msgid "Zip up" -msgstr "" +msgstr "Becipzároz" #. ~ 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 "" +msgstr "Becipzározod a szado-mazo maszk száját és szemnyílásait." #. ~ Description for bondage mask #: lang/json/ARMOR_from_json.py @@ -6101,18 +6127,18 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "bondage mask (zipped)" msgid_plural "bondage masks (zipped)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "szado-mazo maszk (becipzározott)" +msgstr[1] "szado-mazo maszk (becipzározott)" #. ~ Use action menu_text for bondage mask (zipped). #: lang/json/ARMOR_from_json.py msgid "Unzip" -msgstr "" +msgstr "Kicipzároz" #. ~ 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 "" +msgstr "Kinyitod a szado-mazo maszk száját és szemnyílásait bezáró cipzárt." #. ~ Description for bondage mask (zipped) #: lang/json/ARMOR_from_json.py @@ -6120,6 +6146,8 @@ msgid "" "A tight mask made of black leather. The eyes and mouth have been zipped " "closed." msgstr "" +"Fekete bőrből készült, szűk maszk. A szemnyílásokat és a szájat cipzárral " +"zárták be." #: lang/json/ARMOR_from_json.py msgid "bondage suit" @@ -6683,6 +6711,8 @@ 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 "" +"Rikító színű műszőrme kabát néhány zsebbel. Bár nem olyan meleg, mint a " +"természetes szőrme, ilyet más biztosan nem hord." #: lang/json/ARMOR_from_json.py msgid "sable coat" @@ -6727,6 +6757,21 @@ msgid "" msgstr "" "Műanyag kabát két nagy zsebbel és kapucnival. Védelmet nyújt az eső ellen." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "bélbőr parka" +msgstr[1] "bélbőr parka" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" +"Cserzett és összevart belekből készített kabát, amelyet a sarkvidéken élők " +"könnyű súlya és vízhatlansága miatt kedvelnek." + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -7089,15 +7134,15 @@ msgstr "Teljes hosszúságú duster kabát szőrből, számos tároló zsebbel." #: lang/json/ARMOR_from_json.py msgid "faux fur duster" msgid_plural "faux fur dusters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "műszőrme duster kabát" +msgstr[1] "műszőrme duster kabát" #. ~ Description for faux fur duster #: lang/json/ARMOR_from_json.py msgid "" "A thick faux fur duster, falling below your knees. Has many pockets for " "storing things." -msgstr "" +msgstr "Térdig érő vastag duster kabát műszőrből, számos tároló zsebbel." #: lang/json/ARMOR_from_json.py msgid "leather duster" @@ -7646,6 +7691,9 @@ msgid "" "sightedness. The concave lenses diffuse the sunlight, rendering them " "useless for starting fires." msgstr "" +"Egy gentleman öltözékének elengedhetetlen kelléke. A rövidlátást is " +"korrigálja. A konkáv lencse szétszórja a napfényt, így tűzgyújtásra nem " +"használható." #: lang/json/ARMOR_from_json.py msgid "pair of reading glasses" @@ -8288,8 +8336,8 @@ msgstr "Állatok bundájából készített sapka. Extrém mértékben melegít." #: lang/json/ARMOR_from_json.py msgid "faux fur hat" msgid_plural "faux fur hats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "műszőrme sapka" +msgstr[1] "műszőrme sapka" #. ~ Description for faux fur hat #: lang/json/ARMOR_from_json.py @@ -8297,6 +8345,9 @@ 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 "" +"Műszőrméből készített divatos sapka. Olyan, mint ha igazi szőrméből készült " +"volna, csak állati szenvedés nélkül - legalábbis ha az ember elhiszi, amit a" +" címkére írtak. Nagyon meleg." #: lang/json/ARMOR_from_json.py msgid "hard hat" @@ -10299,13 +10350,13 @@ msgstr "Szőrmével bélelt nagy nadrág." #: lang/json/ARMOR_from_json.py msgid "faux fur pants" msgid_plural "faux fur pantss" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "műszőrme nadrág" +msgstr[1] "műszőrme nadrág" #. ~ Description for faux fur pants #: lang/json/ARMOR_from_json.py msgid "A pair of long cotton pants lined with warm imitation fur." -msgstr "" +msgstr "Meleg műszőrmével bélelt textil nadrág." #: lang/json/ARMOR_from_json.py msgid "leather pants" @@ -11011,12 +11062,12 @@ msgstr[1] "hálózsák" #. ~ Use action menu_text for fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "Roll up" -msgstr "" +msgstr "Felteker" #. ~ Use action msg for sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You roll up the sleeping bag, preparing it for transport." -msgstr "" +msgstr "Feltekered a hálózsákot és így az már szállítható." #. ~ Description for sleeping bag #: lang/json/ARMOR_from_json.py @@ -11026,19 +11077,19 @@ msgstr "Ez a nagyméretű hálózsák a fejed búbjáig betakar." #: lang/json/ARMOR_from_json.py msgid "rolled sleeping bag" msgid_plural "rolled sleeping bags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "feltekert hálózsák" +msgstr[1] "feltekert hálózsák" #. ~ Use action menu_text for rolled sleeping bag. #. ~ Use action menu_text for rolled fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "Unroll" -msgstr "" +msgstr "Kiteker" #. ~ Use action msg for rolled sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You unroll the sleeping bag." -msgstr "" +msgstr "Kitekered a hálózsákot." #. ~ Description for rolled sleeping bag #: lang/json/ARMOR_from_json.py @@ -11046,6 +11097,7 @@ msgid "" "A large sleeping bag rolled up for transport. It has a strap to carry it " "with." msgstr "" +"Szállításra alkalmas, feltekert hálózsák. A szállításhoz pánt van rajta." #: lang/json/ARMOR_from_json.py msgid "fur sleeping bag" @@ -11056,7 +11108,7 @@ msgstr[1] "szőrme hálózsák" #. ~ Use action msg for fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You roll up the fur sleeping bag, preparing it for transport." -msgstr "" +msgstr "Feltekered a szőrme hálózsákot és így az már szállítható." #. ~ Description for fur sleeping bag #: lang/json/ARMOR_from_json.py @@ -11066,13 +11118,13 @@ msgstr "Nagyméretű, szőrmebélésű hálózsák. Kinek kell egyáltalán sát #: lang/json/ARMOR_from_json.py msgid "rolled fur sleeping bag" msgid_plural "rolled fur sleeping bags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "feltekert szőrme hálózsák" +msgstr[1] "feltekert szőrme hálózsák" #. ~ Use action msg for rolled fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You unroll up the fur sleeping bag." -msgstr "" +msgstr "Kitekered a szőrme hálózsákot." #. ~ Description for rolled fur sleeping bag #: lang/json/ARMOR_from_json.py @@ -11080,6 +11132,8 @@ msgid "" "A large sleeping bag lined with fur, rolled for transport. It has a strap " "to carry it with." msgstr "" +"Szállításra alkalmas, szőrmével bélelt, feltekert hálózsák. A szállításhoz " +"pánt van rajta." #: lang/json/ARMOR_from_json.py msgid "sleeveless duster" @@ -11114,8 +11168,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "sleeveless faux fur duster" msgid_plural "sleeveless faux fur dusters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ujjatlan műszőrme duster kabát" +msgstr[1] "ujjatlan műszőrme duster kabát" #. ~ Description for sleeveless faux fur duster #: lang/json/ARMOR_from_json.py @@ -11123,6 +11177,7 @@ msgid "" "A thick, sleeveless faux fur duster, falling below your knees. Has many " "pockets for storing things." msgstr "" +"Térdig érő, ujjatlan, vastag duster kabát műszőrből, számos tároló zsebbel." #: lang/json/ARMOR_from_json.py msgid "sleeveless leather duster" @@ -11187,8 +11242,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "sleeveless faux fur trenchcoat" msgid_plural "sleeveless faux fur trenchcoats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ujjatlan műszőrme viharkabát" +msgstr[1] "ujjatlan műszőrme viharkabát" #. ~ Description for sleeveless faux fur trenchcoat #: lang/json/ARMOR_from_json.py @@ -11196,6 +11251,8 @@ msgid "" "A thick faux fur trenchcoat without sleeves. Has plenty of storage space, " "and looks pretty good." msgstr "" +"Vastag műszőrmekabát, levágott ujjakkal. A sok zsebének köszönhetően " +"rengeteg a tárolóhelye, és még jól is néz ki." #: lang/json/ARMOR_from_json.py msgid "sleeveless leather trenchcoat" @@ -11933,8 +11990,8 @@ msgstr "Vastag szőrmekabát, számos zsebbel. Tárolásra nagyon jó." #: lang/json/ARMOR_from_json.py msgid "faux fur trenchcoat" msgid_plural "faux fur trenchcoats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "műszőrme viharkabát" +msgstr[1] "műszőrme viharkabát" #. ~ Description for faux fur trenchcoat #: lang/json/ARMOR_from_json.py @@ -11942,6 +11999,8 @@ msgid "" "A thick faux fur trenchcoat, lined with pockets. Great for storage, and " "makes you the talk of the town." msgstr "" +"Vastag műszőrme kabát, számos zsebbel. Tárolásra nagyon jó, és mindenki " +"megjegyzi, hogy milyen jól nézel ki benne." #: lang/json/ARMOR_from_json.py msgid "leather trenchcoat" @@ -12557,8 +12616,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL pot helmet" msgid_plural "XL pot helmets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "XL lábos sisak" +msgstr[1] "XL lábos sisak" #. ~ Description for XL pot helmet #: lang/json/ARMOR_from_json.py @@ -12566,6 +12625,8 @@ msgid "" "A huge makeshift helmet made from a canning pot. For the truly desperate " "man-bear-pig." msgstr "" +"Befőző lábosból hevenyészett, hatalmas méretű sisak. Az igazán kétségbeesett" +" ember-medve-disznó számára." #: lang/json/ARMOR_from_json.py msgid "survivor utility belt" @@ -15420,6 +15481,9 @@ msgid "" "allow you to make automated precise cuts and can be used as a high-quality " "butchering tool." msgstr "" +"Az ujjaidba sebészeti szintű szikék kerültek implantálásra, segítségükkel " +"pontosabb vágásokat ejthetsz boncoláskor. A szikéket továbbá magas minőségű" +" henteskésként is lehet használni." #: lang/json/BIONIC_ITEM_from_json.py msgid "Anti-Glare Compensators CBM" @@ -15688,6 +15752,11 @@ msgid "" "creating fires as it moves and an explosion on impact. Close range use is " "highly discouraged." msgstr "" +"A törzsedbe egy magas teljesítményű iongenerátor került beépítésre, amely " +"egy egyre jobban szétterjedő energiatöltetet vet ki. Az ebből létrejövő " +"robbanás lángra lobbantja a légköri oxigént, ezért mozgása közben tüzeket " +"gyújt, valamint becsapódáskor felrobbant. A rövid távra való alkalmazása " +"ezért nem javasolt." #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Regeneration System CBM" @@ -18665,8 +18734,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Friendly, Humane Fashion" msgid_plural "Friendly, Humane Fashions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ember- és állatbarát divat" +msgstr[1] "Ember- és állatbarát divat" #. ~ Description for Friendly, Humane Fashion #: lang/json/BOOK_from_json.py @@ -18676,6 +18745,10 @@ msgid "" "cover proudly states that the book is printed and distributed by the Gryphon" " Animal Rights Organization." msgstr "" +"A műszőrme felhasználási módjairól, valamint előnyeiről és hátrányairól " +"értekező oktatási könyv. Meglehetősen lelkes stílusban írták, a borító " +"pedig büszkén hirdeti, hogy a könyvet kiadja és terjeszti a Griffin " +"Állatvédelmi és -jogi Szervezet." #: lang/json/BOOK_from_json.py msgid "Sewing Techniques for Designers" @@ -19357,8 +19430,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ether" msgid_plural "ether" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "éter" +msgstr[1] "éter" #. ~ Description for ether #: lang/json/COMESTIBLE_from_json.py @@ -19367,40 +19440,43 @@ 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 "" +"A dietil éter általános használatú altatóként nagyrészt leváltotta a " +"kloroformot, mivel kedvezőbb a terapeutikus indexe, azaz nagyobb a különbség" +" a hatékony dózis és a mérgező dózis között." #: lang/json/COMESTIBLE_from_json.py msgid "Spice" msgstr "fűszer" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "rizling" -msgstr[1] "rizling" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "Rizling" +msgstr[1] "Rizling" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "Gyöngyöző fehérbor, a világ legnemesebb szőlőjéből." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "chardonnay" -msgstr[1] "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "Chardonnay" +msgstr[1] "Chardonnay" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "Amerika legnépszerűbb fehérbora, és nem véletlenül." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "cabernet sauvignon" -msgstr[1] "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "Cabernet Sauvignon" +msgstr[1] "Cabernet Sauvignon" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -19432,10 +19508,11 @@ msgstr[1] "whiskey" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" msgstr "" -"Igazi déli ezredeseknek, igazi déli ezredesekből, igazi déli ezredesek " -"által!" +"Igazi déli ezredeseknek főzött ital, igazi déli ezredesekből, igazi déli " +"ezredesek által!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -19445,8 +19522,13 @@ msgstr[1] "vodka" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "Szovjet Oroszországban a vodka iszik meg téged!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" +"Alkoholból, vízből, és nem sok minden másból álló ital. Amerikában az " +"embertől származik a vodka, de Szovjet Oroszországban a vodkától lesz az " +"ember." #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -19456,8 +19538,12 @@ msgstr[1] "gin" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Némi borókabogyó illata is van, de nagyrészt csak pia." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" +"Borókabogyókkal ízesített alkoholos ital. Kevésbé bogyószagú, sokkal inkább " +"piaszagú." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -19467,8 +19553,12 @@ msgstr[1] "rum" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "Ha ezt iszod, kalóznak érzed magad tőle. Vagy nem." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" +"Melasz fermentálásával készített égetett szesz. Ha ezt iszod, kalóznak " +"érzezheted magad tőle. Vagy nem." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -19478,8 +19568,12 @@ msgstr[1] "tequila" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "Ne edd meg a kukacot! Ja, ebben az üvegben nincs is." +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 "" +"Húsos és tüskés levelű növényből készített égetett szesz. A kukacot ne edd " +"meg! Várjál, ebben nincs is kukac." #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -19579,10 +19673,11 @@ msgstr[1] "Long Island iced tea" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" "Hihetetlenül erős ízesítésű égetett szeszek egyvelege, de az egyik ízére sem" -" hasonlít." +" hasonlít. Tea ugyan nincs benne, de a kólától tea színe lett." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -19590,8 +19685,11 @@ msgstr "screwdriver koktél" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "A burkoltan részeges iparos kedvenc itala." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" +"Narancslé és vodka keveréke. A rejtetten részeges melós kedvenc itala." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -19624,9 +19722,11 @@ msgstr[1] "sör" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"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 "" -"Legjobb hidegen, pohárból és egy szelet limettával - de nincs ekkora mázlid." +"Komlóval ízesített búza alkohol. Legjobb hidegen, pohárból és egy szelet " +"limettával - de nincs ekkora mázlid." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -19692,12 +19792,14 @@ msgstr[1] "moonshine" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"Csakis a legerősebb és legtisztább amerikai házipálinka az igazi. " -"Garantáltan elfeledteti veled ezt az egész kataklizma dolgot, de ha mégsem, " -"akkor visszajár a látásod." +"Csakis a legerősebb és legtisztább, kizárólag kukoricából és cukorból " +"égetett amerikai házipálinka az igazi. Garantáltan elfeledteti veled ezt az " +"egész kataklizma dolgot. Ha mégsem, akkor számla ellenében visszajár a " +"látásod." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -19708,11 +19810,11 @@ msgstr[1] "európai pilzeni sör" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Európából importált pilzeni sör. Legjobb hidegen, pohárból - de nincs ekkora" -" mázlid." +"Európából importált lager sör. Legjobb hidegen, pohárból - de nincs ekkora " +"mázlid." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -19766,10 +19868,10 @@ msgstr[1] "belga sör" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" -"Belga szerzetesek által főzött világos, fehér ale. Serlegben illik " +"Belga szerzetesek által főzött ízletes és laktató sör. Serlegben illik " "felszolgálni." #: lang/json/COMESTIBLE_from_json.py @@ -19846,11 +19948,12 @@ msgstr "kalimotxo" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Nem is olyan rossz, mint egyesek gondolnák, bizonyos országokban a fiatalok " -"vagy a szegények körében népszerű ez az ital." +"Bor és kóla egyenlő keveréke. Nem is olyan rossz, mint egyesek gondolnák, " +"bizonyos országokban a fiatalok vagy a szegények körében népszerű ez az " +"ital." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -19918,7 +20021,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sourdough bread" -msgstr "" +msgstr "kovászos kenyér" #. ~ Description for sourdough bread #: lang/json/COMESTIBLE_from_json.py @@ -19926,6 +20029,8 @@ msgid "" "Healthy and filling, with a sharper taste and thicker crust than yeast-only " "bread." msgstr "" +"Egészséges és laktató, a csak élesztőből készített kenyérnél élesebb ízzel " +"és vastagabb héjjal." #: lang/json/COMESTIBLE_from_json.py msgid "flatbread" @@ -20276,24 +20381,34 @@ msgstr "Frissen lemészárolt hús. Nyersen is meg lehet enni, de jobb megsütni #: lang/json/COMESTIBLE_from_json.py msgid "scrap of meat" msgid_plural "scraps of meat" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "húscafat" +msgstr[1] "húscafat" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "" +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "Egy apró darab ehető húscafat. Nem sok, de jobb híján megteszi." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" msgid_plural "butchery refuse" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vágóhídi hulladék" +msgstr[1] "vágóhídi hulladék" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." +msgid "" +"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." msgstr "" +"Fujj... Ez a koszból, bélsárból, kötőszövetből, és egyéb ehetetlen " +"részekből, például szőrből és karomból álló trutyi maradt a mészárlási " +"folyamat után. Nem is érdemes arra gondolni, hogy ehető lenne, viszont nem " +"ártana megszabadulni tőle, mert vonzza a kártevőket." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -20301,14 +20416,18 @@ msgstr "sült hús" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Frissen sütött hús. Nagyon tápláló." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" +"Egy darab frissen sül hús. Laktató és tápláló, bár sótlan és ezért egy " +"kicsit ízetlen." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" msgid_plural "cooked scraps of meat" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sült húscafat" +msgstr[1] "sült húscafat" #: lang/json/COMESTIBLE_from_json.py msgid "raw offal" @@ -20317,11 +20436,13 @@ msgstr "nyers belsőség" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Főtlen belső szervek és belek. Nem egy élmény megenni, de teli van " -"nélkülözhetetlen vitaminokkal." +"A belsőség nyers belső szervekből és belekből áll. Tele van nélkülözhetetlen" +" vitaminnal, ugyanakkor gondos feldolgozás nélkül az emberek nagy része " +"gusztustalannak tartja." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -20332,10 +20453,13 @@ msgstr[1] "főtt belsőség" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Frissen főzött zsigerek és egyéb állati alkatrészek. Nem egy élmény megenni," -" de teli van nélkülözhetetlen vitaminokkal." +"Frissen főtt belső szervek és belek. Tele van nélkülözhetetlen vitaminnal, " +"ugyanakkor gondos feldolgozás nélkül az emberek nagy része gusztustalannak " +"tartja." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -20346,11 +20470,13 @@ msgstr[1] "savanyított belsőség" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Sós lében tartósított főtt zsigerek. Telis-tele alapvető vitaminokkal, az " -"íze azért jobb, mint a szaga." +"Sós vízben tartósított belső szervek és belek. Tele van nélkülözhetetlen " +"vitaminnal, ugyanakkor úgy néz ki, mint valami laborba való szövetminta. Bár" +" ronda, egészen ehető." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -20361,10 +20487,10 @@ msgstr[1] "konzerv belsőség" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Konzervált, frissen főzött zsigerek és egyéb állati alkatrészek. Nem egy " +"Konzervált, frissen főzött zsigerek és egyéb állati belsőségek. Nem egy " "élmény megenni, de teli van nélkülözhetetlen vitaminokkal." #: lang/json/COMESTIBLE_from_json.py @@ -20432,8 +20558,12 @@ msgstr "füstölt hús" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "Ízletesre füstölt hús, jó sokáig eláll." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "" +"Ízletesre füstölt hús, jó sokáig eláll. Meg tovább lehetne füstölni az " +"összes nedvesség eltávolításához." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -20443,8 +20573,12 @@ msgstr[1] "füstölt hal" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "Ízletesre füstölt hal, jó sokáig eláll." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "" +"Ízletesre füstölt hal, jó sokáig eláll. Meg tovább lehetne füstölni az " +"összes nedvesség eltávolításához." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -20453,105 +20587,144 @@ msgstr "füstölt szívózó" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" -"Egy erősen füstölt adag emberi hús. Sokáig megőrzi a minőségét, és még az " -"íze is elég jó, ha eszel ilyet." +"Egy erősen füstölt adag emberi hús. Nagyon sokáig megőrzi a minőségét, és " +"még az íze is elég jó, ha eszel ilyet." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "nyers tüdődarab" +msgstr[1] "nyers tüdődarab" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." msgstr "" +"Egy állat tüdejének egy része. Szivacsos, rózsaszín, és nagyon gyorsan " +"megromlik. Megfelelően elkészítve finomság is lehet belőle, egyébként " +"ízetlen kötőszövetek rágós masszája lesz." #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "főtt tüdődarab" +msgstr[1] "főtt tüdődarab" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" +"Így elkészítve ez csupán ízetlen kötőszövetek rágós masszája. Semmivel se " +"néz ki jobban, mint amilyen nyersen volt, de legalább az összes parazitát " +"kisütötték belőle." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" -msgstr "" +msgstr "nyers máj" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Egy állat mája. Bár sokan nem szeretik a mintázata miatt, a máj az állat " +"egyik leginkább vitamindús szerve. Kolbászba töltve nagyon jó, önmagában " +"kisütve talán kevésbé." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" -msgstr "" +msgstr "főtt máj" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." msgstr "" +"Teli B-vitaminnal! A főtt máj nem is rossz, ha túl tudod magadat tenni a " +"mintázatán, ugyanakkor ennél unalmasabban nem is lehet elkészíteni." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" msgid_plural "raw brains" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nyers agy" +msgstr[1] "nyers agy" #. ~ Description for raw brains #: lang/json/COMESTIBLE_from_json.py msgid "The brain from an animal. You wouldn't want to eat this raw..." -msgstr "" +msgstr "Egy állat agya. Nyersen talán nem kellene megenni..." #: lang/json/COMESTIBLE_from_json.py msgid "cooked brains" msgid_plural "cooked brains" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "főtt agy" +msgstr[1] "főtt agy" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" +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 "" +"Most már utánozhatod a zombikat, ha már annyira bírod őket! Nehéz ehetőre " +"elkészíteni az agyat, és talán ez nem is a legjobb módja." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" -msgstr "" +msgstr "nyers vese" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." msgstr "" +"Egy állat veséje. Nehéz előkészíteni a főzésre, hacsak nem szeretnéd, hogy " +"az egész konyhának húgyszaga legyen." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" -msgstr "" +msgstr "főtt vese" #. ~ Description for cooked kidney #: lang/json/COMESTIBLE_from_json.py msgid "No, this is not beans." -msgstr "" +msgstr "Nem, ez nem bab." #: lang/json/COMESTIBLE_from_json.py msgid "raw sweetbread" -msgstr "" +msgstr "nyers borjúmirigy" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." msgstr "" +"A borjúmirigy egy állat csecsemőmirigye vagy hasnyálmirigye. Megfelelően " +"elkészítve ínyencség." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" -msgstr "" +msgstr "főtt borjúmirigy" #. ~ Description for cooked sweetbread #: lang/json/COMESTIBLE_from_json.py msgid "Normally a delicacy, it needs a little... something." -msgstr "" +msgstr "Általában ínyencség, de ebből valami hiányzik." #: lang/json/COMESTIBLE_from_json.py msgid "blood" @@ -20628,11 +20801,12 @@ msgstr "fertőzött csont" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" "Egy valamiféle természetellenes lény rothadt és törékeny csontja. Valamire " -"még jó lehet, például faszénnek. Meg is tudnád enni, de mérgező." +"még jó lehet, például faszénnek vagy ragasztónak. Meg is tudnád enni, de " +"mérgező." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -20973,8 +21147,11 @@ msgstr[1] "kávé" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Kávé. A kataklizma előtti világ reggeli szertartása." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -21007,8 +21184,8 @@ msgstr[1] "sűrített tej" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -21075,8 +21252,10 @@ msgstr "energiaital" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Népszerű azok között, akik késő éjszakáig dolgoznak." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -21198,8 +21377,9 @@ msgstr "tejeskávé" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "A tejeskávé gyakorlatilag több ország hivatalos reggeli itala." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -21207,9 +21387,8 @@ msgstr "tejestea" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "Általában reggel isszák, a tejes tea sok országban népszerű." +msgid "Hot tea with cold milk." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -21317,8 +21496,10 @@ msgstr "tea" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Tea, az úriemberek mindenkori itala." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -21373,8 +21554,8 @@ msgstr "paradicsomszósz" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Paradicsomból főzött szósz, de finom." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -21395,8 +21576,10 @@ msgstr[1] "majonéz" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "Jó öreg majonéz, remek íze van a szendvicseken." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -21404,8 +21587,8 @@ msgstr "ketchup" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "Jó öreg ketchup, remek íze van a hot-dogon." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -21415,8 +21598,10 @@ msgstr[1] "mustár" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "Jó öreg mustár, remek íze van a hamburgeren." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -21463,8 +21648,10 @@ msgstr[1] "ecet" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Megrázóan savanyú fehér ecet." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -21485,8 +21672,10 @@ msgstr[1] "melasz" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "Rendkívül cukros, kátrányszerű szirup, némileg kesernyés utóízzel." +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 "" #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -22797,8 +22986,10 @@ msgstr[1] "juharszirup" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Édes és finom, igazi vermonti juharszirup." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -23100,13 +23291,13 @@ msgstr "" "táplálóbb, de gyorsan meg fog romlani." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" -msgstr "rántott csirke" +msgid "deep-fried chicken" +msgstr "" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "Egy papírvödörnyi rántott csirke. Annyira rossz, hogy az már jó." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -23275,8 +23466,8 @@ msgstr "nyers kolbász" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "Füstölésre kész, méretes nyers kolbász." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -23289,6 +23480,15 @@ msgstr "" "Szép darab kolbász, a pácolásnak és a füstölésnek köszönhetően jó sokáig " "eláll." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "mannwurst" @@ -23313,6 +23513,19 @@ msgstr[1] "édes kolbász" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "Egy édes és ízletes kolbász. Frissen a legjobb megenni." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "méhzselés marhahús" @@ -23489,8 +23702,10 @@ msgstr "löncshús" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Ízletes löncshús. Hidegen is fogyasztható." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -23499,11 +23714,10 @@ msgstr "parizer" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" -"Egyfajta felvágott, előre szeletelve. Tuti nem kutyából készült, és a kutya " -"neve sem volt Borzas. Hidegen is fogyasztható." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -24030,11 +24244,9 @@ msgstr "párizsi parizer" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Emberhúsból készült felvágott, előre szeletelve. Lehet, hogy pont egy " -"francia srác volt, nem mindegy? Hidegen is fogyasztható." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -24282,8 +24494,33 @@ msgstr "nyers mannwurst" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "Füstölésre kész, emberes darab virsli." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -25339,6 +25576,22 @@ msgstr "" "megakadályozására szolgál. Ahhoz nem elég erős, hogy a fertőzéseket teljesen" " megszüntesse, de növeli a szervezet ellenállását. Egy dózis 12 órán át hat." +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -26919,34 +27172,34 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "Nagyon savanyú citrusféle. Ha annyira szeretnéd, megeheted." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "áfonya" -msgstr[1] "áfonya" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Kicsit fanyar, de legalább a miénk." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "eper" -msgstr[1] "eper" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Ízes és zamatos bogyó, gyakran nő a vadonban is." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "cranberry" -msgstr[1] "cranberry" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "" @@ -26954,34 +27207,34 @@ msgstr "" "egészséges." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "málna" -msgstr[1] "málna" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Édes piros bogyó." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "huckleberry" -msgstr[1] "huckleberry" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "A huckleberry-t gyakran keverik össze a kék áfonyával." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "faeper" -msgstr[1] "faeper" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -26991,24 +27244,24 @@ msgstr "" "összes faepre közül ennek a legerősebb az íze." #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "bodza" -msgstr[1] "bodza" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" "Az amerikai bodza gyümölcse nyersen mérgező, de főzés után nagyon finom." #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "csipkebogyó" -msgstr[1] "csipkebogyó" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "A beporzott rózsavirág gyümölcse." @@ -27045,12 +27298,12 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Citrusféle, íze a savanykástól a félédesig terjed." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "cseresznye" -msgstr[1] "cseresznye" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Vörös és édes gyümölcs, fán terem." @@ -27067,12 +27320,12 @@ msgstr "" "Egy maréknyi nagy szemű lila szilva. Egészséges és jót tesz az emésztésnek." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "szőlő" -msgstr[1] "szőlő" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "Egy fürt lédús szőlő." @@ -27125,12 +27378,12 @@ msgid "A large and very sweet fruit." msgstr "Nagyméretű és nagyon édes gyümölcs." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "szeder" -msgstr[1] "szeder" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "A málna sötétebb tesója." @@ -27173,10 +27426,12 @@ msgid "" msgstr "Nagy, barna bőrű és szőrös bogyó. A finom belseje zöld színű." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "sárgabarack" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Sima héjú gyümölcs, az őszibarack rokona." @@ -27236,8 +27491,8 @@ msgstr "káposzta" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "Egy ropogós fehér káposztafej." +msgid "Crisp white cabbage." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -27332,8 +27587,8 @@ msgstr "uborka" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "A tökfélék családjából származik, nem túl ízletes, de nagyon lédús." +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -27798,6 +28053,10 @@ msgstr[1] "szeder mag" msgid "Some blackberry seeds." msgstr "Néhány szeder vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -27809,6 +28068,10 @@ msgstr[1] "áfonya mag" msgid "Some blueberry seeds." msgstr "Egy marék fekete áfonya mag." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -27820,6 +28083,10 @@ msgstr[1] "cranberry mag" msgid "Some cranberry seeds." msgstr "Néhány cranberry vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -27831,6 +28098,10 @@ msgstr[1] "huckleberry vetőmag" msgid "Some huckleberry seeds." msgstr "Néhány huckleberry vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -27842,6 +28113,10 @@ msgstr[1] "eperfa vetőmag" msgid "Some mulberry seeds." msgstr "Néhány eperfa vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -27853,6 +28128,10 @@ msgstr[1] "bodza mag" msgid "Some elderberry seeds." msgstr "Néhány bodza vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -27864,6 +28143,10 @@ msgstr[1] "málna mag" msgid "Some raspberry seeds." msgstr "Néhány málna vetőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -27875,6 +28158,10 @@ msgstr[1] "epermag" msgid "Some strawberry seeds." msgstr "Egy marék epermag" +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -27886,6 +28173,10 @@ msgstr[1] "szőlőmag" msgid "Some grape seeds." msgstr "Néhány szőlőmag." +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -29455,6 +29746,15 @@ msgstr "space cake" msgid "This is definitely not how grandma used to bake them." msgstr "Hát a nagyi biztosan nem így szokott sütit sütni." +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "" @@ -31039,6 +31339,19 @@ msgstr[1] "veszélyes hulladéktároló hordó" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "Veszélyes anyagok tárolására szánt sárga színû hordó." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -33948,6 +34261,32 @@ msgid "" "without prior connection to compatible valve." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -35065,9 +35404,8 @@ msgstr[1] "köves zokni" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "Zokni végébe rakott kő. Az igazi kétségbeesés fegyvere." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -36795,6 +37133,19 @@ msgstr "" "A ketreccel védett gépkocsi fényszórót hatékonyság csökkenése nélkül védi a " "burkolat a sérülésektől." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -37219,6 +37570,19 @@ msgstr[1] "reflektor" msgid "A large and heavy light designed to illuminate wide areas." msgstr "Nagy és erős fény széles területek megvilágítására." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -37466,6 +37830,17 @@ msgstr[1] "autó fényszóró" msgid "A vehicle headlight to light up the way." msgstr "Gépjárműre szerelhető világító eszköz." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -37903,6 +38278,17 @@ msgstr[1] "A cuj csün és te" msgid "A complete guide to Zui Quan." msgstr "A cuj csün összes fogását bemutató könyv." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -39863,6 +40249,47 @@ msgstr[1] "elromlott új elektromos nyuszi" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Egy elromlott elektromos nyuszi. Petyhüdt és élettelen." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -39874,6 +40301,28 @@ msgstr[1] "evező" msgid "Oars for a boat." msgstr "Egy csónak evezője." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Egy felfújható csónak része." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Egy felfújható légzsák." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -39983,6 +40432,361 @@ msgid_plural "belt ammo links" msgstr[0] "heveder kapocs" msgstr[1] "heveder kapocs" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -43624,6 +44428,15 @@ msgstr "" "Általános típusokkal váltja fel a lőfegyvereket és lőszereket. Figyelem: más" " fegyver moddal együtt használva problémákat okozhat." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "Bionika kézi beültetése" @@ -45498,6 +46311,10 @@ msgstr "" "megalvadt sav még egyben tartja. Esetlenül mozog, támadásait a nagy " "savtartalékából indítja." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "csúszó zombi" @@ -50227,11 +51044,18 @@ msgid_plural "fedoras" msgstr[0] "fedora" msgstr[1] "fedora" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Megemeled a fedorádat." +msgid "Tip" +msgstr "" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +#, no-python-format +msgid "You tip your %s." +msgstr "" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -51772,6 +52596,12 @@ msgid_plural "boulder anvils" msgstr[0] "szikla üllő" msgstr[1] "szikla üllő" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" +msgstr[1] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -53260,40 +54090,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "Ez egy apró őrlángos faszenes fémtartály. Ételt lehet vele főzni." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "vegyész készlet" -msgstr[1] "vegyész készlet" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Ez egy dobozban tárolt vegyész készlet. A dobozban találhatók üveglombikok, " -"csövek, fémhuzal, egy rezsó és védőszemüveg. Ha olyan kedved van, akkor " -"néhány vegyi recept elkészítésére alkalmas." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "kezdő vegyész készlet" -msgstr[1] "kezdő vegyész készlet" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"A kezdő vegyész készletben üveg tárolóedények, csövek és védőszemüveg is " -"található. Segítségével elkészíthetsz egy pár vegyész projektet, de " -"valamilyen hőforrás is kell még." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -58851,6 +59647,164 @@ msgid "" "Some cars can be driven remotely." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "vegyész készlet" +msgstr[1] "vegyész készlet" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Ez egy dobozban tárolt vegyész készlet. A dobozban találhatók üveglombikok, " +"csövek, fémhuzal, egy rezsó és védőszemüveg. Ha olyan kedved van, akkor " +"néhány vegyi recept elkészítésére alkalmas." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "kezdő vegyész készlet" +msgstr[1] "kezdő vegyész készlet" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"A kezdő vegyész készletben üveg tárolóedények, csövek és védőszemüveg is " +"található. Segítségével elkészíthetsz egy pár vegyész projektet, de " +"valamilyen hőforrás is kell még." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -60090,6 +61044,14 @@ msgid_plural "inactive military robots" msgstr[0] "" msgstr[1] "" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -60861,45 +61823,6 @@ msgstr "" "Kézzel készített fa szekérkerék, a tartósság növeléséhez fémszalagos " "abronccsal." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Egy felfújható csónak része." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Egy felfújható légzsák." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"A csónakot a víz felszínén tartó falap. Ahhoz, hogy egy járműből csónak " -"legyen, ezt helyezd el úgy, mintha kerék lenne. Utána pedig csatold fel a " -"motort vagy az evezőket." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "" @@ -61106,6 +62029,10 @@ msgstr "Abbahagyod a jármű kezelését?" msgid "Stop training?" msgstr "Abbahagyod a képzést?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "Abbahagyod az elsősegélyt?" @@ -61162,6 +62089,14 @@ msgstr "" msgid "Stop planting seeds?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "Abbahagyod a leltár kezelését?" @@ -61266,10 +62201,18 @@ msgstr "" msgid "Stop cutting your hair?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -64385,6 +65328,17 @@ msgstr "" msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "" @@ -65731,23 +66685,6 @@ msgstr "Kifulladtál." msgid "The ceiling collapses on you!" msgstr "Rád szakad a mennyezet!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Őssejt kezelés" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"A belsőségeid furcsa módon mocorognak, ahogy a kezelés elkezdi éreztetni a " -"hatását." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "A szemgolyódba pépesített csont és zománc oltást kapsz." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "" @@ -66299,6 +67236,15 @@ msgstr "" msgid "You feel incredible! You could take on the world!" msgstr "" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "" @@ -66324,9 +67270,8 @@ msgstr "" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" #: lang/json/effects_from_json.py @@ -74474,6 +75419,41 @@ msgid "" "accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -74639,6 +75619,16 @@ msgstr "" "A 45 fokban elfordított céltüske akkor használatos, amikor céltávcső vagy " "egyéb módosítás miatt az beépített céltüske nem használható." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -77791,10 +78781,9 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" #. ~ Please leave anything in unchanged. @@ -78543,7 +79532,7 @@ msgstr "Mészárlás" msgid "Chat with NPC" msgstr "Beszélgess egy NPC-vel" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Nézz körbe" @@ -79154,6 +80143,14 @@ msgstr "" msgid "Toggle headlights" msgstr "Reflektor ki/be" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Villogó ki/be" @@ -79565,13 +80562,13 @@ msgid "Analyze blood" msgstr "" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" +msgid "Bonesetting Treatment" msgstr "" #. ~ Sign @@ -79735,6 +80732,13 @@ msgstr "" msgid "it works." msgstr "" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -80997,6 +82001,36 @@ msgid "" "armor, +Perception fire armor." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Középkori kardforgatás " @@ -84112,6 +85146,10 @@ msgstr "Élvezte a(z) %st" msgid "Enjoyed a hot meal" msgstr "Élvezte a forró ételt" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Zene" @@ -84322,6 +85360,10 @@ msgstr "Frissen borotvált" msgid "Barfed" msgstr "Okádott" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "" @@ -85493,6 +86535,18 @@ msgstr "" "Bár a fájdalom negatív hatásai továbbra is érvényesülnek, a fájdalom " "egyedülálló élményt is nyújt." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -85645,10 +86699,8 @@ msgstr "Közelharci fegyver képzés" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" -"Gyakrolatod van a fegyverforgatásban. A játékot az eskrima, a vívás, a " -"pentjak silat vagy a ni ten icsi-rjú ismeretével kezded." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -86375,6 +87427,17 @@ msgstr "" "75%-kal alacsonyabb, és lassabban is gyógyulsz. Az Üvegállú hatásával " "összeadódik." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Durva bőr" @@ -90825,6 +91888,24 @@ msgstr "Új lehetőségek váltak elérhetővé!" msgid "Has Level 2 Construction Built" msgstr "2. szintű építményt épített" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "" @@ -91557,6 +92638,10 @@ msgstr "Apis" msgid "I'm bugged - I shouldn't talk to you." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -91876,6 +92961,30 @@ msgstr "Bandita" msgid "Psycho" msgstr "Őrült" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "Rabló" @@ -93051,8 +94160,36 @@ msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "elhagyatott drive-in" +msgid "veterinarian clinic" +msgstr "állatorvosi klinika" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "múzeum" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "temetkezési vállalkozó" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "mosoda" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "ékszerüzlet" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "kétemeletes motel" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "magas irodaépület" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "lakásfelújítási áruház" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -93078,6 +94215,10 @@ msgstr "tekepálya" msgid "boxing gym" msgstr "bokszterem" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "fitneszterem" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "dódzsó" @@ -93091,37 +94232,13 @@ msgid "gardening supply" msgstr "kertészeti áruda" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "fitneszterem" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "lakásfelújítási áruház" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "ékszerüzlet" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "mosoda" +msgid "abandoned drive-through" +msgstr "elhagyatott drive-in" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "névtelen" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "temetkezési vállalkozó" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "múzeum" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "állatorvosi klinika" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "csődbe ment pizzéria" @@ -93359,14 +94476,6 @@ msgstr "iskola" msgid "projects" msgstr "lakótelep" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "kétemeletes motel" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "magas irodaépület" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "gépészeti szervíz" @@ -93483,6 +94592,34 @@ msgstr "" msgid "regional dump" msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -98575,6 +99712,112 @@ msgstr "" "A vég előtt az volt a hobbid, hogy illegálisan programoztál át ipari " "robotokat, de sose gondoltad volna, hogy valaha a túlélésed függ majd ettől." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -101720,10 +102963,8 @@ msgstr "" "A tűz gyorsan terjed, különösen, ha jól éghető dolgok vannak a közelében." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" -"A sütők még áram nélkül is hasznosak lehetnek a bennük meggyújtott tűz " -"elterjedésének megakadályozására." #: lang/json/snippet_from_json.py msgid "Light itself doesn't draw zombies, it's sight, noise or smell." @@ -101752,28 +102993,22 @@ msgstr "" "vermet." #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" -"Meghaltál? Van ilyen. Legközelebb hasznosíthatod a halálodból levont " -"következtetéseket." #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." -msgstr "Fagyott az étel? Helyezd a tűz mellé, vagy olvaszd fel egy lábosban." +msgid "Frozen food? Put it by a fire or heat it up in a pan." +msgstr "" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." -msgstr "A földalatti barlangok és pincék mindig hidegek, de sosem fagynak be." +msgid "Underground spaces like basements or caves stay cool year-round." +msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" -"Félsz a vadállatoktól? Addig kiabálj, amíg el nem menekülnek előled. " -"Persze lehet, hogy helyettük valami más talál meg." #: lang/json/snippet_from_json.py msgid "Animals and zombies are not friends. You can take advantage of that." @@ -101781,8 +103016,8 @@ msgstr "" "Az állatok és a zombik nincsenek jóban. Ebből előnyt is kovácsolhatsz." #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "Nem csak az ajtón át lehet bemenni. Vagy ki." +msgid "A door is not the only way in or out of most places." +msgstr "" #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -101800,24 +103035,17 @@ msgstr "" "mi mire jó." #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" -"Attól, hogy valami még veszélyes, nem biztos, hogy jó cuccokat is rejt. " -"Használd az agyad." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" -"Bemenni nem nagy dolog. Mindig gondold át, hogyan tudsz kijönni, és ne " -"hagyd magadat sarokba szorítani." #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" -"Gyakran többféle módon érheted el ugyanazt az eredményt. Próbálj másképpen " -"is gondolkodni." #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." @@ -101856,17 +103084,14 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"Nem leszel boldog, amikor a rohadt ételből előmászik egy óriáscsótány. Dobd " -"ki nyugodtan." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" -"Az orvosságok szükség esetén jól jönnek, de vigyázz a túladagolással és a " -"függőséggel." #: lang/json/snippet_from_json.py msgid "" @@ -101877,11 +103102,8 @@ msgstr "" "először beszerezned." #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -"A sebek idővel begyógyulnak. A sebek bekötözése és fertőtlenítése " -"felgyorsíthatja ezt a folyamatot." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -101907,20 +103129,16 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "A természet ellát minden jóval, ha megtanulod a mikéntjét." #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" -msgstr "A kérdéses eredetű víz és a nyers étel biztos nem tesz jót..." +msgid "Raw food and water from unsafe sources can't be healthy. Right?" +msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" +msgid "Why walk when you can use a car? Or a tank?" msgstr "" -"Miért gyalogolj egész nap a következő városig, ha némi autószerelés után " -"kocsival is mehetnél?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" -"A kataklizma előtti időkből származó étel nem tart örökké. Erre jobb " -"emlékezned." #: lang/json/snippet_from_json.py msgid "" @@ -101986,11 +103204,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" -"A legtöbb orvosság nem azonnal fejti ki a hatását, úgyhogy ne vegyél be egy " -"egész doboz gyógyszert csak azért, mert az első után semmit se érzel." #: lang/json/snippet_from_json.py msgid "" @@ -102032,12 +103248,8 @@ msgstr "" "hasznos dolgokat találhatsz bennük." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -"Az ételek eltartási ideje változó. Sok minden függ a tárolástól, főleg a " -"hőmérséklettől." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -102068,11 +103280,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" -"Eltört egy végtagod, és így nem élet az élet? Egy kórházban talán találsz " -"majd egy olyan új generációs technológiát, ami helyretesz." #: lang/json/snippet_from_json.py msgid "" @@ -102087,9 +103297,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -102105,17 +103313,78 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -106930,6 +108199,67 @@ msgstr "" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "" +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "" @@ -107394,7 +108724,7 @@ msgstr "" msgid "fella" msgstr "" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "" @@ -108470,6 +109800,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "" @@ -108486,6 +109828,10 @@ msgstr "" msgid "What's that noise?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "" @@ -108495,7 +109841,7 @@ msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py @@ -108503,7 +109849,7 @@ msgid "Did you hear that? Sounded like" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -108639,6 +109985,10 @@ msgstr "" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "" @@ -108651,10 +110001,6 @@ msgstr "" msgid "Z's" msgstr "" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -111720,3738 +113066,3490 @@ msgid "Clothing Store" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "That sure is a shiny badge you got there!" +msgstr "Milyen fényes jelvényed van!" #: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" +msgid "Heh, you look important." +msgstr "Hmm, te fontosnak tûnsz." #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "" +msgid "I'm actually new." +msgstr "Én tulajdonképpen most érkeztem." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" +msgid "What are you doing here?" +msgstr "Mit csinálsz itt?" #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "" +msgid "Heard anything about the outside world?" +msgstr "Hallottál valamit a külvilágról?" + +#: lang/json/talk_topic_from_json.py +msgid "Is there any way I can join your group?" +msgstr "Hogyan tudnék csatlakozni a csoportodhoz?" + +#: lang/json/talk_topic_from_json.py +msgid "What's with your ears?" +msgstr "Mi van a füleddel?" + +#: lang/json/talk_topic_from_json.py +msgid "Anything I can help with?" +msgstr "Tudok valamiben segíteni?" + +#: lang/json/talk_topic_from_json.py +msgid "Well, bye." +msgstr "Hát, akkor csá." #: lang/json/talk_topic_from_json.py msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Sucks..." +msgstr "Szar ügy..." + #: lang/json/talk_topic_from_json.py msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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." +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" +"Hát, ott van az a srác, lenn, akinek vagy egy működőképes pneumatikus " +"ágyúja. Úgy lő ki fémet, mint egy ágyú, csak teljesen hangtalanul. Nagyon " +"megéri. És egy csomó rögtönzött fegyvert is össze tudnál rakni. A fő dolog " +"azonban az erődítmények építését folytatni. Kevés szörny képes áttörni egy " +"kerítésen vagy egy falon." #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "" +msgid "Well, then..." +msgstr "Hát, akkor..." #: lang/json/talk_topic_from_json.py -msgid "" +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 "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "Nothing optimistic?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" +msgid "I feel bad for asking." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" +msgid "" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" +msgid "Ssh. Some people in here hate... mutations. This was an accident." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +msgid "Sorry to ask" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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." +msgid "You're disgusting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" +msgid "I'll buy." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +msgid "Who needs rebar?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." +msgid "As if you're one to talk. Screw You." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." +msgid "Screw You!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +msgid "Another survivor! We should travel together." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." +msgid "What are you doing?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and I heard the next " -"day that he'd come back from the dead! Just like in my dream, only it was a" -" different person!" +msgid "Care to trade?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." +msgid "&Put away weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." +msgid "&Drop weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." +msgid "Don't worry, I'm not going to hurt you" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." +msgid "Drop your weapon!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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." +msgid "Get out of here or I'll kill you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " +msgid "Hey there, ." +msgstr "Szevasz, ." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " +msgid "Hello there." 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 "" +msgid "Okay, no sudden movements..." +msgstr "Oké, csak semmi hirtelen mozdulat..." #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "" +msgid "Keep your distance!" +msgstr "Maradj távol!" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." +msgid "Calm down. I'm not going to hurt you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." +msgid "Screw you, no." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" +msgid "&Put hands up." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." +msgid "*drops his weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" +msgid "*drops_her_weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"trip to a FEMA center. We got attacked by the dead... I was the only one " -"to make it out. I never looked back." +msgid "Now get out of here" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." +msgid "Now get out of here, before I kill you." +msgstr "Na most húzz innen, mielőtt kinyírlak." + +#: lang/json/talk_topic_from_json.py +msgid "Okay, I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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." +msgid "About that job..." +msgstr "Ami azt a melót illeti..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those jobs..." +msgstr "Ami azt az egyik melót illeti..." + +#: lang/json/talk_topic_from_json.py +msgid "What's the matter?" +msgstr "Mi a baj?" + +#: lang/json/talk_topic_from_json.py +msgid "I don't care." +msgstr "Nem érdekel." + +#: lang/json/talk_topic_from_json.py +msgid "I see." +msgstr "" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." +msgid "Never mind, I'm not interested." +msgstr "Mindegy, nem érdekel." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "Mindegy." + +#: lang/json/talk_topic_from_json.py +msgid "I'll do it!" +msgstr "Megcsinálom!" + +#: lang/json/talk_topic_from_json.py +msgid "Not interested." +msgstr "Nem érdekel." + +#: lang/json/talk_topic_from_json.py +msgid "Not a problem." +msgstr "Semmi gond." + +#: lang/json/talk_topic_from_json.py +msgid "Got any advice?" +msgstr "Van valami tanácsod?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you share some equipment?" +msgstr "Megosztanál velem valami a cuccaidból?" + +#: lang/json/talk_topic_from_json.py +msgid "I'll be back soon!" +msgstr "Hamarosan visszatérek!" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds good, thanks." +msgstr "Ez így jól hangzik, köszi." + +#: lang/json/talk_topic_from_json.py +msgid "Sounds good. Bye!" +msgstr "Ez így jól hangzik, szia!" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry." +msgstr "Sajnálom." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever. Bye." +msgstr "Mindegy. Csá." + +#: lang/json/talk_topic_from_json.py +msgid "Well, um, sorry." +msgstr "Hát izé... bocsi." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry. I did what I could." +msgstr "Sajnálom... Megtettem, amit lehetett." + +#: lang/json/talk_topic_from_json.py +msgid "Sure, here you go!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." +msgid "Thank you." +msgstr "Köszönöm." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, bye." +msgstr "Köszi, szia!" + +#: lang/json/talk_topic_from_json.py +msgid "Well, I guess it's just us." +msgstr "Hát, szerintem akkor már csak mi maradtunk." + +#: lang/json/talk_topic_from_json.py +msgid "At least we've got shelter." +msgstr "Legalább van fedél a fejünk felett." + +#: lang/json/talk_topic_from_json.py +msgid "What should we do now?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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." +msgid "Any tips?" +msgstr "" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgid "Want to travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." msgstr "" #: 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." +msgid "I can't leave the shelter without equipment." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" +msgid "Relax and chat with me for a while..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." +msgid "" msgstr "" #: 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." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" +msgid "Well, I'm feeling pretty sick... are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" +msgid "Oh you know, not bad, not bad..." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "Nem tudom, gondolom keressünk használható cuccokat meg más túlélőket." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we should start boarding up this place." +msgstr "Talán azzal kéne kezdenünk, hogy bedeszkázzuk ezt a helyet." + #: lang/json/talk_topic_from_json.py msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." msgstr "" +"Szerintem nem ártana egy kocsit megszerelni, ha esetleg gyorsan el kell " +"innen tünnünk." #: lang/json/talk_topic_from_json.py msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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." +"We could look for one of those farms out here. They can provide plenty of " +"food and aren't close to the cities." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's a story for another day. I don't really like thinking about it." +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" +"Nem ártana távol maradni azoktól a városoktól, még akkor is, ha amúgy egy " +"csomó cuccot lehet ott találni." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." +msgid "Hmm, okay." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Not until I get some antibiotics..." +msgstr "Addig nem, amíg nem kapok antibiotikumot..." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "You asked me recently; ask again later." +msgstr "Nemrég kértél erre, majd később." #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" +msgid "Why should I travel with you?" +msgstr "És miért pont veled utazzak?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." +msgid "Understood. I'll get those antibiotics." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." +msgid "Right, right, I'll ask later." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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." +msgid "I can keep you safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" +msgid "You can keep me safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." +msgid "We're friends, aren't we?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " +msgid "I'll kill you if you don't." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "You got it, I'm with you!" +msgstr "Rendben, veled vagyok!" #: 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." +msgid "Awesome!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" +msgid "Okay, let's go!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Cool. " +msgid "Yeah... I don't think so." +msgstr "Ja... szerintem nem." + +#: lang/json/talk_topic_from_json.py +msgid "You're really leaving?" +msgstr "Tényleg elmész?" + +#: lang/json/talk_topic_from_json.py +msgid "Yeah, I'm sure. Bye." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Cool. " +msgid "Nah, I'm just kidding." msgstr "" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "Mi van?" + #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." +msgid "How much further?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" +msgid "I'd like to lead for a while." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "Step aside. I'm leader now." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "Alright. You can lead now." +msgstr "Rendben, te vagy a főnök." + +#: lang/json/talk_topic_from_json.py +msgid "Good. Something else..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." +msgid "Alright, let's go." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Okay, okay." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "Dehogy is, még lemaradok!" + +#: lang/json/talk_topic_from_json.py +msgid "Fine." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +msgid "I'm on watch." +msgstr "Én vagyok őrségben." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +msgid "See you around." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." +msgid "I really don't feel comfortable doing so..." +msgstr "Nem szeretném..." + +#: lang/json/talk_topic_from_json.py +msgid "I'll give you some space." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" +msgid "I'd prefer to keep that to myself." +msgstr "Azt jobban szeretném magamnak megtartani." + +#: lang/json/talk_topic_from_json.py +msgid "I understand..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." +msgid "Okay, here you go." +msgstr "Oké, tessék." + +#: lang/json/talk_topic_from_json.py +msgid "Thank you!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" +msgid "Thanks! But can I have some more?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " +msgid "Thanks, see you later!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" +msgid "Okay, okay, sorry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" +msgid "Seriously, give me more stuff!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " +msgid "Okay, fine, bye." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " +msgid "Alright, let's begin." +msgstr "Rendben, akkor kezdjük." + +#: lang/json/talk_topic_from_json.py +msgid "Sounds good." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." +msgid "Okay. Lead the way." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" +msgid "No, we'll be okay here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" +msgid "On second thought, never mind." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." +msgid "Hello marshal." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" +msgid "What is this place?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." +msgid "Can I join you guys?" msgstr "" #: 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." +msgid "Anything I can do for you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" +msgid "See you later." 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." +msgid "This is a refugee center that we've made into a sort of trading hub." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." +msgid "So are you with the government or something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." +msgid "What do you trade?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" +msgid "Oh, okay. I'll go look for him" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"thing, and I killed the ones outside the bunker. I guess the adrenaline was" -" what I needed. It's kept me going since then." +"Anything valuable really. If you really want to know, go ask one of the " +"actual traders. I'm just protection." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " +msgid "I'll go talk to them later." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " +msgid "Will do, thanks!" 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." +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Nope." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." +msgid "That's pretty blunt!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." +msgid "Death is pretty blunt." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" +msgid "So no negotiating? No, 'If you do this quest then we'll let you in?'" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" +msgid "I don't like your attitude." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." +msgid "Well alright then." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" +msgid "Then leave, you have two feet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." +msgid "I think I'd rather rearrange your face instead!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" +msgid "I will." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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." +"Uh, not really. Go talk to a merchant if you have anything to sell. " +"Otherwise the Old Guard liaison might have something, if you can find him." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" +msgid "Alright then." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" +msgid "Old Guard huh, I'll go talk to him!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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." +msgid "Who are the Old Guard?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." +"That's just our nickname for them. They're what's left of the federal " +"government. Don't know how legitimate they are but they are named after " +"some military unit that once protected the president. Their liaison is " +"usually hanging around here somewhere." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." +msgid "Whatever, I had another question." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" +msgid "Okay, I'll go look for him then." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." +"Stay safe out there. Hate to have to kill you after you've already died." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" +msgid "Hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" +msgid "I am actually new." +msgstr "Én tulajdonképpen most érkeztem." #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." +msgid "Are there any rules I should follow while inside?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." +msgid "So who is everyone around here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "She was dead?" +msgid "Lets trade!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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." +msgid "Is there anything I can do to help?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful. " +msgid "Thanks! I will be on my way." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful. " +msgid "Yes of course. Just don't bring any trouble and it's all fine by me." msgstr "" #: 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." +"Well mostly no. Just don't go around robbing others and starting fights and" +" you will be all set. Also, don't go into the basement. Outsiders are not " +"allowed in there." 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." +msgid "Ok, thanks." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." +msgid "So uhhh, why not?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." +msgid "" +"In short, we had a problem when a sick refugee died and turned into a " +"zombie. We had to expel the refugees and most of our surviving group now " +"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 "" #: lang/json/talk_topic_from_json.py msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" +"Most are scavengers like you. They now make a living by looting the cities " +"in search for anything useful: food, weapons, tools, gasoline. In exchange " +"for their findings we offer them a temporary place to rest and the services " +"of our shop. I bet some of them would be willing to organize resource runs " +"with you if you ask." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." +msgid "Thanks for the heads-up." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I get that. Sometimes I feel like my existence began shortly after " -"the cataclysm." +"You are asking the wrong person, should look for our merchant by the main " +"entrance. Perhaps one of the scavengers is also interested." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." +msgid "Keep to yourself and you won't find any problems." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" I'd still kill a hundred zombies for an internet connection and a night " -"watching crappy movies with... sorry. Let's change the subject." +msgid "What do you do around here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." +msgid "Got tips for avoiding trouble?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." +msgid "Have you seen anyone who might be hiding something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." +msgid "Bye..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." +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 "" #: lang/json/talk_topic_from_json.py -msgid "Suck it up. If we're going to work together I need to know you." +msgid "Keep your head down and stay out of my way." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." +msgid "OK..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgid "Like what?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "OK." +msgid "I'm not sure..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." +msgid "Like they could be working for someone else?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." +msgid "You're new here, who the hell put you up to this crap?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" +msgid "Get bent, traitor!" +msgstr "Apád faszát, te áruló!" #: lang/json/talk_topic_from_json.py -msgid "What happened?" +msgid "Got something to hide?" +msgstr "Rejtegetsz valamit?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, I didn't mean to offend you..." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." +"If you don't get on with your business I'm going to have to ask you to leave" +" and not come back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." +msgid "Sorry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." +msgid "That's it, you're dead!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." +msgid "I didn't mean it!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." +msgid "You must really have a death wish!" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." +"We don't put-up with garbage like you, finish your business and get the hell" +" out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." +msgid "I thought I smelled a pig. I jest... please don't arrest me." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" +msgid "Huh, thought I smelled someone new. Can I help you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." +msgid "You... smelled me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." +msgid "Got anything for sale?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." +msgid "Got any survival advice?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." +msgid "Goodbye." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What happened next?" +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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." +msgid "O..kay..?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." +msgid "Interesting." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 ." +msgid "Oh, so you hunt?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" +msgid "Not really, just trying to lead my life." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " +msgid "" +"Yep. Whatever game I spot, I bag and sell the meat and other parts here. " +"Got the occasional fish and basket full of wild fruit, but nothing comes " +"close to a freshly-cooked moose steak for supper!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " +msgid "Great, now my mouth is watering..." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." +"Sure, just bagged a fresh batch of meat. You may want to grill it up before" +" it gets too, uh... 'tender'." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " +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 "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " +msgid "Spot your prey before something nastier spots you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." +msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." +msgid "" +"The Jabberwock is real, don't listen to what anybody else says. If you see " +"it, RUN." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." +msgid "" +"Zombie animal meat isn't good for eating, but sometimes you, might find " +"usable fur on 'em." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." +"A steady diet of cooked meat and clean water will keep you alive forever, " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." +msgid "Smoke crack to get more shit done." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" +msgid "Watch your back out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I need to get going." +msgid "Welcome marshal..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"his trusty 18 gauge lyin' on his lap. That were his dog's name, only we all" -" just called him 18 gauge for short." +msgid "Welcome..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." +msgid "I'm actually new..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." +msgid "Can I do anything for the center?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." +msgid "Let's trade then." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +msgid "I figured you might be looking for some help..." +msgstr "Gondoltam elkelne valamiféle segítség..." #: lang/json/talk_topic_from_json.py msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there were some o' them " -"damn kids rummagin' around in it. Rusty G brought his 18 gauge, and lucky " -"thing cuz o' what we saw." +"Before you say anything else, we're full. Few days ago we had an outbreak " +"due to lett'n in too many new refugees. We do desperately need supplies and" +" are willing to trade what we can for it. Pay top dollar for jerky if you " +"have any." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you see?" +msgid "No rest for the weary..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." +msgid "" +"To be honest, we started out with six buses full of office workers and " +"soccer moms... after the refugee outbreak a day or two ago the more " +"courageous ones in our party ended up dead. The only thing we want now is " +"to run enough trade through here to keep us alive. Don't care who your " +"goods come from or how you got them, just don't bring trouble." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" +msgid "It's just as bad out here, if not worse." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"were some o' them damn kids rummagin' around in it. Rusty G brought his 18 " -"gauge, and lucky thing cuz o' what we saw." +"I'm sorry, but the only way we're going to make it is if we keep our gates " +"buttoned fast. The guards in the basement have orders to shoot on sight, if" +" you so much as peep your head in the lower levels. I don't know what made " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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." +msgid "Guess shit's a mess everywhere..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I catch your drift." +msgid "" +"[INT 12] Wait, six buses and refugees... how many people do you still have " +"crammed in here?" msgstr "" +"[INT 12] Na várjunk csak... Hat busznyi menekült... Mégis hány embert " +"zsúfoltatok ide be?" #: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" +msgid "" +"Well the refugees were staying here on the first floor when one their " +"parties tried to sneak a dying guy in through the loading bay, we ended up " +"being awoken to shrieks and screams. Maybe two dozen people died that " +"night. The remaining refugees were banished the next day and went on to " +"form a couple of scavenging bands. I'd say we got twenty decent men or " +"women still here but our real strength comes from all of our business " +"partners that are accustomed to doing whatever is needed to survive." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgid "Guess it works for you..." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"flyin. Decided to camp out there to see it all through, but it didn't ever " -"end, now, did it? So here I am." +"Had one guy pop in here a while back saying he had tried to drive into " +"Syracuse after the outbreak. Didn't even make it downtown before he ran " +"into a wall of the living dead that could stop a tank. He hightailed it out" +" but claims there were several thousand at least. Guess when you get a " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" +msgid "Thanks for the tip." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "." +msgid "" +"Well, there is a party of about a dozen 'scavengers' that found some sort of" +" government facility. They bring us a literal truck load of jumpsuits, " +"m4's, and canned food every week or so. Since some of those guys got family" +" here, we've been doing alright. As to where it is, I don't have the " +"foggiest of ideas." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "Milyen fényes jelvényed van!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Hmm, te fontosnak tûnsz." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "Én tulajdonképpen most érkeztem." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "Mit csinálsz itt?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "Hallottál valamit a külvilágról?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "Hogyan tudnék csatlakozni a csoportodhoz?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "Mi van a füleddel?" +msgid "Thanks, I'll keep an eye out." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "Tudok valamiben segíteni?" +msgid "I'm sorry, not a risk we are willing to take right now." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Hát, akkor csá." +msgid "Fine..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." +"There isn't a chance in hell! We had one guy come in here with bloody fur " +"all over his body... well I guess that isn't all that strange but I'm pretty" +" sure whatever toxic waste is still out there is bound to mutate more than " +"just his hair." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Szar ügy..." +msgid "Fine... *coughupyourscough*" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." +"Sorry, last thing we need is another mouth to feed. Most of us lack any " +"real survival skills so keeping our group small enough to survive on the " +"food random scavengers bring to trade with us is important." msgstr "" -"Hát, ott van az a srác, lenn, akinek vagy egy működőképes pneumatikus " -"ágyúja. Úgy lő ki fémet, mint egy ágyú, csak teljesen hangtalanul. Nagyon " -"megéri. És egy csomó rögtönzött fegyvert is össze tudnál rakni. A fő dolog " -"azonban az erődítmények építését folytatni. Kevés szörny képes áttörni egy " -"kerítésen vagy egy falon." - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Hát, akkor..." #: 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." +msgid "I'm sure I can do something to change your mind *wink*" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" +msgid "I can pull my own weight!" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." +"[INT 11] I'm sure I can organize salvage operations to increase the bounty " +"scavengers bring in!" msgstr "" +"[INT 11] Szerintem jól meg tudom én szervezni a kutatási műveleteket, hogy " +"még több értéket hozzanak be a guberálók!" #: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "" +msgid "[STR 11] I punch things in face real good!" +msgstr "[ERŐ 11] Jól pofán verek mindenkit!" #: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." +msgid "I guess I'll look somewhere else..." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." +"Can't say we've heard much. Most these shelters seemed to have been " +"designed to make people feel safer... not actually aid in their survival. " +"Our radio equipment is utter garbage that someone convinced the government " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgid "Hordes?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" +msgid "Heard of anything better than the odd gun cache?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're disgusting." +msgid "Was hoping for something more..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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." +msgid "What about faction camps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll buy." +msgid "Tell me how faction camps work." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" +msgid "I want you to build a camp here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." +msgid "I want you to take over the camp here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Screw You!" +msgid "Nothing. Let's talk about something else." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." +msgid "Nothing. Lets' get back to work." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What are you doing?" +msgid "" +"The faction camp system is designed to give you greater control over your " +"companions by allowing you to assign them to their own missions. These " +"missions can range from gathering and crafting to eventual combat patrols." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Care to trade?" +msgid "Go on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." +msgid "Never mind, let's go back to talking about camps." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." +msgid "Never mind, let's talk about something else." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" +msgid "Forget it. Let's go." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" +msgid "" +"Food is required for or produced during every mission. Missions that are " +"for a fixed amount of time will require you to pay in advance while " +"repeating missions, like gathering firewood, are paid upon completion. Not " +"having the food needed to pay a companion will result in a loss of " +"reputation across the faction. Which can lead to VERY bad things if it gets" +" too low." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." +msgid "Wait, repeat what you said." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Szevasz, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." +msgid "" +"For your first camp, pick a site that has fields in the 8 adjacent tiles and" +" lots of forests around it. Forests are your primary source of construction" +" materials in the early game while fields can be used for farming. You " +"don't have to be too picky, you can build as many camps as you want. Each " +"camp requires at least two NPCs: one to be the camp manager and an " +"additional NPC to task out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello there." +msgid "" +"After you pick a site you will need to find or make materials to upgrade the" +" camp further to access new missions. The first new missions are focused on" +" gathering materials to upgrade the camp so you don't have to. After two or" +" three upgrades you will have access to the [Menial " +"Labor] mission which will allow you to task companions with sorting " +"all of the items around your camp into categories. Later upgrades allow you" +" to send companions to recruit new members, build overmap fortifications, or" +" even conduct combat patrols" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Oké, csak semmi hirtelen mozdulat..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "Maradj távol!" +msgid "" +"When you upgrade your first tent all the way you will unlock the ability to " +"construct expansions. Expansions allow you to specialize each camp you " +"build by focusing on the industries that you need. A " +"[Farm] is recommended for players that want to " +"pursue a large faction while a [Kitchen] is " +"better for players that just want the quality of life improvement of having " +"an NPC do all of their cooking. A [Garage] is " +"useful for chop shop type missions that let you trade vehicles for large " +"amounts of parts and resources. All those resources can be turning into " +"valuable equipment in the [Blacksmith Shop]. You " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." +msgid "Thanks, let's go back to talking about camps." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Screw you, no." +msgid "Hey Boss..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "&Put hands up." +msgid "What needs to be done?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." +msgid "We're abandoning this camp." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." +msgid "Hope you're here to trade." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Now get out of here" +msgid "" +"I oversee the food stocks for the center. There was significant looting " +"during the panic when we first arrived so most of our food was carried away." +" I manage what we have left and do everything I can to increase our " +"supplies. Rot and mold are more significant in the damp basement so I " +"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "Na most húzz innen, mielőtt kinyírlak." +msgid "Why cornmeal, jerky, and fruit wine?" +msgstr "Miért pont kukoricaliszt, jerky és gyümölcsbor?" #: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." +msgid "" +"All three are easy to locally produce in significant quantities and are non-" +"perishable. We have a local farmer or two and a few hunter types that have " +"been making attempts to provide us with the nutritious supplies. We do " +"always need more suppliers though. Because this stuff is rather cheap in " +"bulk I can pay a premium for any you have on you. Canned food and other " +"edibles are handled by the merchant in the front." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "Ami azt a melót illeti..." +msgid "Are you looking to buy anything else?" +msgstr "Valami mást is vásárolnál?" #: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "Ami azt az egyik melót illeti..." +msgid "Very well..." +msgstr "Hát..." #: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "Mi a baj?" +msgid "" +"I'm actually accepting a number of different foodstuffs: beer, sugar, flour," +" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +"cornmeal, and fruit wine." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "Nem érdekel." +msgid "Interesting..." +msgstr "Érdekes..." #: lang/json/talk_topic_from_json.py -msgid "I see." +msgid "I'm not in charge here, you're looking for someone else..." msgstr "" -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." +#: lang/json/talk_topic_from_json.py +msgid "Keep civil or I'll bring the pain." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "Mindegy, nem érdekel." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "Mindegy." +msgid "Just on watch, move along." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "Megcsinálom!" +msgid "Sir." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "Nem érdekel." +msgid "Rough out there, isn't it?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "Semmi gond." +msgid "Ma'am" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "Van valami tanácsod?" +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "Megosztanál velem valami a cuccaidból?" +msgid "Don't mind me..." +msgstr "Ne is figyelj rám..." #: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "Hamarosan visszatérek!" +msgid "About the mission..." +msgstr "Ami azt a küldetést illeti..." #: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Ez így jól hangzik, köszi." +msgid "About one of those missions..." +msgstr "Ami az egyik küldetést illeti..." #: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Ez így jól hangzik, szia!" +msgid "Hello, marshal." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Sajnálom." +msgid "Marshal, I'm afraid I can't talk now." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Mindegy. Csá." +msgid "I'm not in charge here, marshal." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Hát izé... bocsi." +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Sajnálom... Megtettem, amit lehetett." +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" +msgid "You should mind your own business, nothing to see here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Köszönöm." +msgid "If you need something you'll need to talk to someone else." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Köszi, szia!" +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Hát, szerintem akkor már csak mi maradtunk." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "Legalább van fedél a fejünk felett." +msgid "Marshal, I hope you're here to assist us." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What should we do now?" +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 "" #: lang/json/talk_topic_from_json.py -msgid "Any tips?" +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." msgstr "" -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "Te meg mit keresel itt lenn?" #: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "" +msgid "Can you tell me about this facility?" +msgstr "Mit tudsz nekem mondani erről a létesítményről?" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "Mit kell megcsinálni?" #: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "" +msgid "I've got to go..." +msgstr "Mennem kell..." #: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "Nem tudom, gondolom keressünk használható cuccokat meg más túlélőket." +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -msgstr "Talán azzal kéne kezdenünk, hogy bedeszkázzuk ezt a helyet." +msgid "Seems like a decent plan..." +msgstr "Egész jó ötletnek tűnik..." #: 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." +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." msgstr "" -"Szerintem nem ártana egy kocsit megszerelni, ha esetleg gyorsan el kell " -"innen tünnünk." #: 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." +msgid "Whatever they did it must have worked since we are still alive..." msgstr "" +"Bármit is csináltak biztos jól csinálták, mert még mindig életben vagyunk..." #: 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." +msgid "Marshal, I'm rather surprised to see you here." msgstr "" -"Nem ártana távol maradni azoktól a városoktól, még akkor is, ha amúgy egy " -"csomó cuccot lehet ott találni." #: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." +msgid "Sir you are not authorized to be here... you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Addig nem, amíg nem kapok antibiotikumot..." +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Nemrég kértél erre, majd később." +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[Küldetés] A százados küldött a frekvenciák listájáért." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "És miért pont veled utazzak?" +msgid "Do you need any help?" +msgstr "Kell valamilyen segítség?" #: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." +msgid "I should be going" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "" +msgid "I'll try and find your commander then..." +msgstr "Akkor megpróbálom megkeresni a parancsnokot..." #: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" +msgid "Marshal..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." +msgid "Citizen..." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "Rendben, veled vagyok!" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Who are you?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Awesome!" +msgid "Is there any way I can join the 'Old Guard'?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" +msgid "Does the Old Guard need anything?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "Ja... szerintem nem." +msgid "" +"I'm the region's federal liaison. Most people here call us the 'Old Guard' " +"and I rather like the sound of it. Despite how things currently appear, the" +" federal government was not entirely destroyed. After the outbreak I was " +"chosen to coordinate civilian and militia efforts in support of military " +"operations." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "Tényleg elmész?" +msgid "So what are you actually doing here?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." +msgid "Never mind..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." +msgid "" +"I ensure that the citizens here have what they need to survive and protect " +"themselves from raiders. Keeping some form of law is going to be the most " +"important element in rebuilding the world. We do what we can to keep the " +"'Free Merchants' here prospering and in return they have provided us with " +"spare men and supplies when they can." msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "Mi van?" - #: lang/json/talk_topic_from_json.py -msgid "How much further?" +msgid "Is there a catch?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." +msgid "Anything more to it?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." +msgid "" +"Well... I was like any other civilian till they conscripted me so I'll tell " +"it to you straight. They're the best hope we got right now. They are " +"stretched impossibly thin but are willing to do what is needed to maintain " +"order. They don't care much about looters since they understand most " +"everyone is dead, but if you have something they need... you WILL give it to" +" them. Since most survivors here have nothing they want, they are welcomed " +"as champions." msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." +#: lang/json/talk_topic_from_json.py +msgid "Hmmm..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "Rendben, te vagy a főnök." +msgid "" +"There isn't much pushed out by public relations that I'd actually believe. " +"From what I gather, communication between the regional force commands is " +"almost non-existent. What I do know is that the 'Old Guard' is currently " +"based out of the 2nd Fleet and patrols the Atlantic coast trying to provide " +"support to the remaining footholds." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." +msgid "The 2nd Fleet?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." +msgid "Tell me about the footholds." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, okay." +msgid "" +"I don't know much about how it formed but it is the armada of military and " +"commercial ships that's floating off the coast. They have everything from " +"supertankers and carriers to fishing trawlers... even a few NATO ships. " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "Dehogy is, még lemaradok!" +msgid "" +"They may just be propaganda but apparently one or two cities were successful" +" 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 "" #: lang/json/talk_topic_from_json.py -msgid "Fine." +msgid "" +"You can't actually join unless you go through a recruiter. We can usually " +"use help though, ask me from time to time if there is any work available. " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "Én vagyok őrségben." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you around." +msgid "Please, help me. I need food." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "Nem szeretném..." +msgid "Get away from me." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." +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 "" #: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "Azt jobban szeretném magamnak megtartani." +msgid "Why don't you go somewhere else?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I understand..." +msgid "Why don't you scavenge your own food?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "Oké, tessék." +msgid "What did you do before the cataclysm?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thank you!" +msgid "I'm sorry, I can't help you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" +msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." +msgid "Cardboard?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "Rendben, akkor kezdjük." +msgid "Why are you sitting out here?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sounds good." +msgid "Are you seriously wearing a dinosaur costume?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay. Lead the way." +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 "" #: lang/json/talk_topic_from_json.py -msgid "No, we'll be okay here." +msgid "Why cardboard?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "On second thought, never mind." +msgid "I think I have to get going..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello marshal." +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What is this place?" +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 "" #: lang/json/talk_topic_from_json.py -msgid "Can I join you guys?" +msgid "Building a house?" msgstr "" +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "Nem." + #: lang/json/talk_topic_from_json.py -msgid "Anything I can do for you?" +msgid "What was that about cardboard?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later." +msgid "Don't bother with these assholes." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a refugee center that we've made into a sort of trading hub." +msgid "What's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So are you with the government or something?" +msgid "Ok... see ya." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What do you trade?" +msgid "They're 'too full'. Won't share fuck-all." 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." +msgid "Why are you living here then?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, okay. I'll go look for him" +msgid "I'd better get going." 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." +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll go talk to them later." +msgid "Hey, are you a big fan of survival of the fittest?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Will do, thanks!" +msgid "Why do you ask?" msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Nope." +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's pretty blunt!" +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Death is pretty blunt." +msgid "What's wrong with you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So no negotiating? No, 'If you do this quest then we'll let you in?'" +msgid "They won't let you in because you're sick?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't like your attitude." +msgid "How did you even get here if you're so sick?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well alright then." +msgid "Why are you camped out here if they won't let you in?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Then leave, you have two feet." +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I think I'd rather rearrange your face instead!" +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 "" #: lang/json/talk_topic_from_json.py -msgid "I will." +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Uh, not really. Go talk to a merchant if you have anything to sell. " -"Otherwise the Old Guard liaison might have something, if you can find him." +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Alright then." +msgid "Hey there, friend." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Old Guard huh, I'll go talk to him!" +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Who are the Old Guard?" +msgid "I couldn't help but notice, you're covered in fur." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's just our nickname for them. They're what's left of the federal " -"government. Don't know how legitimate they are but they are named after " -"some military unit that once protected the president. Their liaison is " -"usually hanging around here somewhere." +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Whatever, I had another question." +msgid "Why live out here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Okay, I'll go look for him then." +msgid "You seem like you can hold your own. Why not travel with me?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Stay safe out there. Hate to have to kill you after you've already died." +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello." +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I am actually new." -msgstr "Én tulajdonképpen most érkeztem." +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Are there any rules I should follow while inside?" +msgid "Can I help you, marshal?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So who is everyone around here?" +msgid "Morning sir, how can I help you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Lets trade!" +msgid "Morning ma'am, how can I help you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is there anything I can do to help?" +msgid "" +"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " +"from you." msgstr "" +"[KÜLDETÉS] A menekültügyi központból a kereskedő küldött egy prospektusért." #: lang/json/talk_topic_from_json.py -msgid "Thanks! I will be on my way." +msgid "I heard you were setting up an outpost out here." 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 "" +msgid "What's your job here?" +msgstr "Mi itt a munkád?" #: lang/json/talk_topic_from_json.py msgid "" -"Well mostly no. Just don't go around robbing others and starting fights and" -" you will be all set. Also, don't go into the basement. Outsiders are not " -"allowed in there." +"I was starting to wonder if they were really interested in the project or " +"were just trying to get rid of me." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ok, thanks." +msgid "" +"Ya, that representative from the Old Guard asked the two of us to come out " +"here and begin fortifying this place as a refugee camp. I'm not sure how " +"fast he expects the two of us to get setup but we were assured additional " +"men were coming out here to assist us. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So uhhh, why not?" -msgstr "" +msgid "How many refugees are you expecting?" +msgstr "Hány menekültre számítotok?" #: lang/json/talk_topic_from_json.py msgid "" -"In short, we had a problem when a sick refugee died and turned into a " -"zombie. We had to expel the refugees and most of our surviving group now " -"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." +"Could easily be hundreds as far as I know. They chose this ranch because of" +" its rather remote location, decent fence, and huge cleared field. With as " +"much land as we have fenced off we could build a village if we had the " +"materials. We would have tried to secure a small town or something but the " +"lack of good farmland and number of undead makes it more practical for us to" +" build from scratch. The refugee center I came from is constantly facing " +"starvation and undead assaults." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hopefully moving out here was worth it..." +msgstr "Remélem érdemes volt ide átköltözni..." + #: lang/json/talk_topic_from_json.py msgid "" -"Most are scavengers like you. They now make a living by looting the cities " -"in search for anything useful: food, weapons, tools, gasoline. In exchange " -"for their findings we offer them a temporary place to rest and the services " -"of our shop. I bet some of them would be willing to organize resource runs " -"with you if you ask." +"I'm the engineer in charge of turning this place into a working camp. This " +"is going to be an uphill battle, we used most of our initial supplies " +"getting here and boarding up the windows. I've got a huge list of tasks " +"that need to get done so if you could help us keep supplied I'd appreciate " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for the heads-up." -msgstr "" +msgid "I'll keep that in mind." +msgstr "Igyekszem észben tartani." #: 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." +"My partner is in charge of fortifying this place, you should ask him about " +"what needs to be done." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Keep to yourself and you won't find any problems." -msgstr "" +msgid "I'll talk to him then..." +msgstr "Akkor majd vele beszélek..." #: lang/json/talk_topic_from_json.py -msgid "What do you do around here?" +msgid "Howdy." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Got tips for avoiding trouble?" +msgid "" +"I was among one of the first groups of immigrants sent here to fortify the " +"outpost. I might have exaggerated my construction skills to get the hell " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Have you seen anyone who might be hiding something?" +msgid "You need something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Bye..." -msgstr "" +msgid "I'd like to hire your services." +msgstr "Szeretnélek felbérelni." #: 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." +"I'm one of the migrants that got diverted to this outpost when I arrived at " +"the refugee center. They said I was big enough to swing an ax so my " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Keep your head down and stay out of my way." +msgid "Oh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "OK..." +msgid "Come back later, I need to take care of a few things first." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Like what?" +msgid "" +"The rate is a bit steep but I still have my quotas that I need to fulfill. " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I'm not sure..." +msgid "[$2000, 1d] 10 logs" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Like they could be working for someone else?" +msgid "[$12000, 7d] 100 logs" msgstr "" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Maybe later." +msgstr "Talán később." + #: lang/json/talk_topic_from_json.py -msgid "You're new here, who the hell put you up to this crap?" +msgid "I'll be back later." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Get bent, traitor!" -msgstr "Apád faszát, te áruló!" +msgid "Don't have much time to talk." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Got something to hide?" -msgstr "Rejtegetsz valamit?" +msgid "What is your job here?" +msgstr "Mi itt a munkád?" #: lang/json/talk_topic_from_json.py -msgid "Sorry, I didn't mean to offend you..." +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 "" #: 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." +"Bringing in logs is one of the few tasks we can give to the unskilled so I'd" +" be hurting them if I outsourced it. Ask around though, I'm sure most " +"people could use a hand." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sorry." +msgid "" +"I was sent here to assist in setting-up the farm. Most of us have no real " +"skills that transfer from before the cataclysm so things are a bit of trial " +"and error." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's it, you're dead!" +msgid "" +"I'm sorry, I don't have anything to trade. The work program here splits " +"what we produce between the refugee center, the farm, and ourselves. If you" +" 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 "" #: lang/json/talk_topic_from_json.py -msgid "I didn't mean it!" +msgid "You mind?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You must really have a death wish!" +msgid "" +"I'm just a lucky guy that went from being chased by the undead to the noble " +"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 "" +#: lang/json/talk_topic_from_json.py +msgid "It could be worse..." +msgstr "Lehetne rosszabb is..." + #: 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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I thought I smelled a pig. I jest... please don't arrest me." -msgstr "" +msgid "I'll talk with them then..." +msgstr "Akkor majd velük beszélek..." #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" +msgid "I hope you are here to do business." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You... smelled me?" -msgstr "" +msgid "I'm interested in investing in agriculture..." +msgstr "Érdekelne egy mezőgazdasági befektetés..." #: lang/json/talk_topic_from_json.py -msgid "Got anything for sale?" +msgid "" +"My job is to manage our outpost's agricultural production. I'm constantly " +"searching for trade partners and investors to increase our capacity. If you" +" are interested I typically have tasks that I need assistance with." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Got any survival advice?" +msgid "Please leave me alone..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Goodbye." -msgstr "" +msgid "What's wrong?" +msgstr "Mi a baj?" #: 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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "O..kay..?" +msgid "That's sad." 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." +"I don't know what you could do. I've tried everything. Just give me " +"time..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Interesting." +msgid "OK." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, so you hunt?" +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 "" #: lang/json/talk_topic_from_json.py -msgid "Not really, just trying to lead my life." +msgid "Uhm." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yep. Whatever game I spot, I bag and sell the meat and other parts here. " -"Got the occasional fish and basket full of wild fruit, but nothing comes " -"close to a freshly-cooked moose steak for supper!" +msgid "How can I help you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Great, now my mouth is watering..." +msgid "I could use your medical assistance." 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'." +"I was a practicing nurse so I've taken over the medical responsibilities of " +"the outpost till we can locate a physician." msgstr "" #: 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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Spot your prey before something nastier spots you." -msgstr "" +msgid "What kind of jobs do you have for me?" +msgstr "Milyen munkád van számomra?" #: lang/json/talk_topic_from_json.py -msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." +msgid "Not now." 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." +msgid "I can take a look at you or your companions if you are injured." msgstr "" #: 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." +msgid "[$200, 30m] I need you to patch me up." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"A steady diet of cooked meat and clean water will keep you alive forever, " -"but your taste buds and your colon may start to get angry at you. Eat a " -"piece of fruit every once in a while." +msgid "[$500, 1h] I need you to patch me up." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Smoke crack to get more shit done." +msgid "I should be fine." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Watch your back out there." +msgid "That's the best I can do on short notice." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." +msgid "I'm sorry, I don't have time to see you at the moment." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "" +msgid "For the right price could I borrow your services?" +msgstr "A megfelelő díjazásért cserébe segítenél nekem?" #: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." +msgid "I imagine we might be able to work something out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I do anything for the center?" +msgid "I was wondering if you could install a cybernetic implant..." msgstr "" +"Arra lennék kíváncsi, hogy be tudnál-e építeni egy kibernetikus " +"implantátumot..." #: lang/json/talk_topic_from_json.py -msgid "Let's trade then." -msgstr "" +msgid "I need help removing an implant..." +msgstr "Segítségre lenne szükségem egy implantátum eltávolításánál..." #: lang/json/talk_topic_from_json.py -msgid "I figured you might be looking for some help..." -msgstr "Gondoltam elkelne valamiféle segítség..." +msgid "Don't mind me." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +"I chop up useless vehicles for spare parts and raw materials. If we can't " +"use a vehicle immediately we haul it into the ring we are building to " +"surround the outpost. It provides a measure of defense in the event that we" +" get attacked." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." +msgid "" +"I don't personally, the teams we send out to recover the vehicles usually " +"need a hand but can be hard to catch since they spend most of their time " +"outside the outpost." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +msgid "Welcome to the junk shop." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." +msgid "Let's see what you've managed to find." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry, but the only way we're going to make it is if we keep our gates " -"buttoned fast. The guards in the basement have orders to shoot on sight, if" -" you so much as peep your head in the lower levels. I don't know what made " -"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." +"I organize scavenging runs to bring in supplies that we can't produce " +"ourselves. I try and provide incentives to get migrants to join one of the " +"teams... its dangerous work but keeps our outpost alive. Selling anything " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." +msgid "I'll think about it." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " -"crammed in here?" +"Are you interested in the scavenging runs or one of the other tasks that I " +"might have for you?" msgstr "" -"[INT 12] Na várjunk csak... Hat busznyi menekült... Mégis hány embert " -"zsúfoltatok ide be?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +msgid "Tell me more about the scavenging runs." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." +msgid "What kind of tasks do you have for me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Had one guy pop in here a while back saying he had tried to drive into " -"Syracuse after the outbreak. Didn't even make it downtown before he ran " -"into a wall of the living dead that could stop a tank. He hightailed it out" -" but claims there were several thousand at least. Guess when you get a " -"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." +msgid "No, thanks." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." +msgid "Want a drink?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, there is a party of about a dozen 'scavengers' that found some sort of" -" government facility. They bring us a literal truck load of jumpsuits, " -"m4's, and canned food every week or so. Since some of those guys got family" -" here, we've been doing alright. As to where it is, I don't have the " -"foggiest of ideas." +msgid "I'm looking for information." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks, I'll keep an eye out." +msgid "Let me see what you keep behind the counter." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry, not a risk we are willing to take right now." +msgid "What do you have on tap?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fine..." +msgid "I'll be going..." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"There isn't a chance in hell! We had one guy come in here with bloody fur " -"all over his body... well I guess that isn't all that strange but I'm pretty" -" sure whatever toxic waste is still out there is bound to mutate more than " -"just his hair." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fine... *coughupyourscough*" +"If it isn't obvious, I oversee the bar here. The scavengers bring in old " +"world alcohol that we sell for special occasions. For most that come " +"through here though, the drinks we brew ourselves are the only thing they " +"can afford." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sorry, last thing we need is another mouth to feed. Most of us lack any " -"real survival skills so keeping our group small enough to survive on the " -"food random scavengers bring to trade with us is important." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sure I can do something to change your mind *wink*" +"We have a policy of keeping information to ourselves. Ask the patrons if " +"you want to hear rumors or news." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can pull my own weight!" +msgid "Thanks for nothing." 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!" +msgid "Our selection is a bit limited at the moment." msgstr "" -"[INT 11] Szerintem jól meg tudom én szervezni a kutatási műveleteket, hogy " -"még több értéket hozzanak be a guberálók!" #: lang/json/talk_topic_from_json.py -msgid "[STR 11] I punch things in face real good!" -msgstr "[ERŐ 11] Jól pofán verek mindenkit!" - -#: lang/json/talk_topic_from_json.py -msgid "I guess I'll look somewhere else..." +msgid "[$8] I'll take a beer" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Can't say we've heard much. Most these shelters seemed to have been " -"designed to make people feel safer... not actually aid in their survival. " -"Our radio equipment is utter garbage that someone convinced the government " -"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." +msgid "[$10] I'll take a shot of brandy" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hordes?" +msgid "[$10] I'll take a shot of rum" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Heard of anything better than the odd gun cache?" +msgid "[$12] I'll take a shot of whiskey" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Was hoping for something more..." +msgid "On second thought, don't bother." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What about faction camps?" +msgid "Can I interest you in a trim?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me how faction camps work." +msgid "[$5] I'll have a shave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I want you to build a camp here." +msgid "[$10] I'll get a haircut" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I want you to take over the camp here." +msgid "Maybe another time..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nothing. Let's talk about something else." +msgid "" +"What? I'm a barber... I cut hair. There's demand for cheap cuts and a " +"shave out here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nothing. Lets' get back to work." +msgid "I can't imagine what I'd need your assistance with." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The faction camp system is designed to give you greater control over your " -"companions by allowing you to assign them to their own missions. These " -"missions can range from gathering and crafting to eventual combat patrols." +msgid "Stand still while I get my clippers..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Go on." +msgid "Thanks..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind, let's go back to talking about camps." +msgid "I haven't done anything wrong..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind, let's talk about something else." +msgid "Any tips for surviving?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Forget it. Let's go." +msgid "What would it cost to hire you?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Food is required for or produced during every mission. Missions that are " -"for a fixed amount of time will require you to pay in advance while " -"repeating missions, like gathering firewood, are paid upon completion. Not " -"having the food needed to pay a companion will result in a loss of " -"reputation across the faction. Which can lead to VERY bad things if it gets" -" too low." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Wait, repeat what you said." +"I'm just a hired hand. Someone pays me and I do what needs to be done." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"For your first camp, pick a site that has fields in the 8 adjacent tiles and" -" lots of forests around it. Forests are your primary source of construction" -" materials in the early game while fields can be used for farming. You " -"don't have to be too picky, you can build as many camps as you want. Each " -"camp requires at least two NPCs: one to be the camp manager and an " -"additional NPC to task out." +"If you have to fight your way out of an ambush, the only thing that is going" +" to save you is having a party that can return fire. People who work alone " +"are easy pickings for monsters and bandits." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"After you pick a site you will need to find or make materials to upgrade the" -" camp further to access new missions. The first new missions are focused on" -" gathering materials to upgrade the camp so you don't have to. After two or" -" three upgrades you will have access to the [Menial " -"Labor] mission which will allow you to task companions with sorting " -"all of the items around your camp into categories. Later upgrades allow you" -" to send companions to recruit new members, build overmap fortifications, or" -" even conduct combat patrols" +msgid "I suppose I should hire a party then?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"When you upgrade your first tent all the way you will unlock the ability to " -"construct expansions. Expansions allow you to specialize each camp you " -"build by focusing on the industries that you need. A " -"[Farm] is recommended for players that want to " -"pursue a large faction while a [Kitchen] is " -"better for players that just want the quality of life improvement of having " -"an NPC do all of their cooking. A [Garage] is " -"useful for chop shop type missions that let you trade vehicles for large " -"amounts of parts and resources. All those resources can be turning into " -"valuable equipment in the [Blacksmith Shop]. You " -"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." +"I'm currently waiting for a customer to return... I'll make you a deal " +"though, $8,000 will cover my expenses if I get a small cut of the loot. I " +"can't accept cash cards, so you'll have to find an ATM to deposit money into" +" your bank account." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks, let's go back to talking about camps." +msgid "I might be back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey Boss..." -msgstr "" +msgid "[$8000] You have a deal." +msgstr "[$8000] Kezet rá." #: lang/json/talk_topic_from_json.py -msgid "What needs to be done?" +msgid "I guess you're the boss." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We're abandoning this camp." -msgstr "" +msgid "Glad to have you aboard." +msgstr "Üdv köztünk." #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." +msgid "Can I trade for supplies?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I oversee the food stocks for the center. There was significant looting " -"during the panic when we first arrived so most of our food was carried away." -" I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Why cornmeal, jerky, and fruit wine?" -msgstr "Miért pont kukoricaliszt, jerky és gyümölcsbor?" +msgid "So what are you doing right now?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"All three are easy to locally produce in significant quantities and are non-" -"perishable. We have a local farmer or two and a few hunter types that have " -"been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"The Old Guard--that's what's left of the feds--set me up here to screen any " +"new arrivals for infection risks. Can't be too paranoid these days. Sad to" +" have to turn people away, but I like the assignment for the chance to get " +"news about the outside world." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you looking to buy anything else?" -msgstr "Valami mást is vásárolnál?" - -#: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Hát..." +msgid "What kind of news?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " -"cornmeal, and fruit wine." +"Sightings of unusual living dead or new mutations. The more we know about " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Érdekes..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, you're looking for someone else..." +msgid "Good luck with that..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Keep civil or I'll bring the pain." +msgid "" +"This is no classic zombie outbreak. The dead seem to be getting stronger as" +" the days go on. Some survivors too, come in here with... adaptations. " +"Maybe they're related." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just on watch, move along." +msgid "" +"We can't. There's nothing we can spare to sell and I've got no budget to " +"buy from you. I don't suppose you want to donate?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sir." +msgid "This is a test conversation that shouldn't appear in the game." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Rough out there, isn't it?" +msgid "This is a basic test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am" +msgid "This is a strength test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." +msgid "This is a dexterity test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "Ne is figyelj rám..." - -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Ami azt a küldetést illeti..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Ami az egyik küldetést illeti..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." +msgid "This is an intelligence test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." +msgid "This is a perception test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." +msgid "This is a low strength test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." +msgid "This is a low dexterity test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." +msgid "This is a low intelligence test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." +msgid "This is a low perception test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." +msgid "This is a trait test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." +msgid "This is a short trait test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgid "This is a wearing test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." +msgid "This is a npc trait test response." 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." +msgid "This is a npc short trait test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." +msgid "This is a trait flags test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "Te meg mit keresel itt lenn?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "Mit tudsz nekem mondani erről a létesítményről?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "Mit kell megcsinálni?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Mennem kell..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." +msgid "This is a npc trait flags test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Egész jó ötletnek tűnik..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." +msgid "This is an npc effect test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." +msgid "This is a player effect test response." msgstr "" -"Bármit is csináltak biztos jól csinálták, mert még mindig életben vagyunk..." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." +msgid "This is a cash test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." +msgid "This is an npc service test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." +msgid "This is an npc available test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[Küldetés] A százados küldött a frekvenciák listájáért." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "Kell valamilyen segítség?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" +msgid "This is a om_location_field test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." +msgid "This is a faction camp any test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Akkor megpróbálom megkeresni a parancsnokot..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." +msgid "This is a nearby role test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal..." +msgid "This is a class test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Who are you?" +msgid "This is a npc allies 1 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join the 'Old Guard'?" +msgid "This an error! npc allies 2 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Does the Old Guard need anything?" +msgid "This is a season spring test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I'm the region's federal liaison. Most people here call us the 'Old Guard' " -"and I rather like the sound of it. Despite how things currently appear, the" -" federal government was not entirely destroyed. After the outbreak I was " -"chosen to coordinate civilian and militia efforts in support of military " -"operations." +msgid "This is a days since cataclysm 30 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So what are you actually doing here?" +msgid "This is a season summer test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind..." +msgid "This is a days since cataclysm 120 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I ensure that the citizens here have what they need to survive and protect " -"themselves from raiders. Keeping some form of law is going to be the most " -"important element in rebuilding the world. We do what we can to keep the " -"'Free Merchants' here prospering and in return they have provided us with " -"spare men and supplies when they can." +msgid "This is a season autumn test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is there a catch?" +msgid "This is a days since cataclysm 210 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything more to it?" +msgid "This is a season winter test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well... I was like any other civilian till they conscripted me so I'll tell " -"it to you straight. They're the best hope we got right now. They are " -"stretched impossibly thin but are willing to do what is needed to maintain " -"order. They don't care much about looters since they understand most " -"everyone is dead, but if you have something they need... you WILL give it to" -" them. Since most survivors here have nothing they want, they are welcomed " -"as champions." +msgid "This is a days since cataclysm 300 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hmmm..." +msgid "This is a is day test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"There isn't much pushed out by public relations that I'd actually believe. " -"From what I gather, communication between the regional force commands is " -"almost non-existent. What I do know is that the 'Old Guard' is currently " -"based out of the 2nd Fleet and patrols the Atlantic coast trying to provide " -"support to the remaining footholds." +msgid "This is a is night test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "The 2nd Fleet?" +msgid "This is an switch 1 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about the footholds." +msgid "This is an switch 2 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I don't know much about how it formed but it is the armada of military and " -"commercial ships that's floating off the coast. They have everything from " -"supertankers and carriers to fishing trawlers... even a few NATO ships. " -"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." +msgid "This is an switch default 1 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"They may just be propaganda but apparently one or two cities were successful" -" 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." +msgid "This is an switch default 2 test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"You can't actually join unless you go through a recruiter. We can usually " -"use help though, ask me from time to time if there is any work available. " -"Completing missions as a contractor is a great way to make a name for " -"yourself among the most powerful men left in the world." +msgid "This is another basic test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" +msgid "This is an or trait test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning sir, how can I help you?" +msgid "This is an and cash, available, trait test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" +msgid "This is a complex nested test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " -"from you." +msgid "This is a u_add_effect - infection response" msgstr "" -"[KÜLDETÉS] A menekültügyi központból a kereskedő küldött egy prospektusért." #: lang/json/talk_topic_from_json.py -msgid "I heard you were setting up an outpost out here." +msgid "This is a npc_add_effect - infection response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What's your job here?" -msgstr "Mi itt a munkád?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was starting to wonder if they were really interested in the project or " -"were just trying to get rid of me." +msgid "This is a u_add_trait - FED MARSHALL response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ya, that representative from the Old Guard asked the two of us to come out " -"here and begin fortifying this place as a refugee camp. I'm not sure how " -"fast he expects the two of us to get setup but we were assured additional " -"men were coming out here to assist us. " +msgid "This is a npc_add_trait - FED MARSHALL response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How many refugees are you expecting?" -msgstr "Hány menekültre számítotok?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Could easily be hundreds as far as I know. They chose this ranch because of" -" its rather remote location, decent fence, and huge cleared field. With as " -"much land as we have fenced off we could build a village if we had the " -"materials. We would have tried to secure a small town or something but the " -"lack of good farmland and number of undead makes it more practical for us to" -" build from scratch. The refugee center I came from is constantly facing " -"starvation and undead assaults." +msgid "This is a u_buy_item bottle of beer response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hopefully moving out here was worth it..." -msgstr "Remélem érdemes volt ide átköltözni..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm the engineer in charge of turning this place into a working camp. This " -"is going to be an uphill battle, we used most of our initial supplies " -"getting here and boarding up the windows. I've got a huge list of tasks " -"that need to get done so if you could help us keep supplied I'd appreciate " -"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." +msgid "This is a u_buy_item plastic bottle response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll keep that in mind." -msgstr "Igyekszem észben tartani." - -#: 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." +msgid "This is a u_spend_cash response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll talk to him then..." -msgstr "Akkor majd vele beszélek..." - -#: lang/json/talk_topic_from_json.py -msgid "Howdy." +msgid "This is a multi-effect response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I was among one of the first groups of immigrants sent here to fortify the " -"outpost. I might have exaggerated my construction skills to get the hell " -"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." +msgid "This is a u_sell_item plastic bottle response" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You need something?" +msgid "This is a u_has_item beer test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'd like to hire your services." -msgstr "Szeretnélek felbérelni." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm one of the migrants that got diverted to this outpost when I arrived at " -"the refugee center. They said I was big enough to swing an ax so my " -"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." +msgid "This is a u_has_item bottle_glass test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh." +msgid "This is a u_has_items beer test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Come back later, I need to take care of a few things first." +msgid "Test failure! This is a u_has_items test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The rate is a bit steep but I still have my quotas that I need to fulfill. " -"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." +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$2000, 1d] 10 logs" +msgid "" +"Before this started, I had a crappy job flipping burgers at Sambal's Grille." +" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " +"Last time I saw them alive, I just came home from school, grabbed a snack " +"and went to work. I don't think I even told my mom I loved her, and I was " +"pissed at my dad for some shit that really doesn't matter. Didn't " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "[$12000, 7d] 100 logs" +msgid "So, did you evacuate?" msgstr "" -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Maybe later." -msgstr "Talán később." - #: lang/json/talk_topic_from_json.py -msgid "I'll be back later." +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't have much time to talk." +msgid "" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "What is your job here?" -msgstr "Mi itt a munkád?" - #: 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." +"I didn't evacuate. I went home... saw some freaky shit on the way, but at " +"the time I just thought it was riots or drugs. By the time I got there, my " +"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 "" #: lang/json/talk_topic_from_json.py msgid "" -"Bringing in logs is one of the few tasks we can give to the unskilled so I'd" -" be hurting them if I outsourced it. Ask around though, I'm sure most " -"people could use a hand." +"I haven't found them yet. Whenever I see a , a little part of me is" +" afraid it's going to be one of them. But then, maybe not. Maybe they " +"were evacuated, maybe they fought and tried to wait for me but the military " +"took them anyway? I've heard that sort of thing happened. I don't know if " +"I'll ever know." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I was sent here to assist in setting-up the farm. Most of us have no real " -"skills that transfer from before the cataclysm so things are a bit of trial " -"and error." +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I'm sorry, I don't have anything to trade. The work program here splits " -"what we produce between the refugee center, the farm, and ourselves. If you" -" 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." +msgid "Okay, please continue." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You mind?" +msgid "On second thought, let's talk about something else." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm just a lucky guy that went from being chased by the undead to the noble " -"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." +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It could be worse..." -msgstr "Lehetne rosszabb is..." - -#: 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." +msgid "Fireflies. Got it." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll talk with them then..." -msgstr "Akkor majd velük beszélek..." - -#: lang/json/talk_topic_from_json.py -msgid "I hope you are here to do business." +msgid "How does this relate to what I asked you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm interested in investing in agriculture..." -msgstr "Érdekelne egy mezőgazdasági befektetés..." +msgid "I need to get going." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"My job is to manage our outpost's agricultural production. I'm constantly " -"searching for trade partners and investors to increase our capacity. If you" -" are interested I typically have tasks that I need assistance with." +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Please leave me alone..." +msgid "18 gauge, the dog. Got it." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What's wrong?" -msgstr "Mi a baj?" - -#: 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." +msgid "I think I see some zombies coming. We should cut this short." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's sad." +msgid "Shut up, you old fart." 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..." +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" #: 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..." +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" #: lang/json/talk_topic_from_json.py -msgid "Uhm." +msgid "What did you see?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How can I help you?" +msgid "We really, really have to go." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I could use your medical assistance." +msgid "For fuck's sake, shut UP!" 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." +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" #: 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." +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "What kind of jobs do you have for me?" -msgstr "Milyen munkád van számomra?" - -#: lang/json/talk_topic_from_json.py -msgid "Not now." +msgid "I catch your drift." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." +msgid "Are you done yet? Seriously!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$200, 30m] I need you to patch me up." +msgid "For the love of all that is holy, PLEASE shut the hell up!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$500, 1h] I need you to patch me up." +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I should be fine." +msgid "Thanks for the story!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's the best I can do on short notice." +msgid "." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I don't have time to see you at the moment." +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "For the right price could I borrow your services?" -msgstr "A megfelelő díjazásért cserébe segítenél nekem?" - -#: lang/json/talk_topic_from_json.py -msgid "I imagine we might be able to work something out." +msgid "Huh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I was wondering if you could install a cybernetic implant..." +msgid "" +"I was a cop. Small town sheriff. We got orders without even really knowing" +" what they meant. At some point one of the g-men on the phone told me it " +"was a Chinese attack, something in the water supply... I don't know if I " +"believe it now, but at the time it was the best explanation. At first it " +"was weird, a few people - - fighting like rabid animals. Then it " +"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 "" -"Arra lennék kíváncsi, hogy be tudnál-e építeni egy kibernetikus " -"implantátumot..." #: lang/json/talk_topic_from_json.py -msgid "I need help removing an implant..." -msgstr "Segítségre lenne szükségem egy implantátum eltávolításánál..." - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me." +msgid "What happened?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I chop up useless vehicles for spare parts and raw materials. If we can't " -"use a vehicle immediately we haul it into the ring we are building to " -"surround the outpost. It provides a measure of defense in the event that we" -" get attacked." +"A big-ass hole opened up right in the middle of town, and a " +"crawled out, right in front of the church. We unloaded into it, but bullets" +" just bounced off. Got some civilians in the crossfire. It started just " +"devouring people like potato chips into a gullet that looked like a rotting " +"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " +"have been the only person to escape. I haven't been able to even look at my" +" badge since then." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't personally, the teams we send out to recover the vehicles usually " -"need a hand but can be hard to catch since they spend most of their time " -"outside the outpost." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome to the junk shop." +"I was SWAT. By all rights I should be dead. We were called to control " +"\"riots\", which we all know were the first hordes. Fat lot of " +"good we were. Pretty sure we killed more civilians. Even among my crew, " +"morale was piss poor and we were shooting wild. Then something hit us, " +"something big. Might have been a bomb, I really don't remember. I woke up " +"pinned underneath the SWAT van. I couldn't see anything... but I could " +"hear it, . I could hear everything. I spent hours, maybe days " +"under that van, not even trying to get out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Let's see what you've managed to find." +msgid "But you did get out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I organize scavenging runs to bring in supplies that we can't produce " -"ourselves. I try and provide incentives to get migrants to join one of the " -"teams... its dangerous work but keeps our outpost alive. Selling anything " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I'll think about it." +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me more about the scavenging runs." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What kind of tasks do you have for me?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, thanks." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Want a drink?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm looking for information." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Let me see what you keep behind the counter." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What do you have on tap?" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'll be going..." +msgid "Lucky you. How did you get away?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"If it isn't obvious, I oversee the bar here. The scavengers bring in old " -"world alcohol that we sell for special occasions. For most that come " -"through here though, the drinks we brew ourselves are the only thing they " -"can afford." +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." msgstr "" #: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for nothing." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Our selection is a bit limited at the moment." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "[$8] I'll take a beer" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "[$10] I'll take a shot of brandy" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "[$10] I'll take a shot of rum" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$12] I'll take a shot of whiskey" +msgid "Woah, lucky for you. How did you find out about ?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "On second thought, don't bother." +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" +msgid "Something must have driven you out of there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "[$5] I'll have a shave" +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "[$10] I'll get a haircut" +msgid "Got any tips about the boss zombie?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Maybe another time..." +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" #: 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." +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't imagine what I'd need your assistance with." +msgid "What were your dreams?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Stand still while I get my clippers..." +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks..." +msgid "OK, that doesn't seem that unusual though." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I haven't done anything wrong..." +msgid "Wow, crazy, I can't believe you really dreamed ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Any tips for surviving?" +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "What would it cost to hire you?" +msgid "That is kinda strange." 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." +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" #: lang/json/talk_topic_from_json.py msgid "" -"If you have to fight your way out of an ambush, the only thing that is going" -" to save you is having a party that can return fire. People who work alone " -"are easy pickings for monsters and bandits." +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I suppose I should hire a party then?" +msgid "Tell me some more of your weird dreams." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm currently waiting for a customer to return... I'll make you a deal " -"though, $8,000 will cover my expenses if I get a small cut of the loot. I " -"can't accept cash cards, so you'll have to find an ATM to deposit money into" -" your bank account." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I might be back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "[$8000] You have a deal." -msgstr "[$8000] Kezet rá." - -#: lang/json/talk_topic_from_json.py -msgid "I guess you're the boss." +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Glad to have you aboard." -msgstr "Üdv köztünk." - -#: lang/json/talk_topic_from_json.py -msgid "Can I trade for supplies?" +msgid "I think we all have dreams like that now." 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "So what are you doing right now?" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"The Old Guard--that's what's left of the feds--set me up here to screen any " -"new arrivals for infection risks. Can't be too paranoid these days. Sad to" -" have to turn people away, but I like the assignment for the chance to get " -"news about the outside world." +msgid "Poor Filthy Dan. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What kind of news?" +msgid "Thanks for telling me that stuff. " msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sightings of unusual living dead or new mutations. The more we know about " -"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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "Good luck with that..." +msgid "How did you survive on the run?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is no classic zombie outbreak. The dead seem to be getting stronger as" -" the days go on. Some survivors too, come in here with... adaptations. " -"Maybe they're related." +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We can't. There's nothing we can spare to sell and I've got no budget to " -"buy from you. I don't suppose you want to donate?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "This is a test conversation that shouldn't appear in the game." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "This is a basic test response." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "This is a strength test response." +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a dexterity test response." +msgid "What happened to your original crew?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is an intelligence test response." +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a perception test response." +msgid "What do you think happened? You see them around anywhere?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a low strength test response." +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "This is a low dexterity test response." +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a low intelligence test response." +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "This is a low perception test response." +msgid "Giant bees? Tell me more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a trait test response." +msgid "But bees aren't usually aggressive..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a short trait test response." +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "This is a wearing test response." +msgid "But bees aren't usually aggressive... Do you mean wasps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a npc trait test response." +msgid "" +"Well, excuse me if I didn't stop to ask what kind of killer bugs " +"they were." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a npc short trait test response." +msgid "Sorry. Could you tell me more about them?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is an npc effect test response." +msgid "Right. Sorry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a player effect test response." +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a cash test response." +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 "" #: lang/json/talk_topic_from_json.py -msgid "This is an npc service test response." +msgid "Tell me more about that FEMA camp." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is an npc available test response." +msgid "How did you get out?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a om_location_field test response." +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a faction camp any test response." +msgid "What happened after that?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a nearby role test response." +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a class test response." +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "This is a npc allies 1 test response." +msgid "" +"That's a story for another day. I don't really like thinking about it." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This an error! npc allies 2 test response." +msgid "Sorry. Tell me more about that FEMA camp." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is an or trait test response." +msgid "Sorry for asking. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is an and cash, available, trait test response." +msgid "Sorry for asking. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a complex nested test response." +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_add_effect - infection response" +msgid "" +"Nothin' special before . When the dead started walking, I " +"geared up and started puttin' them back down." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a npc_add_effect - infection response" +msgid "How did that go?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_add_trait - FED MARSHALL response" +msgid "Cool. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a npc_add_trait - FED MARSHALL response" +msgid "Cool. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item bottle of beer response" +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item plastic bottle response" +msgid "Figured what out?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a u_spend_cash response" +msgid "Never mind. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "This is a multi-effect response" +msgid "Never mind. " msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Before this started, I had a crappy job flipping burgers at Sambal's Grille." -" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " -"Last time I saw them alive, I just came home from school, grabbed a snack " -"and went to work. I don't think I even told my mom I loved her, and I was " -"pissed at my dad for some shit that really doesn't matter. Didn't " -"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." +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So, did you evacuate?" +msgid "It's good you found your calling. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't evacuate. I went home... saw some freaky shit on the way, but at " -"the time I just thought it was riots or drugs. By the time I got there, my " -"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." +msgid "It's good you found your calling. " msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I haven't found them yet. Whenever I see a , a little part of me is" -" afraid it's going to be one of them. But then, maybe not. Maybe they " -"were evacuated, maybe they fought and tried to wait for me but the military " -"took them anyway? I've heard that sort of thing happened. I don't know if " -"I'll ever know." +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" #: lang/json/talk_topic_from_json.py msgid "" -"I was a cop. Small town sheriff. We got orders without even really knowing" -" what they meant. At some point one of the g-men on the phone told me it " -"was a Chinese attack, something in the water supply... I don't know if I " -"believe it now, but at the time it was the best explanation. At first it " -"was weird, a few people - - fighting like rabid animals. Then it " -"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." +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"A big-ass hole opened up right in the middle of town, and a " -"crawled out, right in front of the church. We unloaded into it, but bullets" -" just bounced off. Got some civilians in the crossfire. It started just " -"devouring people like potato chips into a gullet that looked like a rotting " -"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " -"have been the only person to escape. I haven't been able to even look at my" -" badge since then." +msgid "Tell me about your son." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I was SWAT. By all rights I should be dead. We were called to control " -"\"riots\", which we all know were the first hordes. Fat lot of " -"good we were. Pretty sure we killed more civilians. Even among my crew, " -"morale was piss poor and we were shooting wild. Then something hit us, " -"something big. Might have been a bomb, I really don't remember. I woke up " -"pinned underneath the SWAT van. I couldn't see anything... but I could " -"hear it, . I could hear everything. I spent hours, maybe days " -"under that van, not even trying to get out." +msgid "So, you went to one of the FEMA camps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "But you did get out." +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." +msgid "What was it you said before?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" +msgid "Where did you go then?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." +msgid "That's quite a story. " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." +msgid "That's quite a story. " msgstr "" #: lang/json/talk_topic_from_json.py @@ -115528,6 +116626,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -115551,6 +116653,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -115604,6 +116714,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -115668,6 +116782,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -115705,6 +116823,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -115799,6 +116921,243 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -115850,10 +117209,493 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -115884,6 +117726,158 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -116009,6 +118003,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -117387,6 +119437,44 @@ msgstr "" msgid " phase-strikes %s" msgstr "" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "" @@ -120651,6 +122739,26 @@ msgstr "kötő" msgid "bullet pulling" msgstr "tölténybontó" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "polifóm" @@ -121433,6 +123541,18 @@ msgstr "custom_empty" msgid "canoe" msgstr "kenu" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "tutaj" @@ -122760,8 +124880,16 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -122777,6 +124905,19 @@ msgid "" "the front." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -123083,6 +125224,36 @@ msgstr "széles kerék (kormányozható)" msgid "A wooden wheel." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "kézi lapát" @@ -124755,6 +126926,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -125180,8 +127357,8 @@ msgid "Repeat once" msgstr "Még egyszer" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Annyiszor, amennyiszer lehet" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -125191,11 +127368,25 @@ msgstr "Még annyiszor, hogy teljesen meg legyen javítva, de megerősítve nem" msgid "Repeat until success/failure/level up" msgstr "Még annyiszor, hogy sikeres/sikertelen/szintlépés legyen" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "A(z) %s összes töltete elfogyott" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "Mit javítasz meg?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "" +"Nincsen olyan tárgy nálad, amit a(z) %s segítségével lehet megjavítani." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Ezzel nem fogsz semmit sem tanulni." @@ -125203,13 +127394,15 @@ msgstr "Ezzel nem fogsz semmit sem tanulni." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"Esély sikerre: %.1f%%\n" -"Esély sérülésre: %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -125263,6 +127456,11 @@ msgstr "Befejezed a várakozást." msgid "%s finishes with you..." msgstr "%s veled fejezi be..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "" @@ -125338,6 +127536,11 @@ msgstr "" msgid "You finish filling up %s." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "" @@ -125346,6 +127549,20 @@ msgstr "" msgid "You give your hair a trim." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "" + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "" + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "" @@ -125354,6 +127571,15 @@ msgstr "" msgid "You tilled every tile you could." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "" @@ -126583,6 +128809,10 @@ msgstr "lélegző" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "" +#: src/artifact.cpp +msgid "dead" +msgstr "" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "" @@ -127880,8 +130110,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Energia: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -129377,12 +131608,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "SÉRÜLT ADAT, A FOLYTATÁSHOZ NYOMJON EGY GOMBOT..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"A gép a szemgolyódba fecskendezi \n" -"a csontpüré és az LSD oldatát." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -130474,6 +132702,62 @@ msgstr "Lakomázol az édes mézből." msgid "You can't finish it all!" msgstr "Nem tudod mind elfogyasztani!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "Korlátlanul zabálsz, hogy így készülj fel a téli álomra." @@ -130974,7 +133258,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" @@ -131264,7 +133548,7 @@ msgstr "Hol van a kívánt nagytérkép?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "A nagytérképen ide teleportálsz: %d, %d, %d." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Te" @@ -136946,6 +139230,10 @@ msgstr "" msgid "Crash game (test crash handling)" msgstr "" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "" @@ -137291,22 +139579,25 @@ msgid "Underground" msgstr "Föld alatt" #: src/game.cpp -msgid "Weather:" -msgstr "Időjárás:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "Hőmérséklet:" +msgid "Weather :" +msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Hold %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "Fény:" +#: src/game.cpp +msgid "Deaf!" +msgstr "Süket!" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -137612,6 +139903,11 @@ msgstr "" msgid "Attach bag" msgstr "" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "" @@ -137686,6 +139982,11 @@ msgstr "" msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "" @@ -138467,63 +140768,6 @@ msgstr "" msgid "You're not wielding anything." msgstr "" -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "" - -#: src/game.cpp -msgid "Unload what?" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "" - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "" - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -140000,10 +142244,6 @@ msgstr "Igen." msgid "Yes, and save game before sleeping." msgstr "Igen, és alvás előtt készüljön mentés." -#: src/handle_action.cpp -msgid "No." -msgstr "Nem." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "Ezeket talán nem ártana alvás előtt kikapcsolni." @@ -140085,6 +142325,26 @@ msgstr "" "Vetőmag elültetése a közeli farm mező zónáiba. A mezőt az adott növény " "vetőmagjára kell állítani, és a vetőmagoknak a leltárodban kell lenniük." +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "Kell egy ásószerszám." @@ -140839,9 +143099,22 @@ msgstr "" msgid "The seed blossoms into a flower-looking fungus." msgstr "" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." msgstr "" #: src/iexamine.cpp @@ -140858,6 +143131,11 @@ msgstr "" msgid "Use which fertilizer?" msgstr "" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "" @@ -142696,6 +144974,10 @@ msgstr "" msgid "Minimum strength required modifier: " msgstr "" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "Használja: " @@ -142704,6 +144986,10 @@ msgstr "Használja: " msgid "Location: " msgstr "Hely: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "Fedi: " @@ -143599,6 +145885,11 @@ msgstr "nem lehet töltényhüvely zsákja" msgid "must be unloaded before installing this mod" msgstr "ki kell tárazni mielőtt ezt a modot feltennéd" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -146241,12 +148532,7 @@ msgid "No music on device" msgstr "" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" +msgid "View recipes on E-ink screen" msgstr "" #: src/iuse.cpp @@ -146316,12 +148602,7 @@ msgid "You turned on music on your %s." msgstr "" #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." +msgid "List recipes:" msgstr "" #: src/iuse.cpp @@ -146378,10 +148659,6 @@ msgstr "" msgid "No photos in memory" msgstr "" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "" - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "" @@ -146414,6 +148691,10 @@ msgstr "" msgid "This photo is better than the previous one." msgstr "" +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -147680,16 +149961,6 @@ msgstr "Nem látsz eleget ehhez!" msgid "Your tool does not have enough charges to do that." msgstr "A szerszámodban nincsen ehhez elég töltet." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "Mit javítasz meg?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "" -"Nincsen olyan tárgy nálad, amit a(z) %s segítségével lehet megjavítani." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -147975,12 +150246,6 @@ msgstr "Már egy jobb verzió van beépítve." msgid "Remove which modification?" msgstr "Melyik módosítást szeretnéd eltávolítani?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Eltávolítod a %1$st innen: %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "Azt nem módosították." @@ -149521,6 +151786,10 @@ msgstr "Szétverhető. " msgid "Diggable. " msgstr "Felásható. " +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "Durva. " @@ -151606,6 +153875,21 @@ msgstr "" msgid "This mod requires Lua support" msgstr "" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -152231,11 +154515,6 @@ msgstr "" msgid " resist the %s as it tries to drag them!" msgstr "" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "" @@ -153286,10 +155565,42 @@ msgstr "Súlyosan sérült." msgid "It is nearly dead!" msgstr "" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "Ez egy %s. %s" +msgid "This is a %s. %s %s" +msgstr "" #: src/monster.cpp #, c-format @@ -154100,12 +156411,10 @@ msgstr "pont" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Váltáshoz nyomd le a(z) %s gombot)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Sorrend:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -154704,14 +157013,10 @@ msgstr "" msgid "Wielding a %s" msgstr "" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Rajta: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "Kezében: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "" @@ -155332,6 +157637,10 @@ msgstr "" msgid " If you are interested, I have another job for you." msgstr "" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Most kértél tőlem cuccot, majd később." @@ -155719,17 +158028,17 @@ msgstr "" msgid "%s ( cost $%d )" msgstr "" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (ára: $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "" @@ -155907,11 +158216,11 @@ msgid "You can bash obstacles." msgstr "" #: src/npctalk.cpp -msgid "Sleep when you feel tired." +msgid "Stay awake." msgstr "" #: src/npctalk.cpp -msgid "Stay awake." +msgid "Sleep when you feel tired." msgstr "" #: src/npctalk.cpp @@ -155931,11 +158240,11 @@ msgid "Smash zombie corpses." msgstr "Pépesítsd a zombi hullákat" #: src/npctalk.cpp -msgid "Close the doors." +msgid "Leave doors open." msgstr "" #: src/npctalk.cpp -msgid "Leave doors open." +msgid "Close the doors." msgstr "" #: src/npctalk.cpp @@ -156012,7 +158321,7 @@ msgstr "" msgid "%s has abandoned the camp." msgstr "" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "" @@ -156081,6 +158390,23 @@ msgstr "%1$s ezt adja neked: %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "" @@ -156233,6 +158559,16 @@ msgstr "" msgid "%s gives you a decent shave..." msgstr "" +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -158357,12 +160693,12 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" msgstr "" #: src/output.cpp @@ -158698,6 +161034,10 @@ msgstr "" msgid "Load or unload a vehicle" msgstr "" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -158860,6 +161200,11 @@ msgstr "" msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "" + #: src/player.cpp msgid "your" msgstr "tiéd" @@ -159166,7 +161511,8 @@ msgstr "" #: src/player.cpp #, c-format -msgid "Power: %d/%d" +msgid "" +"Bionic Power: %d/%d" msgstr "" #: src/player.cpp @@ -159253,6 +161599,14 @@ msgstr "" msgid "The sound of your voice is almost completely muffled!" msgstr "" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "" @@ -159917,10 +162271,6 @@ msgstr "" msgid "This place is dangerous, you shouldn't be here." msgstr "" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "" - #: src/player.cpp msgid "That's not true, is it?" msgstr "" @@ -160214,11 +162564,6 @@ msgstr "A látóközpontoddal valami gond lehet..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "A radiológiai érzékelőid felől abnormális értékeket észlelsz." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "A sugárzásmérő badge-ed hirtelen megváltozik erről: %1$s erre: %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "" @@ -160367,6 +162712,11 @@ msgstr "" msgid "You fall over!" msgstr "" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "A sugárzásmérő badge-ed hirtelen megváltozik erről: %1$s erre: %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -160842,6 +163192,53 @@ msgstr "" msgid " can't place items here!" msgstr "" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "" + +#: src/player.cpp +msgid "Unload what?" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "" + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "" + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -160856,6 +163253,12 @@ msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "" msgstr[1] "" +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Eltávolítod a %1$st innen: %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -161307,6 +163710,10 @@ msgstr "" msgid "You resume your task." msgstr "" +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "" @@ -161345,6 +163752,14 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "" +#: src/player.cpp +msgid "Wielding: " +msgstr "Kezében: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -161551,8 +163966,8 @@ msgstr "ORMÓTLANSÁG ÉS MELEGSÉG" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "Bionikus energia: %1$d" +msgid "Bionic Power: %1$d" +msgstr "" #: src/player_display.cpp msgid "EFFECTS" @@ -162093,15 +164508,6 @@ msgstr "Asztmás rohamtól halt meg." msgid "You wheeze and gasp for air." msgstr "Sípolva, fuldokolva próbálsz levegőt venni." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" -"Csontjaid mintha gumiból lennének, ahogyan megolvadnak és újra megkötnek." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Úgy érzed, mintha a csontjaid elporladnának." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "Egy kicsit fáj a fejed." @@ -162874,15 +165280,6 @@ msgstr "Nagyon fázik!%s" msgid "Freezing!%s" msgstr "Fagyos!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "Süket!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Hang %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Kiszáradt" @@ -164162,6 +166559,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Gyorsulás: %3d%s/kör" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -164169,21 +166579,22 @@ msgstr "Tömeg: %5.0f%s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Teherbírás: %s/%s%s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "Állapot:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Legsérültebb (javíthatatlan):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Legsérültebb:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Legsérültebb (javíthatatlan):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Meg kell szerelni:" @@ -164213,6 +166624,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "Név:" @@ -164423,9 +166839,9 @@ msgid "Could not find base part in requirements for %s." msgstr "A(z) %s feltételei között nem található meg az alap alkatrész." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "Merre világítson a fényszóró? Folytatáshoz nyomj egy szóközt." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "" #: src/veh_interact.cpp #, c-format @@ -164512,10 +166928,10 @@ msgstr "Megszereled a(z) %1$s %2$st." msgid "Lost connection with the vehicle due to distance!" msgstr "A távolság miatt a járművel megszakadt a kapcsolat!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "BANG!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -164730,13 +167146,13 @@ msgstr "" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "A(z) %s nem rendelkezik elég kerékkel ahhoz, hogy megmozduljon!" +msgid "The %s is too leaky!" +msgstr "A(z) %s túlságosan ereszt!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "A(z) %s túlságosan ereszt!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "A(z) %s nem rendelkezik elég kerékkel ahhoz, hogy megmozduljon!" #: src/vehicle_move.cpp #, c-format @@ -164960,6 +167376,14 @@ msgstr "" msgid "headlights" msgstr "fényszóró" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "villogó" @@ -165218,18 +167642,23 @@ msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "A(z) %s hosszú csipogó hangot ad ki." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "A(z) %s egyetlen kattanásnyi hangot ad ki." +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "A(z) %s gyorsan kattogó hangot ad ki." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -165238,8 +167667,8 @@ msgstr "A(z) %s köhögve leáll." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "A(z) %s rettenetes csattogó hangot ad ki." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -165259,6 +167688,11 @@ msgstr "TŰŰ!" msgid "You honk the horn, but nothing happens." msgstr "Rátenyerelsz a dudára, de semmi sem történik." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "a hangszórókból egy egyszerű nóta szól." diff --git a/lang/po/ja.po b/lang/po/ja.po index 4d4d9e2dd338a..15fd3925e4258 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -13,15 +13,15 @@ # TEATIME , 2018 # zojirushi, 2018 # YueKaburagi, 2018 -# Pigmentblue15, 2018 +# Pigmentblue15, 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Pigmentblue15, 2018\n" +"Last-Translator: Pigmentblue15, 2019\n" "Language-Team: Japanese (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4784,7 +4784,21 @@ msgstr[0] "放浪者の服" msgid "" "A makeshift outfit made from pre-cataclysm clothing designed for long " "travels. It has a lot of storage space." -msgstr "長期間の旅行用として大変動の前から作られていた簡単なつくりの服です。収納スペースがたくさん付いています。" +msgstr "大変動前に市販されていた衣類を改造して作った、長旅に適した簡易的な装備です。たくさんの収納スペースが確保できます。" + +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "放浪者の軽装" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"大変動前に市販されていた衣類を改造して作った、長旅に適した簡易的な軽装備です。通常の放浪者の服に比べて収納スペースと防御力が減少しています。" #: lang/json/ARMOR_from_json.py msgid "plated leather armor" @@ -5635,7 +5649,7 @@ msgid "" "A simple hazardous materials handling suit. Though somewhat restrictive and" " fragile, wearing it will provide excellent protection against ambient " "radiation." -msgstr "シンプルな危険物取扱用防護服です。しかしながら若干動きづらく破れやすいです、着用すると放射能汚染環境で素晴らしい防護性能を発揮します。" +msgstr "シンプルな危険物取扱用防護服です。若干動きづらく破れやすいですが、着用すると放射能汚染環境で素晴らしい防護性能を発揮します。" #: lang/json/ARMOR_from_json.py msgid "cloak" @@ -5748,6 +5762,18 @@ msgid "" "from rain." msgstr "プラスチック製のフードとポケットが付いたコートです。雨を防ぎ、酸性雨に対して多少の耐性があります。" +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "腸製衣" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "北極圏の先住民族が着用する、洗浄した動物の腸を縫い合わせて作ったコートです。軽量性と防水性に優れています。" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -6483,7 +6509,7 @@ 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 "" -"アルミでコーティングされた厚紙のフレームに、紫外線と赤外線をカットするレンズがはめ込まれたサングラスです。日食などの際に、太陽のような非常に強く有害な光を安全に観察できます。" +"アルミでコーティングされた段ボールのフレームに、紫外線と赤外線をカットするレンズがはめ込まれたサングラスです。日食などの際に、太陽のような非常に強く有害な光を安全に観察できます。" #: lang/json/ARMOR_from_json.py msgid "pair of bifocal glasses" @@ -16238,31 +16264,31 @@ msgid "Spice" msgstr "香辛料" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" +msgid "Riesling" +msgid_plural "Riesling" msgstr[0] "ワイン(リースリング)" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "世界で最も高貴な葡萄から作られた発泡性の白ワインです。" #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" msgstr[0] "ワイン(シャルドネ)" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "米国で最も人気のあるワインです。評判通りのおいしさ。" #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" msgstr[0] "ワイン(カベルネ・ソービニヨン)" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -16288,8 +16314,9 @@ msgstr[0] "ウイスキー" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "南部で育まれた南部の為の飲み物です。" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "南部の土地で南部人によって造られた、南部の名将のための蒸留酒です!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -16298,8 +16325,10 @@ msgstr[0] "ウォッカ" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "米国では貴方がウォッカを飲む。ソビエトロシアではウォッカが貴方を飲む!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "アルコールと水分以外の何物でもない飲み物です。アメリカでは人間がウォッカを造りますが、ソビエトロシアではウォッカが人間を造ります。" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -16308,8 +16337,10 @@ msgstr[0] "ジン" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "微かにニワトコの実の香りがしますが、ほぼビールのような飲み物です。" +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "ジュニパーベリーの風味を付けたアルコール飲料です。ほのかに果実の香りがしますが、ほぼ酒の味しかしません。" #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -16318,8 +16349,10 @@ msgstr[0] "ラム酒" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "飲めば海賊気分が味わえるかもしれません。" +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "糖蜜を発酵させた蒸留酒です。飲めば海賊気分を味わえます、多分。" #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -16328,8 +16361,10 @@ msgstr[0] "テキーラ" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "イモムシは飲んじゃダメ!おっと、これは虫が入っていないタイプですね。" +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +msgstr "棘付きの葉をもつ多肉植物から作られた蒸留酒です。瓶の中の虫は食べないでください!おや、これは虫が入っていないタイプでした。" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -16415,8 +16450,10 @@ msgstr[0] "ロングアイランド・アイスティー" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." -msgstr "どういうわけかそれらのどの味も信じられないほど強い風味が感じられるリキュールブレンドです。" +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." +msgstr "" +"どういうわけか、どの材料のものでもない非常に強い風味が感じられるカクテルです。紅茶は入っていませんが、コーラを使って紅茶のような色味を出しています。" #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -16424,8 +16461,10 @@ msgstr "スクリュー・ドライバー" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "アルコール中毒の機械工がこっそり飲む為のカクテルです。" +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "オレンジジュースとウォッカを使ったカクテルです。飲んだくれの整備士がこっそり酔うために作ったと言われています。" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -16455,8 +16494,9 @@ msgstr[0] "ビール" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." -msgstr "キンキンに冷えたグラスに、冷やしてからグラスに注ぎ、ライムを添えて飲むのが一番ですが...そこまで幸運ではありませんね。" +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." +msgstr "ホップの風味が香る穀物アルコール飲料です。冷やしてからグラスに注ぎ、ライムを添えて飲むのが一番ですが...そこまで幸運ではありませんね。" #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -16511,9 +16551,11 @@ msgstr[0] "密造酒" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." -msgstr "最も強く、最も純粋な、古き良き時代の密造酒です。大変動の諸々を忘れさせてくれる、あるいは過去を蘇らせてくれること請け合いです。" +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." +msgstr "" +"最も強く、最も純粋な、トウモロコシと糖を蒸留して造った古き良き時代の密造酒です。大災厄の諸々を忘れさせてくれる、あるいは過去を蘇らせてくれること請け合いです。" #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -16523,9 +16565,9 @@ msgstr[0] "ビール(ヨーロピアンピルスナー)" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." -msgstr "ヨーロッパから輸入したピルスナーです。冷やしてからグラスに注いで飲むのが一番ですが...そこまで幸運ではありませんね。" +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." +msgstr "ヨーロッパから輸入されたラガービールです。冷やしてからグラスに注いで飲むのが一番ですが...そこまで幸運ではありませんね。" #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -16569,9 +16611,9 @@ msgstr[0] "ビール(ベルジャンエール)" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." -msgstr "ベルギーの修道士によって醸造されたエールです。風味豊かな味がします。是非ともゴブレットに注ぎたくなりますね。" +msgstr "ベルギーの修道士によって醸造された、風味豊かで濃厚なビールです。ゴブレットに注いで飲むのが一番です。" #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -16637,10 +16679,9 @@ msgstr "カリモーチョ" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." -msgstr "" -"思ったより悪くないと言えなくもない、そんな味です。いくつかの国の若者たちはこれを好んで飲むそうですが、なるほど、その多くは貧乏人だそうです。" +"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 "同量のワインとコーラを使ったカクテルです。思ったより悪くない味で、国によっては貧困層や若者、あるいは貧困層の若者が好んで飲んでいます。" #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -17028,8 +17069,10 @@ msgstr[0] "屑肉" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "あまり美味しくありませんが、切羽詰まった時は食べるしかありません。" +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "食用可能な屑肉です。あまり美味しくありませんが、切羽詰まった時は食べるしかありません。" #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -17038,8 +17081,13 @@ msgstr[0] "廃棄部位" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "うげぇ。" +msgid "" +"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." +msgstr "" +"うげぇ。垢、排泄物、結合組織や細かい毛、爪などがごちゃ混ぜになった塊です。食べるなんて考えたくもありませんが、放っておくと害虫が寄ってくる原因になるかもしれません。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -17047,8 +17095,10 @@ msgstr "肉(調理済)" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "調理を施した新鮮な肉です。栄養価が非常に豊富です。" +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "調理済みの新鮮な肉塊です。食べ応えがあり栄養価も高いですが、味付けがされておらず淡白です。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -17062,9 +17112,10 @@ msgstr "臓物" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." -msgstr "生の内臓類です。あまり食欲は湧きませんが、人体に不可欠な栄養が豊富に含まれています。" +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "未調理の内臓類です。必須栄養素が詰まっていますが、しっかりと調理をせずに食べるのは一般的に悪食と見なされます。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -17074,8 +17125,10 @@ msgstr[0] "臓物(調理済)" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." -msgstr "新鮮な内臓を調理したものです。食欲はそそりませんが、必須栄養が豊富に含まれています。" +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "調理済みの新鮮な内臓類です。必須栄養素が詰まっていますが、しっかりと調理をせずに食べるのは一般的に悪食と見なされます。" #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -17085,9 +17138,10 @@ msgstr[0] "臓物(酢漬け)" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." -msgstr "調理済みの内臓を塩水に漬けて保存した物です。必須栄養素が詰まっており、臭いの割には良い味になっています。" +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." +msgstr "塩水に浸かった内蔵類です。まるで実験室の標本ですが、意外と美味しく、必須栄養素も豊富です。" #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -17097,9 +17151,9 @@ msgstr[0] "缶詰(臓物)" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." -msgstr "新鮮な内臓を調理して缶に詰めた物です。食欲はそそりませんが、必須栄養素が豊富に含まれています。" +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." +msgstr "新鮮な内臓類を調理して缶に詰めた物です。食欲はそそりませんが、必須栄養素が豊富に含まれています。" #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -17159,8 +17213,10 @@ msgstr "肉(燻製)" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "長期保存の為にしっかりとスモークした肉です。" +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "長期保存のためにしっかりと燻製した肉です。更に燻製して完全に脱水することが可能です。" #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -17169,8 +17225,10 @@ msgstr[0] "魚(燻製)" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "長期保存の為にしっかりとスモークした魚です。" +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "長期保存のためにしっかりとスモークした魚です。更に燻製して完全に脱水することが可能です。" #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -17179,27 +17237,36 @@ msgstr "人肉(燻製)" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." -msgstr "十分にスモークされた人肉です。長期保存しても美味しく頂けます。こんな代物を食べる趣味があるのならですが..." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." +msgstr "十分に燻製された人肉です。長期保存しても美味しくいただけます。こんな代物を食べる趣味があるのならですが。" #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "肺" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "肺" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "動物の肺です。全体がスポンジ状になっています。" +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"動物から取り出した、ピンク色をしたスポンジ状の肺です。非常に早く腐敗が進みます。適切に調理すれば絶妙な味の料理になりますが、下手な調理では噛み応えのある味のしない肉塊にしかなりません。" #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "肺(調理済)" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "肺(調理済)" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." -msgstr "美味しそうには見えませんが、調理によって寄生虫は全て死んでいます。" +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." +msgstr "適切な調理が施された、何の味もしない灰色の臓器です。調理前より不味そうに見えますが、寄生虫は完全に死滅しています。" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -17207,8 +17274,12 @@ msgstr "肝臓" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "動物の肝臓です。" +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"動物の肝臓です。食感を嫌う人も多いですが、動物の内臓の中でも栄養が豊富な部位の一つです。ソーセージの材料にうってつけですが、ただ火を通しただけではあまり食欲をそそりません。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -17216,8 +17287,11 @@ msgstr "肝臓(調理済)" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "ビタミンBがぎっしり詰まっています!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "ビタミンBがたっぷり詰まっています!食感さえ気に入れば問題なく食べられそうですが、これは最も単純な調理法です。" #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -17236,8 +17310,10 @@ msgstr[0] "脳(調理済)" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "大好きなゾンビ達の真似をしてみましょう!" +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 "これで大好きなゾンビを真似ることができますね!脳を食べるというのは非常に挑戦的な行為ですが、この調理法が最良とは言えません。" #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -17245,8 +17321,10 @@ msgstr "腎臓" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "動物の腎臓です。" +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "動物の腎臓です。台所で強い尿の香りを漂わせる嗜好でもない限り、調理してから食べるべきです。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -17263,8 +17341,10 @@ msgstr "シビレ" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "動物の胸腺や膵臓のことをシビレと呼びます。" +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "動物の胸腺や膵臓のことをシビレと呼びます。適切に調理すれば絶妙な味の料理ができあがります。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -17340,9 +17420,9 @@ msgstr "汚染骨" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." -msgstr "常ならざる生物から取り出した、腐った脆い骨です。炭などの材料になります。食べる事は出来ますが、被毒しそうです。" +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." +msgstr "常ならざる生物から取り出した、腐った脆い骨です。炭などの材料になります。食べることも不可能ではありませんが、有毒です。" #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -17642,8 +17722,12 @@ msgstr[0] "コーヒー" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "コーヒーです。文明崩壊前の世界では、朝に飲むという慣習がありました。" +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" +"コーヒー豆から種子を取り出し焙煎、粉砕、抽出という複雑な工程を経て作られる、崩壊前の世界では朝に飲む慣習があった飲み物です。ライバルとされる紅茶よりもカフェイン量が豊富です。" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -17673,9 +17757,9 @@ msgstr[0] "コンデンスミルク" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." -msgstr "子牛のための飲み物ですが、大人の人間にも適しています。甘くて味が濃いので、かければどんな食べ物も甘くなります。" +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." +msgstr "消費期限を大幅に延ばすためにある程度脱水し、甘味料を加えた乳製品です。" #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -17734,8 +17818,10 @@ msgstr "エナジードリンク" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "夜遅くまで仕事をしている人達に人気の飲み物です。" +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "多量のカフェインが入ったソフトドリンクです。夜遅くまで仕事をしなければならない人々に人気です。" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -17845,8 +17931,9 @@ msgstr "コーヒー牛乳" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "多くの国で愛される朝の飲み物です。" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "コーヒーシロップと牛乳を混ぜた飲み物です。1993年にロードアイランド州の州飲料に制定されました。" #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -17854,9 +17941,8 @@ msgstr "ミルクティー" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "多くの国で愛される飲み物です。普通は朝に飲む物です。" +msgid "Hot tea with cold milk." +msgstr "温かい紅茶と冷たい牛乳を混ぜた飲み物です。" #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -17952,8 +18038,10 @@ msgstr "紅茶" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "紅茶はいかなる場所でも紳士の飲み物です。" +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "チャノキから採れる紅茶葉に湯を注いで作る、世界中にいる紳士のための飲み物です。" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -18001,8 +18089,8 @@ msgstr "トマトソース" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "トマトソースです、もぐもぐ。" +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "調理したトマトに必要最低限の味付けを施したソースです。" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -18021,8 +18109,10 @@ msgstr[0] "マヨネーズ" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "古き良きマヨネーズはサンドイッチに最適です。" +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "卵、油、塩を混ぜて作った、サンドイッチに塗る伝統的な調味料です。" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -18030,8 +18120,8 @@ msgstr "ケチャップ" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "古き良きケチャップはホットドッグに最適です。" +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "トマト、塩、酢を混ぜて作った粘性の高いペーストです。" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -18040,8 +18130,10 @@ msgstr[0] "マスタード" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "古き良きマスタードはハンバーガーに最適です。" +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "カラシ(アブラナ科もしくはシロガラシ科の植物)の種子と酢、塩、香辛料を混ぜて作る調味料です。" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -18083,8 +18175,10 @@ msgstr[0] "食用酢" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "とても酸っぱいホワイトビネガーです。" +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "ものすごく酸っぱいホワイトビネガーです。酒を長期間発酵しすぎると酢になります。" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -18103,8 +18197,10 @@ msgstr[0] "糖蜜" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "非常に甘いタール状のシロップです。後味に少し苦味を含んでいます。" +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 "サトウキビやサトウダイコンのエキスを繰り返し煮て作る、非常に甘く粘り気のあるシロップです。後味に若干の苦みがあります。" #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -19224,8 +19320,10 @@ msgstr[0] "メープルシロップ" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "甘くて美味しいバーモント州原産のメープルシロップです。" +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "カエデの樹液を煮ると、甘くておいしいメープルシロップが出来上がります。" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -19488,13 +19586,13 @@ msgstr "" "ドン!500gの肉、500gの炭水化物、合わせて1kgだ!アツアツで湯気が立ち昇っています。味も量も文句無しですが、非常に速く腐敗してしまいます。" #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "フライドチキン" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "少量のフライドチキンです。これは美味しそうです。" +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "鶏肉を油に浸して揚げた、脂っこくて美味しい料理です。" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -19641,8 +19739,8 @@ msgstr "生ソーセージ" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "燻製の準備が終わった、ずっしりとした生のソーセージです。" +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "燻製や調理の準備が整った、ずっしりと重い生のソーセージです。" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -19653,6 +19751,15 @@ msgstr "ソーセージ" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "長期間の保存の為に燻製・保存処理された、ずっしりとしたソーセージです。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "ソーセージ(調理済)" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "調理済みのずっしりと重いソーセージです。" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "マンヴォルスト" @@ -19674,6 +19781,18 @@ msgstr[0] "スイートソーセージ" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "甘くて美味しいソーセージです。新鮮な内に食べましょう。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "ブラートヴォルスト" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "細かく刻んだ肉で作った、ドイツ風ソーセージの一種です。新鮮なものを熱いうちに召し上がれ。" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "ローヤルビーフ" @@ -19827,8 +19946,10 @@ msgstr "ランチミート" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "美味しそうなランチミートです。冷たくても食べられます。" +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "加工肉をサンドイッチに挟みやすいように薄切りの状態で保存した料理です。冷たくても美味しく食べられます。" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -19837,9 +19958,10 @@ msgstr "ボローニャソーセージ" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." -msgstr "薄切りにしたランチミートです。オスカーマイヤー社の製品ではありません。冷たくても食べられます。" +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." +msgstr "細かいひき肉を加工して作ったソーセージのスライスです。オスカー・マイヤー社のものではないようです。冷たくても美味しく食べられます。" #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -20305,9 +20427,10 @@ msgstr "人肉ボローニャソーセージ" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." -msgstr "薄切りにした人肉で作ったランチミートです。当然ですが、オスカーマイヤー社の製品ではありません。冷たくても食べられます。" +"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 "" +"加工した人肉のスライスです。材料の生前の名前はオスカーでしょうか。あなたが冷血な人間であるように、この食料も冷たい状態で美味しく食べられます。" #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -20517,8 +20640,33 @@ msgstr "生人肉ソーセージ" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "燻製の準備が終わった「ロングポーク」ソーセージです。" +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "燻製や調理の準備が整った、生の「ロングポーク」ソーセージです。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "マンヴォルスト(調理済)" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "調理済みの「ロングポーク」ソーセージです。人間らしく美味しい匂いがします。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "マンヴォルスト" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "細かく刻んだ人肉で作った、ドイツ風ソーセージの一種です。新鮮なものを熱いうちに召し上がれ。材料はドイツ人の肉でなくてもかまいません。" #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -21420,6 +21568,22 @@ msgid "" msgstr "" "感染症の悪化を抑制する、薬効範囲の広い抗生物質です。感染症を完全に抑制できるほど強力ではありませんが、身体の抵抗力が向上します。1回の服用で効果が12時間続きます。" +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "胃薬" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "胃薬を摂取しました。" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "胸焼けを和らげ吐き気を鎮める、ドロッとしたピンク色のシロップです。蓋が計量カップを兼ねています。" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -22782,7 +22946,7 @@ msgstr "人間から精製された粉末状のタンパク質です!非常に #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgstr "人肉セーキ" +msgstr "人肉シェイク" #. ~ Description for soylent green shake #: lang/json/COMESTIBLE_from_json.py @@ -22793,7 +22957,7 @@ msgstr "人肉パウダーと果物で作られた、栄養価が高くて美味 #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgstr "強化人肉セーキ" +msgstr "強化人肉シェイク" #. ~ Description for fortified soylent green shake #: lang/json/COMESTIBLE_from_json.py @@ -22827,7 +22991,7 @@ msgstr "粉末状のタンパク質です。非常に栄養価が高いものの #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" -msgstr "プロテインセーキ" +msgstr "プロテインシェイク" #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py @@ -22838,7 +23002,7 @@ msgstr "プロテインパウダーと果物で作られた、栄養価が高く #: lang/json/COMESTIBLE_from_json.py msgid "fortified protein shake" -msgstr "強化プロテインセーキ" +msgstr "強化プロテインシェイク" #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py @@ -22887,61 +23051,61 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "非常に酸っぱい果物です。食べたいと心から望むのなら食べられますよ。" #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" msgstr[0] "ブルーベリー" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "青い色をしていますが、それは悲しさを表現している訳ではありませんよ。" #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" msgstr[0] "イチゴ" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "美味しく瑞々しいイチゴです。野原に自生していることがあります。" #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" msgstr[0] "クランベリー" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "酸味のある赤いベリーです。健康的な果物です。" #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" msgstr[0] "ラズベリー" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "甘くて赤いベリーです。" #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" msgstr[0] "ハックルベリー" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "しばしばブルーベリーと混同される果実です。" #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" msgstr[0] "マルベリー" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -22949,21 +23113,21 @@ msgid "" msgstr "赤いマルベリーです。世界中に多様な品種が存在しますが、これはアメリカ東部特有の品種のようです。" #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" msgstr[0] "エルダーベリー" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "エルダーベリーは生で食べると毒がありますが、調理すれば非常に美味しく食べることができます。" #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" msgstr[0] "ローズヒップ" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "受粉したバラに実る果実です。" @@ -22998,11 +23162,11 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "独特の爽やかな香りがあって、酸っぱくてほんのり甘い、柑橘系の果物です。" #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" +msgid "handful of cherries" +msgid_plural "handful of cherries" msgstr[0] "サクランボ" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "木に生える赤くて甘い果物です。" @@ -23018,11 +23182,11 @@ msgid "" msgstr "紫色の大きなスモモです。健康に良く、消化を助けます。" #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" +msgid "handful of grapes" +msgid_plural "handful of grapes" msgstr[0] "ブドウ" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "瑞々しいブドウの房です。" @@ -23074,11 +23238,11 @@ msgid "A large and very sweet fruit." msgstr "大きくて非常に甘い果物です。" #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" msgstr[0] "ブラックベリー" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "ラズベリーより色の濃いベリーです。従兄弟のようなものです。" @@ -23121,10 +23285,11 @@ msgid "" msgstr "薄い毛で覆われた茶色の大きなベリーです。美味しい果肉は緑色をしています。" #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "アンズ" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "アンズ" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "滑らかな肌触りのモモに似た果物です。" @@ -23178,8 +23343,8 @@ msgstr "キャベツ" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "パリッとした歯応えのキャベツです。" +msgid "Crisp white cabbage." +msgstr "実が引き締まった白キャベツです。" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -23263,8 +23428,8 @@ msgstr "キュウリ" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "ウリ科の野菜で、美味しくはありませんがとても瑞々しい野菜です。" +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "風味はよくありませんが水分が豊富な、ウリ科の野菜です。" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -23678,6 +23843,10 @@ msgstr[0] "種(ブラックベリー)" msgid "Some blackberry seeds." msgstr "ブラックベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "ブラックベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -23688,6 +23857,10 @@ msgstr[0] "種(ブルーベリー)" msgid "Some blueberry seeds." msgstr "ブルーベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "ブルーベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -23698,6 +23871,10 @@ msgstr[0] "種(クランベリー)" msgid "Some cranberry seeds." msgstr "クランベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "クランベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -23708,6 +23885,10 @@ msgstr[0] "種(ハックルベリー)" msgid "Some huckleberry seeds." msgstr "ハックルベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "ハックルベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -23718,6 +23899,10 @@ msgstr[0] "種(マルベリー)" msgid "Some mulberry seeds." msgstr "マルベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "マルベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -23728,6 +23913,10 @@ msgstr[0] "種(エルダーベリー)" msgid "Some elderberry seeds." msgstr "エルダーベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "エルダーベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -23738,6 +23927,10 @@ msgstr[0] "種(ラズベリー)" msgid "Some raspberry seeds." msgstr "ラズベリーの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "ラズベリー" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -23748,6 +23941,10 @@ msgstr[0] "種(イチゴ)" msgid "Some strawberry seeds." msgstr "イチゴの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "イチゴ" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -23758,6 +23955,10 @@ msgstr[0] "種(ブドウ)" msgid "Some grape seeds." msgstr "ブドウの種です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "ブドウ" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -23840,16 +24041,16 @@ msgstr "トマトの種です。" #: lang/json/COMESTIBLE_from_json.py msgid "cotton seeds" msgid_plural "cotton seeds" -msgstr[0] "種(綿花)" +msgstr[0] "種(綿)" #. ~ Description for cotton seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some cotton seeds. Can be processed to produce an edible oil." -msgstr "綿花の種です。食用の油を精製する事も出来ます。" +msgstr "綿の種です。食用油も生成できます。" #: lang/json/COMESTIBLE_from_json.py msgid "cotton" -msgstr "綿花" +msgstr "綿" #: lang/json/COMESTIBLE_from_json.py msgid "broccoli seeds" @@ -25167,6 +25368,15 @@ msgstr "スペシャルブラウニー" msgid "This is definitely not how grandma used to bake them." msgstr "おばあちゃんが焼いていたクッキーとは全く違う何かです。" +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "風味豊かなチョコレートブラウニーです。おばあちゃんが焼いてくれた味。" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "繊維屑" @@ -26012,12 +26222,12 @@ msgstr "公衆衛生総監の警告: 喫煙は肺がん、心臓病、肺気腫 #: lang/json/CONTAINER_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" -msgstr[0] "ダンボール箱" +msgstr[0] "段ボール箱" #. ~ Description for cardboard box #: lang/json/CONTAINER_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." -msgstr "小さなダンボール箱です。靴が一足入る程度の寸法です。" +msgstr "小さな段ボール箱です。靴が一足入る程度の寸法です。" #: lang/json/CONTAINER_from_json.py msgid "bucket" @@ -26520,6 +26730,18 @@ msgstr[0] "有害廃棄物用ドラム缶(200L)" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "有害物質を保管することを示す、黄色いドラム缶です。" +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "栽培用植木鉢" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "植物を栽培できる特殊な鉢です。植物を上手く育てればたくさんの収穫を得られます。" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -27984,7 +28206,7 @@ msgstr[0] "平板(セラミック)" msgid "" "A ceramic armor plate, specifically engineered for use in a bullet resistant" " vest." -msgstr "防弾ベストに挿入して使用されるセラミック製の防弾板です。" +msgstr "防弾ベストに挿入して使う、セラミック製の防弾板です。" #: lang/json/GENERIC_from_json.py msgid "ceramic plate" @@ -29010,6 +29232,30 @@ msgid "" msgstr "" "冷凍庫などによく搭載されている、冷媒が入った小さなタンクです。冷媒の気化を防ぐため密閉されており、互換性のあるバルブに接続してからでないと開封できません。" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "平板(硬鋼)" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "防弾ベストに挿入して使う、非常に厚い鋼製の防弾板です。" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "平板(鋼)" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "防弾ベストに挿入して使う、鋼製の防弾板です。" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -29932,9 +30178,8 @@ msgstr[0] "石入り靴下" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "石を入れた靴下は文明が崩壊した世界にぴったりです。文明崩壊以後の真の武器と言って良いでしょう。" +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "石をたっぷり詰めた靴下です。絶望的な状況で真価を発揮する武器です。" #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -29986,8 +30231,8 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to extend." msgstr "" -"モナドノック社製のPR-" -"24防犯警棒は世界中の法執行機関で使用される折り畳み式で軽量のサイドハンドルバトンです。PRとはパブリック・リレーションズの意であると噂されています。使用すると棒を伸長します。" +"モナドノック社製のPR-24防犯警棒は世界中の法執行機関で使用される折り畳み式で軽量のサイドハンドルバトンです。PRとは広報活動(Public " +"Relations)の略称であると噂されています。使用すると棒を伸長します。" #: lang/json/GENERIC_from_json.py msgid "PR-24 baton (extended)" @@ -30011,8 +30256,8 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to retract." msgstr "" -"モナドノック社製のPR-" -"24防犯警棒は世界中の法執行機関で使用される折り畳み式で軽量のサイドハンドルバトンです。PRとはパブリック・リレーションズの意であると噂されています。使用すると棒を短縮します。" +"モナドノック社製のPR-24防犯警棒は世界中の法執行機関で使用される折り畳み式で軽量のサイドハンドルバトンです。PRとは広報活動(Public " +"Relations)の略称であると噂されています。使用すると棒を短縮します。" #: lang/json/GENERIC_from_json.py msgid "copper tubing" @@ -31403,6 +31648,18 @@ msgid "" "without reducing its effectiveness." msgstr "照明効果を損なわないよう堅固な格子で覆われたヘッドライトです。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "強化広角ヘッドライト" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "照明効果を損なわないよう堅固な格子で覆われた、車両用広角ヘッドライトです。" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -31756,6 +32013,18 @@ msgstr[0] "投光照明" msgid "A large and heavy light designed to illuminate wide areas." msgstr "広範囲を照らすためにデザインされた、重く大きい照明機材です" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "投光照明" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "広い範囲を半円状に照らす、重く大きな照明機材です" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -31964,6 +32233,16 @@ msgstr[0] "ヘッドライト" msgid "A vehicle headlight to light up the way." msgstr "道路を照らす車両用ヘッドライトです。" +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "広角ヘッドライト" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "道路を照らす車両用広角ヘッドライトです。" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -32355,6 +32634,16 @@ msgstr[0] "本(武術/酔拳と貴方)" msgid "A complete guide to Zui Quan." msgstr "酔拳のコンプリートガイドブックです。" +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "本(学習/槍の道)" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "槍術のコンプリートガイドブックです。" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -34088,6 +34377,46 @@ msgstr[0] "壊れたウサギ型ロボット(新品)" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "壊れたウサギ型ロボットです。ぐったりと倒れています。" +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "船体(木)" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "水に浮く性質をもつ、木製の船体です。車両が十分な浮力を得るまで船体を取り付け、オールまたはモーターを取り付ければボートが動きます。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "船体(プラスチック)" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"ボートを水上に浮かせる硬質プラスチック製の板です。車両が十分な浮力を得るまで船体を取り付け、オールまたはモーターを取り付ければボートが動きます。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "船体(カーボン)" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"ボートを水上に浮かせるカーボンファイバー製の板です。車両が十分な浮力を得るまで船体を取り付け、オールまたはモーターを取り付ければボートが動きます。" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -34098,6 +34427,26 @@ msgstr[0] "櫂" msgid "Oars for a boat." msgstr "ボート用の櫂です。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "膨張式空気袋" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "空気で膨らむ膨張式ボートです。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "エアバッグ" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "膨張式エアバッグです。" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -34195,6 +34544,337 @@ msgid "belt ammo link" msgid_plural "belt ammo links" msgstr[0] "弾帯接続金具" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "栽培用植木鉢(トマト/成長)" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "トマトが収穫できる状態まで育ちました!" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "植物はぐんぐん育っています。" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "トマトが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "栽培用植木鉢(トマト/完熟)" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "トマトを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "栽培用植木鉢(小麦/成長)" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "小麦が収穫できる状態まで育ちました。" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "小麦はぐんぐん育っています。" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "小麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "栽培用植木鉢(小麦/完熟)" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "小麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "栽培用植木鉢(ホップ/成長)" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "植物が収穫できる状態まで育ちました!" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "ホップが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "栽培用植木鉢(ホップ/完熟)" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "ホップを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "栽培用植木鉢(蕎麦/成長)" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "蕎麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "栽培用植木鉢(蕎麦/完熟)" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "蕎麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "栽培用植木鉢(ブロッコリー/成長)" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "ブロッコリーが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "栽培用植木鉢(ブロッコリー/完熟)" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "ブロッコリーを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "栽培用植木鉢(燕麦/成長)" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "燕麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "栽培用植木鉢(燕麦/完熟)" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "燕麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "栽培用植木鉢(大麦/成長)" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "大麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "栽培用植木鉢(大麦/完熟)" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "大麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "栽培用植木鉢(ニンジン/成長)" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "ニンジンが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "栽培用植木鉢(ニンジン/完熟)" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "ニンジンを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "栽培用植木鉢(綿/成長)" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "綿が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "栽培用植木鉢(綿/完熟)" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "綿を収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "栽培用植木鉢(キャベツ/成長)" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "キャベツが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "栽培用植木鉢(キャベツ/完熟)" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "キャベツを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "栽培用植木鉢(キュウリ/成長)" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "キュウリが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "栽培用植木鉢(キュウリ/完熟)" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "キュウリを収穫する準備が整った植木鉢です。分解すると収穫できます。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "栽培用植木鉢(ニンニク/成長)" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "ニンニクが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "栽培用植木鉢(ニンニク/完熟)" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "ニンニクを収穫する準備が整った植木鉢です。分解すると収穫できます。" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -37419,6 +38099,15 @@ msgid "" "other gun mods." msgstr "銃器と弾薬を汎用的なものに置き換えます。警告:銃器を追加する他のMODと競合する可能性があります。" +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "追加 - 栽培用植木鉢" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "植木鉢に種を植えて育てられるようになります。" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "変更 - 手動CBM移植" @@ -39130,6 +39819,10 @@ msgid "" "clumsily moves around, but attacks with a large reserve of acid." msgstr "体は大きく膨張し、付着しているゼリー状に固まった酸のお陰でかろうじて形を保っています。動きはぎこちないですが、酸による攻撃は強烈です。" +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "腐食ゾンビは酸を吐き出しました!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "爬行ゾンビ" @@ -43487,11 +44180,18 @@ msgid "fedora" msgid_plural "fedoras" msgstr[0] "中折れ帽" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "傾ける" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "中折れ帽を傾けて挨拶しました。" +#, no-python-format +msgid "You tip your %s." +msgstr "%sを傾けて挨拶しました。" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -44788,6 +45488,11 @@ msgid "boulder anvil" msgid_plural "boulder anvils" msgstr[0] "金床(石)" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "発火装置(CBM)" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -46040,34 +46745,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "中に入れた炭に火をつけて使う、小さな金属製のタンクです。調理に使用することができます。" -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "化学実験セット" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"持ち運べる箱に収納された化学実験セットです。試験管やフラスコなどの各種ガラス容器、ゴムホース、金属線、ホットプレート、保護眼鏡などを含んでいます。いくつかの化学系レシピの製作に使えそうです。" - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "化学実験器具セット" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"基本的な化学実験器具のセットです。試験管やフラスコなどの各種ガラス容器、ゴムホース、保護眼鏡などを含んでいます。いくつかの化学系レシピの製作に使えますが、この道具の他に何らかの熱源が必要です。" - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -46293,7 +46970,7 @@ msgstr[0] "クラックパイプ" 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 "バルブが付いた硝子製のパイプです。薬物の摂取に使います。" +msgstr "バルブが付いたガラス製のパイプです。薬物の摂取に使います。" #: lang/json/TOOL_from_json.py msgid "talking doll" @@ -50760,6 +51437,152 @@ msgid "" "Some cars can be driven remotely." msgstr "本物の車のための遠隔制御装置です。車両制御装置を起動することができます。これを使って遠隔駆動できる車もあります。" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "化学実験セット" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"持ち運べる箱に収納された化学実験セットです。試験管やフラスコなどの各種ガラス容器、ゴムホース、金属線、ホットプレート、保護眼鏡などを含んでいます。いくつかの化学系レシピの製作に使えそうです。" + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "化学実験器具セット" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"基本的な化学実験器具のセットです。試験管やフラスコなどの各種ガラス容器、ゴムホース、保護眼鏡などを含んでいます。いくつかの化学系レシピの製作に使えますが、この道具の他に何らかの熱源が必要です。" + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "基礎検査分析キット" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" +"精密な化学検査に必要不可欠な道具類が入った、ずっしりと重い装備です。小型天秤ばかり、分光光度計、融点測定装置、pHメーター、何枚かの薄層クロマトグラフィーが揃っています。これらの道具を使えば、目当ての化学物質を生成できたかどうか、簡単に確認できます。" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "小型天秤ばかり" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "竿に取り付けられた鋼鉄製のおもりを使ってサンプルの質量をほぼ正確に測定する、簡素な作りの測定器です。" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "分光光度計" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "キュベットと呼ばれる特殊なチューブ内に液体サンプルを入れて吸光度を測定する、おなじみの分析化学ツールです。" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "キュベット" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "分光光度計用の精密に作られた正方形のプラスチック製チューブです。小さな箱に並べて収納されています。" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "pHメーター" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" +"2本の電極が接続された電圧計です。一方の電極を標準液(都合のいいことに付属しています)に、もう一方を検査対象に浸すことで、酸性度を測定します。" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "融点測定装置" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" +"要するに、金属製の筐体が取り付けられたホットプレートです。筐体には拡大レンズ、結晶化したサンプルを入れる毛細管挿入スロットが付いています。この装置を使えば結晶の融点を正確に測定でき、物質の種別や純度の特定に役立ちます。" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "光センサー" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "チップに取り付けられたフォトダイオードです。受けた光を電気エネルギーに変換して測定する機能を持っています。" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "プリズム" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "光を分散、屈折させる高品質のクリスタルガラス製プリズムです。" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "小型ガラス管" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "小さなガラス管です。これ以上説明する事はありませんよ?" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -51931,6 +52754,14 @@ msgid "inactive military robot" msgid_plural "inactive military robots" msgstr[0] "軍用ロボット(停止)" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "7.62mm銃器を内蔵した停止中の軍用ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -52661,40 +53492,6 @@ msgstr "補強したカートホイール(木)" msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "金属帯で強化した自作の木製カートホイールです。" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "膨張式空気袋" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "空気で膨らむ膨張式ボートです。" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "エアバッグ" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "膨張式エアバッグです。" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "ボート板" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"ボートを水上に浮かせる板です。車両をボートに改造するにはこの部品を車輪の代わりに取り付けます。さらにオールやモーターを組み込むことで動かせるようになります。" - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "ゼラチン履帯" @@ -52896,6 +53693,10 @@ msgstr "車両に関する作業を中断しますか?" msgid "Stop training?" msgstr "訓練を中断しますか?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "交流を中断しますか?" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr " 応急手当を中断しますか?" @@ -52952,6 +53753,14 @@ msgstr "農地の耕耘を中断しますか?" msgid "Stop planting seeds?" msgstr "種まきを中断しますか?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "収穫を中断しますか?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "施肥を中断しますか?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "所持品の整理を中断しますか?" @@ -53056,10 +53865,18 @@ msgstr "顔剃りを中断しますか?" msgid "Stop cutting your hair?" msgstr "散髪を中断しますか?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "ペットとの触れ合いを中断しますか?" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "睡眠を中断しますか?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "抜き取りを中断しますか?" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".70口径ニトロ・エクスプレス弾" @@ -55960,6 +56777,17 @@ msgstr "訓練" msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "NPCにプレイヤーを訓練してもらった時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "交流" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "NPCと交流した時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "情報" @@ -57291,21 +58119,6 @@ msgstr "息切れしています。" msgid "The ceiling collapses on you!" msgstr "天井が崩れてきました!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "幹細胞治療" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "体の内側で、治療のための奇妙な動きを感じます。" - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "骨成分とエナメル質を混合した液体が眼球に注射されました。" - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "抗けいれん薬摂取" @@ -57859,6 +58672,15 @@ msgstr "万能薬" msgid "You feel incredible! You could take on the world!" msgstr "素晴らしい気分です!今なら何でもできそうです!" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "胃薬" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "胃薬が作用しています。" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "放電" @@ -57884,11 +58706,9 @@ msgstr "説明拒否" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." -msgstr "" -"詳細なサバイバルストーリーを訪ねられたNPCが今は語りたくない場合のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." +msgstr "NPCが既に詳細を訪ねられており、再び話したくない場合のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" #: lang/json/effects_from_json.py msgid "Religious Offence" @@ -65114,6 +65934,44 @@ msgid "" "accuracy." msgstr "プルウェイトを精密に調整したトリガー部品です。銃火器の精度を若干高めます。" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "オートシアー" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"good as actual full-auto parts, so precision and reliability suffer " +"slightly." +msgstr "" +"ピンにT字型のフラップが付いたU字型の金属部品です。AR-" +"15ライフルのレシーバー下部に取り付けると、セミオート/フルオート射撃の切替が可能になります。手製のシアーは実際のフルオート部品よりも低品質なため、精度と信頼性がわずかに低下します。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15" +msgstr "AR-15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "ライトニングリンク" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" +"元々コルトSP-1用に設計された部品の「複製品」であり、AR-" +"15ライフルの射撃タイプをフルオートのみに改造するための部品です。一度改造を施せば、セミオート射撃は不可能になりります。精巧な職人技と入手が困難なSP-" +"1の部品が欠如しているため、信頼性と精度が大幅に低下します。" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -65246,6 +66104,15 @@ msgid "" "other modification prevents use of the primary sights." msgstr "スコープなどの主要な照準MODが利用できない時のための、45度傾けて取り付けられた代替用アイアンサイトです。" +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "オフセットサイトレール" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "追加で光学部品を取り付けるための、45度の角度が付いたレールです。" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -68312,11 +69179,10 @@ msgstr "電源がオンになっていると、エンジンが弱い車両は停 #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." -msgstr "全てのホイールの中心に車両の重心がある状態で、車両を動かすのに十分な性能をもつエンジンまたはモーターが起動していれば、車両は動きます。" +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." +msgstr "各船体は車両の喫水線を下げ、防水位置を上げます。喫水線が防水位置より低ければ、車体が水面に浮かびます。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -69064,7 +69930,7 @@ msgstr "死体を解体する" msgid "Chat with NPC" msgstr "NPCと会話する" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "見回す" @@ -69675,6 +70541,14 @@ msgstr "切替/冷凍庫" msgid "Toggle headlights" msgstr "切替/ヘッドライト" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "切替/広角ヘッドライト" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "切替/指向性車上ライト" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "切替/車上ライト" @@ -70086,14 +70960,14 @@ msgid "Analyze blood" msgstr "血液を分析する" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Mr.ステムセル" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "幹細胞治療を行う" +msgid "Bonesetting Treatment" +msgstr "接骨治療" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -70256,6 +71130,13 @@ msgstr " はここに居ます!" msgid "it works." msgstr "正常に機能しています。" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "葬儀場の名前の後に、文章が乱暴に書き足されています。「あなたの愛する人が完全に亡くなられていない場合、責任は負いかねます」" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -71458,6 +72339,36 @@ msgid "" "armor, +Perception fire armor." msgstr "筋力の値で斬撃耐性、器用の値で酸耐性、知性の値で電撃耐性、感覚の値で火炎耐性が増加します。" +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "槍術" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "槍術、別名「槍道」は槍を使って戦う日本の武術です。槍術は戦闘での有利性を維持するために、対戦相手との間合いを保つことに重きを置いています。" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "立ち止まっている間、遠距離武器にブロック効果" + +#: lang/json/martial_art_from_json.py +msgid "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 "移動時にダメージ増加、ブロック効果消滅" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "中世剣術" @@ -74425,7 +75336,7 @@ 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 "" -"ここには機械類がないから、実地で血液の分析をする必要があるんだ。ゾンビの新鮮な血液サンプルを採取して、病院にある遠心分離装置を使って分析してきてもらいないかな。" +"ここには機械類がないから、実地で血液の分析をする必要があるんだ。ゾンビの新鮮な血液サンプルを採取して、病院にある遠心分離装置を使って分析してきてもらえないかな。" #: lang/json/mission_def_from_json.py msgid "" @@ -74658,6 +75569,10 @@ msgstr "%sを堪能した" msgid "Enjoyed a hot meal" msgstr "温かい食事を堪能した" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "楽しく会話した" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "音楽" @@ -74868,6 +75783,10 @@ msgstr "綺麗に顔を剃った" msgid "Barfed" msgstr "嘔吐" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "ペットと触れ合って過ごした" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "火をつけた" @@ -75978,6 +76897,19 @@ msgid "" "unique pleasure to you." msgstr "痛みを与えられると快感を覚えて意欲が上昇します。" +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "興奮剤精神病" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" +"興奮剤(コーヒー、覚醒剤など)の過剰投与を長年続けてきました。多量の興奮剤を摂取しても過剰摂取を引き起こし辛くなっていますが、欲望のままに摂取していると幻覚が見え始めます..." + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -76106,8 +77038,9 @@ msgstr "近接武器鍛錬" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." -msgstr "武器を使った戦闘術を鍛錬してきました。開始時からエスクリマ、フェンシング、プンチャック・シラット、二天一流の内1つを修得しています。" +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." +msgstr "" +"武器を使った戦闘術を鍛錬してきました。開始時からエスクリマ、フェンシング、プンチャック・シラット、二天一流、槍術のうち1つを修得しています。" #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -76734,6 +77667,17 @@ msgid "" "you heal much slower. Stacks with Glass Jaw." msgstr "身体が非常に虚弱で、短時間の酷使にすら耐えられません。最大HPが75%減少し、傷の治りが非常に遅くなります。グラスジョーと重複します。" +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "遺伝子劣化" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "大変動によってDNAが修復不可能なレベルで損傷しました。頻繁に突然変異を引き起こし、変異の要因に関わらず必ず悪性の変異になります。" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "荒れ肌" @@ -80694,6 +81638,24 @@ msgstr "新しい依頼を受けられるようです!" msgid "Has Level 2 Construction Built" msgstr "建築(レベル2)" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "開始地点NPC" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "開始地点のNPCを示すマーカーです。" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "固定NPC" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "固定配置NPCを示すマーカーです。" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "全視界(デバッグ専用)" @@ -81421,6 +82383,10 @@ msgstr "アピス" msgid "I'm bugged - I shouldn't talk to you." msgstr "私は昆虫です。私は会話できません。" +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "乞食" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -81740,6 +82706,30 @@ msgstr "盗賊" msgid "Psycho" msgstr "狂人" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "乞食" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "リーナ サンドゥ" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "ディノ デイブ" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "ルオ メイツェン" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "ブランドン ガーダー" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "ユウスケ テイラー" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "レイダー" @@ -82542,7 +83532,7 @@ msgstr "釣り堀" #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" -msgstr "小型墓地" +msgstr "小規模墓地" #: lang/json/overmap_terrain_from_json.py msgid "orchard" @@ -82915,8 +83905,36 @@ msgid "trailhead" msgstr "自然歩道(入口)" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "ドライブスルー(空)" +msgid "veterinarian clinic" +msgstr "動物病院" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "博物館" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "葬儀場" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "コインランドリー" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "宝石店" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "モーテル(2階建て)" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "大型オフィスビル" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "ホームセンター" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -82942,6 +83960,10 @@ msgstr "ボウリング場" msgid "boxing gym" msgstr "ボクシングジム" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "スポーツジム" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "道場" @@ -82955,37 +83977,13 @@ msgid "gardening supply" msgstr "園芸店" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "スポーツジム" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "ホームセンター" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "宝石店" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "コインランドリー" +msgid "abandoned drive-through" +msgstr "ドライブスルー(空)" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "ノーネーム" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "葬儀場" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "博物館" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "動物病院" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "倒産したピザ屋" @@ -83223,14 +84221,6 @@ msgstr "学校" msgid "projects" msgstr "公営住宅" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "モーテル(2階建て)" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "大型オフィスビル" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "修理工場" @@ -83347,6 +84337,36 @@ msgstr "タイヤ販売店" msgid "regional dump" msgstr "ごみ処分場" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "放浪者" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"相変わらず家も家族も友人も持たずに彷徨っていますが、よく知る世界までも失ってしまいました。他人に頼らず生きてきた今までの経験が、新たな世界で役立つかもしれません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "放浪者" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"相変わらず家も家族も友人も持たずに彷徨っていますが、よく知る世界までも失ってしまいました。他人に頼らず生きてきた今までの経験が、新たな世界で役立つかもしれません。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -87738,6 +88758,114 @@ msgid "" "commercial robots, but you never thought your survival might depend on it." msgstr "市販のロボットのプログラムを違法に上書きして再利用するのが趣味でしたが、こんな技能が今後の生死に関わるなって考えもしませんでした。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "ロボット技術者" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"ロボット製造工場の下っ端技術者でした。経営陣はマンハックに火炎放射器を搭載するなんて「不必要」だの「危険すぎる」だのと文句を言っていましたが、今や導入を止める者は誰もいません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "ロボット技術者" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"ロボット製造工場の下っ端技術者でした。経営陣はマンハックに火炎放射器を搭載するなんて「不必要」だの「危険すぎる」だのと文句を言っていましたが、今や導入を止める者は誰もいません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "天才ロボット技術者" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "はんだごてを初めて握った頃からロボットを造り続けてきました。世界の終わりが訪れても止めるつもりはありません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "天才ロボット技術者" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "はんだごてを初めて握った頃からロボットを造り続けてきました。世界の終わりが訪れても止めるつもりはありません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "ロボットの主人" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "暴動が起きた時、どこからともなく現れた軍用ロボットに救出されました。もしかしたら、自分は重要人物なのかもしれません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "ロボットの主人" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "暴動が起きた時、どこからともなく現れた軍用ロボットに救出されました。もしかしたら、自分は重要人物なのかもしれません。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "狩人(ロボット)" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "地元のハッカーに依頼して、ロボット猟犬を造ってもらいました。本物の猟犬と同等の性能ですが、愛玩動物として扱うには今一つです。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "狩人(ロボット)" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "地元のハッカーに依頼して、ロボット猟犬を造ってもらいました。本物の猟犬と同等の性能ですが、愛玩動物として扱うには今一つです。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -90677,8 +91805,8 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "燃料が豊富な場所では、火は簡単に燃え広がります。" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." -msgstr "電気が無くてもオーブンは火を起こす場所として有用です。" +msgid "Even without electricity, ovens can be useful fire containers." +msgstr "停電中でも、オーブンは火を起こす場所として有用です。" #: lang/json/snippet_from_json.py msgid "Light itself doesn't draw zombies, it's sight, noise or smell." @@ -90701,22 +91829,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "食べ物を冷やすと長持ちします。温度の低い地下室や自作の貯蔵穴を利用しましょう。" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." -msgstr "死んでしまった?それも経験です。学んだことを生かしてもう一度挑戦しましょう。" +msgid "Dying is part of the experience. Try again with what you've learned." +msgstr "死もまた経験です。学んだことを生かしてもう一度挑戦しましょう。" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." -msgstr "食べ物が凍っている?火に近づけるか鍋で温めてみましょう。" +msgid "Frozen food? Put it by a fire or heat it up in a pan." +msgstr "食べ物が凍っている?火の傍に置くか鍋で温めてみましょう。" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." -msgstr "地下洞窟や地下室は年中涼しいですが食べ物は決して凍りません。" +msgid "Underground spaces like basements or caves stay cool year-round." +msgstr "地下洞窟や地下室は年中涼しく過ごせます。" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "野生動物が怖い?いなくなるまで叫んでみましょう。代わりに他の何かがやってくるかもしれませんが。" @@ -90725,8 +91851,8 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "動物とゾンビは友達同士ではありません。上手く利用しましょう。" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "入口はドアだけではありません。もちろん出口もです。" +msgid "A door is not the only way in or out of most places." +msgstr "ドアだけが出入口ではありません。" #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -90741,18 +91867,17 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "特殊な用途をもつアイテムはたくさんあります。何ができるか試してみましょう。" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." -msgstr "危険な場所に必ずしも素敵な戦利品があるとは限りません。頭を使いましょう。" +msgid "Just because a place is dangerous doesn't mean it's worth looting." +msgstr "危険な場所だからと言って、素敵な戦利品があるわけではありません。" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." -msgstr "進むのは簡単です。脱出経路を考え、追い詰められないよう立ち回りましょう。" +msgid "If you're breaking in, be sure you also know how to get back out." +msgstr "侵入する前に脱出経路を確認しておきましょう。" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." -msgstr "大抵の場合、目標を達成する方法は一つではありません。既成概念にとらわれず考えましょう。" +"There's usually more than one way to do things. Think outside the box." +msgstr "目標を達成する方法は様々です。既成概念にとらわれず考えましょう。" #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." @@ -90782,13 +91907,14 @@ msgstr "時速200kmで走る車に勝てる敵は滅多にいません。" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." -msgstr "腐った食べ物にゴキブリが湧くのは嫌なものです。腐敗物は処分しましょう。" +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." +msgstr "腐敗した食べ物は虫を引き寄せます。放っておけば虫は成長します..." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." -msgstr "医薬品はいざというとき生存の助けになりますが、過剰摂取と依存症には気を付けましょう。" +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." +msgstr "能力値を迅速に向上させたいなら薬物が便利ですが、依存症や過剰摂取には気を付けましょう。" #: lang/json/snippet_from_json.py msgid "" @@ -90797,9 +91923,8 @@ msgid "" msgstr "マップを上手に使いましょう。必要なものがありそうな場所を優先して狙いましょう。" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." -msgstr "傷は時間経過とともに治癒します。包帯や消毒を使えば治りは早くなります。" +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." +msgstr "傷は時間経過とともに治癒します。包帯や消毒を使えば治りが早まります。" #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -90821,15 +91946,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "自然は多くのものを与えてくれます。方法さえ学べば野外で暮らすこともできます。" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" -msgstr "生の肉や危険な水源から汲んだ水が健康に良い訳がありませんね?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" +msgstr "生の肉や危険な水源から汲んだ水が健康に良い筈がありませんね?" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "徒歩で一日かけて近い街まで向かうより、車を修理した方が良いと思いませんか?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "歩かず車を使ってみるのはどうでしょう?戦車でも良いですよ?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "大変動以前からあった食料はいつか必ず不足します。心に留めておきましょう。" #: lang/json/snippet_from_json.py @@ -90882,7 +92007,7 @@ msgstr "そろそろ殺しに慣れてきた、そんな時こそ気を付けて #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "大抵の薬品は飲んでもすぐには効きません。一気飲みは止めましょう。" @@ -90916,10 +92041,8 @@ msgid "" msgstr "資源が足りない?物を破壊・分解すると様々な素材が得られます。" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." -msgstr "賞味期限は一定ではありません。保管条件、特に温度に左右されます。" +msgid "Temperature affects the shelf life of foods. The colder, the better." +msgstr "気温は食べ物の腐敗速度に影響します。寒ければ寒い程長持ちします。" #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -90942,9 +92065,9 @@ msgstr "「かすり傷だ」?包帯や消毒をすれば早く治りますよ #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." -msgstr "足が折れて動けない?病院にある最新技術を使えば、動けるようになります。" +msgstr "足が骨折して動けない?病院にある最新技術を使えば、動けるようになります。" #: lang/json/snippet_from_json.py msgid "" @@ -90959,10 +92082,8 @@ msgid "" msgstr "ズボンを下ろした隙に襲わないよう気を付けましょう。もはやトイレットペーパーはありません。" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." -msgstr "凸凹した地形を通過する際は移動速度が低下します。武器として活用しましょう。" +msgid "Terrain that slows you down will also slow down your enemies." +msgstr "通り抜け辛い地形では、敵の移動速度も遅くなります。" #: lang/json/snippet_from_json.py msgid "" @@ -90977,17 +92098,78 @@ msgid "" msgstr "様々なキャラクター、職業、シナリオを試すことでゲームがより楽しくなります。ロールプレイしましょう!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "生存者を守ることで友情が芽生えます。そうならないことも稀にありますが..." #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "操作方法を学びたい?キー割当メニューを開いて操作を身に付けましょう。" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "スペイン宗教裁判だろうが何だろうが、まさかの時を予測しておきましょう。" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "曲がり角を覗きながら物を投擲できます。この方法はタレットを撃墜するのに最適です。" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "自動販売機は世界が崩壊したことに気付いていないようです。キャッシュカードは残しておきましょう!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "最高機密の地下研究所で素晴らしい物が見つかる気がしませんか?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "瓶や樽などの上に漏斗を設置すれば、時間経過と共に雨水が溜まります。" + +#: 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 "都市部にはゾンビがたくさんいますが所詮有限です。(いつかは)皆殺しにできるでしょう。" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "本当に*すべて*の物資を拾いましたか?釘も大事な物資です!" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "Escキーのメニューから独自のセーフモード規則を作成できます。" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "世界一の銃も弾薬が無ければ役に立ちません。" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "大抵のゾンビは車両にまっすぐ突っ込み、避けようとしません。逃げるときは有効活用しましょう。" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "足が骨折して家に籠っている時は、本を読んで時間をつぶしましょう。" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "特定のモンスターの死体を解剖すると生体部品が入手できます。" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "欲張り過ぎは止めましょう。死んでしまっては戦利品も役に立ちません。" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -91737,39 +92919,39 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "popular " -msgstr "ポピュラー" +msgstr "人気のある" #: lang/json/snippet_from_json.py msgid "top-forty " -msgstr "トップ40" +msgstr "人気トップ40圏内の" #: lang/json/snippet_from_json.py msgid "coorporate " -msgstr "オフィス向け" +msgstr "オフィス向けの" #: lang/json/snippet_from_json.py msgid "commercial " -msgstr "コマーシャル用" +msgstr "コマーシャル用の" #: lang/json/snippet_from_json.py msgid "alternative " -msgstr "オルタナティブ" +msgstr "斬新な" #: lang/json/snippet_from_json.py msgid "college " -msgstr "カレッジ" +msgstr "大学生向けの" #: lang/json/snippet_from_json.py msgid "arthouse " -msgstr "アートハウス" +msgstr "芸術性の高い" #: lang/json/snippet_from_json.py msgid "underground " -msgstr "アンダーグラウンド" +msgstr "前衛的な" #: lang/json/snippet_from_json.py msgid "experimental " -msgstr "エクスペリメンタル" +msgstr "実験的な" #: lang/json/snippet_from_json.py msgid "forgotten " @@ -91777,71 +92959,71 @@ msgstr "懐かしの" #: lang/json/snippet_from_json.py msgid "traditional " -msgstr "トラディショナル" +msgstr "伝統的な" #: lang/json/snippet_from_json.py msgid "historical " -msgstr "ヒストリカル" +msgstr "歴史的な" #: lang/json/snippet_from_json.py msgid "classic " -msgstr "クラシック" +msgstr "古典的な" #: lang/json/snippet_from_json.py msgid "modern " -msgstr "モダン" +msgstr "最新の" #: lang/json/snippet_from_json.py msgid "adult " -msgstr "アダルト" +msgstr "大人向けの" #: lang/json/snippet_from_json.py msgid "contemporary " -msgstr "コンテンポラリー" +msgstr "現代的な" #: lang/json/snippet_from_json.py msgid "Christian " -msgstr "クリスチャン" +msgstr "クリスチャン向けの" #: lang/json/snippet_from_json.py msgid "Pagan " -msgstr "非クリスチャン" +msgstr "非クリスチャン向けの" #: lang/json/snippet_from_json.py msgid "British " -msgstr "ブリティッシュ" +msgstr "英国の" #: lang/json/snippet_from_json.py msgid "Continental " -msgstr "コンチネンタル" +msgstr "北米の" #: lang/json/snippet_from_json.py msgid "tropical " -msgstr "トロピカル" +msgstr "トロピカルな" #: lang/json/snippet_from_json.py msgid "island " -msgstr "アイランド" +msgstr "島国の" #: lang/json/snippet_from_json.py msgid "New York " -msgstr "ニューヨーク" +msgstr "ニューヨークの" #: lang/json/snippet_from_json.py msgid "Hollywood " -msgstr "ハリウッド" +msgstr "ハリウッドの" #: lang/json/snippet_from_json.py msgid "Trans-Pacific " -msgstr "トランスパシフィック" +msgstr "環太平洋の" #: lang/json/snippet_from_json.py msgid "Latin " -msgstr "ラテン" +msgstr "ラテン系の" #: lang/json/snippet_from_json.py msgid "instrumental " -msgstr "インストゥルメンタル" +msgstr "インストの" #: lang/json/snippet_from_json.py msgid "fusion " @@ -91849,7 +93031,7 @@ msgstr "フュージョン" #: lang/json/snippet_from_json.py msgid "visual " -msgstr "ヴィジュアル" +msgstr "ヴィジュアル系" #: lang/json/snippet_from_json.py msgid "liquid " @@ -91861,19 +93043,19 @@ msgstr "デジタル" #: lang/json/snippet_from_json.py msgid "procedurally generated " -msgstr "自動生成" +msgstr "自動生成された" #: lang/json/snippet_from_json.py msgid "melodic " -msgstr "メロディック" +msgstr "メロディックな" #: lang/json/snippet_from_json.py msgid "harmonious " -msgstr "ハーモニー" +msgstr "和声の美しい" #: lang/json/snippet_from_json.py msgid "discordant " -msgstr "音痴" +msgstr "音痴な" #: lang/json/snippet_from_json.py msgid "contextual " @@ -91881,15 +93063,15 @@ msgstr "BGM用" #: lang/json/snippet_from_json.py msgid "conceptual " -msgstr "コンセプチュアル" +msgstr "コンセプチュアルな" #: lang/json/snippet_from_json.py msgid "collaborative " -msgstr "共同制作" +msgstr "共同制作された" #: lang/json/snippet_from_json.py msgid "rhythmic " -msgstr "リズミック" +msgstr "リズミカルな" #: lang/json/snippet_from_json.py msgid "neo" @@ -94707,7 +95889,7 @@ msgid "" "PICKLED MEAT IN A JAR! Just like your grandma used to make! It will last " "for months or longer, and when you've eaten it, you can refill and seal the " "jar! Stock your emergency supply TODAY!" -msgstr "広告:瓶詰め肉 懐かしいおばあちゃんの味。未開封状態だと1年ぐらい保存可能です。ご好評につき緊急生産を行いました!" +msgstr "広告:瓶詰め肉 おばあちゃんが作ってくれた懐かしの味。未開封状態だと1年ぐらい保存可能です。ご好評につき緊急生産を行いました!" #: lang/json/snippet_from_json.py msgid "" @@ -95888,6 +97070,67 @@ msgstr "み、水......近くにオアシスとか無い?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "水分の不足は他の何よりも死亡する確率が高いって知ってる?" +#: 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 "いいね、ビールを用意してくれた事にはもちろん気づいていたさ!冷えた奴を飲みながら話そう。、景気はどう?" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "もちろんだ。そのビールをあけながらってのもいいな?ともかく、最近どう?" + +#: 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 "ああ、君が持ってるビールを分けてくれるなら、好きなだけ話そう!まぁそれは冗談だけど、、調子はどう?" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "ああ、もちろん、。そろそろ一息入れたかったんだ。調子はどう?" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "もちろんいいよ。、調子はどう?" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "ああ、くだらないことを話そう!最近どう?" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "断ると思う?最近は元気にしてる?" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "ああいいよ。元気でやってる?" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "数分ぐらいならいいか。元気かい?" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "よし、、元気かい?" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "もちろん良いよ。話していれば君も胸のつかえが取れるだろ?" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "いつでも語り合う準備はできてたよ!でもどうしたんだ、大丈夫?" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "そうだな、。もっとお互いの事を知るべきだ。最近は上手くやってる?" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "もちろん、いい気晴らしになるよ。調子はどう?" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "チクショウ" @@ -96352,7 +97595,7 @@ msgstr "兄弟" msgid "fella" msgstr "お前" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "あなた" @@ -96822,7 +98065,7 @@ msgstr "クソ" #: lang/json/snippet_from_json.py msgid "freaking" -msgstr "ふざけた" +msgstr "忌々しい" #: lang/json/snippet_from_json.py msgid " " @@ -97428,6 +98671,18 @@ msgstr "ここでお別れだな?死に様を見届けてやる!" msgid "You're going to pay for that, !" msgstr "報いを受けろ、!" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "騒がしいな!" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "誰かの話し声か?" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "何か言った?" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "嫌な音だ。" @@ -97444,6 +98699,10 @@ msgstr "聞こえた?" msgid "What's that noise?" msgstr "何の音だ?" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "何かそこにいるのか?" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "何かが動く音だ。あの音は" @@ -97453,16 +98712,16 @@ msgid "What's that sound? I heard" msgstr "何の音だ?今聞こえたのは" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" -msgstr "誰かいるのか?今聞こえたのは" +msgid "What's there? I heard" +msgstr "何だ?今の音は" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" msgstr "聞いたか?あの音は" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" -msgstr "誰か音を立てたか?今の音は" +msgid "What is making that sound? I can hear the" +msgstr "何の音だ?今聞こえたのは" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." @@ -97597,6 +98856,10 @@ msgstr "歩く死体" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "死人" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "生ける屍" @@ -97609,10 +98872,6 @@ msgstr "ゾンビ" msgid "Z's" msgstr "ゾンビ共" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "死んだ" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -100678,1844 +101937,548 @@ msgid "Clothing Store" msgstr "衣料品店" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"、何も分からない。、見当もつかないよ。生き延びるためにできることをやってるだけさ。世界は滅んだが、少なくとも今までは生きてこられた。" +msgid "That sure is a shiny badge you got there!" +msgstr "ピカピカのバッジを手に入れたようだな!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "ふぅん。" +msgid "Heh, you look important." +msgstr "ふん、ただ者ではないらしいな。" #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" -"の前だって?どうでもいいだろう?まあ、新たな世界はかなりけど。でも、過去にこだわるのは止めよう。残されたものを最大限に生かすべきだ。" +msgid "I'm actually new." +msgstr "新入りだ。" #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "もっともな意見だ。" +msgid "What are you doing here?" +msgstr "ここで何をしているんだ?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" -"実は...まったく覚えていないんだ。世界がこんなことになる前の人生は、ぼんやりと思い出せる。でも、が訪れた時の事は?もやが掛かっているみたいだ。今いる場所も、何が起きたのかも分からない。どうやらかなりひどい目に遭ったみたいだ。それとも頭を強く打ったのかな。いや、その両方かも。" +msgid "Heard anything about the outside world?" +msgstr "外の世界について何か聞いていないか?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" -"私の話か。はぁ...特別面白いものではない。かつての仲間たちは、みな主の御許に旅立った。何故主が私の手を取って下さらなかったのかは分からないが、時が経てば分かるのだろうな。" +msgid "Is there any way I can join your group?" +msgstr "あなたの組織に参加する方法はあるか?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "それは何か宗教的な話...?" +msgid "What's with your ears?" +msgstr "その耳はどうした?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "何か手伝えるか?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "さようなら。" #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" -"もちろんだ。明白じゃないか?あれは...携挙だ。私がまだここにいる、その理由は分からないが、私はどんな患難の中にあろうとイエスキリストを信じている。患難が過ぎ去れば、きっと私を天国に迎え入てくださるのだろう。まぁ...大筋はこんなところだと思っている。私が考えているとおりに事が運ぶとは限らないが、これは予言と言ってもいい。" - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "もしあなたの意見が間違っていたとしたら?" +"ってことは、私たちは似た者同士だな。私も新入りみたいなものだ。誰でも歓迎ってわけには行かないようでね。下の階は既に満員らしい。入口近くの商人には会ったか?そいつに詳しく聞いてみるといい。" #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "これからどうするんだ?" +msgid "Sucks..." +msgstr "はあ..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" -"何だって?どうしてそんなことを言うんだ?この有様を見ても終末を信じないとはな。死者が蘇り、地獄の門が開き、悪魔の獣が地上を闊歩し、そして正しき者は皆神の王国へと導かれる。これ以上の証拠を出せって言うのか?" +"ああ、地下には空気圧砲を持ったやつがいるんだ。金属を射出する...発射音のしない、やたら効率的な大砲みたいなものだ。連中は即席兵器の類にはこと欠いていないし、今も地下の要塞化を続けている。あの防御を打ち破れるモンスターなんてまずいないだろう。" #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "それで、これからどうするんだ?" +msgid "Well, then..." +msgstr "そうか..." #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." -msgstr "" -"信仰を守り、祈り、地獄からの使いを見かけたら打ち倒す。私たちにできることなんて、それぐらいしか無いだろう?もしかしたら、地球を素直に明け渡してしまった方が楽なのかもしれない。でも、そんなのは癪だからな。" +"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 "少なくとも楽観的ではない。よくアマチュア無線をやってた仲間がいたんだが、彼女はもう死んじまった。ぶち壊しだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Nothing optimistic?" +msgstr "楽観的でない?" #: lang/json/talk_topic_from_json.py msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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." +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" -"他のみんなと同じさ。神様から目を背けて、その代償を支払ってるところだよ。携挙が訪れたけど、私は取り残された。そして今、地上の地獄を彷徨っているんだ。もっと真面目に日曜学校へ行っておけばよかったな。" +"避難キャンプなんて今ごろ影も形もないだろう。街は滅茶苦茶だし、森は怪物やゾンビが目を光らせて這い回っていやがる。無線を持った生き残りはどいつもこいつも恐ろしい死にざまを記録するような気分でいるはずだ。" + +#: lang/json/talk_topic_from_json.py +msgid "I feel bad for asking." +msgstr "悪いことを聞いてしまったな。" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" -"OK、変だと思うだろうけど、私は、こうなることを知っていたんだ。以前からね。この話は知人の霊能者にしか打ち明けていないが、彼女も既に死んでしまっただろう。世界が終わる一週間前、私は見た夢について、その霊能者に話したんだ。これは真面目な話だよ!" +"さあね。仕事を手伝える人間なら大丈夫なんじゃないか。でも今じゃ確実なことなんて一つもないからな。人によって言うことは違う。例えばそこの商人、売り物がないなら出て行けという態度だったが...そうじゃない奴もいるようだ。" #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "どんな夢を見たんだ?" +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." +msgstr "君と同じ、自業自得ってやつさ。このことは口外するなよ、ここの連中の中には我々のような人間を見下す者もいる。" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." -msgstr "そうだな、ええと、最初の夢は三週間ぐらい同じものだった。手に棒を持って森の中を逃げ回り、巨大なクモと戦う夢だ。本当だって!毎晩見たんだ。" +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "シー。ここの連中の中にはよく思っていないやつもいるんだ... 変異をな。これは事故だったんだ。" #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "いや、そんなに珍しい夢じゃないだろう。" +msgid "Sorry to ask" +msgstr "悪いことを尋ねてしまったな。" #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "わぁ、それはすごい。の事を夢で見たなんて。" +msgid "You're disgusting." +msgstr "気持ち悪いな。" #: lang/json/talk_topic_from_json.py msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" -"待て、これはだな、そう、始まりに過ぎない。大変動が起きる一週間前、私はクモの夢の途中で起きてトイレに行き、また眠ったんだ。ちょっとビビッてたからね?その後、別の夢を見たんだ。そう、上司が死んで、その死体が蘇る夢さ!それから数日後、職場を訪ねてきたその上司の夫が心臓麻痺で倒れたんだけど、次の日には生き返ったって話を聞いたんだ!人はちょっと違うけど、私が見た夢と全く同じだろ!" +"私は家を焼いて、自由商人に素材を売る者だ。いや、マジでな。住宅地の一角の焼け落ちた瓦礫の山とか、鉄筋の束が売られているのを見たなら、もしかしたらそれは私の仕事かもしれないな。お陰で安定した生活をしているよ。もし必要なら火炎瓶でも売ろうか?" #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "奇妙な話だな。" +msgid "I'll buy." +msgstr "買うよ。" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" -"そうだろう!?他にもあるんだ!そう、それは大変動が起きる一週間前、私はクモの夢の途中で起きてトイレに行き、また眠ったんだ。ちょっとビビッてたからね?その後、別の夢を見たんだ。そう、上司が死んで、その死体が蘇る夢さ!それから数日後、職場を訪ねてきたその上司の夫が心臓麻痺で倒れたんだけど、次の日には生き返ったって話を聞いたんだ!人はちょっと違うけど、私が見た夢と全く同じだろ!" +msgid "Who needs rebar?" +msgstr "誰が鉄筋を欲しがるんだ?" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" -"そうだろう!?ともかく、私は今も奇妙な夢を見るんだけど、これはもう未来のことじゃない。その、世界が滅んでからも、不気味な夢をたくさん見る。ええと、二晩連続で、地球を取り囲む黒い星々の夢を見たんだ。その星々はほんの一瞬、無数の小さな眼球のように地球を見つめる。次の瞬間には瞬きして目を逸らす。それ以来、夢に出てくる地球は、周囲の星々と同じ黒い星になってしまった。その光景が気になって、狂ってしまいそうになるんだ。これが一番嫌な夢。他にも色々見るよ。" +msgid "As if you're one to talk. Screw You." +msgstr "口のきき方を考えろ。くたばれ。" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "奇妙な夢についてもっと聞かせてくれ。" +msgid "Screw You!" +msgstr "くたばりやがれ!" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" -"ああ、そうだな、時々ゾンビになった夢を見るんだ。夢の中にいるときは自分の状況を理解できない。自分の事を正常な人だと思っていて、ゾンビを正常な人として扱い、正常な人達をゾンビとして扱うんだ。目を覚ますとそれが夢だったって気付く。だって、もし夢の通りなら、正常な人がもっと沢山いるはずだからね。周りにいるのはいつもゾンビ。今や誰もがゾンビだ。" +msgid "Another survivor! We should travel together." +msgstr "おお、生きてる人間じゃないか!どうだい、一緒に旅をしないか?" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "今の状況では誰もがそんな夢を見るだろう。" +msgid "What are you doing?" +msgstr "何をしているんだ?" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" -"ああ、そうだろうね。時々こんな夢も見る。ただの埃になって、広く冷たい銀河にポツンと浮かんでいる夢だ。その夢を見ると思い出す。お世話になってた麻薬売人のフィルシー・ダンが、デカいカニの化け物に食われてしまったことをね。" +msgid "Care to trade?" +msgstr "取引しないか?" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "かわいそうなフィルシー・ダン。" +msgid "&Put away weapon." +msgstr "&武器を離す。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "話してくれてありがとう。" +msgid "&Drop weapon." +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 "避難所にたどり着いたけど、元いた場所の方がマシってぐらい、、ひどい所だった。それでまた逃げ出して、逃げ続けているんだ。" +msgid "Don't worry, I'm not going to hurt you" +msgstr "心配するな、君を傷付けるつもりはないよ。" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "どうやって生き延びたんだ?" +msgid "Drop your weapon!" +msgstr "武器を捨てろ!" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" -"最初は、森の中でルバーブや野草を探して過ごしていたよ。でも勇気を出して、死んだ動物の解体もやり始めたんだ。きっとヤケクソな気分だったんだろうな。" +msgid "Get out of here or I'll kill you." +msgstr "立ち去れ、さもなくば死ぬ事になるぞ。" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" -"暴動で殺されなかった人たちと似たようなものだ。私は避難所で死にかけたんだ、。最初はそこで他にいた3人としばらく過ごしていた。その中の一人は、今起きている事についても詳しく知っていて、まるでよくある映画に出てくる主人公みたいな男だった。だが実際は、映画の主人公ではなかった。" +msgid "Hey there, ." +msgstr "やあ、。" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "じゃあな。" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "君の仲間に何があったんだ?" +msgid "Hello there." +msgstr "やあ、君か。" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" -"我らの勇敢なリーダーが、噛まれてしまった他のメンバーを殺そうと決めたのが、ケチのつき始めだった。もう一人のメンバーは噛まれた奴の夫で、かなり反対していた。私もあまり乗り気じゃなかった。この時点で対応を誤っていたんだ。それで、リーダーは自ら女を殺した。すると夫が、やられたらやり返せとばかりにバカなリーダーを殺した。その後女が生き返ったので私が殺し、リーダーの死体も念のため潰した。その騒動の最中に、運悪く夫が噛まれた。混乱して上手く反撃できなかったんだろう、仕方のないことさ。一緒に逃げ出したが、彼はもうダメだった。明らかに手遅れだった...傷口から感染症にかかり、最終的にに襲われて殺された。そういう訳で、私は一人になった。" +msgid "Okay, no sudden movements..." +msgstr "よし、急に動いたりはするなよ..." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "一体何が起きたんだろう?他の場所でもそいつらを見かけた?" +msgid "Keep your distance!" +msgstr "近寄るな!" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"何も特別なことはしていないし、どうして生き残れたのか分からないよ。何人かで一緒に避難したが、FEMAキャンプへ着いた時には手遅れだった。死人に襲われ...私だけが生還した。一度も振り返らず逃げた。" +msgid "Calm down. I'm not going to hurt you." +msgstr "落ち着けよ。君を傷付けるつもりはないよ。" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" -"たくさんの避難民と一緒に避難センター行きのバスに乗っていたら、途中で今までに見たこともないような巨大なゾンビと衝突したんだ。何も特別なことはしていないが、化け物は他の乗客を狙っていたから、何とか逃げ出せたよ。" +msgid "Screw you, no." +msgstr "ふざけるな、嫌だね。" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" -"自宅のシェルターがイヌと同じくらい大きなハチの群れに襲われたんだ。木材で殴って数匹倒したけど、あまりに素早くて、これはすぐに逃げ出さないと手遅れになると思ったんだ。そこから先はご存知の通りさ。" +msgid "&Put hands up." +msgstr "手を挙げる。" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "大きなハチ?詳しく教えてくれ。" +msgid "*drops his weapon." +msgstr "は武器を捨てました。" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "ハチは普通そんなに攻撃的じゃないような..." +msgid "*drops_her_weapon." +msgstr "は武器を捨てました。" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" -"ああ、君も見たことあるんじゃないか、あのハチはどこにでもいるからな。古いSF映画に出てくるようなヤツだ。シェルターにいた仲間が刺されたんだ、本当の話さ。ハチの毒が永久に残るかどうかはちゃんと見ていないから分からない。、ビビって逃げ出して来たんだから仕方ないだろう。" +msgid "Now get out of here" +msgstr "ここから立ち去れ。" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "ハチは普通そんなに攻撃的じゃない...もしかしてスズメバチ?" +msgid "Now get out of here, before I kill you." +msgstr "今すぐここから立ち去らないとお前を殺すぞ。" #: 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 "ええと、、悪いけど立ち止まって殺人バチをのんびり観察する暇はなかったよ。" +msgid "Okay, I'm going." +msgstr "了解だ、行こう。" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "悪かった。ハチについて詳しく教えてもらえないかな?" +msgid "About that job..." +msgstr "その仕事について..." #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "それもそうだな。悪かったよ。" +msgid "About one of those jobs..." +msgstr "それらの仕事の1つについて..." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" -"ええと、携帯電話の警報が鳴りやんで、避難シェルターへ行けってメッセージが流れたから、その通りにしたんだ。避難シェルターはものすごく混雑していたから、皆は避難センターへ向かうバスを待っていたけど、いくら待ってもバスはこなかった。その後はもう分かるだろう。パニック状態になって、喧嘩が起きた。それからどうなったのかはよく分からない。私はシェルターのロッカーから荷物を持てるだけ持って森へ逃げたんだ。数日後に戻ったら、もぬけの殻だったよ。他の人がどうなったかなんて、想像もつかないな。" +msgid "What's the matter?" +msgstr "どうした?" #: 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 "難しい質問だな。簡単に言うと、世間一般で言う安全って奴を求めてFEMAキャンプへ行ったんだ。それで、命からがら逃げだして来たってわけ。" +msgid "I don't care." +msgstr "どうでもいいね。" #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "FEMAキャンプについて詳しく教えてくれ。" +msgid "I see." +msgstr "なるほどね。" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "ああ、分かったよ。" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "どうやって逃げ出したんだ?" +msgid "Never mind, I'm not interested." +msgstr "いいや、興味ないね。" + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "何でもない。" #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" -"恐ろしかったよ。私たちは元々はスクールバスだった車に乗せられて避難した。30人くらいだったかな。バス内ですぐに問題が発生した。乗客の何人かは怪我をしていたんだが、B級映画中毒の奴らが「噛まれた」人は「ゾンビ化する」なんて言い出したんだ。馬鹿げた話だろ?私も今まで何十回と噛まれたけど、最悪でも重い感染症にかかったことしかない。" +msgid "I'll do it!" +msgstr "良いだろう、引き受けたよ!" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "その後どうなったんだ?" +msgid "Not interested." +msgstr "興味が無いね。" #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" -"そいつが騒ぎ始めた。皆はもうパニック状態さ。武装した警官みたいな奴が避難バスをまとめていたが、あんなのはライフルを持っただけのガキさ。そのガキが事態を収拾しようとしたが、ほとんど役に立ってなかった。「感染者を殺す」派の奴は、、発狂しかけていて、腕を失くした婆ちゃんが口から泡を吹き始めたらすかさず飛び掛かれるよう身構えていた。キャンプに到着した時点で、過激派がまた騒ぎ始めた。でもそう上手くは行かなかった。重武装した何人かの兵士に引きずられてどこかへ連行され、それ以降見かけることはなかった。" +msgid "Not a problem." +msgstr "大丈夫だ、問題ない。" #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" -"混沌とした所だよ。数時間しか滞在していないけどな。近づけないよう隔離された区画があって、そこで大きな掘削機が大きな穴を掘っているんだ。それで、こっそり近寄って穴を覗いてみた。穴の中には死体が山積みになってた。死体の中には動き出して穴から抜け出そうとするものもあったけど、上からは土がどんどん注がれる。あのクソみたいな光景は、今も目に焼き付いて離れない。それで、こんな場所は出て行くべきだって思った。運の良いことに、その翌朝、キャンプは今まで見たことも無いような巨大な化け物に襲われたんだ。警備隊は忙しそうにしていたけど、私は一晩で集めた物資をもって、すぐに逃げ出したよ。何人かは私に続いて逃げようとしたけど、おそらく私が唯一の生き残りだ。" +msgid "Got any advice?" +msgstr "何か助言をくれないか?" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "その話はまた今度な。あまり思い出したくないんだ。" +msgid "Can you share some equipment?" +msgstr "少し持ち物を分けてくれないか?" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "悪かった。FEMAキャンプについて詳しく教えてくれ。" +msgid "I'll be back soon!" +msgstr "すぐに戻ってくるよ!" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "悪いことを聞いてしまったな。" +msgid "Sounds good, thanks." +msgstr "分かった、ありがとう。" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "悪いことを聞いてしまったな。" +msgid "Sounds good. Bye!" +msgstr "分かった、じゃあな!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" -"大変な大騒ぎの中で、避難がずいぶん遅れてしまったんだ。街から出られなかったから、地下室でガールスカウトクッキーとか温いルートビアを飲んで数日間生き延びたよ。結局、に見つかることもなく逃げ出して、その後は放棄されたショッピングモールにしばらく立て籠もった。でも、食べ物が必要になったから、野外で暮らそうと森へ向かっていたんだ。野外生活は今一うまく行かなかったから、君に会えてほっとしているよ。" +msgid "I'm sorry." +msgstr "悪かった。" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" -"世界が大変なことになってる時は、インフルエンザに罹って家にいたんだ。食料雑貨店へ出かけられる程度に回復したころには...まぁ色々あって、それ以来逃げ回ってばかりさ。" +msgid "Whatever. Bye." +msgstr "あっそう。じゃあね。" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "おいおい、ちゃんと話してくれよ。" +msgid "Well, um, sorry." +msgstr "ああ、うん、ごめん。" #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" -"ああ、そうだな、最初の数日は寝込んでいたんだ。外で騒ぎがあった事は把握していたが、酷い熱にうなされていたからな。正直、病院へ行くべきだったと思ったが、もし行っていれば今頃死んでいただろう。何が夢で何が世界が崩壊する現実だったのかも曖昧だ。飲み物を取ろうと冷蔵庫を開けたら、ライトが付かなくて中が温くなっていたのは覚えている。その頃には熱が下がってきたんだ。家にあるチキンスープを飲み尽くしたが、まだ足下がふらついていた。電気も明かりも無い家から出かけるのにかなり時間がかかったよ。" +msgid "I'm sorry. I did what I could." +msgstr "すまない。出来るだけのことはしたんだ。" #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "出掛けてからは何があったんだ?" +msgid "Sure, here you go!" +msgstr "さあ、どうぞ!" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" -"市街地がどんな状態だったか、君も覚えているだろう。多分事が起きてから4日目の事だ。外へ出た瞬間、何が起きたのか、そして自分が事態を何も把握できていなかったことに気づいた。たくさんの暴徒が車を破壊するのを見かけたが、そいつの一人は女性の頭を殴りつけていた。そこで食料雑貨店へ向かうのは諦めて、奴らに見つかる前にアパートに引き返したんだ。そしてできる限り長く隠れていることにした。死人が生存者より多くなってからは外もだいぶ静かになったから、隣人たちの部屋からできる限りの物資を拝借して、必要があれば死んでいた隣人をもう一度殺した。最終的には建物がで溢れ返ってしまったから、古い自転車で近所の丘まで逃げる羽目になったけどね。" +msgid "Thank you." +msgstr "ありがとう。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "詳しく教えてくれてありがとう。" +msgid "Thanks, bye." +msgstr "ありがとう、じゃあね。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "詳しく教えてくれてありがとう。" +msgid "Well, I guess it's just us." +msgstr "さて、話をしようか。" #: 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 "以前と何も変わらない。死者が歩き始めてからも準備を整え、死者を土に還しているよ。" +msgid "At least we've got shelter." +msgstr "シェルターはどうやら無事なようだね。" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "上手くいったのか?" +msgid "What should we do now?" +msgstr "何をすればいいんだろう?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "すごいな。" +msgid "Any tips?" +msgstr "役立つ情報はある?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "何か手伝える事はあるか?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "すごいな。" +msgid "Want to travel with me?" +msgstr "一緒に旅をしないか?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "物品の取引をしようか。" #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" -"大体は殺した。が1匹いても簡単に排除できるが、10匹は多すぎるし、100匹いれば死の危険もある。窮地に陥って、危うく身体から内臓が飛び出しかけたこともあった。古びたモーテルに潜伏して傷を癒しながら、次にどうすべきかを考えていた。そして答えを見つけたんだ。" +msgid "I can't leave the shelter without equipment." +msgstr "物資も無しに避難所を出られないよ。" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "答えとは?" +msgid "Relax and chat with me for a while..." +msgstr "リラックスしてしばらく雑談しよう..." #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "ふぅん。" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "ふぅん。" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" -"答えはこれだ。ゾンビを殺すことこそ、私が生まれてきた理由なんだ。通りで化け物の頭を潰しながら、無事に事が運ぶよう祈ったことは?私は一度もない。生存。それが重要だ。だから、立ち直ってからは覚悟を決めてゾンビ殺しを再開した。もう1000匹近く殺しているが、一向に飽きないよ。" +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" +msgstr "ああ、この暑さに私も参っていたんだ。ちょっと休憩しよう。、調子はどう?" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "天職が見つかって良かったな。" +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "いいよ。話していれば凍えずに済むからな。最近どう?" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "天職が見つかって良かったな。" +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "その、今はかなり体調が悪いんだけど...それでもやるのか?" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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 "" -"ああ、分かりきった事だろう。皆なんやかんやあって、仕事や生活をして、最後には死ぬ。やれやれ。君には率直な意見を話しておこう。私はこれまでの世界より今の世界が好きだ。生きるために毎日戦うんだろう?これほど生きているって実感できたことはないね。化け物どもを何百体も殺したよ。遅かれ早かれそいつらに殺されることになるだろうけど、何か本当に大事なことを理解して死ねるんだろうな。" +"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 "今なら少し時間があるな。思えばもう1か月くらいは経ったんだな...これから先、どうするつもりなんだ?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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 "" -"ええと、全部は話さないからな。事が起こった時、私は南部から車に乗って息子のもとを訪ねるところだった。モーテルで過ごしていると、通りがかった軍用車からFEMAの避難所へ向かうよう指示されたんだ。" +msgid "Oh you know, not bad, not bad..." +msgstr "なるほどね、悪くない、悪くないよ..." #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "息子さんの事を聞きたい。" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "うーん、分からないが...とりあえずは物資と生存者を探すといいんじゃないか?" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "それで、FEMAキャンプへ向かったのか?" +msgid "Maybe we should start boarding up this place." +msgstr "そうだな、ドアや窓を板張りして外からの脅威に備える必要があるんじゃないだろうか。" #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" -"息子は嫁さんと3人の子どもと一緒に、カナダ北部の田舎に住んでいるんだ。石油会社の環境工学者として働いているんだけど、嫁さんの方はヒッピー気質というか、まぁ私は二人とも愛しているよ。私としては、息子たちはこの大混乱から程遠い森の中で安全に過ごしていると思いたい。向こうは私が死んだと思っているかもしれないが、それなら私に会うために危険な目に遭うこともないだろうし、ありがたいことだ。" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." +msgstr "乗り物を手に入れるのがいいんじゃないか。何かあったとしてもすぐ逃げられるしね。" #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "大変動が起きた時、あなたはどうしていたんだっけ?" +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 "近くに農場が無いか探してみよう。街からもそれほど近くないだろうし、十分な食料もあるんじゃないかな。" #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" -"まさか。ぶかぶかの軍服を着たひよっ子に従っていたら、命がいくつあっても足りないよ。乗っていたのはハマーの改造車だからオフロードも走れるし、ガソリンもたっぷりあった。国境を越えるからライフルもたくさん持っていた。何から逃げればいいのかも分からなかったが、逃げなかったのはバカな奴だよ。" +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." +msgstr "街に行けば役に立つ物が十分残っているだろうが、住む場所は街から離れていた方がいいと思う。" #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "それからどこへ向かったんだ?" +msgid "Hmm, okay." +msgstr "ふーん、分かった。" #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" -"最初は北へ向かったが、軍の大規模な道路封鎖に出くわした。TVで見るような巨大なロボットが歩いていたんだが、よく見るために近づこうとしたら、すぐさまロボットが発砲してきたんだ!危うく死ぬところだったが、まだ反射神経もしっかりしていたから尻尾を巻いて逃げ出した。ハマーもかなりボロボロになってしまって、燃料を漏らしながら高速道路を進む羽目になったよ。何マイルか進んで、見知らぬ土地で立ち往生さ。放浪生活も板についてきた。恐らく今も北へ向かってるとは思うんだ。かなりの回り道になるけどな?" +msgid "Not until I get some antibiotics..." +msgstr "抗生物質さえあれば..." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "大変な話だな。" +msgid "You asked me recently; ask again later." +msgstr "さっき言ったはずだけど...またいつか誘ってくれよ。" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "大変な話だな。" +msgid "Why should I travel with you?" +msgstr "何故、君と一緒に旅をする必要があるんだい?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" -"おいおいおい。準備はとうにできていたさ。何年も前からそんな傾向はあったからな。郊外にLMOEシェルターを建てておいたんだ。もちろん、運が良かったことも大きい。中国が攻撃を開始して世界が崩壊した時、私は仕事の会議の関係で街から何マイルも離れた場所にいたんだ。" +msgid "Understood. I'll get those antibiotics." +msgstr "分かった。抗生物質を手に入れる。" #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "それからどうなったんだ?" +msgid "Right, right, I'll ask later." +msgstr "ああ、そうだったね。また今度にするよ。" #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "シェルターは今どうなっているんだ?" +msgid "I can keep you safe." +msgstr "君を護衛するよ。" #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" -"その時は湖畔の建物で会議をしていたんだ。参加者の携帯電話から緊急放送が流れだしたが、放送の真意を理解していたのは私だけだろうな。そう、大規模バイオテロだ。その場に留まるつもりは全くなかったし、同僚の中にスパイが紛れている事も把握していた。リーという奴だ、50ドル賭けてもいい。ともかく、私は幹事が乗っていたピックアップトラックを盗んで、まっすぐシェルターへと向かったんだ。" +msgid "You can keep me safe." +msgstr "君に護衛してほしいんだ。" #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "シェルターには着いたのか?" +msgid "We're friends, aren't we?" +msgstr "友達だろ、違うのか?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" -"いいや、あと5マイルの所まで行ったんだけどね。中国人共が作った恐ろしい生体兵器と衝突してしまったんだ。人間や色んな生物の手足や頭が混ざりあった、狂った金切り声をあげるさ。ひき殺せたとは思うが、こっちのトラックが壊れたのは間違いない。ダッフルバッグを掴んで逃げ出したよ。またあんな怪物に出くわすのはごめんだね。" +msgid "I'll kill you if you don't." +msgstr "言う通りにしなければ殺す。" #: 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 "まだたどり着けていないんだ。行こうとするといつもに邪魔される。いつか分からないけど、行けるといいな。" +msgid "You got it, I'm with you!" +msgstr "その通りだ、一緒に行くよ!" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "その話をもう一度聞かせてくれないか?" +msgid "Awesome!" +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 "いやいや。しっかり準備していたよ。計画もばっちりさ。非常持ち出し袋。装填済みの銃。避難場所への地図。裏庭には地下壕もある。" +msgid "Okay, let's go!" +msgstr "分かった、行こう!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "計画は失敗に終わったようだな。" +msgid "Yeah... I don't think so." +msgstr "ああ、うん...そうは思ってないよ。" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "ねぇ、その地図を見せてもらってもいいかな。" +msgid "You're really leaving?" +msgstr "本当に一人で行くのか?" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" -"それは失敗の定義によるな。私は生きている、そうだろ?地獄が空から降ってきて、怪物が街を攻撃していた時、私は物資を持って地下壕に逃げ込んだんだ。地表を映すカメラは数日間オンラインだったから、そこで起きたあらゆる出来事を見られたよ。化け物が過去の栄光を踏みつぶす様を見たんだ。死体が動き出す悪夢は今もよく見るな。何もできなかった。警官や兵士が引き裂かれ、蘇った死体が生存者と戦うんだ。上品な老婦人が近所のイヌの首をむしり取って街をふらついているのを見た。兵士の死体が引きつり始めて、電気を帯びたハルクみたいな怪物に変身するのも見た。私は全部見たんだ。" +msgid "Yeah, I'm sure. Bye." +msgstr "そうだね、絶対だ。じゃあね。" #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "どうして地下壕から出てきたんだ?" +msgid "Nah, I'm just kidding." +msgstr "いや、ただの冗談だよ。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "何だい?" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" -"実をいうとね?死ぬつもりだったんだ。色んなものを見て、少し気が狂ったのかな。もうおしまいだ、奮闘しても意味がない、って思ったんだ。地下壕には居たくなかったけど、自殺することもできなかった。外に出てに殺してもらおうと思っていたんだけど、なんて言うんだろう?生存本能って奴か、そいつらを倒してしまったんだ。必要なのはアドレナリンだったんだって理解したよ。それのお陰で今まで生き延びてこられたんだ。" +msgid "How much further?" +msgstr "どれぐらい遠いんだ?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "話してくれてありがとう。" +msgid "I'd like to lead for a while." +msgstr "少しの間、リーダーをやるよ。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "話してくれてありがとう。" +msgid "Step aside. I'm leader now." +msgstr "どいてろ。リーダーは私だ。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +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 "ああ、いいとも。一部だけなら見せてあげよう、そうだな、1000ドルでいい。キャッシュカードじゃなくて、ATM経由で振り込んでくれ。" +msgid "Alright. You can lead now." +msgstr "よし。君に付いて行くよ。" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "[$1000] 取引成立だ。" +msgid "Good. Something else..." +msgstr "いいね。他には..." #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "その地図はそんなに価値があるのか。" +msgid "Alright, let's go." +msgstr "よし、それじゃあ行こうか。" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "、君がそれを譲ってくれたら、、私もキレずに済むんだけどな?" +msgid "Okay, okay." +msgstr "分かった、分かった。" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "話題を変えて申し訳ないけど、さっきの話をもう一度聞かせてもらえないかな?" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "絶対に嫌だね、付いて行くからな!" #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "よし。さあどうぞ。" +msgid "Fine." +msgstr "よし。" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "ありがとう!ところで、さっきの話をもう一度聞かせてもらえないかな?" +msgid "I'm on watch." +msgstr "ここで見張っているよ。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "一緒に来てくれ。" #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "その手には乗らないよ。地図が欲しいなら、きっちり支払ってもらおう。" +msgid "See you around." +msgstr "またな。" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "分かった。ところで、さっきの話をもう一度聞かせてもらえないかな?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" -"最近までの事なんて知らなかった。ちょっと大げさかな、とにかく大混乱の現場からは遠く離れていたんだ。高速道路で車が故障して、レッカー車を何時間も待ってる状況だったからね。結局道路脇の原っぱで野宿する羽目になったんだ。でも運が良かった。いわゆる死人の運転手が乗ったトレーラーが、私の車に突っ込んだんだ。こんな時に市街地にいた奴らは本当に気の毒だよ。" - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "どうやって野外で生き延びたんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "野外生活を始めてから数日間、何を見かけた?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" -"ハッ、自分でもよく分からないんだ。最初の数日は、外で過ごしてるだけでも大変だったって事は確かだな。酷い嵐に襲われたと思ったら、皮膚が焼け爛れ始めたんだ。車の下にテントを敷いて潜り込み、何とか凌いだよ。大破してはいるが、私よりずっと頑丈だ。聞いた話では、これでも私は幸運な方だったようだ。想像できない程酷い話だった。街に襲い掛かったという悪魔のような化け物に遭遇しなかっただけ、運が良かったよ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" -"酸性雨以外には、市街地から脱出する人たちを見かけたな。道路からは離れたいけど森で迷子になるのも嫌だったから、森と平地のちょうど境に陣取ったんだ。乗用車やバスやトラックが避難者を乗せて道路を進んでいった。大抵は無事に通り過ぎたけど、ガス欠なんかで立ち往生する車も多かった。車は工具類を満載していたし、乗客たちも縋り付いていたよ。ゾンビ共は生存者が通った道を追いかけてやって来ていたから、一度止まってしまえば死んだも同然さ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" -"事が起きた時は、友人と釣り旅行の最中だったんだ。正確な日時は覚えていないけど...世界の終わりが来たと最初に分かったのは、目と肌を刺すような酸性ガス混じりの風が吹き荒れた時だ。どうすればいいのか分からなかったから、建物の中に入って休んだ。そうこうしてる間にも、妙な塵がそこら中に降り注いでいたな。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "酸性ガスが漂った後はどうなったんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" -"朝になったら、湖の周囲がピンク色のカビで覆われていて、キノコが埃みたいなものをまき散らしながら歩いていた。何が起こったのかさっぱり分からなかったけど、そこに留まって調べようなんて思わなかったよ。だから荷物をボートに詰め込んで、上流に向かったんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "あなたの友達はどうしたんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" -"彼女は湖を出発してから数時間後に、病気になったんだ。食べた物を吐いて、関節の痛みを訴えていたよ。彼女は知り合いがやってる川岸の店屋に預けてきた。体調が回復するか、せめて何が原因か分かればいいんだけど。" - -#: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "原因が分かるものなのか。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" -"本当は、その店は空き店舗なんだ。友達が自棄になってたから、私が押し入った。店にあったラジオで街の混乱について詳しく聞いた。彼女は鎮痛剤と吐き気止めを飲んだけど、私がボートで出発した時には、その...手遅れだった。" - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "友達は亡くなったのか?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" -"そうだといいね。死は慈悲だと思うよ。彼女は酷く苦しそうな叫び声を上げ、全身の部位がボロボロと崩れていった。身体のあちこちを突き破ってキノコが生えてくるんだ。私は...逃げた。今は彼女を楽にしてやれたらと思っているけど、あそこへ戻るなんて自殺行為だ。" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "恐ろしいな。" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "恐ろしいな。" - -#: 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 "" -"妻は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" - -#: 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 "" -"夫は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "それは気の毒に。" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "植物のモンスターについて教えてくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" -"どうしようもなかった、そうだろう?この世の終わりだ。その事についてはこれ以上話したくない。それに正直言って、私は自分が旧世界にふさわしいと思った事なんて一度もなかったんだ。妙なものだけど、今は本当の目標が見つかったように感じている。君はそういう経験ない?" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "ああ、あるね。時々、自分の存在が大変動の時から始まったような気がするんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" -"私たちのような、ここまで上手くやってきた人間には、何か理由、のようなものがあると思うんだ。それが宗教的なものだとは思わないけど、ただ...私たちはサバイバーだ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" -"ハハハ、ああ、君がそう考える理由は分かるよ。別にこれが良い変化だって言いたい訳じゃない。私は、少なくとも今は、自分が毎日何をしているのか理解している。私は今もインターネット接続のために何百ものゾンビを殺し続け、毎晩B級映画を...ごめん。話を変えよう。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" -"ああ、まだ見たことない?奴らは歩く植物で、花の中央からは大きな、、針が突き出している。奴らは集団で移動する。ゾンビが嫌いなようだったから、ゾンビの大群を一掃するのに利用させてもらったこともある。マズいのは、この化け物がよりも追跡が上手いって点だ。奴らには知能がある...私も危うい所だったよ。逃げられた理由は、まぁ、気が散っていたからだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "人を失くしていたんだったな、すまない。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "ありきたりな愛と喪失の物語だよ。その話はしたくないんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "そう言わずにさ。一緒に行動するなら、まず君について知らないと。" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "気にしないで。話題に出して悪かった。" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "その意見は嬉しいけど、話せないよ。もう止めよう。" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "分かった。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "おい、。この話は君や私たちの協力とは関係ないだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "分かった、話すよ。大事な女がいた。そいつを失った。" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "分かった、話すよ。大事な男がいた。そいつを失った。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "何があったんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"爆弾が投下されて地表が地獄になった時、彼女は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。妻を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"爆弾が投下されて地表が地獄になった時、彼は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。夫を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "ひどい目に遭ったな。" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "自宅はダメだったのか。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" -"ああ。まったくだ。仕事場から徒歩で市街地を越えるのに2日もかかったよ。ゴミ置き場か何かの中で野宿しつつ夜中に移動して、軍隊を避ける術をすぐに学んだ。奴らはを集める磁石みたいなものだし、大抵は化け物が通る場所に駐屯していたからな。最初の内は、街中でも楽に進める場所は残っていた。市民が完全に避難して無人になった区画もいくつかあって、そこにはもいなかった。しばらく時間が経つと、他の市民も無事な家へと移動を始めたので、私は跡形もなくなった商業地区を突っ切って動くようにした。とにかく、家へ帰りたかった。その頃には戦闘も治まり始めていたから、ゾンビやほかの化け物の注意を引かないように進んでいった。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" -"家に帰る道の景色が、原形を留めた家々から焼け落ちた家の残骸へと移り変わって行くのが、最初の嫌な予感だった。景色はどんどん酷くなっていった。自宅の外には警察のバリケードがあって、何の役にも立たない2台の自動タレットが、黙ってゾンビ共に揺さぶられていた。誰かから無差別殺人を教わる前の、侵入者だけを殺してた頃のタレットだ。良い時代だったよ。できる限り壮大なやりかたで物事を台無しにする官僚主義を皆が信頼していた。それはともかく、家屋にはSWATのバンが突っ込み、半壊していた。自宅がどうなっているかなんて内心では分かっていたんだけどな。できることはやったし、もうあそこに帰ることはないだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "ここまでの道中も大変だったんだな。" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "家の中には入ったのか?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?妻は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼女に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。残った部位はしまっておいた。今後も振り返ることは決してないだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?夫は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。残った部位はしまっておいた。今後も振り返ることは決してないだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"私は郊外の古い家に一人で住んでいたんだ。妻は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼女はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"私は郊外の古い家に一人で住んでいたんだ。夫は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "それからどうなったんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" -"そうだな、状況は悪化した。酸性雨が降って、家のトラクターの1台が壊れた。まぁ、畑仕事は長らく...ええと、1年はサボっていたんだけどね、収穫も前から少なかったし。爆発事故があって、家の上をヘリが行き来していた。怖くなって、カーテンはずっと閉じて、チャンネルを変え続けた。そしてある日、チャンネルを変えることもできなくなった。どの局も、緊急放送しかやっていないんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" -"そこでようやく目が覚めたんだ。私には親しい友人もそんなにいなかったけど、街には知り合いがいた。何人かにメールを送ったけど、何日待っても返信はこないし、状況は分からなかった。だからトラックで市街地まで行こうとしたんだ。高速道路の事故車両に群がっていたにぶつかってようやく、冷静に考えることができた。市街地へ行くことはもうないだろう。運の悪いことにが農場までついてきてしまったから、慌てて逃げだして来たんだ。いつか家に帰って奴らを一掃したいね。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" -"ええと、私は田舎の村はずれに住んでいたんだ。店とガソリンスタンド、他には何もないようなところさ。街が大変なことになっているって話は聞いていたけど、ピリピリした軍隊が近所にキャンプを設置し始めるまでは実感がなかったよ。軍は村を封鎖したがっているようだったけど、村には犬のバックと私しかいなかったから、そのまま抜け出してきたんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" -"村を抜け出した私とバックは、東にある友達の農場へ向かったんだ。かわいいバックは、私たちがちょっと長い散歩に出かけるだけだと思っていたみたいだけどね。トラックで移動すれば軍の人間に見つかってしまうけど、刺し掛け小屋で野宿しながら森の中を行けば大丈夫だった。場所を転々と変えて進んでいくんだ。最初の頃は高速道路沿いを歩いていたけど、軍用トラックや避難民を満載のバスを山ほど見かけて、そこで初めての事を知ったんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "犬のバックはどうなったんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "そしてここに着いたのか。" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "そしてここに着いたのか。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" -"友達の農場には着いたんだけど、そこには既に、、捜査官が来ていたんだ。農場の出入り口は板張りされていて、正面には警察のバリケードもできていた。、そこにいたタレットが...、バックを撃った。どうにかして...助けようとしたけど...パトカーのドアを盾にしようにも、まずゾンビになった警官を殺さなきゃいけなかったからね。その後は、うん、しばらく泣いていたら、バックが生き返ったんだ。だから...!ああ、これ以上は言いたくない。分かってくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "バックは気の毒だったな。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "バックは気の毒だったな。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" -"よし分かった、まったくもって酷い話だから、ゆっくり話そう。あれは大体5年前か、私は勤めていた工場を辞めたんだ。辛い時期だったけど、何とかやっていけた。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "そうか、続けてくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "やっぱり止めた、他の話をしよう。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" -"その時私はボロい青色のトラックを持っていた。通称は老いぼれ犬。かつてはマーティー・ガンプス、いや、ラスティGってあだ名の方が呼びなれてるな、夏には奴と共に老いぼれ犬を駆ってグリーンウッド山へ行き、ホタル狩りをしたものさ。" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "ホタル狩りね。なるほど。" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "その話が私の質問と関連しているのか?" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "早く本題を話してくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" -"ラスティG、つまり私の古くからの親友であるマーティ・ガンプスの膝の上には頼もしい18ゲージが横たわっていた。18ゲージってのは奴の飼い犬の名前だ。" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "犬の18ゲージね。なるほど。" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "そろそろゾンビが出てきても良いんじゃないか。巻きで行こう。" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "黙れ、老いぼれめ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" -"もうすぐ本題に入るから、ちょっと黙っとれ。ラスティG、つまり私の古くからの親友であるマーティ・ガンプスの膝の上には頼もしい18ゲージが横たわっていた。18ゲージってのは奴の飼い犬の名前だ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" -"さて、グリーンウッド山の頂上には、あんたが生まれる前は森林警備隊の詰め所が立っておったが、1年足らずで焼け落ちてしまった。落雷のせいだと言う者もおるが、大学生のガキどもの乱痴気騒ぎが原因だということはご存知の通りだ。ラスティGと私は老いぼれ犬を停めて、その焼け跡を見に行った。焼け残った残骸は気味が悪く、中はガキどもに散々荒らされたようだった。ラスティGが18ゲージを連れてきていたのは幸運だったね。" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "そこで何を見たんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "本当に、頼むから、本題に入ってくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "頼むから、もう黙っててくれ!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" -"辛抱せい!もうすぐ終わる。グリーンウッド山の頂上には、あんたが生まれる前は森林警備隊の詰め所が立っておったが、1年足らずで焼けてしまった。落雷のせいだと言う者もおるが、大学生のガキどもの乱痴気騒ぎが原因だということはご存知の通りだ。ラスティGと私は老いぼれ犬を停めて、その焼け跡を見に行った。焼け残った建物は気味が悪く、中はガキどもに散々荒らされたようだった。ラスティGが18ゲージを連れてきていたのは幸運だったね。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" -"恐ろしいヘラジカだ!詰め所跡を住処にしていたのさ!そいつは血相を変えたラスティに近寄って来たが、ラスティにけしかけられた18ゲージが噛みついて皮に大穴をあけた。18ゲージは年寄りだから一目散に逃げ出したが、私たちはヘラジカを追いかけた。ヘラジカはジャガイモがたっぷり詰まった袋みたいにドサッと倒れた。あんたが話を聞いてくれた事が、一番の収穫だがね。" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "なるほど。" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "それで終わり?冗談だろう!" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "後生だから、頼むから、もう黙ってくれ!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" -"まぁ、要するに、爆弾が落ちてきてヘリがウロウロし始めた頃に、また詰め所跡を見に行こうとグリーンウッド山へ向かったんだ。そこを宿にしようと思っていたんだが、結局、上手くいかなかった。その後どうしたかって?ここにやってきたのさ。" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "話をしてくれてありがとう!" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "。" - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "ピカピカのバッジを手に入れたようだな!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "ふん、ただ者ではないらしいな。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "新入りだ。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "ここで何をしているんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "外の世界について何か聞いていないか?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "あなたの組織に参加する方法はあるか?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "その耳はどうした?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "何か手伝えるか?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "さようなら。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" -"ってことは、私たちは似た者同士だな。私も新入りみたいなものだ。誰でも歓迎ってわけには行かないようでね。下の階は既に満員らしい。入口近くの商人には会ったか?そいつに詳しく聞いてみるといい。" - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "はあ..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"ああ、地下には空気圧砲を持ったやつがいるんだ。金属を射出する...発射音のしない、やたら効率的な大砲みたいなものだ。連中は即席兵器の類にはこと欠いていないし、今も地下の要塞化を続けている。あの防御を打ち破れるモンスターなんてまずいないだろう。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -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 "少なくとも楽観的ではない。よくアマチュア無線をやってた仲間がいたんだが、彼女はもう死んじまった。ぶち壊しだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "楽観的でない?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"避難キャンプなんて今ごろ影も形もないだろう。街は滅茶苦茶だし、森は怪物やゾンビが目を光らせて這い回っていやがる。無線を持った生き残りはどいつもこいつも恐ろしい死にざまを記録するような気分でいるはずだ。" - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "悪いことを聞いてしまったな。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"さあね。仕事を手伝える人間なら大丈夫なんじゃないか。でも今じゃ確実なことなんて一つもないからな。人によって言うことは違う。例えばそこの商人、売り物がないなら出て行けという態度だったが...そうじゃない奴もいるようだ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." -msgstr "君と同じ、自業自得ってやつさ。このことは口外するなよ、ここの連中の中には我々のような人間を見下す者もいる。" - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "シー。ここの連中の中にはよく思っていないやつもいるんだ... 変異をな。これは事故だったんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "悪いことを尋ねてしまったな。" - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "気持ち悪いな。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"私は家を焼いて、自由商人に素材を売る者だ。いや、マジでな。住宅地の一角の焼け落ちた瓦礫の山とか、鉄筋の束が売られているのを見たなら、もしかしたらそれは私の仕事かもしれないな。お陰で安定した生活をしているよ。もし必要なら火炎瓶でも売ろうか?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "買うよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "誰が鉄筋を欲しがるんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "口のきき方を考えろ。くたばれ。" - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "くたばりやがれ!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "おお、生きてる人間じゃないか!どうだい、一緒に旅をしないか?" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "何をしているんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "取引しないか?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&武器を離す。" - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&武器を落とす。" - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "心配するな、君を傷付けるつもりはないよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "武器を捨てろ!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "立ち去れ、さもなくば死ぬ事になるぞ。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "やあ、。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "じゃあな。" - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "やあ、君か。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "よし、急に動いたりはするなよ..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "近寄るな!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "落ち着けよ。君を傷付けるつもりはないよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "ふざけるな、嫌だね。" - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "手を挙げる。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "は武器を捨てました。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "は武器を捨てました。" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "ここから立ち去れ。" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "今すぐここから立ち去らないとお前を殺すぞ。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "了解だ、行こう。" - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "その仕事について..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "それらの仕事の1つについて..." - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "どうした?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "どうでもいいね。" - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "なるほどね。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "ああ、分かったよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "いいや、興味ないね。" - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "何でもない。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "良いだろう、引き受けたよ!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "興味が無いね。" - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "大丈夫だ、問題ない。" - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "何か助言をくれないか?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "少し持ち物を分けてくれないか?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "すぐに戻ってくるよ!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "分かった、ありがとう。" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "分かった、じゃあな!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "悪かった。" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "あっそう。じゃあね。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "ああ、うん、ごめん。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "すまない。出来るだけのことはしたんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "さあ、どうぞ!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "ありがとう。" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "ありがとう、じゃあね。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "さて、話をしようか。" - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "シェルターはどうやら無事なようだね。" - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "何をすればいいんだろう?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "役立つ情報はある?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "何か手伝える事はあるか?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "一緒に旅をしないか?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "物品の取引をしようか。" - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "物資も無しに避難所を出られないよ。" - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "うーん、分からないが...とりあえずは物資と生存者を探すといいんじゃないか?" - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -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 "乗り物を手に入れるのがいいんじゃないか。何かあったとしてもすぐ逃げられるしね。" - -#: 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 "近くに農場が無いか探してみよう。街からもそれほど近くないだろうし、十分な食料もあるんじゃないかな。" - -#: 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 "街に行けば役に立つ物が十分残っているだろうが、住む場所は街から離れていた方がいいと思う。" - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "ふーん、分かった。" - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "抗生物質さえあれば..." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "さっき言ったはずだけど...またいつか誘ってくれよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "何故、君と一緒に旅をする必要があるんだい?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "分かった。抗生物質を手に入れる。" - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "ああ、そうだったね。また今度にするよ。" - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "君を護衛するよ。" - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "君に護衛してほしいんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "友達だろ、違うのか?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "言う通りにしなければ殺す。" - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "その通りだ、一緒に行くよ!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "素晴らしい!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "分かった、行こう!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "ああ、うん...そうは思ってないよ。" - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "本当に一人で行くのか?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "そうだね、絶対だ。じゃあね。" - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "いや、ただの冗談だよ。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "何だい?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "どれぐらい遠いんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "少しの間、リーダーをやるよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "どいてろ。リーダーは私だ。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "行こう。" - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "よし。君に付いて行くよ。" - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "いいね。他には..." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "よし、それじゃあ行こうか。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "分かった、分かった。" - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "絶対に嫌だね、付いて行くからな!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "よし。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "ここで見張っているよ。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "一緒に来てくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "またな。" - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "申し訳ないが、本当に嫌なんだ..." +msgid "I really don't feel comfortable doing so..." +msgstr "申し訳ないが、本当に嫌なんだ..." #: lang/json/talk_topic_from_json.py msgid "I'll give you some space." @@ -103418,7 +103381,7 @@ msgstr "何が欲しいのか知らんが他を当たりな。" #: lang/json/talk_topic_from_json.py msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "お前、何事にも屈しない強さに自信があるなら新人採用の担当を探してみたらどうだ。" +msgstr "お前、自分の能力に自信があるなら、新人採用の担当を探してみたらどうだ。" #: lang/json/talk_topic_from_json.py msgid "Hey miss, don't you think it would be safer if you stuck with me?" @@ -103660,6 +103623,280 @@ msgid "" msgstr "" "仲間に加わりたいなら募集人を通せ。まずは、ここに時々顔を出して出来る仕事が無いか私に聞いてくれ。任務を請け負って達成していけば、募集人に実力を知らしめることができるだろう。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "頼む、助けてくれ。食料が必要なんだ。執行官なんだろう?手伝ってもらえないか?" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "頼む、助けてくれ。食料が必要なんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "近寄るな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" +"中に入れてもらえないんだ。もう満員だって言われてさ。ここを汚さず大騒ぎしないなら、寝泊りしていいとは言われたんだ。でも、ものすごくお腹が空いてるんだよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "どうして他の場所に移らないんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "どうして食べ物を探しに行かないんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "大変動の前は何をしていたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "悪いが、助けにはなれない。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" +"移るってどこへ?野外で戦うなんて無理だ。体調も最悪だし、有用な技能もまったく持ってないし、何よりと暴力が怖い。どうやって安全な場所を見つけろって言うんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" +"他の場所へ行く?自殺行為だ!有能な奴らは出掛けていって誰も帰ってこないし、私には自分の住処もない。ここで物乞いを続けながら、センターで誰かが死んで空き部屋ができるのを待っていた方がましさ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" +"私は高校の数学教師だ。いい職場だったよ。仕事を愛していた。滑稽なことに、大変動後の世界には全く役に立たいけどね。つまり、今後再び教師が必要になる時期は来るだろうけど、現状では、食べ物と避難場所と服が大事ってことさ。" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "段ボールの事は話したっけ?君、段ボール持ってる?" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "段ボール?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "どうしてこんな所に座っているんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "その恐竜の着ぐるみは何かの冗談か?" + +#: lang/json/talk_topic_from_json.py +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 "段ボールで家を建てているんだ。眠りの精には好かれていないようだが、私も奴に言ってやったんだ、失せろってね。" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "どうして段ボールなんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "もうそろそろ行かないと..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" +"たくさん手に入るからな。それにゾンビ除けになる。段ボールのお陰で今まで無事だったんだ。ゾンビの核から放射されるベータ線を段ボールが反射してくれる。そうやってダメージを防いでいるんだ。" + +#: lang/json/talk_topic_from_json.py +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 "あの臆病者どもは私を恐れているんだ。私を拠点内に入れようとしない。だから私は自分で家を建てる。もちろん奴らは絶対に中に入れてやらない。" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "家を建てている?" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "いいえ。" + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "段ボールの話は何だっけ?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "あんなろくでなし共を気にすることはない。" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "調子はどう?" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "そうだな...さようなら。" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "奴らは「持ち過ぎ」なんだ。共有の精神が欠けている。" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "どうしてこんなところに住んでいるんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "もう行くよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" +"彼らの助けがなくたって、ここに座っているのが一番安全さ。ゴミを放置して衛生問題を引き起こさない限りは、入口の周りに座っていても追い出されないんだ。ここでゆっくりと飢えていく私を放っておいてくれるなんて、彼らは何と親切で寛大な人々なんだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "よぉ、君は適者生存って言葉が大好きなのか?" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "どうしてそんな事を聞くんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "悪いけど、興味ないね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "私は自分が適者じゃないと分かっているから、餓死するまでここでじっとしてるんだ。貧しく病弱な人間を助けてもらえないか?" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "何か困っているのか?" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "病気に罹っているから中に入れてもらえないのか?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "体調が悪いのに、どうやってここまで来たんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "中に入れてもらえないにしても、どうしてここで寝泊りしているんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" +"喘息、糖尿病、関節炎。全部に困ってる!糖尿病は定期的な食事ができなくなって以来、それほど問題にはなっていない。いや、問題になっていないと思いたい。チョコバーを食べるのは我慢できていたけれど、大体2か月に一回は病院で血液検査をしなければいけないのが面倒だったな。" + +#: lang/json/talk_topic_from_json.py +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 "自分の役割を果たさない奴は中に入れてもらえないよ。私は皆の足を引っ張るし病弱だから、ここにいるんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" +"少し前に、何人かで一緒にここまで来たんだ。他の人達は若いし体格も良かったから中に入れてもらえた。入れたのはそいつらが最後だったな。私は追い返されたよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" +"十分運が良いよ。屋根も明かりもあるし、暖も取れる。もしゾンビが現れても警備の人が助けてくれる。そんなに悪くないだろ。もし外へ出たら、屋根も明かりもない状態で食べ物を探さなきゃならない...使い古しの釘みたいにボロボロになってるだろうね。あるいは、動く死人の仲間入りかな。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "ちょっと、そこの君。" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "こんな所で何をしている?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "思わず目についたが、ずいぶん暖かそうな毛皮だな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "ここに住んでいるんだよ。楽しいお友達の集まりに参加できないくらい変異してしまったが、視線で殺すレベルには達していないようだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "どうしてここに住んでいるんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "君は十分な能力を持っているようだ。一緒に行かないか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" +"自分で家を建てるよりは安全だろう。必要になったら出掛けて食料を探すさ。ここを汚さず使い、ゾンビが来た時に自分の役割を果たせる限り、ここに臨時の護衛として置いてもらえるんだ。だが、他の居座り組の所に食料を持っていったら良い顔はされなかった...きっと徐々に飢えさせるつもりだ。全員の腹を十分満たすことはできないが、せめて体調が悪くならないよう食料を持ち帰ってきていた。結局、私を追い出す言い訳を探しているんだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" +"気味が悪いだろ?ムダ毛みたいなものだ。大変動からしばらく経って、至る所から生え始めた。原因は分からない。嫌だからと言って怒っても仕方がない、まぁ、嫌だけど。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" +"そうだな、親切な申し出も、全身から生えてる毛についてしつこく尋ねたりしなかったことも嬉しく思ってるよ。でも、私はこの騒がしい居座り組達に対して、ある種の責任を感じるようになってしまったんだ。私が物資を渡せる唯一の人間である限り、ここを去ろうとは思わない。" + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "御用ですか? 執行官。" @@ -103913,6 +104150,10 @@ msgid "" "time..." msgstr "あんたに何が出来る。出来ることは自分で試したよ。ほっといてくれ..." +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "分かった。" + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -104224,7 +104465,7 @@ msgid "" " have to turn people away, but I like the assignment for the chance to get " "news about the outside world." msgstr "" -"所謂連邦政府の生き残り...いわゆるオールドガードから依頼を受けて、訪問者の身体検査をやっているんだ。ここ最近は疑心暗鬼になって仕方がない。やって来た人を追い返すのは心が痛むが、外の世界について話を聞く機会があるのは嬉しいね。" +"連邦政府の生き残り...いわゆるオールドガードから依頼を受けて、訪問者の身体検査をやっているんだ。ここ最近は疑心暗鬼になって仕方がない。やって来た人を追い返すのは心が痛むが、外の世界について話を聞く機会があるのは嬉しいね。" #: lang/json/talk_topic_from_json.py msgid "What kind of news?" @@ -104316,6 +104557,14 @@ msgstr "NPC特質のテスト用返答です。" msgid "This is a npc short trait test response." msgstr "簡単なNPC特質のテスト用返答です。" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "特質フラグのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "NPC特質フラグのテスト用返答です。" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "NPCの状態のテスト用返答です。" @@ -104360,6 +104609,66 @@ msgstr "仲間NPC1のテスト用返答です。" msgid "This an error! npc allies 2 test response." msgstr "仲間NPC2のテスト用返答です。" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "春季のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "大変動から30日後のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "夏季のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "大変動から120日後のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "秋季のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "大変動から210日後のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "冬季のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "大変動から300日後のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "日中のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "夜間のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "スイッチ1のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "スイッチ2のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "スイッチデフォルト1のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "スイッチデフォルト2のテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "その他の基本的なテスト用返答です。" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "OR特質のテスト用返答です。" @@ -104381,170 +104690,844 @@ msgid "This is a npc_add_effect - infection response" msgstr "npc_add_effect - infectionの返答です。" #: lang/json/talk_topic_from_json.py -msgid "This is a u_add_trait - FED MARSHALL response" -msgstr "u_add_trait - FED MARSHALLのテスト用返答です。" +msgid "This is a u_add_trait - FED MARSHALL response" +msgstr "u_add_trait - FED MARSHALLのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc_add_trait - FED MARSHALL response" +msgstr "npc_add_trait - FED MARSHALLの返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_buy_item bottle of beer response" +msgstr "u_buy_item bottle of beerのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_buy_item plastic bottle response" +msgstr "u_buy_item plastic bottleの返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_spend_cash response" +msgstr "u_spend_cashの返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a multi-effect response" +msgstr "multi-effectの返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "u_sell_item plastic bottleの返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "u_has_item beerのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "u_has_item bottle_glassのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "u_has_items beerのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "テスト失敗!u_has_itemsのテスト用返答です。" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before this started, I had a crappy job flipping burgers at Sambal's Grille." +" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " +"Last time I saw them alive, I just came home from school, grabbed a snack " +"and went to work. I don't think I even told my mom I loved her, and I was " +"pissed at my dad for some shit that really doesn't matter. Didn't " +"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 "" +"こんなことが起きる前は、サンバルズ・グリルって店でハンバーガーを作るつまらないバイトをしていたんだ。職を失ったけど、大した問題じゃない。両親を失ったことの方が重大だ。生きている両親を最後に見たのは、学校から帰ってきて、おやつを持ってバイトに向かう時だ。母にわざわざ愛してるなんて言わなかったし、くだらない事が原因で父はクソだと思ってた。その時はどうでもいいと思ってたけど、今はそうじゃない。バイト中に異変が起きた...軍が街にやってきて、避難警報が鳴り響いたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "So, did you evacuate?" +msgstr "避難したのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't evacuate. I went home... saw some freaky shit on the way, but at " +"the time I just thought it was riots or drugs. By the time I got there, my " +"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 "" +"避難しなかったよ。帰宅することにした...途中で頭のおかしな連中を見かけたけど、その時は暴徒か麻薬中毒者だと思っていたんだ。家に帰ったら、両親はいなくなっていた。何の知らせもなかった。家の中は滅茶苦茶で、誰かが暴れ回ったみたいに物が散らばっていて、床には少し血が残っていた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I haven't found them yet. Whenever I see a , a little part of me is" +" afraid it's going to be one of them. But then, maybe not. Maybe they " +"were evacuated, maybe they fought and tried to wait for me but the military " +"took them anyway? I've heard that sort of thing happened. I don't know if " +"I'll ever know." +msgstr "" +"両親は今も見つかっていない。を見る度に、両親が紛れているんじゃないかって、不安になるんだ。でも、そんなことは無い筈だ。私を置いて避難できなかったから家で待とうとしたけど、軍に無理やり連れていかれたって可能性もあるだろ?似たような事があったって話も聞いた。本当のところは分からないけどね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" +"よし分かった、まったくもって酷い話だから、ゆっくり話そう。あれは大体5年前か、私は勤めていた工場を辞めたんだ。辛い時期だったけど、何とかやっていけた。" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "そうか、続けてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "やっぱり止めた、他の話をしよう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" +"その時私はボロい青色のトラックを持っていた。通称は老いぼれ犬。かつてはマーティー・ガンプス、いや、ラスティGってあだ名の方が呼びなれてるな、夏には奴と共に老いぼれ犬を駆ってグリーンウッド山へ行き、ホタル狩りをしたものさ。" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "ホタル狩りね。なるほど。" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "その話が私の質問と関連しているのか?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "早く本題を話してくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" +"ラスティG、つまり私の古くからの親友であるマーティ・ガンプスの膝の上には頼もしい18ゲージが横たわっていた。18ゲージってのは奴の飼い犬の名前だ。" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "犬の18ゲージね。なるほど。" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "そろそろゾンビが出てきても良いんじゃないか。巻きで行こう。" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "黙れ、老いぼれめ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +"もうすぐ本題に入るから、ちょっと黙っとれ。ラスティG、つまり私の古くからの親友であるマーティ・ガンプスの膝の上には頼もしい18ゲージが横たわっていた。18ゲージってのは奴の飼い犬の名前だ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" +"さて、グリーンウッド山の頂上には、あんたが生まれる前は森林警備隊の詰め所が立っておったが、1年足らずで焼け落ちてしまった。落雷のせいだと言う者もおるが、大学生のガキどもの乱痴気騒ぎが原因だということはご存知の通りだ。ラスティGと私は老いぼれ犬を停めて、その焼け跡を見に行った。焼け残った残骸は気味が悪く、中はガキどもに散々荒らされたようだった。ラスティGが18ゲージを連れてきていたのは幸運だったね。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "そこで何を見たんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "本当に、頼むから、本題に入ってくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "頼むから、もう黙っててくれ!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" +"辛抱せい!もうすぐ終わる。グリーンウッド山の頂上には、あんたが生まれる前は森林警備隊の詰め所が立っておったが、1年足らずで焼けてしまった。落雷のせいだと言う者もおるが、大学生のガキどもの乱痴気騒ぎが原因だということはご存知の通りだ。ラスティGと私は老いぼれ犬を停めて、その焼け跡を見に行った。焼け残った建物は気味が悪く、中はガキどもに散々荒らされたようだった。ラスティGが18ゲージを連れてきていたのは幸運だったね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" +"恐ろしいヘラジカだ!詰め所跡を住処にしていたのさ!そいつは血相を変えたラスティに近寄って来たが、ラスティにけしかけられた18ゲージが噛みついて皮に大穴をあけた。18ゲージは年寄りだから一目散に逃げ出したが、私たちはヘラジカを追いかけた。ヘラジカはジャガイモがたっぷり詰まった袋みたいにドサッと倒れた。あんたが話を聞いてくれた事が、一番の収穫だがね。" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "なるほど。" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "それで終わり?冗談だろう!" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "後生だから、頼むから、もう黙ってくれ!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" +"まぁ、要するに、爆弾が落ちてきてヘリがウロウロし始めた頃に、また詰め所跡を見に行こうとグリーンウッド山へ向かったんだ。そこを宿にしようと思っていたんだが、結局、上手くいかなかった。その後どうしたかって?ここにやってきたのさ。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "話をしてくれてありがとう!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"、何も分からない。、見当もつかないよ。生き延びるためにできることをやってるだけさ。世界は滅んだが、少なくとも今までは生きてこられた。" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "ふぅん。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a cop. Small town sheriff. We got orders without even really knowing" +" what they meant. At some point one of the g-men on the phone told me it " +"was a Chinese attack, something in the water supply... I don't know if I " +"believe it now, but at the time it was the best explanation. At first it " +"was weird, a few people - - fighting like rabid animals. Then it " +"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 "" +"私は警官だった。小さな町の保安監さ。警官ってのは意味の分からない通報にもちゃんと対応する。ある日、連邦捜査官が電話で、中国が水道水の中に何かを入れる攻撃をしたとか言いだした...正直、今はそれを信じていいものか分かりかねるが、当時はそれが一番納得できる説明だった。最初の異変は、何人かの市民、いわゆるが、狂犬病に罹った動物みたいに暴れ出した。その後事態は悪化した。私は鎮静化を図ったが、力になってくれたのは暴動に対処していた保安官代理だけだった。そうして事態は最悪の方向に進んでいった。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "何があったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A big-ass hole opened up right in the middle of town, and a " +"crawled out, right in front of the church. We unloaded into it, but bullets" +" just bounced off. Got some civilians in the crossfire. It started just " +"devouring people like potato chips into a gullet that looked like a rotting " +"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " +"have been the only person to escape. I haven't been able to even look at my" +" badge since then." +msgstr "" +"大きな穴が街のど真ん中に開いて、教会の目の前にが這い出てきたんだ。ありったけの銃弾を叩き込んだが、びくともしない。市民の何人かは銃撃戦に巻き込まれてしまった。奴らはまるでポテトチップスを流し込んで噛み砕くように、人間をむさぼり食い始めた...私はビビッて逃げ出した。無事に逃げ出せたのは私しかいなかったようだ。それ以来、バッジを見ることすら避けるようになってしまったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was SWAT. By all rights I should be dead. We were called to control " +"\"riots\", which we all know were the first hordes. Fat lot of " +"good we were. Pretty sure we killed more civilians. Even among my crew, " +"morale was piss poor and we were shooting wild. Then something hit us, " +"something big. Might have been a bomb, I really don't remember. I woke up " +"pinned underneath the SWAT van. I couldn't see anything... but I could " +"hear it, . I could hear everything. I spent hours, maybe days " +"under that van, not even trying to get out." +msgstr "" +"SWATの隊員だった。本来なら死んでいるはずなのにな。私は「暴徒」を鎮圧するために召集されたんだ。それの正体は皆が知っての通り、最初に現れたの群れさ。私たちは何の役にも立たなかった。大勢の民間人を殺したことは確かだ。私たちの班も士気はどん底で、銃を乱れ撃ちしていた。その時、何か大きな衝撃が私たちを襲ったんだ。爆弾だったのかもしれないが、はっきりとは思い出せない。気付いたらSWATバンの下敷きになっていた。何も見えなかったが...聴覚ははっきりしていた、!それから何時間、いや、何日間もバンの下から出ようともせずじっとしていたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "But you did get out." +msgstr "でも今は抜け出せているじゃないか。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." +msgstr "" +"最終的にはそうだな。周囲は何時間も静かだった。私は喉がカラカラで、怪我もしていたし、何より怖かった。発狂しないで済んだのは日々の訓練のお陰だろうな。私は何とか抜け出して、怪我の程度を見てみようと思ったんだ。簡単だったよ。バンの側面は裂けて外に通じていたし、私を圧し潰していた瓦礫もそこまで大きくはないようだったからね。バンの残骸がテントのように覆いかぶさってくれていたんだ。怪我もそこまで酷くはなかった。私はできる限り装備をたくさん持って、抜け出したんだ。辺りは夜になっていて、街の外からは戦闘しているような音がしたから、中心部に向かった。何ブロックか歩くと、と遭遇したから...逃げ出した。逃げて逃げて逃げ続けて、ここに辿り付いたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." +msgstr "" +"私はただ留置所でじっとしてただけさ。前日の夜、仮出所中にやらかした罪で連れて来られてね。畜生。緊急事態だとかで警官たちが皆騒がしくなってきて、装備を持って出かけて行ったよ。後に残ったのは警備用のロボットだけ。私は独房に置いてきぼりさ。食料はない、水も少しだけしかない状態で2日間も缶詰だ。その後バカでかいゾンビがやってきて、ロボットと戦い始めた。どうしたものかと思案していたが、奴らが独房の扉を壊してくれたので脱出できたよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Lucky you. How did you get away?" +msgstr "運がよかったな。どうやって逃げたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." +msgstr "" +"通りは、、酷い混乱だったよ。一番混乱してたのは私だけどな。あんたでは私より長生きできないだろうし、勝てない戦いを避ける方法も分からないだろう。一番の気がかりはゾンビや化け物じゃない。クソったれ警官ロボだ。奴らは法律違反を記録していて、私を逮捕しようとするんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." +msgstr "" +"運の良い状況でに遭遇したんだ。私は町はずれの倉庫に潜伏していた。本当に場所で、仲間はデカい麻薬のガサ入れに遭って逮捕されたが、私はうまく逃げ出した。私に売られたと思った仲間が復讐に来るんじゃないかってビクビクしてたが、今はもうその心配もないな。" + +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "わぁ、運が良かったな。どうやっての事を知ったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" +"倉庫の中ではインターネットもできたから、YouTubeライブでいかれた映像を見て死ぬほどビビったよ。ありがたいことに食料の缶詰は山ほどあったから、倉庫の中ではのんびりと過ごせた。仲間たちの機嫌を取る方法を思いつくまでは、ずっと籠っていようとも考えていたんだけどな。" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "何かが起きて籠れなくなったんだな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" +"ああ。だ。目が赤く輝いてるデカくて真っ黒いヤツが群れを引き連れてやって来た。マジな話だ。どうして倉庫の出入り口に集まってたのか知らないが、トイレをしようと外へ出た時に鉢合わせたんだ。何体かは撃ち殺したが、そのリーダーみたいなヤツが手を動かすと生き返ってしまう。だから逃げたよ。冷静になって考えてみると悪くない判断だと思うが、何の物資も持たずに大慌てで逃げ出したんだ。それから君に会うまでは、その辺に落ちてる物を拾って何とか生き延びた。" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "ゾンビのリーダーについて他に情報はある?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" +"そうだな、思うに、ヤツは周囲の死体を蘇らせる能力を持っていたみたいだ。なんとも恐ろしいね。でもヤツ自身を殺せば倒し切れそうだ。後は、逃げる途中でゾンビを倒して、死体を棒で潰したことがあった。するとヤツは潰れた死体を蘇らせようとして、失敗したんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" +"OK、変だと思うだろうけど、私は、こうなることを知っていたんだ。以前からね。この話は知人の霊能者にしか打ち明けていないが、彼女も既に死んでしまっただろう。世界が終わる一週間前、私は見た夢について、その霊能者に話したんだ。これは真面目な話だよ!" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "どんな夢を見たんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "そうだな、ええと、最初の夢は三週間ぐらい同じものだった。手に棒を持って森の中を逃げ回り、巨大なクモと戦う夢だ。本当だって!毎晩見たんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "いや、そんなに珍しい夢じゃないだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "わぁ、それはすごい。の事を夢で見たなんて。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" +"待て、これはだな、そう、始まりに過ぎない。大変動が起きる一週間前、私はクモの夢の途中で起きてトイレに行き、また眠ったんだ。ちょっとビビッてたからね?その後、別の夢を見たんだ。そう、上司が死んで、その死体が蘇る夢さ!それから数日後、職場を訪ねてきたその上司の夫が心臓麻痺で倒れたんだけど、次の日には生き返ったって話を聞いたんだ!人はちょっと違うけど、私が見た夢と全く同じだろ!" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "奇妙な話だな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" +"そうだろう!?他にもあるんだ!そう、それは大変動が起きる一週間前、私はクモの夢の途中で起きてトイレに行き、また眠ったんだ。ちょっとビビッてたからね?その後、別の夢を見たんだ。そう、上司が死んで、その死体が蘇る夢さ!それから数日後、職場を訪ねてきたその上司の夫が心臓麻痺で倒れたんだけど、次の日には生き返ったって話を聞いたんだ!人はちょっと違うけど、私が見た夢と全く同じだろ!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" +"そうだろう!?ともかく、私は今も奇妙な夢を見るんだけど、これはもう未来のことじゃない。その、世界が滅んでからも、不気味な夢をたくさん見る。ええと、二晩連続で、地球を取り囲む黒い星々の夢を見たんだ。その星々はほんの一瞬、無数の小さな眼球のように地球を見つめる。次の瞬間には瞬きして目を逸らす。それ以来、夢に出てくる地球は、周囲の星々と同じ黒い星になってしまった。その光景が気になって、狂ってしまいそうになるんだ。これが一番嫌な夢。他にも色々見るよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "奇妙な夢についてもっと聞かせてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"ああ、そうだな、時々ゾンビになった夢を見るんだ。夢の中にいるときは自分の状況を理解できない。自分の事を正常な人だと思っていて、ゾンビを正常な人として扱い、正常な人達をゾンビとして扱うんだ。目を覚ますとそれが夢だったって気付く。だって、もし夢の通りなら、正常な人がもっと沢山いるはずだからね。周りにいるのはいつもゾンビ。今や誰もがゾンビだ。" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "今の状況では誰もがそんな夢を見るだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" +"ああ、そうだろうね。時々こんな夢も見る。ただの埃になって、広く冷たい銀河にポツンと浮かんでいる夢だ。その夢を見ると思い出す。お世話になってた麻薬売人のフィルシー・ダンが、デカいカニの化け物に食われてしまったことをね。" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "かわいそうなフィルシー・ダン。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "避難所にたどり着いたけど、元いた場所の方がマシってぐらい、、ひどい所だった。それでまた逃げ出して、逃げ続けているんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "どうやって生き延びたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" +"最初は、森の中でルバーブや野草を探して過ごしていたよ。でも勇気を出して、死んだ動物の解体もやり始めたんだ。きっとヤケクソな気分だったんだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" +"暴動で殺されなかった人たちと似たようなものだ。私は避難所で死にかけたんだ、。最初はそこで他にいた3人としばらく過ごしていた。その中の一人は、今起きている事についても詳しく知っていて、まるでよくある映画に出てくる主人公みたいな男だった。だが実際は、映画の主人公ではなかった。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "君の仲間に何があったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" +"我らの勇敢なリーダーが、噛まれてしまった他のメンバーを殺そうと決めたのが、ケチのつき始めだった。もう一人のメンバーは噛まれた奴の夫で、かなり反対していた。私もあまり乗り気じゃなかった。この時点で対応を誤っていたんだ。それで、リーダーは自ら女を殺した。すると夫が、やられたらやり返せとばかりにバカなリーダーを殺した。その後女が生き返ったので私が殺し、リーダーの死体も念のため潰した。その騒動の最中に、運悪く夫が噛まれた。混乱して上手く反撃できなかったんだろう、仕方のないことさ。一緒に逃げ出したが、彼はもうダメだった。明らかに手遅れだった...傷口から感染症にかかり、最終的にに襲われて殺された。そういう訳で、私は一人になった。" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "一体何が起きたんだろう?他の場所でもそいつらを見かけた?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"何も特別なことはしていないし、どうして生き残れたのか分からないよ。何人かで一緒に避難したが、FEMAキャンプへ着いた時には手遅れだった。死人に襲われ...私だけが生還した。一度も振り返らず逃げた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" +"たくさんの避難民と一緒に避難センター行きのバスに乗っていたら、途中で今までに見たこともないような巨大なゾンビと衝突したんだ。何も特別なことはしていないが、化け物は他の乗客を狙っていたから、何とか逃げ出せたよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" +"自宅のシェルターがイヌと同じくらい大きなハチの群れに襲われたんだ。木材で殴って数匹倒したけど、あまりに素早くて、これはすぐに逃げ出さないと手遅れになると思ったんだ。そこから先はご存知の通りさ。" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "大きなハチ?詳しく教えてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "ハチは普通そんなに攻撃的じゃないような..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" +"ああ、君も見たことあるんじゃないか、あのハチはどこにでもいるからな。古いSF映画に出てくるようなヤツだ。シェルターにいた仲間が刺されたんだ、本当の話さ。ハチの毒が永久に残るかどうかはちゃんと見ていないから分からない。、ビビって逃げ出して来たんだから仕方ないだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "ハチは普通そんなに攻撃的じゃない...もしかしてスズメバチ?" + +#: 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 "ええと、、悪いけど立ち止まって殺人バチをのんびり観察する暇はなかったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "悪かった。ハチについて詳しく教えてもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "それもそうだな。悪かったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" +"ええと、携帯電話の警報が鳴りやんで、避難シェルターへ行けってメッセージが流れたから、その通りにしたんだ。避難シェルターはものすごく混雑していたから、皆は避難センターへ向かうバスを待っていたけど、いくら待ってもバスはこなかった。その後はもう分かるだろう。パニック状態になって、喧嘩が起きた。それからどうなったのかはよく分からない。私はシェルターのロッカーから荷物を持てるだけ持って森へ逃げたんだ。数日後に戻ったら、もぬけの殻だったよ。他の人がどうなったかなんて、想像もつかないな。" + +#: 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 "難しい質問だな。簡単に言うと、世間一般で言う安全って奴を求めてFEMAキャンプへ行ったんだ。それで、命からがら逃げだして来たってわけ。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "FEMAキャンプについて詳しく教えてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "どうやって逃げ出したんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" +"恐ろしかったよ。私たちは元々はスクールバスだった車に乗せられて避難した。30人くらいだったかな。バス内ですぐに問題が発生した。乗客の何人かは怪我をしていたんだが、B級映画中毒の奴らが「噛まれた」人は「ゾンビ化する」なんて言い出したんだ。馬鹿げた話だろ?私も今まで何十回と噛まれたけど、最悪でも重い感染症にかかったことしかない。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "その後どうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" +"そいつが騒ぎ始めた。皆はもうパニック状態さ。武装した警官みたいな奴が避難バスをまとめていたが、あんなのはライフルを持っただけのガキさ。そのガキが事態を収拾しようとしたが、ほとんど役に立ってなかった。「感染者を殺す」派の奴は、、発狂しかけていて、腕を失くした婆ちゃんが口から泡を吹き始めたらすかさず飛び掛かれるよう身構えていた。キャンプに到着した時点で、過激派がまた騒ぎ始めた。でもそう上手くは行かなかった。重武装した何人かの兵士に引きずられてどこかへ連行され、それ以降見かけることはなかった。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" +"混沌とした所だよ。数時間しか滞在していないけどな。近づけないよう隔離された区画があって、そこで大きな掘削機が大きな穴を掘っているんだ。それで、こっそり近寄って穴を覗いてみた。穴の中には死体が山積みになってた。死体の中には動き出して穴から抜け出そうとするものもあったけど、上からは土がどんどん注がれる。あのクソみたいな光景は、今も目に焼き付いて離れない。それで、こんな場所は出て行くべきだって思った。運の良いことに、その翌朝、キャンプは今まで見たことも無いような巨大な化け物に襲われたんだ。警備隊は忙しそうにしていたけど、私は一晩で集めた物資をもって、すぐに逃げ出したよ。何人かは私に続いて逃げようとしたけど、おそらく私が唯一の生き残りだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "その話はまた今度な。あまり思い出したくないんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "悪かった。FEMAキャンプについて詳しく教えてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "悪いことを聞いてしまったな。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "悪いことを聞いてしまったな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." +msgstr "" +"私はこの辺の出身じゃない...アクセントで分かるだろうが、イギリスから来たんだ。ダートマスで、博士号を取るために研究をしていた。に足止めされた時は、会議のためにMITへ向かう途中だった。私は道沿いにあったノミだらけの小さなモーテルに滞在していたんだ。どんな朝食が出てきても食べてやるって気分で起きてきたら、太ったモーテルの主人が血まみれで自分のデスクに座っている。てっきり寝ているだけかと思ったんだけど、彼の目が...ああ、ゾンビの目がどんなものかは知っているだろ。こっちに突進してきたものだから、考える間もなく体が反応した。持っていたタブレットPCで彼の頭をぶん殴ったんだ。" + +#: 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 "以前と何も変わらない。死者が歩き始めてからも準備を整え、死者を土に還しているよ。" #: lang/json/talk_topic_from_json.py -msgid "This is a npc_add_trait - FED MARSHALL response" -msgstr "npc_add_trait - FED MARSHALLの返答です。" +msgid "How did that go?" +msgstr "上手くいったのか?" #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item bottle of beer response" -msgstr "u_buy_item bottle of beerのテスト用返答です。" +msgid "Cool. " +msgstr "すごいな。" #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item plastic bottle response" -msgstr "u_buy_item plastic bottleの返答です。" +msgid "Cool. " +msgstr "すごいな。" #: lang/json/talk_topic_from_json.py -msgid "This is a u_spend_cash response" -msgstr "u_spend_cashの返答です。" +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" +"大体は殺した。が1匹いても簡単に排除できるが、10匹は多すぎるし、100匹いれば死の危険もある。窮地に陥って、危うく身体から内臓が飛び出しかけたこともあった。古びたモーテルに潜伏して傷を癒しながら、次にどうすべきかを考えていた。そして答えを見つけたんだ。" #: lang/json/talk_topic_from_json.py -msgid "This is a multi-effect response" -msgstr "multi-effectの返答です。" +msgid "Figured what out?" +msgstr "答えとは?" #: lang/json/talk_topic_from_json.py -msgid "" -"Before this started, I had a crappy job flipping burgers at Sambal's Grille." -" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " -"Last time I saw them alive, I just came home from school, grabbed a snack " -"and went to work. I don't think I even told my mom I loved her, and I was " -"pissed at my dad for some shit that really doesn't matter. Didn't " -"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 "" -"こんなことが起きる前は、サンバルズ・グリルって店でハンバーガーを作るつまらないバイトをしていたんだ。職を失ったけど、大した問題じゃない。両親を失ったことの方が重大だ。生きている両親を最後に見たのは、学校から帰ってきて、おやつを持ってバイトに向かう時だ。母にわざわざ愛してるなんて言わなかったし、くだらない事が原因で父はクソだと思ってた。その時はどうでもいいと思ってたけど、今はそうじゃない。バイト中に異変が起きた...軍が街にやってきて、避難警報が鳴り響いたんだ。" +msgid "Never mind. " +msgstr "ふぅん。" #: lang/json/talk_topic_from_json.py -msgid "So, did you evacuate?" -msgstr "避難したのか?" +msgid "Never mind. " +msgstr "ふぅん。" #: lang/json/talk_topic_from_json.py msgid "" -"I didn't evacuate. I went home... saw some freaky shit on the way, but at " -"the time I just thought it was riots or drugs. By the time I got there, my " -"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." +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." msgstr "" -"避難しなかったよ。帰宅することにした...途中で頭のおかしな連中を見かけたけど、その時は暴徒か麻薬中毒者だと思っていたんだ。家に帰ったら、両親はいなくなっていた。何の知らせもなかった。家の中は滅茶苦茶で、誰かが暴れ回ったみたいに物が散らばっていて、床には少し血が残っていた。" +"答えはこれだ。ゾンビを殺すことこそ、私が生まれてきた理由なんだ。通りで化け物の頭を潰しながら、無事に事が運ぶよう祈ったことは?私は一度もない。生存。それが重要だ。だから、立ち直ってからは覚悟を決めてゾンビ殺しを再開した。もう1000匹近く殺しているが、一向に飽きないよ。" #: lang/json/talk_topic_from_json.py -msgid "" -"I haven't found them yet. Whenever I see a , a little part of me is" -" afraid it's going to be one of them. But then, maybe not. Maybe they " -"were evacuated, maybe they fought and tried to wait for me but the military " -"took them anyway? I've heard that sort of thing happened. I don't know if " -"I'll ever know." -msgstr "" -"両親は今も見つかっていない。を見る度に、両親が紛れているんじゃないかって、不安になるんだ。でも、そんなことは無い筈だ。私を置いて避難できなかったから家で待とうとしたけど、軍に無理やり連れていかれたって可能性もあるだろ?似たような事があったって話も聞いた。本当のところは分からないけどね。" +msgid "It's good you found your calling. " +msgstr "天職が見つかって良かったな。" #: lang/json/talk_topic_from_json.py -msgid "" -"I was a cop. Small town sheriff. We got orders without even really knowing" -" what they meant. At some point one of the g-men on the phone told me it " -"was a Chinese attack, something in the water supply... I don't know if I " -"believe it now, but at the time it was the best explanation. At first it " -"was weird, a few people - - fighting like rabid animals. Then it " -"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 "" -"私は警官だった。小さな町の保安監さ。警官ってのは意味の分からない通報にもちゃんと対応する。ある日、連邦捜査官が電話で、中国が水道水の中に何かを入れる攻撃をしたとか言いだした...正直、今はそれを信じていいものか分かりかねるが、当時はそれが一番納得できる説明だった。最初の異変は、何人かの市民、いわゆるが、狂犬病に罹った動物みたいに暴れ出した。その後事態は悪化した。私は鎮静化を図ったが、力になってくれたのは暴動に対処していた保安官代理だけだった。そうして事態は最悪の方向に進んでいった。" +msgid "It's good you found your calling. " +msgstr "天職が見つかって良かったな。" #: lang/json/talk_topic_from_json.py msgid "" -"A big-ass hole opened up right in the middle of town, and a " -"crawled out, right in front of the church. We unloaded into it, but bullets" -" just bounced off. Got some civilians in the crossfire. It started just " -"devouring people like potato chips into a gullet that looked like a rotting " -"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " -"have been the only person to escape. I haven't been able to even look at my" -" badge since then." +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" -"大きな穴が街のど真ん中に開いて、教会の目の前にが這い出てきたんだ。ありったけの銃弾を叩き込んだが、びくともしない。市民の何人かは銃撃戦に巻き込まれてしまった。奴らはまるでポテトチップスを流し込んで噛み砕くように、人間をむさぼり食い始めた...私はビビッて逃げ出した。無事に逃げ出せたのは私しかいなかったようだ。それ以来、バッジを見ることすら避けるようになってしまったよ。" +"ああ、分かりきった事だろう。皆なんやかんやあって、仕事や生活をして、最後には死ぬ。やれやれ。君には率直な意見を話しておこう。私はこれまでの世界より今の世界が好きだ。生きるために毎日戦うんだろう?これほど生きているって実感できたことはないね。化け物どもを何百体も殺したよ。遅かれ早かれそいつらに殺されることになるだろうけど、何か本当に大事なことを理解して死ねるんだろうな。" #: lang/json/talk_topic_from_json.py msgid "" -"I was SWAT. By all rights I should be dead. We were called to control " -"\"riots\", which we all know were the first hordes. Fat lot of " -"good we were. Pretty sure we killed more civilians. Even among my crew, " -"morale was piss poor and we were shooting wild. Then something hit us, " -"something big. Might have been a bomb, I really don't remember. I woke up " -"pinned underneath the SWAT van. I couldn't see anything... but I could " -"hear it, . I could hear everything. I spent hours, maybe days " -"under that van, not even trying to get out." +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" -"SWATの隊員だった。本来なら死んでいるはずなのにな。私は「暴徒」を鎮圧するために召集されたんだ。それの正体は皆が知っての通り、最初に現れたの群れさ。私たちは何の役にも立たなかった。大勢の民間人を殺したことは確かだ。私たちの班も士気はどん底で、銃を乱れ撃ちしていた。その時、何か大きな衝撃が私たちを襲ったんだ。爆弾だったのかもしれないが、はっきりとは思い出せない。気付いたらSWATバンの下敷きになっていた。何も見えなかったが...聴覚ははっきりしていた、!それから何時間、いや、何日間もバンの下から出ようともせずじっとしていたんだ。" +"ええと、全部は話さないからな。事が起こった時、私は南部から車に乗って息子のもとを訪ねるところだった。モーテルで過ごしていると、通りがかった軍用車からFEMAの避難所へ向かうよう指示されたんだ。" #: lang/json/talk_topic_from_json.py -msgid "But you did get out." -msgstr "でも今は抜け出せているじゃないか。" +msgid "Tell me about your son." +msgstr "息子さんの事を聞きたい。" #: lang/json/talk_topic_from_json.py -msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." -msgstr "" -"最終的にはそうだな。周囲は何時間も静かだった。私は喉がカラカラで、怪我もしていたし、何より怖かった。発狂しないで済んだのは日々の訓練のお陰だろうな。私は何とか抜け出して、怪我の程度を見てみようと思ったんだ。簡単だったよ。バンの側面は裂けて外に通じていたし、私を圧し潰していた瓦礫もそこまで大きくはないようだったからね。バンの残骸がテントのように覆いかぶさってくれていたんだ。怪我もそこまで酷くはなかった。私はできる限り装備をたくさん持って、抜け出したんだ。辺りは夜になっていて、街の外からは戦闘しているような音がしたから、中心部に向かった。何ブロックか歩くと、と遭遇したから...逃げ出した。逃げて逃げて逃げ続けて、ここに辿り付いたんだ。" +msgid "So, you went to one of the FEMA camps?" +msgstr "それで、FEMAキャンプへ向かったのか?" #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." msgstr "" -"私はただ留置所でじっとしてただけさ。前日の夜、仮出所中にやらかした罪で連れて来られてね。畜生。緊急事態だとかで警官たちが皆騒がしくなってきて、装備を持って出かけて行ったよ。後に残ったのは警備用のロボットだけ。私は独房に置いてきぼりさ。食料はない、水も少しだけしかない状態で2日間も缶詰だ。その後バカでかいゾンビがやってきて、ロボットと戦い始めた。どうしたものかと思案していたが、奴らが独房の扉を壊してくれたので脱出できたよ。" +"息子は嫁さんと3人の子どもと一緒に、カナダ北部の田舎に住んでいるんだ。石油会社の環境工学者として働いているんだけど、嫁さんの方はヒッピー気質というか、まぁ私は二人とも愛しているよ。私としては、息子たちはこの大混乱から程遠い森の中で安全に過ごしていると思いたい。向こうは私が死んだと思っているかもしれないが、それなら私に会うために危険な目に遭うこともないだろうし、ありがたいことだ。" #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" -msgstr "運がよかったな。どうやって逃げたんだ?" +msgid "What was it you said before?" +msgstr "大変動が起きた時、あなたはどうしていたんだっけ?" #: lang/json/talk_topic_from_json.py msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " msgstr "" -"通りは、、酷い混乱だったよ。一番混乱してたのは私だけどな。あんたでは私より長生きできないだろうし、勝てない戦いを避ける方法も分からないだろう。一番の気がかりはゾンビや化け物じゃない。クソったれ警官ロボだ。奴らは法律違反を記録していて、私を逮捕しようとするんだ。" +"まさか。ぶかぶかの軍服を着たひよっ子に従っていたら、命がいくつあっても足りないよ。乗っていたのはハマーの改造車だからオフロードも走れるし、ガソリンもたっぷりあった。国境を越えるからライフルもたくさん持っていた。何から逃げればいいのかも分からなかったが、逃げなかったのはバカな奴だよ。" #: lang/json/talk_topic_from_json.py -msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." -msgstr "" -"運の良い状況でに遭遇したんだ。私は町はずれの倉庫に潜伏していた。本当に場所で、仲間はデカい麻薬のガサ入れに遭って逮捕されたが、私はうまく逃げ出した。私に売られたと思った仲間が復讐に来るんじゃないかってビクビクしてたが、今はもうその心配もないな。" +msgid "Where did you go then?" +msgstr "それからどこへ向かったんだ?" #: lang/json/talk_topic_from_json.py msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" msgstr "" -"私はこの辺の出身じゃない...アクセントで分かるだろうが、イギリスから来たんだ。ダートマスで、博士号を取るために研究をしていた。に足止めされた時は、会議のためにMITへ向かう途中だった。私は道沿いにあったノミだらけの小さなモーテルに滞在していたんだ。どんな朝食が出てきても食べてやるって気分で起きてきたら、太ったモーテルの主人が血まみれで自分のデスクに座っている。てっきり寝ているだけかと思ったんだけど、彼の目が...ああ、ゾンビの目がどんなものかは知っているだろ。こっちに突進してきたものだから、考える間もなく体が反応した。持っていたタブレットPCで彼の頭をぶん殴ったんだ。" +"最初は北へ向かったが、軍の大規模な道路封鎖に出くわした。TVで見るような巨大なロボットが歩いていたんだが、よく見るために近づこうとしたら、すぐさまロボットが発砲してきたんだ!危うく死ぬところだったが、まだ反射神経もしっかりしていたから尻尾を巻いて逃げ出した。ハマーもかなりボロボロになってしまって、燃料を漏らしながら高速道路を進む羽目になったよ。何マイルか進んで、見知らぬ土地で立ち往生さ。放浪生活も板についてきた。恐らく今も北へ向かってるとは思うんだ。かなりの回り道になるけどな?" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "大変な話だな。" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "大変な話だな。" #: lang/json/talk_topic_from_json.py msgid "" @@ -104626,6 +105609,10 @@ msgid "" msgstr "" "いいや。避難勧告は遅すぎた。その時、地平線上に雲が見えたんだ。キノコ雲、常軌を逸した忌まわしい雲だ。そこで恐ろしい事が起きたんだと分かったよ。だから、自宅で閉じこもっていた方が安全だと判断したんだ。" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "それは気の毒に。" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -104651,6 +105638,14 @@ msgid "" msgstr "" "事が起こった時、私は病院で働いていたんだ。まだ記憶がぼんやりしているな。死んだ患者が蘇るなんて突拍子もない報告が届いたりしたが、それ以外はいつも通り仕事をしていたよ。でも事態は終わりに向かって急転したんだ。中国から攻撃されたと思った。前から噂はあったからな。患者たちは正気を失っていて、全身が銃創や咬傷まみれだった。シフトの中ほどで、私は...そう、壊れた。今までに見たこともないような怪我ばかりだったし、それに...!これ以上は話せないよ。" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "そう言わずにさ。一緒に行動するなら、まず君について知らないと。" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "いいや。できない。絶対、無理だ。" @@ -104707,6 +105702,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "屋上からは何が見えた?" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "詳しく教えてくれてありがとう。" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -104775,6 +105774,10 @@ msgid "" msgstr "" "部屋のドアには窓もなく、高品質の重い鋼鉄で作られていた。それにスタッフルームには食料がたっぷり入った冷蔵庫もあった。だから、自力で事態を好転させるなんて無理だとはっきり分かった時点で、そこに居座ろうと決めたんだ。数日間は過ごしたかな。最初は爆発音や叫び声が聞こえたけど、しばらくすると銃声と爆発音だけになり、最後には静かになった。結局、スナック菓子を食べ尽くしてしまったから、勇気を振り絞って夜のうちに病院の窓から外に出て、市街を見て回ったよ。その後はしばらく霊安室を拠点にしていたんだけど、病院付近の土地は生活するには暑すぎるから、緑の多い牧草地へ向かうことにしたんだ。そしてここに来たってわけ。" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "話してくれてありがとう。" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -104815,6 +105818,10 @@ msgid "" msgstr "" "兄と一緒に狩猟旅行に出かけていたんだ。そこで、上空を飛ぶヘリを見かけた...大きい軍用の機体で、テレビ番組でしか見ないようなふざけた最新鋭の装備を満載した奴さ。レーザー砲すら積んでいた。ヘリは両親が住んでいる牧場の方角に向かったから、私たちは動転して、すぐに来た道を引き返した...すると、遠くから見ても分かるほど巨大な浮遊する目玉が、どこからともなく現れたんだ。はぁ、自分で見ても信じられなかったのだから、私の話が本当だと信じてもらおうなんて思っていなよ。" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "それからどうなったんだ?" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -104916,6 +105923,259 @@ msgid "" msgstr "" "一応あったが、それが、暗号化されていたんだ。パットの書いたメモの写しでもあれば解読できるかもしれないが、恐らくに巻き込まれて残っていないだろう。知っての通り、研究室は爆撃されてしまったからな。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" +"大変な大騒ぎの中で、避難がずいぶん遅れてしまったんだ。街から出られなかったから、地下室でガールスカウトクッキーとか温いルートビアを飲んで数日間生き延びたよ。結局、に見つかることもなく逃げ出して、その後は放棄されたショッピングモールにしばらく立て籠もった。でも、食べ物が必要になったから、野外で暮らそうと森へ向かっていたんだ。野外生活は今一うまく行かなかったから、君に会えてほっとしているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" +"世界が大変なことになってる時は、インフルエンザに罹って家にいたんだ。食料雑貨店へ出かけられる程度に回復したころには...まぁ色々あって、それ以来逃げ回ってばかりさ。" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "おいおい、ちゃんと話してくれよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" +"ああ、そうだな、最初の数日は寝込んでいたんだ。外で騒ぎがあった事は把握していたが、酷い熱にうなされていたからな。正直、病院へ行くべきだったと思ったが、もし行っていれば今頃死んでいただろう。何が夢で何が世界が崩壊する現実だったのかも曖昧だ。飲み物を取ろうと冷蔵庫を開けたら、ライトが付かなくて中が温くなっていたのは覚えている。その頃には熱が下がってきたんだ。家にあるチキンスープを飲み尽くしたが、まだ足下がふらついていた。電気も明かりも無い家から出かけるのにかなり時間がかかったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "出掛けてからは何があったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" +"市街地がどんな状態だったか、君も覚えているだろう。多分事が起きてから4日目の事だ。外へ出た瞬間、何が起きたのか、そして自分が事態を何も把握できていなかったことに気づいた。たくさんの暴徒が車を破壊するのを見かけたが、そいつの一人は女性の頭を殴りつけていた。そこで食料雑貨店へ向かうのは諦めて、奴らに見つかる前にアパートに引き返したんだ。そしてできる限り長く隠れていることにした。死人が生存者より多くなってからは外もだいぶ静かになったから、隣人たちの部屋からできる限りの物資を拝借して、必要があれば死んでいた隣人をもう一度殺した。最終的には建物がで溢れ返ってしまったから、古い自転車で近所の丘まで逃げる羽目になったけどね。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "詳しく教えてくれてありがとう。" + +#: 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 "" +"妻は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" + +#: 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 "" +"夫は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "植物のモンスターについて教えてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" +"どうしようもなかった、そうだろう?この世の終わりだ。その事についてはこれ以上話したくない。それに正直言って、私は自分が旧世界にふさわしいと思った事なんて一度もなかったんだ。妙なものだけど、今は本当の目標が見つかったように感じている。君はそういう経験ない?" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "ああ、あるね。時々、自分の存在が大変動の時から始まったような気がするんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" +"私たちのような、ここまで上手くやってきた人間には、何か理由、のようなものがあると思うんだ。それが宗教的なものだとは思わないけど、ただ...私たちはサバイバーだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" +"ハハハ、ああ、君がそう考える理由は分かるよ。別にこれが良い変化だって言いたい訳じゃない。私は、少なくとも今は、自分が毎日何をしているのか理解している。私は今もインターネット接続のために何百ものゾンビを殺し続け、毎晩B級映画を...ごめん。話を変えよう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" +"ああ、まだ見たことない?奴らは歩く植物で、花の中央からは大きな、、針が突き出している。奴らは集団で移動する。ゾンビが嫌いなようだったから、ゾンビの大群を一掃するのに利用させてもらったこともある。マズいのは、この化け物がよりも追跡が上手いって点だ。奴らには知能がある...私も危うい所だったよ。逃げられた理由は、まぁ、気が散っていたからだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "人を失くしていたんだったな、すまない。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "ありきたりな愛と喪失の物語だよ。その話はしたくないんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "気にしないで。話題に出して悪かった。" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "その意見は嬉しいけど、話せないよ。もう止めよう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "おい、。この話は君や私たちの協力とは関係ないだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "分かった、話すよ。大事な女がいた。そいつを失った。" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "分かった、話すよ。大事な男がいた。そいつを失った。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"爆弾が投下されて地表が地獄になった時、彼女は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。妻を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"爆弾が投下されて地表が地獄になった時、彼は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。夫を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "ひどい目に遭ったな。" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "自宅はダメだったのか。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" +"ああ。まったくだ。仕事場から徒歩で市街地を越えるのに2日もかかったよ。ゴミ置き場か何かの中で野宿しつつ夜中に移動して、軍隊を避ける術をすぐに学んだ。奴らはを集める磁石みたいなものだし、大抵は化け物が通る場所に駐屯していたからな。最初の内は、街中でも楽に進める場所は残っていた。市民が完全に避難して無人になった区画もいくつかあって、そこにはもいなかった。しばらく時間が経つと、他の市民も無事な家へと移動を始めたので、私は跡形もなくなった商業地区を突っ切って動くようにした。とにかく、家へ帰りたかった。その頃には戦闘も治まり始めていたから、ゾンビやほかの化け物の注意を引かないように進んでいった。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" +"家に帰る道の景色が、原形を留めた家々から焼け落ちた家の残骸へと移り変わって行くのが、最初の嫌な予感だった。景色はどんどん酷くなっていった。自宅の外には警察のバリケードがあって、何の役にも立たない2台の自動タレットが、黙ってゾンビ共に揺さぶられていた。誰かから無差別殺人を教わる前の、侵入者だけを殺してた頃のタレットだ。良い時代だったよ。できる限り壮大なやりかたで物事を台無しにする官僚主義を皆が信頼していた。それはともかく、家屋にはSWATのバンが突っ込み、半壊していた。自宅がどうなっているかなんて内心では分かっていたんだけどな。できることはやったし、もうあそこに帰ることはないだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "ここまでの道中も大変だったんだな。" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "家の中には入ったのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?妻は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼女に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。残った部位はしまっておいた。今後も振り返ることは決してないだろう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?夫は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。残った部位はしまっておいた。今後も振り返ることは決してないだろう。" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -104971,10 +106231,521 @@ msgid "" msgstr "" "やがてゾンビがやって来た。そうなるとは思ってたんだ。ネットが切断される前に動画がたくさん投稿されてたから、何が起きているのかもはっきり分かったよ。性能の良い装備を集めて、荷物をまとめておいたんだ...奴らがドアをノックし始めた頃には、裏口から抜け出せた。そうしてここに辿り付いたのさ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"の前だって?どうでもいいだろう?まあ、新たな世界はかなりけど。でも、過去にこだわるのは止めよう。残されたものを最大限に生かすべきだ。" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "もっともな意見だ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" +"実は...まったく覚えていないんだ。世界がこんなことになる前の人生は、ぼんやりと思い出せる。でも、が訪れた時の事は?もやが掛かっているみたいだ。今いる場所も、何が起きたのかも分からない。どうやらかなりひどい目に遭ったみたいだ。それとも頭を強く打ったのかな。いや、その両方かも。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" +"頭が狂ったと思うかもしれないが、君に会う一週間前、森の中で目が覚めたんだ。寒くて凍えそうだった。服を着ていて、頭痛がしたが、何も覚えていないんだ。いや、覚えていることもあるな。喋ることはできるし、技能や知力はちゃんとある...でも、それをどうやって会得したのか分からないんだ。ポケットの財布に入っていた運転免許証が、私の名前を確認する唯一の方法さ。" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "自分の身に何が起こったと思う?" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "頭が狂ったんだな..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" +"手がかりはいくつかある。数日間はひどい頭痛に悩まされたが、身体に切り傷や打撲の跡はなかった。私が目覚めた場所の周囲の木は滅多斬りにされていて、焦げ跡も付いていた。私の身に何が起こったにしろ、普通じゃないのは確かだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "過去の記憶を思い出したい?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" +"どうだろう、過去の思い出が無いのは妙な話だが、正直このままで問題ない気がするよ。何が起きたのか考えても、とても幸せな記憶が戻るとは思えない。財布の中には免許証の他に、子供の写真が入っていた...それを見ても何も思い出せないけどね。目覚めた場所でもその子達を見かけなかった。多分、この記憶喪失は慈悲なんだ。やれやれ、多分、私の脳が自分で精神を壊したんだろうな。正直に言えば、悩みを忘れて生き延びることに集中したいんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" +"狂ってるのは把握してるよ。バッグス・バニーのマンガに出てくる偽の記憶喪失みたいだな。ほら?知識は残っているが、どうやって知ったのか思い出せないのが分かるか?バッグス・バニーは知っているけど、バッグス・バニーの番組を観た記憶はまったく無いんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "さっきの話をもう一度聞かせてもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" +"かつての私は死んだ。で全部燃え尽きた。分かるか?私が生まれてまだ2日しか経っていない。バカみたいにデカいゾンビから、いつもやってるみたいに逃げてた時、金属バットが落ちてるのを見つけたんだ。それが啓示だった。そのクソゾンビを肉片に変えてやった...そして今の私が生まれた。私はまだ逃げ続けている、当然だ。でも、今の私は自分の足で立っている。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "その後どうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "過去を捨て去るのは健全とは思えないな..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" +"歩き、逃げなければならない時は逃げ、戦える時は戦った、誰でもそうするだろう。自分が何なのかを学び始めるんだ。バットは電撃を放つイカレたゾンビ共との戦いで無くしてしまった。バットを使っていると感電してしまうから、放り出して近くにあった板を使ったが、結局、馴染んだバットを置いて逃げる羽目になった。死ぬかと思ったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" +"おい。はっきり言ったはずだ。またしつこく聞くようなら怒るからな。かつての私は死んだ。消えたんだ。その下らない「健全」とかいう話は止めろ、、二度と言うな。" + +#: 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 "その話は止めないか?考えるだけでも辛いんだ。たくさんの人が死んだ...君もそうだろう。今この場所で生きることを考えよう。" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "その通りだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "結構だ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" +"最近までの事なんて知らなかった。ちょっと大げさかな、とにかく大混乱の現場からは遠く離れていたんだ。高速道路で車が故障して、レッカー車を何時間も待ってる状況だったからね。結局道路脇の原っぱで野宿する羽目になったんだ。でも運が良かった。いわゆる死人の運転手が乗ったトレーラーが、私の車に突っ込んだんだ。こんな時に市街地にいた奴らは本当に気の毒だよ。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "どうやって野外で生き延びたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "野外生活を始めてから数日間、何を見かけた?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" +"ハッ、自分でもよく分からないんだ。最初の数日は、外で過ごしてるだけでも大変だったって事は確かだな。酷い嵐に襲われたと思ったら、皮膚が焼け爛れ始めたんだ。車の下にテントを敷いて潜り込み、何とか凌いだよ。大破してはいるが、私よりずっと頑丈だ。聞いた話では、これでも私は幸運な方だったようだ。想像できない程酷い話だった。街に襲い掛かったという悪魔のような化け物に遭遇しなかっただけ、運が良かったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" +"酸性雨以外には、市街地から脱出する人たちを見かけたな。道路からは離れたいけど森で迷子になるのも嫌だったから、森と平地のちょうど境に陣取ったんだ。乗用車やバスやトラックが避難者を乗せて道路を進んでいった。大抵は無事に通り過ぎたけど、ガス欠なんかで立ち往生する車も多かった。車は工具類を満載していたし、乗客たちも縋り付いていたよ。ゾンビ共は生存者が通った道を追いかけてやって来ていたから、一度止まってしまえば死んだも同然さ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" +"事が起きた時は、友人と釣り旅行の最中だったんだ。正確な日時は覚えていないけど...世界の終わりが来たと最初に分かったのは、目と肌を刺すような酸性ガス混じりの風が吹き荒れた時だ。どうすればいいのか分からなかったから、建物の中に入って休んだ。そうこうしてる間にも、妙な塵がそこら中に降り注いでいたな。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "酸性ガスが漂った後はどうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" +"朝になったら、湖の周囲がピンク色のカビで覆われていて、キノコが埃みたいなものをまき散らしながら歩いていた。何が起こったのかさっぱり分からなかったけど、そこに留まって調べようなんて思わなかったよ。だから荷物をボートに詰め込んで、上流に向かったんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "あなたの友達はどうしたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" +"彼女は湖を出発してから数時間後に、病気になったんだ。食べた物を吐いて、関節の痛みを訴えていたよ。彼女は知り合いがやってる川岸の店屋に預けてきた。体調が回復するか、せめて何が原因か分かればいいんだけど。" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "原因が分かるものなのか。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" +"本当は、その店は空き店舗なんだ。友達が自棄になってたから、私が押し入った。店にあったラジオで街の混乱について詳しく聞いた。彼女は鎮痛剤と吐き気止めを飲んだけど、私がボートで出発した時には、その...手遅れだった。" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "友達は亡くなったのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" +"そうだといいね。死は慈悲だと思うよ。彼女は酷く苦しそうな叫び声を上げ、全身の部位がボロボロと崩れていった。身体のあちこちを突き破ってキノコが生えてくるんだ。私は...逃げた。今は彼女を楽にしてやれたらと思っているけど、あそこへ戻るなんて自殺行為だ。" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "恐ろしいな。" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "恐ろしいな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" +"おいおいおい。準備はとうにできていたさ。何年も前からそんな傾向はあったからな。郊外にLMOEシェルターを建てておいたんだ。もちろん、運が良かったことも大きい。中国が攻撃を開始して世界が崩壊した時、私は仕事の会議の関係で街から何マイルも離れた場所にいたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "それからどうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "シェルターは今どうなっているんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" +"その時は湖畔の建物で会議をしていたんだ。参加者の携帯電話から緊急放送が流れだしたが、放送の真意を理解していたのは私だけだろうな。そう、大規模バイオテロだ。その場に留まるつもりは全くなかったし、同僚の中にスパイが紛れている事も把握していた。リーという奴だ、50ドル賭けてもいい。ともかく、私は幹事が乗っていたピックアップトラックを盗んで、まっすぐシェルターへと向かったんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "シェルターには着いたのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" +"いいや、あと5マイルの所まで行ったんだけどね。中国人共が作った恐ろしい生体兵器と衝突してしまったんだ。人間や色んな生物の手足や頭が混ざりあった、狂った金切り声をあげるさ。ひき殺せたとは思うが、こっちのトラックが壊れたのは間違いない。ダッフルバッグを掴んで逃げ出したよ。またあんな怪物に出くわすのはごめんだね。" + +#: 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 "まだたどり着けていないんだ。行こうとするといつもに邪魔される。いつか分からないけど、行けるといいな。" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "いやいや。しっかり準備していたよ。計画もばっちりさ。非常持ち出し袋。装填済みの銃。避難場所への地図。裏庭には地下壕もある。" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "計画は失敗に終わったようだな。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "ねぇ、その地図を見せてもらってもいいかな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" +"それは失敗の定義によるな。私は生きている、そうだろ?地獄が空から降ってきて、怪物が街を攻撃していた時、私は物資を持って地下壕に逃げ込んだんだ。地表を映すカメラは数日間オンラインだったから、そこで起きたあらゆる出来事を見られたよ。化け物が過去の栄光を踏みつぶす様を見たんだ。死体が動き出す悪夢は今もよく見るな。何もできなかった。警官や兵士が引き裂かれ、蘇った死体が生存者と戦うんだ。上品な老婦人が近所のイヌの首をむしり取って街をふらついているのを見た。兵士の死体が引きつり始めて、電気を帯びたハルクみたいな怪物に変身するのも見た。私は全部見たんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "どうして地下壕から出てきたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" +"実をいうとね?死ぬつもりだったんだ。色んなものを見て、少し気が狂ったのかな。もうおしまいだ、奮闘しても意味がない、って思ったんだ。地下壕には居たくなかったけど、自殺することもできなかった。外に出てに殺してもらおうと思っていたんだけど、なんて言うんだろう?生存本能って奴か、そいつらを倒してしまったんだ。必要なのはアドレナリンだったんだって理解したよ。それのお陰で今まで生き延びてこられたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "ああ、いいとも。一部だけなら見せてあげよう、そうだな、1000ドルでいい。キャッシュカードじゃなくて、ATM経由で振り込んでくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "[$1000] 取引成立だ。" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "その地図はそんなに価値があるのか。" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "、君がそれを譲ってくれたら、、私もキレずに済むんだけどな?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "話題を変えて申し訳ないけど、さっきの話をもう一度聞かせてもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "よし。さあどうぞ。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "ありがとう!ところで、さっきの話をもう一度聞かせてもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "その手には乗らないよ。地図が欲しいなら、きっちり支払ってもらおう。" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "分かった。ところで、さっきの話をもう一度聞かせてもらえないかな?" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "が起きた時は刑務所に入っていたが、脱獄した。酷い話さ。" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "その「酷い話」ってのを聞きたいんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "何の罪だったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "何でもない話さ。東海岸で最大の大麻畑を所有していたんだ。はぁ、もっと話しても良いが...止めよう。秘密にしておきたいんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" +"ちょっとした...問題を起こした。挑戦の結果さ。生体兵器を造ったんだ。そいつは人間に馴れることもなく、その、何というか、手に負えなくなった。" + +#: 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 "脱税だよ。会計士をしていたんだが、賢いやり方で上司が大金を動かすのを手伝ったんだ。いや、賢くはなかった。捕まったんだからな..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "めちゃくちゃクールな罪だよ。無認可の原子核加速器所持さ。" + +#: 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 "ブラックマーケットの臓器売買にちょっと関わっただけさ。こう言うとすごく悪い事のように聞こえるけど...小さな罪さ。" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "麻薬の不法所持の常習犯だ。昔は夢中でやってたからな。" + +#: 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 "暴行罪だ。これ以上話をさせるなら、君がまだ観ていない映画の結末を喋り始めるからな?" + +#: 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 "さっきも言ったが、もう話したくない。この話はこれから先も秘密にしておきたいんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" +"よし、そうだな、私はいるべき時間と場所を間違えた。私を含め何人かは独房に放り込まれていたからよく知らないが、大きな騒ぎがあって、何人か医務室に運ばれた。かなり酷いケガをしている奴もいたが、今思えばが紛れてたのかもしれないな。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "どうやって独房から抜け出したんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" +"独房にいても銃声は聞こえたが。叫び声なんかは聞こえなかった。それが最初の糸口だ。次に食料が尽きて、照明が消えた。何時間、もしかしたら何日か過ぎた後、鉄格子の向こうから懐中電灯を当てられた。警備の人間だ。そいつが私を独房から出して、何が起きているか教えてくれた。狂人かと思ったが、この目で見れば...信じるほかなかった。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "それからどうしたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" +"2人で他の奴らを逃がして回ったが、警備ロボットが故障していて、警備員以外誰も外に出られなかったんだ。結局警備員も戻ってきて一緒に死体を処理したり、ロボットをやり過ごす方法を考えていたよ。食べ物も尽きかけていた。結局、考えうる唯一かつ最悪の作戦を実行に移したんだ。ロッカーをエントランスホールまで引きずっていき、それを盾にしてロボットのすぐ傍まで近づき、センサーを壊す作戦さ。" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "上手くいったのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" +"想像していたよりもずっと上手くいったな。奴らはロッカーを仲間だと勘違いしたのか、ロボットは銃を撃たなかったんだ。私たちは6人、ロボットは4体いたが、4人が生きて脱出できた。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "一緒に脱出した他の人はどうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" +"警備員は先に行ってしまった。私たちは信用がないからな、仕方ないことだ。後の2人は盗賊団を結成しようとしていた。私は参加を辞退して、穏便に別れた。その後何度か警備員とばったり出くわした。彼と一緒に行くことも考えたが、止めておいた。断られるに決まってる、ペテン師だと思われてたからな。もし良ければ、彼と最後に会った場所を教えるよ。君と会う少し前のことだし、彼は順調に旅しているようだった。もしかしたら、まだ近くにいるかもしれない。" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -105007,6 +106778,170 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "いいね。ところで、さっきの話をまた聞かせてくれないか?" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" +"私の話か。はぁ...特別面白いものではない。かつての仲間たちは、みな主の御許に旅立った。何故主が私の手を取って下さらなかったのかは分からないが、時が経てば分かるのだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "それは何か宗教的な話...?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" +"もちろんだ。明白じゃないか?あれは...携挙だ。私がまだここにいる、その理由は分からないが、私はどんな患難の中にあろうとイエスキリストを信じている。患難が過ぎ去れば、きっと私を天国に迎え入てくださるのだろう。まぁ...大筋はこんなところだと思っている。私が考えているとおりに事が運ぶとは限らないが、これは予言と言ってもいい。" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "もしあなたの意見が間違っていたとしたら?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "これからどうするんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" +"何だって?どうしてそんなことを言うんだ?この有様を見ても終末を信じないとはな。死者が蘇り、地獄の門が開き、悪魔の獣が地上を闊歩し、そして正しき者は皆神の王国へと導かれる。これ以上の証拠を出せって言うのか?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "それで、これからどうするんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"信仰を守り、祈り、地獄からの使いを見かけたら打ち倒す。私たちにできることなんて、それぐらいしか無いだろう?もしかしたら、地球を素直に明け渡してしまった方が楽なのかもしれない。でも、そんなのは癪だからな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" +"他のみんなと同じさ。神様から目を背けて、その代償を支払ってるところだよ。携挙が訪れたけど、私は取り残された。そして今、地上の地獄を彷徨っているんだ。もっと真面目に日曜学校へ行っておけばよかったな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"私は郊外の古い家に一人で住んでいたんだ。妻は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼女はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"私は郊外の古い家に一人で住んでいたんだ。夫は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" +"そうだな、状況は悪化した。酸性雨が降って、家のトラクターの1台が壊れた。まぁ、畑仕事は長らく...ええと、1年はサボっていたんだけどね、収穫も前から少なかったし。爆発事故があって、家の上をヘリが行き来していた。怖くなって、カーテンはずっと閉じて、チャンネルを変え続けた。そしてある日、チャンネルを変えることもできなくなった。どの局も、緊急放送しかやっていないんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" +"そこでようやく目が覚めたんだ。私には親しい友人もそんなにいなかったけど、街には知り合いがいた。何人かにメールを送ったけど、何日待っても返信はこないし、状況は分からなかった。だからトラックで市街地まで行こうとしたんだ。高速道路の事故車両に群がっていたにぶつかってようやく、冷静に考えることができた。市街地へ行くことはもうないだろう。運の悪いことにが農場までついてきてしまったから、慌てて逃げだして来たんだ。いつか家に帰って奴らを一掃したいね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" +"ええと、私は田舎の村はずれに住んでいたんだ。店とガソリンスタンド、他には何もないようなところさ。街が大変なことになっているって話は聞いていたけど、ピリピリした軍隊が近所にキャンプを設置し始めるまでは実感がなかったよ。軍は村を封鎖したがっているようだったけど、村には犬のバックと私しかいなかったから、そのまま抜け出してきたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" +"村を抜け出した私とバックは、東にある友達の農場へ向かったんだ。かわいいバックは、私たちがちょっと長い散歩に出かけるだけだと思っていたみたいだけどね。トラックで移動すれば軍の人間に見つかってしまうけど、刺し掛け小屋で野宿しながら森の中を行けば大丈夫だった。場所を転々と変えて進んでいくんだ。最初の頃は高速道路沿いを歩いていたけど、軍用トラックや避難民を満載のバスを山ほど見かけて、そこで初めての事を知ったんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "犬のバックはどうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "そしてここに着いたのか。" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "そしてここに着いたのか。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" +"友達の農場には着いたんだけど、そこには既に、、捜査官が来ていたんだ。農場の出入り口は板張りされていて、正面には警察のバリケードもできていた。、そこにいたタレットが...、バックを撃った。どうにかして...助けようとしたけど...パトカーのドアを盾にしようにも、まずゾンビになった警官を殺さなきゃいけなかったからね。その後は、うん、しばらく泣いていたら、バックが生き返ったんだ。だから...!ああ、これ以上は言いたくない。分かってくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "バックは気の毒だったな。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "バックは気の毒だったな。" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -105141,6 +107076,66 @@ msgid "" msgstr "" "ニューポートには到着すらできなかったよ。トラックが何かバカでかいものに踏みつぶされたんだ。見たことも無い、とげで覆われた黒と緑の巨大な脚が車の天井を突き破って、副官を串刺しにした。タイヤが軋む音がして、トラックが持ち上げられた。犬がスニーカーを滅茶苦茶にするみたいに、吹き飛ばされた。どうして生き残れたのか分からないよ。トラックは横転して、ほとんどの人がそこで死んだ。私はしばらく気絶していたようだ。意識が戻ってトラックから抜け出すと、他の人間も立ち上がり始めた。それから色々あって、他の奴は死に、私は生き延びて逃げ出した。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "あぁ、酷い話だよ。私の結婚式の日にが起きたんだから。" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "それは、気の毒に..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" +"まったく、後知恵ではあるけど、最悪の日取りを選んでしまったみたいだね?ちょっと逃げ腰だったのは認めるよ。ともかく、教会で結婚式を挙げることになっていた。幸運なことに遅刻してしまって...新鮮な死体が墓から出てきてパーティーを妨害し始めたのかと思ったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "それからどうしたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "意外と落ち着いているんだな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" +"それを見た後、私はUターンして逃げ出したんだ。前にゾンビ映画で見たからね。家に帰って荷物をまとめて、事態がさらに悪化する前に街を出たよ。その時は自分がひどい臆病者だと思ったけど、他人を助けるために残っても、自分が死体の仲間入りするだけだからね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"まぁ、変な話だけど希望が消えてないからね。馬鹿げた話だけど、婚約者と彼女の兄が教会から軽トラックで逃げ出すのを確かに見たんだ。だから、機会があればまた会えると信じて、それまで生き延びようと思ってる。これが大きな希望になっているんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"まぁ、変な話だけど希望が消えてないからね。馬鹿げた話だけど、婚約者と彼の姉が教会から軽トラックで逃げ出すのを確かに見たんだ。だから、機会があればまた会えると信じて、それまで生き延びようと思ってる。これが大きな希望になっているんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "前の話をもう一度聞かせてもらえないかな?" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "やぁ、スカベンジャー。" @@ -106515,6 +108510,44 @@ msgstr "降下攻撃は%sに" msgid " phase-strikes %s" msgstr "の降下攻撃は%sに" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "突き飛ばし" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "%sを突き飛ばして" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "は%sを突き飛ばして" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "器用に%sを転ばせて" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "は器用に%sを転ばせて" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "刺し貫き" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "%sを容赦なく刺し貫いて" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "は%sを容赦なく刺し貫いて" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "回避カウンター" @@ -109828,6 +111861,26 @@ msgstr "毛編" msgid "bullet pulling" msgstr "弾頭抜取" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "分析" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "濃縮" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "分離" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "精密蒸留" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "色層分析" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "ロールマット" @@ -110618,6 +112671,18 @@ msgstr "カスタム(空)" msgid "canoe" msgstr "カヌー" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "水陸両用トラック" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "カヤック" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "競技用カヤック" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "いかだ" @@ -111948,9 +114013,17 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." -msgstr "電源を入れると車外を非常に明るく照らす、広角ライトです。" +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "電源を入れると車外を明るく照らす、広角ライトです。" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." +msgstr "電源を入れると車外を半円状に明るく照らす、指向性ライトです。取り付ける際にライトが照らす方向を設定できます。" #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -111966,6 +114039,20 @@ msgid "" msgstr "" "電源を入れると車外の狭い範囲を円錐状に明るく照らすライトです。設置時にライトが照らす方向を設定できるので、複数のヘッドライトを設置して、前方だけでなく側面や後方を照らすことも可能です。" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "広角ヘッドライト" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" +"電源を入れると車外を円錐状に明るく照らすライトです。設置時にライトが照らす方向を設定できるので、複数のヘッドライトを設置して、前方だけでなく側面や後方を照らすことも可能です。" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -112276,6 +114363,36 @@ msgstr "ワイドホイール(転舵輪)" msgid "A wooden wheel." msgstr "木製のホイールです。" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "ボートが浸水するのを防ぐ木製の板です。" + +#. ~ 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 "ボートが浸水するのを防ぐプラスチック製の板です。" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "ボートが浸水するのを防ぐ金属製の板です。" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "ボートが浸水するのを防ぐ、非常に軽い高性能カーボンファイバー製の板です。" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "手漕ぎ櫂" @@ -113960,6 +116077,12 @@ msgstr "この道具でも十分ですが、メスがあればなお良いでし msgid "You dissect the corpse with a trusty scalpel." msgstr "信頼できるメスを使って、精密な解体作業を行いました。" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "手術用メスを高性能システムで操り、精密な解体作業を行いました。" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -114180,7 +116303,7 @@ msgstr "%sを発見しました!" #: src/activity_handlers.cpp msgid "You didn't find anything." -msgstr "何も見つからりませんでした。" +msgstr "何も見つかりませんでした。" #: src/activity_handlers.cpp #, c-format @@ -114374,8 +116497,8 @@ msgid "Repeat once" msgstr "一度だけ" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "可能な限り続ける" +msgid "Repeat until reinforced" +msgstr "補強できるまで続ける" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -114385,11 +116508,24 @@ msgstr "補強はせずに、完全に修復できるまで続ける" msgid "Repeat until success/failure/level up" msgstr "成功か失敗かスキルレベルが上昇するまで続ける" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "アイテム選択に戻る" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "%sの動力が尽きました。" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "何を修復しますか?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "%sで修復できるアイテムを持っていません。" + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "この行動で学習できることはもう無い。" @@ -114397,13 +116533,18 @@ msgstr "この行動で学習できることはもう無い。" #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" msgstr "" -"%s\n" -"成功率: %.1f%%\n" -"失敗率: %.1f%%" +"%s %s\n" +"成功確率: %.1f%%\n" +"損傷確率: %.1f%%" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." +msgstr "%sは完全に修復されています。" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -114457,6 +116598,11 @@ msgstr "待機を終えました。" msgid "%s finishes with you..." msgstr "%sと作業を終えました..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "%sは会話を終えました。" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "寝返りを打ちました..." @@ -114532,6 +116678,11 @@ msgstr "%sを掘り終えました。" msgid "You finish filling up %s." msgstr "%sに土を埋め終えました。" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "%sと触れ合って少し心が癒されました。" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "洗面キットを開け、顔剃りと洗顔をしてさっぱりしました。" @@ -114540,6 +116691,20 @@ msgstr "洗面キットを開け、顔剃りと洗顔をしてさっぱりしま msgid "You give your hair a trim." msgstr "髪を切って整えました。" +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "%sを分解しました。" + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "%sの装填物を抜き取りました。" + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "収穫可能な作物を全て収穫しました。" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "足元の地面を耕しました。" @@ -114548,6 +116713,15 @@ msgstr "足元の地面を耕しました。" msgid "You tilled every tile you could." msgstr "耕耘可能なすべてのタイルを耕しました。" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "%sが切れました。" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "施肥可能なすべての作物に施肥しました。" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "全ての種を植えました。" @@ -115774,6 +117948,10 @@ msgstr "息づく" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "呼吸するかのように規則正しく、わずかに膨らんだり萎んだりしています" +#: src/artifact.cpp +msgid "dead" +msgstr "死んだ" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "触ると氷のように冷たいです" @@ -117084,8 +119262,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "電力: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "CBM電力: %i/%i" #: src/bionics_ui.cpp msgid "" @@ -118572,10 +120751,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ファイルが破損しています、何かキーを押して下さい..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." -msgstr "眼球に骨成分とLSDの混合物を注入します。" +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "機械が素早く動き、折れた%sを固定しました。" #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -119647,6 +121825,62 @@ msgstr "蜂蜜を大いに楽しんで食べました。" msgid "You can't finish it all!" msgstr "食べきれなかった!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "影がどんどん近づいてきます。" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "嫌な気分になりました。" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "強い恐怖を感じました。" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "肌がぞわぞわします。" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "誰かから狙われている気がします。" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "嫌な予感がします。" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "またやってしまいましたね?" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "用心深く過ごすべきです。奴らはいつもこちらを見ています..." + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "失敗した失敗した失敗した失敗した失敗した" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "ちょっと落ち着きましょう、これさえあれば大丈夫です。" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "神経過敏になっています。" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "視界の端で何かが蠢いています。" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "奴らは何もかもお見通しだ..." + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "いつもより強い妄執に駆られています。" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "腹が一杯になるまで食べ物を詰め込み、冬眠の準備をしました。" @@ -120138,11 +122372,11 @@ msgstr "記憶済みのレシピ" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"検索したい文字を入力すると、製作アイテムの中から検索します。1文字の接頭辞とコロン(:)を付けてから入力すると、様々な条件を指定して検索できます。\n" +"検索したい文字を入力すると、製作アイテムの中から検索します。1文字の接頭辞とコロン(:)を付けてから入力すると、様々な条件を指定して検索できます。複数のフィルターを追加したい場合はコンマ(,)で区切ります。\n" "\n" "例:\n" @@ -120435,7 +122669,7 @@ msgstr "どの方向の全体マップに瞬間移動しますか?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "隣接する全体マップに瞬間移動しました(%d,%d,%d)。" -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "あなた" @@ -126409,6 +128643,10 @@ msgstr "表示 - デバッグメッセージ" msgid "Crash game (test crash handling)" msgstr "強制終了処理テスト" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "生成 - 特殊地形" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "ゲーム終了" @@ -126715,22 +128953,25 @@ msgid "Underground" msgstr "地下" #: src/game.cpp -msgid "Weather:" +msgid "Weather :" msgstr "天候: " #: src/game.cpp -msgid "Temperature:" +msgid "Temp :" msgstr "気温: " -#: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "月齢 %s" - #: src/game.cpp msgid "Lighting:" msgstr "光量: " +#: src/game.cpp +msgid "Deaf!" +msgstr "難聴!" + +#: src/game.cpp +msgid "Sound: " +msgstr "音: " + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -127034,6 +129275,11 @@ msgstr "全てのアイテムを落とす" msgid "Attach bag" msgstr "バッグを取り付ける" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "%sと触れ合う" + #: src/game.cpp msgid "Untie" msgstr "解放する" @@ -127108,6 +129354,11 @@ msgstr "%1$sは荷物で一杯です。%2$sを入れることはできません msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "%1$sの%2$sには十分な容量がありません。体積が大きすぎます!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "しばらく%sと触れ合いますか?" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "本当に奴隷ゾンビを殺しますか?" @@ -127865,63 +130116,6 @@ msgstr "抜き取るアイテムを持っていません。" msgid "You're not wielding anything." msgstr "何も装備していません。" -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "%sを所持品に戻しました。" - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "%sは既に空です!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "現在の状態では液体を抜き取れません!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "装填物を抜き取るアイテムを選択" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "%sから弾薬は抜けません!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "充電式の%sから抜き取れるものはありません!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "%sは充電されていません。" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "%sは充填されていません。" - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "%sを分解しました。" - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "%sの装填物を抜き取りました。" - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "未使用の原子力電池(%i)を回収しました。" - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "使いかけの原子力電池を除去することはできません!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -129396,10 +131590,6 @@ msgstr "はい。" msgid "Yes, and save game before sleeping." msgstr "はい、眠る前にゲームを保存します。" -#: src/handle_action.cpp -msgid "No." -msgstr "いいえ。" - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "眠る前にこれらの道具のスイッチを切ったほうがいいでしょう。" @@ -129477,6 +131667,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "近隣の農地区域に種をまきます。農地に特定の植物の種類を設定し、種を所持しておく必要があります。" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "施肥する" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "施肥する...肥料がない" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "近隣の農地区域に施肥する" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "収穫する" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "近隣の農地区域の作物を収穫する" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "穴を掘る道具が必要です。" @@ -130229,10 +132439,23 @@ msgstr "菌糸は異常な速度で開花しました..." msgid "The seed blossoms into a flower-looking fungus." msgstr "菌糸は花のような外見の真菌へと成長しました。" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "タイルに植物がありません。" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "既に施肥されています。" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "この%sは既に施肥されています。" +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "与えられる%sがありません。" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "%sに%sを与えました。" #: src/iexamine.cpp #, c-format @@ -130248,6 +132471,11 @@ msgstr "%sに肥料を与えますか?" msgid "Use which fertilizer?" msgstr "使用する肥料を選択" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "この%sは既に施肥されています。" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "この窯には既に炭が入っています。" @@ -131881,7 +134109,7 @@ msgstr "装填時間: " #: src/item.cpp msgid "Ammunition: " -msgstr "弾薬: " +msgstr "装填: " #: src/item.cpp msgid "Types: " @@ -132065,6 +134293,10 @@ msgstr "装填補正: " msgid "Minimum strength required modifier: " msgstr "必要筋力: " +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "MOD追加取付: " + #: src/item.cpp msgid "Used on: " msgstr "対応: " @@ -132073,6 +134305,10 @@ msgstr "対応: " msgid "Location: " msgstr "位置: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "非互換MOD位置: " + #: src/item.cpp msgid "Covers: " msgstr "着用部位: " @@ -132936,6 +135172,11 @@ msgstr "ブラスキャッチャー不可" msgid "must be unloaded before installing this mod" msgstr "装填物残存" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "%sへの取付不可" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -135558,12 +137799,7 @@ msgid "No music on device" msgstr "機器に音楽が入っていません" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "レシピ: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" +msgid "View recipes on E-ink screen" msgstr "画面にレシピを表示する" #: src/iuse.cpp @@ -135633,13 +137869,8 @@ msgid "You turned on music on your %s." msgstr "%sの音楽を再生しました。" #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "表示するレシピを選択: " - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "画面を切り替えて%sのレシピを表示しました。" +msgid "List recipes:" +msgstr "レシピ: " #: src/iuse.cpp msgid "Your collection of monsters:" @@ -135695,10 +137926,6 @@ msgstr "メモリーカードに写真をアップロードする" msgid "No photos in memory" msgstr "写真が入っていません" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "自分に向けてフラッシュは絶対に焚くまいと誓いました。" - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "そこには特に興味深い物はありませんよ。" @@ -135731,6 +137958,10 @@ msgstr "%sが写真の邪魔になりました。" msgid "This photo is better than the previous one." msgstr "前に撮った写真よりも上手く撮れています。" +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "自撮りしました。" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -136996,15 +139227,6 @@ msgstr "それはできません!" msgid "Your tool does not have enough charges to do that." msgstr "それをするには道具の充填量が足りません。" -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "何を修復しますか?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "%sで修復できるアイテムを持っていません。" - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -137286,12 +139508,6 @@ msgstr "既に改良したものを移植しています。" msgid "Remove which modification?" msgstr "取り外すMODを選択" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "%1$sを%2$sから取り外した。" - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "MODが取り付けられていません。" @@ -138828,6 +141044,10 @@ msgstr " 破壊可能 " msgid "Diggable. " msgstr " 穴掘可能 " +#: src/map.cpp +msgid "Plowable. " +msgstr "耕作可能" + #: src/map.cpp msgid "Rough. " msgstr " 凸凹 " @@ -140934,6 +143154,21 @@ msgstr "このMODはLUAサポートが必要です。" msgid "This mod requires Lua support" msgstr "このMODはLUAサポートが必要です。" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "%sが針を飛ばしてきましたが、回避しました。" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%sは針を飛ばしてきました!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "%sが針を飛ばしてきましたが、装甲に弾かれました。" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -141559,11 +143794,6 @@ msgstr "引き摺ろうとしてきた%sに抵抗しました!" msgid " resist the %s as it tries to drag them!" msgstr "は引き摺ろうとしてきた%sに抵抗しました!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%sは針を飛ばしてきました!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "体に毒が入ったように感じます!" @@ -142614,10 +144844,42 @@ msgstr "酷い重傷" msgid "It is nearly dead!" msgstr "瀕死" +#: src/monster.cpp +msgid " Difficulty " +msgstr "強さ" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "強さ" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "最弱" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "少し危険" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "危険" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "非常に危険" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "ものすごく危険" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "とてつもなく危険!" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "%s(%s)" +msgid "This is a %s. %s %s" +msgstr "これは%sです。%s%sです。" #: src/monster.cpp #, c-format @@ -143426,12 +145688,10 @@ msgstr "ポイント" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "('%s'で変更)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "整列: " +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "整列: %1$s (%2$sで変更)" #: src/newcharacter.cpp msgid "Multiple pools" @@ -143999,14 +146259,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "装備: %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "着用: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "装備: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "絶対に信用できない" @@ -144626,6 +146882,10 @@ msgstr "もし力を貸してくれるなら他にも頼みたいことがある msgid " If you are interested, I have another job for you." msgstr "もし興味があれば、他にも頼みたい仕事があるんだ。" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "これからもよろしく頼むよ!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "今はもう何もないんだ。また今度にしてくれ。" @@ -145012,17 +147272,17 @@ msgstr "よし、訓練を再開しようか。 " msgid "%s ( cost $%d )" msgstr "%s (費用 $%d)" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (費用 $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "ああ、ありがとう。" @@ -145199,14 +147459,14 @@ msgstr "障害物を壊すな。" msgid "You can bash obstacles." msgstr "障害物を壊してもいいぞ。" -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "疲れたら寝てもいいぞ。" - #: src/npctalk.cpp msgid "Stay awake." msgstr "寝るな。" +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "疲れたら寝てもいいぞ。" + #: src/npctalk.cpp msgid "Stay quiet." msgstr "静かにしていろ。" @@ -145223,14 +147483,14 @@ msgstr "死体はそのままにしておいてくれ。" msgid "Smash zombie corpses." msgstr "ゾンビの死体は破壊してくれ。" -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "ドアを閉めろ。" - #: src/npctalk.cpp msgid "Leave doors open." msgstr "ドアを開けておけ。" +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "ドアを閉めろ。" + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "アイテム拾得規則を設定する。" @@ -145309,7 +147569,7 @@ msgstr "ここには引き継げる拠点がありません!" msgid "%s has abandoned the camp." msgstr "%sはキャンプ地を放棄しました。" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "素手" @@ -145378,6 +147638,23 @@ msgstr "%1$s から %2$s を渡された。" msgid "%1$s gives you %2$d %3$s" msgstr "%1$sは%2$d個の%3$sを渡しました。" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "%1$sを持っていません!" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "%1$sに%2$sを与えました。" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "%1$sに%2$dの%3$sを与えました。" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "こんなものを食べるほど信用しちゃいない..." @@ -145530,6 +147807,16 @@ msgstr "%sは髪を綺麗に散髪してくれました..." msgid "%s gives you a decent shave..." msgstr "%sは髭を綺麗に剃ってくれました..." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "%sと楽しく会話しました..." + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "%sと楽しく会話しました..." + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -147574,13 +149861,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "例: -パイプ、-カード、-鋼" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "検索対象:検索文字 の形式で記述 検索対象例: c(分類)、m(素材)、q(性能):" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "検索対象:検索文字 の形式で記述 検索対象例: c(分類)、m(素材)、q(性能)、d(分解アイテム):" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "記述例: c:食料、m:鉄、q:打込" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "記述例: c:食料、m:鉄、q:打込、d:パイプ" #: src/output.cpp msgid "unknown" @@ -147916,6 +150203,10 @@ msgstr "動物を捕獲/解放" msgid "Load or unload a vehicle" msgstr "車両を載せる/降ろす" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "播種機に種を装填する" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -148078,6 +150369,11 @@ msgstr "容器の中身をこぼさないように、%1$sを%2$sの上に置き msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "容器の中身をこぼさないように、は%1$sを%2$sの上に置きました。" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "あなた" + #: src/player.cpp msgid "your" msgstr "あなた" @@ -148386,8 +150682,9 @@ msgstr "CBM総数: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "電力: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "CBM電力: %d/%d" #: src/player.cpp msgid "Weapon:" @@ -148473,6 +150770,14 @@ msgstr "大声で叫びました!" msgid "The sound of your voice is almost completely muffled!" msgstr "あなたの声はほとんど聞こえません!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "[不明瞭な声]" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "[こもった叫び声]" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "あなたの声は非常に小さく聞こえます!" @@ -149137,10 +151442,6 @@ msgstr "どうして付いてくるんだ?" msgid "This place is dangerous, you shouldn't be here." msgstr "ここは危険だ。早く離れよう。" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "こんな所で何をしている?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "違うんだろう?" @@ -149433,11 +151734,6 @@ msgstr "視覚中枢がいたずらをしています..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "放射線センサーから得体の知れない感覚が伝わってきます。" -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "放射線バッジの色が%1$sから%2$sに変化しました!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "電力系統の過負荷によって胸が燃えるように熱くなっています!" @@ -149585,6 +151881,11 @@ msgstr "足が震えて転びそうになっています。" msgid "You fall over!" msgstr "転倒しました!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "放射線バッジの色が%1$sから%2$sに変化しました!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -150054,6 +152355,53 @@ msgstr "ここにはアイテムを置けません!" msgid " can't place items here!" msgstr "はそこにアイテムを置けません!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "%sを所持品に戻しました。" + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "%sは既に空です!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "現在の状態では液体を抜き取れません!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "装填物を抜き取るアイテムを選択" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "%sから弾薬は抜けません!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "充電式の%sから抜き取れるものはありません!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "%sは充電されていません。" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "%sは充填されていません。" + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "未使用の原子力電池(%i)を回収しました。" + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "使いかけの原子力電池を除去することはできません!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -150066,6 +152414,12 @@ msgid "Your %s has %d charge but needs %d." msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "%s(%d)の充填量は%d以上必要です。" +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "%1$sを%2$sから取り外した。" + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -150512,6 +152866,10 @@ msgstr "このレベルの%s作業が退屈なものになってきました。" msgid "You resume your task." msgstr "作業を再開しました。" +#: src/player.cpp +msgid "Weapon : fists" +msgstr "装備: 素手" + #: src/player.cpp msgid "Wield what?" msgstr "何を装備しますか?" @@ -150550,6 +152908,14 @@ msgstr "足下のアイテムの一括移動を無効化しました。" msgid "Your body strains under the weight!" msgstr "身体が重荷に悲鳴を上げました。" +#: src/player.cpp +msgid "Wielding: " +msgstr "装備: " + +#: src/player.cpp +msgid " Traits: " +msgstr " 特質: " + #: src/player.cpp #, c-format msgid "You (%s)" @@ -150748,8 +153114,8 @@ msgstr "動作制限と暖かさ" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "CBM電力: %1$d" +msgid "Bionic Power: %1$d" +msgstr "CBM電力: %1$d" #: src/player_display.cpp msgid "EFFECTS" @@ -151270,14 +153636,6 @@ msgstr "喘息の発作で倒れました。" msgid "You wheeze and gasp for air." msgstr "苦しそうに喘ぎました。" -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "骨が柔らかく溶けたかと思うと元に戻りました。ゴムのようです。" - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "骨が細かく砕けて溶けるような感覚を味わっています。" - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "少しだけ頭痛がします。" @@ -152050,15 +154408,6 @@ msgstr "かなり寒い!%s" msgid "Freezing!%s" msgstr "猛烈に寒い!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "難聴!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "[音: %d]" - #: src/sidebar.cpp msgid "Parched" msgstr "脱水状態" @@ -153307,17 +155656,17 @@ msgstr "航行可能" #: src/veh_interact.cpp #, c-format msgid "Wheels/boat: %s/%s" -msgstr "タイヤ/ボート: %s/%s" +msgstr "タイヤ/ボート: %s/%s" #: src/veh_interact.cpp #, c-format msgid "Boat: %s" -msgstr "ボート: %s" +msgstr "ボート: %s" #: src/veh_interact.cpp #, c-format msgid "Wheels: %s" -msgstr "タイヤ: %s" +msgstr "タイヤ: %s" #: src/veh_interact.cpp #, c-format @@ -153325,39 +155674,57 @@ msgid "" "Safe/Top Speed: %3d/%3d " "%s" msgstr "" -"速度(安全/最高): %3d/%3d %s" +"速度(安全/最高): %3d/%3d " +"%s" #. ~ /t means per turn #: src/veh_interact.cpp #, c-format msgid "Acceleration: %3d %s/t" -msgstr "加速度: %3d %s/t" +msgstr "加速度: %3d %s/t" + +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" +"水上速度(安全/最高):%3d/%3d%s" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "水上加速度: %3d%s/t" #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" -msgstr "質量: %5.0f %s" +msgstr "質量: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "積載量: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" +"積載量: " +"%s/%s%s" #: src/veh_interact.cpp msgid "Status:" -msgstr "状態: " +msgstr "状態: " #: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "最大損傷(修復不可): " +msgid "Most damaged:" +msgstr "最大損傷: " #: src/veh_interact.cpp -msgid "Most damaged:" -msgstr "最大損傷箇所: " +msgid "Most damaged (can't repair):" +msgstr "最大損傷(修復不可): " #: src/veh_interact.cpp msgid "Needs repair:" -msgstr "要修復: " +msgstr "要修復: " #: src/veh_interact.cpp #, c-format @@ -153367,26 +155734,31 @@ msgstr "空気抵抗: %5.2f" #: src/veh_interact.cpp #, c-format msgid "Water drag: %5.2f" -msgstr "流体抵抗: %5.2f" +msgstr "流体抵抗: %5.2f" #: src/veh_interact.cpp #, c-format msgid "Rolling drag: %5.2f" -msgstr "転がり抵抗: %5.2f" +msgstr "転がり抵抗: %5.2f" #: src/veh_interact.cpp #, c-format msgid "Static drag: %5d" -msgstr "静止抵抗: %5d" +msgstr "静止抵抗: %5d" #: src/veh_interact.cpp #, c-format msgid "Offroad: %4d%%" msgstr "未舗装道: %4d%%" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "喫水: %4.2fm" + #: src/veh_interact.cpp msgid "Name: " -msgstr "名前: " +msgstr "名前: " #: src/veh_interact.cpp msgid "nstall" @@ -153594,9 +155966,9 @@ msgid "Could not find base part in requirements for %s." msgstr "%sに必要な基礎部品が見つかりません。" #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "ヘッドライトの向きを選択します。スペースキーを押してください。" +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "%sが照らす方向を選択します。スペースキーを押してください。" #: src/veh_interact.cpp #, c-format @@ -153683,10 +156055,10 @@ msgstr "%1$sの%2$sを修復しました。" msgid "Lost connection with the vehicle due to distance!" msgstr "距離が離れすぎたため、車両との通信が切れました!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "バン!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "%sから大きな爆発音が聞こえました。" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -153900,13 +156272,13 @@ msgstr "多重衝突車両" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%sはタイヤが足りなくて動かない!" +msgid "The %s is too leaky!" +msgstr "%sはひどい燃料漏れのため動きません!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%sは燃料が漏れていて動かない!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%sはタイヤ不足のため動きません!" #: src/vehicle_move.cpp #, c-format @@ -154130,6 +156502,14 @@ msgstr "全カーテン・ドアを閉じる" msgid "headlights" msgstr "ヘッドライト" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "広角ヘッドライト" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "指向性車上ライト" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "車上ライト" @@ -154385,18 +156765,23 @@ msgstr "%1$sは%2$s切れのようです。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%sは長い警告音を発しました。" +msgid "the %s bang as it starts" +msgstr "%sは破裂音を立てて始動しました。" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "%sから警報音が聞こえました。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%sは一度だけカチッと鳴りました。" +msgid "the %s clicking once" +msgstr "%sがカチッと音を発しました。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%sはカチッカチッという音を高速で発しました。" +msgid "the %s rapidly clicking" +msgstr "%sはカチカチとせわしない音を発しました。" #: src/vehicle_use.cpp #, c-format @@ -154405,8 +156790,8 @@ msgstr "%sはせわしなく異音を発しました。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%sはガチャンという耳障りな音を発しました。" +msgid "the %s clanking and grinding" +msgstr "%sはカチャカチャと音を立てました。" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -154426,6 +156811,11 @@ msgstr "ビィィ!" msgid "You honk the horn, but nothing happens." msgstr "クラクションを鳴らしましたが、何も起こりませんでした。" +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "いくつ移動させますか?[%d個](0で取消)" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "拡声器によって単純な旋律が鳴り響いています。" diff --git a/lang/po/ko.po b/lang/po/ko.po index 9c2419ee258a4..e3dc77b5c9f7f 100644 --- a/lang/po/ko.po +++ b/lang/po/ko.po @@ -4,17 +4,17 @@ # Sail Recycle , 2018 # fenjo , 2018 # byoungheon jeon , 2018 -# 김정국 , 2018 # Vlasov Vitaly , 2018 # indejeC , 2018 -# Brett Dong , 2018 +# Brett Dong , 2019 +# 김정국 , 2019 # T itan , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: T itan , 2019\n" "Language-Team: Korean (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ko/)\n" @@ -4936,6 +4936,19 @@ msgid "" "travels. It has a lot of storage space." msgstr "장거리 여행용 의류로 만든 급조 의류. 저장 공간이 많습니다." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "가벼운 유목민 외투" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -5903,6 +5916,18 @@ msgid "" "from rain." msgstr "큰 주머니 두개와 후드가 달린 비닐 우비. 비를 막아줍니다." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -13450,7 +13475,7 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Titanium Skeletal Bracing CBM" msgid_plural "Titanium Skeletal Bracing CBMs" -msgstr[0] "" +msgstr[0] "티타늄 뼈대 보강 CBM" #. ~ Description for Titanium Skeletal Bracing CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -13463,7 +13488,7 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Kinetic Shock Absorbers CBM" msgid_plural "Kinetic Shock Absorbers CBMs" -msgstr[0] "" +msgstr[0] "운동충격흡수기 CBM" #. ~ Description for Kinetic Shock Absorbers CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -13473,6 +13498,8 @@ msgid "" "negate damage from severe impacts such as falling, at the cost of reducing " "your ability to move effectively." msgstr "" +"팔과 상체의 살 대부분을 대체하는 유압 용수철과 접이식 충전재입니다. 작동시키면 움직이는 게 조금 힘들어지는 대신 추락과 같은 강한 " +"충격의 피해를 제거합니다." #: lang/json/BIONIC_ITEM_from_json.py msgid "Solar Panels CBM" @@ -15778,7 +15805,7 @@ msgstr "효과적이고 설득적인 발언가가 되고 싶은 사람들을 위 #: lang/json/BOOK_from_json.py msgid "Dungeon Master's Guide: 6th Edition" msgid_plural "Dungeon Master's Guide: 6th Editions" -msgstr[0] "" +msgstr[0] "던전마스터의 가이드:6차 개정판" #. ~ Description for Dungeon Master's Guide: 6th Edition #: lang/json/BOOK_from_json.py @@ -15787,6 +15814,8 @@ msgid "" " It's full of information, but finding the things you're looking for can be" " a chore." msgstr "" +"두껍고, 딱딱한 표지로 된 이 책은 전해져 내려오는 전설이나 신화같은 것을 엮은 책이다. 정보가 많지만, 원하는 것을 찾으려면 시간이 꽤" +" 걸릴 듯하다." #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" @@ -15871,7 +15900,7 @@ msgstr "생존과 사냥을 다루는 잡지. 뒷페이지에는 곰의 습격 #: lang/json/BOOK_from_json.py msgid "Pitching a Tent" msgid_plural "copies of Pitching a Tent" -msgstr[0] "" +msgstr[0] "천막을 치자의 복사본" #. ~ Description for Pitching a Tent #: lang/json/BOOK_from_json.py @@ -16617,31 +16646,31 @@ msgid "Spice" msgstr "향신료" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "리즐링" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "세계에서 가장 우수한 품질의 귀골 포도(noble grapes)로 만든 스파클링 화이트 와인." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "샤르도네" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "미국에서 가장 인기 있는 와인. 인기가 좋은데는 다 이유가 있습니다." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "카베르네 쇼비뇽" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -16669,8 +16698,9 @@ msgstr[0] "위스키" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "남부 지방에서, 남부 사람이, 남부 사람을 위해 만든 진짜 위스키 입니다!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -16679,8 +16709,10 @@ msgstr[0] "보드카" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "소비에트 러시아에서는 보드카가 당신을 마십니다!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -16689,8 +16721,10 @@ msgstr[0] "진" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "엘더베리의 향이 희미하게 나지만, 그냥 술에 가깝습니다." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -16699,8 +16733,10 @@ msgstr[0] "럼주" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "이 술을 마시고 있으면 마치 해적이 된듯한 기분이 들지도 모릅니다. 아님 말고요." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -16709,10 +16745,10 @@ msgstr[0] "데킬라" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." +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 "" -"벌레는 드시지 마세요! 잠깐, 이 병에는 벌레가 없네요.\n" -"(역주: 미국에서는 마케팅을 위해 가끔 테킬라에 벌레를 넣어서 만든다고 합니다.)" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -16800,8 +16836,9 @@ msgstr[0] "롱아일랜드 아이스티" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." -msgstr "맛이 진한 리큐르들을 섞어서 전혀 다른 맛을 만들어낸 혼합주입니다." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -16809,8 +16846,10 @@ msgstr "스크류드라이버 칵테일" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "능청스러운 술고래 정비사가 선택한 음료입니다." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -16840,8 +16879,9 @@ msgstr[0] "맥주" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." -msgstr "유리잔에 라임을 넣어서 먹으면 최고입니다만... 지금은 그정도로 운이 좋지 않네요." +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -16896,9 +16936,10 @@ msgstr[0] "밀조주" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." -msgstr "무척이나 독한 구식 밀조주입니다. 당신이 대재앙에 관한 모든 것을 잊을 수 있도록 해주겠지만, 실명할 수도 있습니다." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -16908,9 +16949,9 @@ msgstr[0] "유러피안 필스너" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." -msgstr "유럽에서 수입된 필스너입니다. 유리잔 속에 넣어서 차갑게 마시면 최고겠지만 - 당신은 그런 행운이 없군요." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -16958,9 +16999,9 @@ msgstr[0] "벨기안 에일" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." -msgstr "벨기에의 수도사가 손수 양조한 풍미있고 배를 채워주는 맥주입니다. 술잔에 따라 마시면 최고입니다." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -17030,9 +17071,9 @@ msgstr "칼리모쵸" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." -msgstr "어떤 이들은 맛이 없다고 생각하지만, 이 음료는 젊은이와 몇몇 국가의 가난한 이들이 즐겨 마시는 음료이다." +"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 "" #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -17420,12 +17461,14 @@ msgstr "갓 잘라낸 신선한 고기입니다. 날것으로 먹을 수 있긴 #: lang/json/COMESTIBLE_from_json.py msgid "scrap of meat" msgid_plural "scraps of meat" -msgstr[0] "" +msgstr[0] "고기 조각" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "" +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "먹을 수 있는 작은 고기조각. 많지는 않지만, 생존에 도움이 될겁니다." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -17434,7 +17477,11 @@ msgstr[0] "" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." +msgid "" +"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." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17443,13 +17490,15 @@ msgstr "고기 (요리됨)" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "갓 익힌 고기입니다. 영양가가 아주 높습니다." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" msgid_plural "cooked scraps of meat" -msgstr[0] "" +msgstr[0] "고기조각 (요리됨)" #: lang/json/COMESTIBLE_from_json.py msgid "raw offal" @@ -17458,9 +17507,10 @@ msgstr "생 내장" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." -msgstr "요리되지 않은 내장. 먹고 싶지는 않지만 필수 비타민들이 들어 있습니다." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -17470,8 +17520,10 @@ msgstr[0] "내장 (요리됨)" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." -msgstr "요리한 내장. 먹고 싶지는 않지만 필수 비타민들이 들어 있습니다." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -17481,9 +17533,10 @@ msgstr[0] "내장 식초절임" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." -msgstr "소금물로 절인, 요리한 내장. 필수 비타민이 가득하고, 냄새가 이상하지만 맛이 좋습니다." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -17493,9 +17546,9 @@ msgstr[0] "내장 통조림" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." -msgstr "통조림제조로 밀봉된, 요리한 내장. 먹고 싶지는 않지만 필수 비타민들이 들어 있습니다." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -17524,7 +17577,7 @@ msgstr[0] "육포" #: lang/json/COMESTIBLE_from_json.py msgid "" "Salty dried meat that lasts for a long time, but will make you thirsty." -msgstr "" +msgstr "말려서 소금 처리를 해 오랫동안 썩지 않는 고기. 먹으면 갈증이 생긴다." #: lang/json/COMESTIBLE_from_json.py msgid "salted fish" @@ -17535,7 +17588,7 @@ msgstr[0] "생선 소금절임" #: lang/json/COMESTIBLE_from_json.py msgid "" "Salty dried fish that lasts for a long time, but will make you thirsty." -msgstr "" +msgstr "건조 처리한 생선에 소금 처리를 해 오랫동안 썩지 않게 한 것. 먹으면 목이 마릅니다." #: lang/json/COMESTIBLE_from_json.py msgid "jerk jerky" @@ -17547,7 +17600,7 @@ msgstr[0] "인육 육포" msgid "" "Salty dried human flesh that lasts for a long time, but will make you " "thirsty." -msgstr "" +msgstr "말려서 소금 처리를 해 오랫동안 썩지 않게 한 인육. 먹으면 갈증이 생긴다." #: lang/json/COMESTIBLE_from_json.py msgid "smoked meat" @@ -17555,8 +17608,10 @@ msgstr "훈제 고기" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "장기보존을 위해 오래 훈제한 맛있는 고기입니다." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -17565,8 +17620,10 @@ msgstr[0] "훈제 생선" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "장기보존을 위해 오래 훈제한 맛있는 생선입니다." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -17575,27 +17632,37 @@ msgstr "훈제 인육" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "훈제한 인육입니다. 인육 섭취에 거부감만 없다면 아주 맛있고, 장기 보존까지 가능한 고기입니다." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "생 폐" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "생 폐 조각" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "동물에서 얻은 폐. 만져보면 스펀지같은 느낌이 난다." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"동물에서 꺼낸 폐의 한 부분. 구멍이 많고 선홍빛을 띠고 빨리 상한다. 제대로 요리하면 별미로 먹을 수 있겠지만, 그렇지 않다면 아무 " +"맛도 않나는 질긴 고기덩어리 맛이 날겁니다." #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "요리된 폐" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "폐 조각(요리됨)" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." -msgstr "폐를 요리한다고 더 맛있어지는 것은 아니겠지만 기생충은 모두 죽었을 것이다." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -17603,8 +17670,11 @@ msgstr "생 간" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "동물에서 얻은 생 간. " +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -17612,8 +17682,11 @@ msgstr "요리된 간" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "비타민B가 많이 함유되어있다." +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -17632,7 +17705,9 @@ msgstr[0] "요리된 뇌" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" +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 "" #: lang/json/COMESTIBLE_from_json.py @@ -17641,8 +17716,10 @@ msgstr "생 콩팥" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "동물에서 얻은 콩팥" +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -17659,8 +17736,10 @@ msgstr "스위트브레드" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "동물에서 얻은 가슴샘 또는 이자." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -17740,9 +17819,9 @@ msgstr "오염된 뼈" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." -msgstr "비정상적인 생물 혹은 뭔가의 썩어 비틀어진 뼈. 숯 같은 것을 만드는데 쓸 수 있다. 먹을 수도 있지만, 중독되게 된다." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -18042,8 +18121,11 @@ msgstr[0] "커피" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "커피입니다. 종말이 오기 전의 아침에는 일어나서 이것을 마시는게 일종의 의식과도 같았습니다." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -18073,8 +18155,8 @@ msgstr[0] "연유" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -18135,8 +18217,10 @@ msgstr "에너지 드링크" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "야근 때문에 늦게까지 깨어있어야 하는 사람들 사이에서 인기입니다." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -18247,8 +18331,9 @@ msgstr "커피 우유" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "여러 나라에서 아침에 주로 음용되는 커피 우유." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -18256,9 +18341,8 @@ msgstr "밀크티" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "여러 나라에서 아침에 자주 음용되는 밀크티." +msgid "Hot tea with cold milk." +msgstr "차가운 우유를 섞은 뜨거운 차." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -18354,8 +18438,10 @@ msgstr "홍차" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "어느 곳에서나 신사숙녀를 대표하는 음료인 차입니다." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "찻잎에 뜨거운 물을 넣어서 만든 신사들이 즐겨마시는 음료." #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -18404,8 +18490,8 @@ msgstr "토마토 소스" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "토마토 소스다. 냠냠." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "요리된 토마토에 조미료를 첨가한 소스." #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -18424,8 +18510,10 @@ msgstr[0] "마요네즈" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "전통적인 마요네즈입니다. 샌드위치에 넣어 먹으면 맛있습니다." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -18433,8 +18521,8 @@ msgstr "케첩" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "그리운 지난날이 떠오르게 하는 케첩으로 핫도그에 뿌려 먹으면 맛있습니다." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -18443,8 +18531,10 @@ msgstr[0] "머스타드" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "전통적인 머스타드입니다. 햄버거에 넣어 먹으면 맛있습니다." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -18487,8 +18577,10 @@ msgstr[0] "식초" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "무척 시큼한 백식초." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -18507,8 +18599,10 @@ msgstr[0] "당밀" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "마치 타르처럼 보이는 이 시럽은 굉장히 달면서도 뒷맛이 씁쓸합니다." +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 "" #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -19631,8 +19725,10 @@ msgstr[0] "메이플 시럽" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "달달한 진짜 버몬트 메이플 시럽입니다." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -19901,13 +19997,13 @@ msgstr "" "450g의 고기와 450g의 탄수화물이 들어있다! 잘 데워져서 좀더 맛있고 배부르게 먹을 수 있지만, 금방 상하니 빨리 먹어야 한다." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" -msgstr "닭고기 튀김" +msgid "deep-fried chicken" +msgstr "" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "닭고기 튀김 한 움큼입니다. 너무 맛있는 것이 단점입니다." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -20056,8 +20152,8 @@ msgstr "생 소시지" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "훈제용으로 사용되는 커다란 생 소시지." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -20068,6 +20164,15 @@ msgstr "소시지" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "보존 또는 훈제 처리된 묵직한 소시지입니다." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "인육 소시지" @@ -20089,6 +20194,18 @@ msgstr[0] "단 소시지" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "달고 맛있는 소시지. 신선할때 먹는 것이 좋다" +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "로얄 비프" @@ -20243,8 +20360,10 @@ msgstr "런천 미트" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "맛있는 런천 미트입니다. 차가워도 먹을만합니다." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -20253,9 +20372,10 @@ msgstr "볼로냐 소시지" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." -msgstr "런천 미트의 일종으로, 잘라진 상태입니다. 차가워도 먹을만합니다." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -20730,9 +20850,9 @@ msgstr "인육 볼로냐 소시지" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." -msgstr "런천 미트의 일종으로, 인육으로 만들어졌으며 잘라진 상태입니다. 차가워도 먹을만합니다." +"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 "" #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -20945,8 +21065,33 @@ msgstr "생 인육 소시지" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "훈제용으로 사용하는 커다란 인육." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -21875,6 +22020,22 @@ msgstr "" "감염을 억제하고 예방하는데 사용하는 항생제. 감염을 철저히 제거 할만큼 강하지는 않지만 신체에 대한 저항력을 향상시킨다. 약효는 12시간" " 지속된다. " +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -23350,11 +23511,11 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "매우 시큼한 감귤류 과일입니다. 꼭 먹어야만 하겠다면 먹을 수는 있습니다." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "블루베리" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "" @@ -23362,51 +23523,51 @@ msgstr "" "(역주: 'blue'에는 '우울한'이라는 의미도 있다.)" #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "딸기" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "맛있는 과즙이 들어있는 열매. 종종 들판에서 자라나는 것을 발견할 수 있다." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "크랜베리" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "새콤한 붉은색 열매입니다. 건강에 좋습니다." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "산딸기" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "달콤한 붉은색 열매입니다." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "월귤나무 열매" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "가끔씩 불루베리와 헷갈리는 월귤나무 열매." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "오디" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -23414,21 +23575,21 @@ msgid "" msgstr "빨간 오디는 북미 동부 지역에서만 나타나며 세계에서 가장 풍미가 뛰어난 종으로 알려져 있습니다." #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "딱총나무 열매" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "날것으로 먹으면 독성이 있으니 요리해 먹는 것이 좋다." #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" msgstr[0] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "" @@ -23463,11 +23624,11 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "새콤 달콤한 감귤류 과일입니다." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "체리" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "나무에서 자라는 붉고 달콤한 과일입니다." @@ -23483,11 +23644,11 @@ msgid "" msgstr "적당히 큰 보라색 자두입니다. 몸에 좋고, 소화를 돕습니다." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "포도" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "즙이 많은 포도 한 송이." @@ -23539,11 +23700,11 @@ msgid "A large and very sweet fruit." msgstr "크고 아주 달콤한 과일입니다." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "블랙베리" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "산딸기의 검은색 사촌입니다." @@ -23586,10 +23747,11 @@ msgid "" msgstr "털로 뒤덮인 갈색 껍질의 알찬 열매. 초록색 내용물이 맛있다." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "살구" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "부드러운 촉감의 과일로, 복숭아와 비슷한 과일입니다." @@ -23643,8 +23805,8 @@ msgstr "양배추" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "머리통 크기의 바스락거리는 백양배추." +msgid "Crisp white cabbage." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -23727,8 +23889,8 @@ msgstr "오이" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "박과에 속하는 식물로, 맛은 없지만 수분은 많습니다." +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -24142,6 +24304,10 @@ msgstr[0] "블랙베리 씨앗" msgid "Some blackberry seeds." msgstr "약간의 블랙베리 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -24152,6 +24318,10 @@ msgstr[0] "블루베리 씨앗" msgid "Some blueberry seeds." msgstr "약간의 블루베리 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -24162,6 +24332,10 @@ msgstr[0] "크랜베리 씨앗" msgid "Some cranberry seeds." msgstr "약간의 크랜베리 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -24172,6 +24346,10 @@ msgstr[0] "월귤나무 씨앗" msgid "Some huckleberry seeds." msgstr "약간의 월귤나무 씨앗" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -24182,6 +24360,10 @@ msgstr[0] "오디 씨앗" msgid "Some mulberry seeds." msgstr "약간의 오디 씨앗" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -24192,6 +24374,10 @@ msgstr[0] "딱총나무 씨앗" msgid "Some elderberry seeds." msgstr "약간의 딱총나무 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -24202,6 +24388,10 @@ msgstr[0] "라즈베리 씨앗" msgid "Some raspberry seeds." msgstr "약간의 산딸기 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -24212,6 +24402,10 @@ msgstr[0] "딸기 씨앗" msgid "Some strawberry seeds." msgstr "약간의 딸기 씨앗." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -24222,6 +24416,10 @@ msgstr[0] "포도 씨앗" msgid "Some grape seeds." msgstr "약간의 포도 씨앗" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -25629,6 +25827,15 @@ msgstr "'특제' 브라우니" msgid "This is definitely not how grandma used to bake them." msgstr "이것은 할머니가 구워주시던 브라우니와 완전히 다르다고 확언할 수 있다." +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "" @@ -26980,6 +27187,18 @@ msgstr[0] "유해 폐기물 보관통" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "유해 폐기물을 저장할 때 쓰이는 노란색 원형 드럼통." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -29477,6 +29696,30 @@ msgid "" "without prior connection to compatible valve." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -30405,9 +30648,8 @@ msgstr[0] "돌을 넣은 양말" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "돌을 넣고 묶은 양말. 절박함의 상징이라고 할 수 있는 무기다." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -31891,6 +32133,18 @@ msgid "" "without reducing its effectiveness." msgstr "효율성의 감소 없이 손상으로부터 보호하기 위한 창살을 두른 차량용 헤드라이트입니다." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -32244,6 +32498,18 @@ msgstr[0] "투광 조명등" msgid "A large and heavy light designed to illuminate wide areas." msgstr "넓은 영역을 비추도록 설계된 크고 무거운 조명등이다." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -32454,6 +32720,16 @@ msgstr[0] "헤드라이트" msgid "A vehicle headlight to light up the way." msgstr "길을 밝히는 차량용 헤드라이트입니다." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -32878,6 +33154,16 @@ msgstr[0] "취권과 당신" msgid "A complete guide to Zui Quan." msgstr "취권에 대한 완벽한 안내서." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -34572,6 +34858,44 @@ msgstr[0] "고장난 신형 토끼 로봇" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "고장난 토끼 로봇. 축 처진게 움직일 수 없을 것 같다." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -34582,6 +34906,26 @@ msgstr[0] "노" msgid "Oars for a boat." msgstr "보트에 쓰이는 노." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "고무보트 바닥" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "공기주입식 보트 바닥." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "공기주머니" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "공기주입식 주머니." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -34679,6 +35023,337 @@ msgid "belt ammo link" msgid_plural "belt ammo links" msgstr[0] "벨트 탄약 연결부" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -37904,6 +38579,15 @@ msgid "" "other gun mods." msgstr "총기와 탄약을 간단한 형태로 대체합니다. 주의: 다른 총기 모드와 충돌할 수 있음." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "바이오닉 설치 메뉴얼" @@ -39641,6 +40325,10 @@ msgstr "" "대부분의 몸뚱아리가 녹아버렸지만 엉겨붙은 산이 부풀어오른 몸을 간신히 연결시키고 있어 아직 형태는 유지하고 있습니다. 움직임은 느리지만 " "많은 양의 산으로 공격합니다." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "기어다니는 좀비" @@ -43961,11 +44649,18 @@ msgid "fedora" msgid_plural "fedoras" msgstr[0] "페도라" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "페도라를 썼다." +#, no-python-format +msgid "You tip your %s." +msgstr "" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -45283,6 +45978,11 @@ msgid "boulder anvil" msgid_plural "boulder anvils" msgstr[0] "바위 모루" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -46571,34 +47271,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "초소형 금속 탱크에 숯을 담고 점화 장치를 달았습니다. 요리도구로 쓸 수 있습니다." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "화학 용품" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"상자에 든 화학 용품 세트입니다. 유리 용기, 고무관, 철사, 핫플레이트, 보안경이 들어 있습니다. 원하는 화학 제품을 제작할 수도 " -"있지만 열원이 필요합니다." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "기초 화학 용품" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "유리 용기, 고무관, 보안경이 든 기초 화학 용품 세트. 원하는 화학 제품을 제작할 수도 있지만 열원이 필요합니다." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -51364,6 +52036,149 @@ msgid "" "Some cars can be driven remotely." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "화학 용품" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"상자에 든 화학 용품 세트입니다. 유리 용기, 고무관, 철사, 핫플레이트, 보안경이 들어 있습니다. 원하는 화학 제품을 제작할 수도 " +"있지만 열원이 필요합니다." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "기초 화학 용품" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "유리 용기, 고무관, 보안경이 든 기초 화학 용품 세트. 원하는 화학 제품을 제작할 수도 있지만 열원이 필요합니다." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -52502,6 +53317,14 @@ msgid "inactive military robot" msgid_plural "inactive military robots" msgstr[0] "" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -53218,41 +54041,6 @@ msgstr "보강된 나무 수레바퀴" msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "내구성을 위해 금속 띠를 두른 수제 나무 수레바퀴." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "고무보트 바닥" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "공기주입식 보트 바닥." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "공기주머니" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "공기주입식 주머니." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "보트 판자" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"보트가 떠있도록 하는 나무판. 차량을 보트로 바꾸려면 바퀴 부분에 위치 시키세요. 그 후에 노와 보트를 달면 보트가 움직일 수 있게 " -"됩니다." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "젤라틴 궤도" @@ -53447,6 +54235,10 @@ msgstr "차량 작업을 중단합니까?" msgid "Stop training?" msgstr " 훈련을 중단합니까?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr " 응급처치를 중단합니까?" @@ -53503,6 +54295,14 @@ msgstr "" msgid "Stop planting seeds?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "소지 물품 정리를 중단합니까?" @@ -53607,10 +54407,18 @@ msgstr "" msgid "Stop cutting your hair?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -56506,6 +57314,17 @@ msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "" "AI tag for asking to NPCs to train you. This is a bug if you have it." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Asked Info" @@ -57842,21 +58661,6 @@ msgstr "호흡하기 힘들다." msgid "The ceiling collapses on you!" msgstr "머리 위의 천장이 무너집니다!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "줄기세포 치료" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "약물 효과 때문에, 몸이 이상하게 변하고 있다." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "안구에 의료용 골격 접착제와 에나멜을 삽입했다." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "" @@ -58402,6 +59206,15 @@ msgstr "" msgid "You feel incredible! You could take on the world!" msgstr "" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "" @@ -58427,9 +59240,8 @@ msgstr "" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" #: lang/json/effects_from_json.py @@ -65627,6 +66439,39 @@ msgid "" "accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -65757,6 +66602,15 @@ msgid "" "other modification prevents use of the primary sights." msgstr "45도 각도로 기울여져 설치된 기계식 조준기. 조준경이나 다른 개조 부품이 주 조준기를 방해할 때 사용할 수 있습니다." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -66565,6 +67419,9 @@ 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 "" +"게임을 하다 보면 이동키를 계속 누른 상태로 빨리 이동하고 싶을 때가 있습니다. 하지만 로그라이크 게임에서 빠른 이동은 캐릭터를 위험한 " +"상황에 처하게 하거나 심지어는 대응을 하기도 전에 죽게 할 수도 있습니다. 이럴 때 키를 눌러서 " +"\"안전모드\"를 켜놓을 수 있습니다. 안전모드가 켜져있으면 새로운 적이 시야에 들어올 때 이동을 멈춥니다." #: lang/json/help_from_json.py msgid ": Viewing" @@ -68817,7 +69674,7 @@ msgstr "" #. ~ 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 "" +msgstr "작동시키면 차량의 전력을 소모한다." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -68843,10 +69700,9 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" #. ~ Please leave anything in unchanged. @@ -69201,11 +70057,11 @@ msgstr "도시 라벨 설정" #: lang/json/keybinding_from_json.py msgid "Toggle Hordes" -msgstr "" +msgstr "괴물무리 표시" #: lang/json/keybinding_from_json.py msgid "Toggle Forest Trails" -msgstr "" +msgstr "숲속 오솔길 표시" #: lang/json/keybinding_from_json.py msgid "Toggle Explored" @@ -69595,7 +70451,7 @@ msgstr "시체 해체" msgid "Chat with NPC" msgstr "NPC와 대화하기" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "주변 둘러보기" @@ -70132,7 +70988,7 @@ msgstr "아니오" #: lang/json/keybinding_from_json.py msgid "Ignore further distractions and finish" -msgstr "" +msgstr "(I)작업완료까지 방해 무시" #: lang/json/keybinding_from_json.py msgid "Cancel popup" @@ -70206,6 +71062,14 @@ msgstr "" msgid "Toggle headlights" msgstr "헤드라이트 전환" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "" @@ -70617,14 +71481,14 @@ msgid "Analyze blood" msgstr "혈액 분석" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Mr. 줄기 세포" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "줄기 세포 치료" +msgid "Bonesetting Treatment" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -70787,6 +71651,13 @@ msgstr "" msgid "it works." msgstr "" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -71990,6 +72861,36 @@ msgstr "" "+Strength bash armor, +Dexterity acid armor, +Intelligence electricity " "armor, +Perception fire armor." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "중세 검술" @@ -75192,6 +76093,10 @@ msgstr "%s(을)를 즐김" msgid "Enjoyed a hot meal" msgstr "따뜻한 음식을 맛있게 먹음" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "음악" @@ -75402,6 +76307,10 @@ msgstr "깔끔하게 면도" msgid "Barfed" msgstr "메스꺼움" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "" @@ -76525,6 +77434,18 @@ msgid "" "unique pleasure to you." msgstr "고통에 따른 부정적인 효과를 겪기는 하지만, 고통에 따라 아주 특수한 쾌락도 함께 찾아옵니다." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -76659,9 +77580,8 @@ msgstr "근접 무기술 수련" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" -"당신은 무기를 가지고 싸우는 방법을 훈련받았습니다. 에스크리마, 펜싱, 픈짝 실랏, 혹은 이천일류 중 하나를 선택해서 시작합니다." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -77317,6 +78237,17 @@ msgid "" "you heal much slower. Stacks with Glass Jaw." msgstr "당신의 신체는 무척 허약합니다. 최대 체력이 75% 감소하고 회복 속도가 많이 느려집니다. 유리 턱과 중첩 가능합니다." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "거친 피부" @@ -81289,6 +82220,24 @@ msgstr "새로운 목표가 설정되었다!" msgid "Has Level 2 Construction Built" msgstr "Has Level 2 Construction Built" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "디버그 시야" @@ -82021,6 +82970,10 @@ msgstr "아피스" msgid "I'm bugged - I shouldn't talk to you." msgstr "나 버그 걸렸어, 그래서 아무 말도 못해." +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -82340,6 +83293,30 @@ msgstr "약탈자" msgid "Psycho" msgstr "" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "침략자" @@ -83508,15 +84485,43 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "forest trail" -msgstr "" +msgstr "오솔길" #: lang/json/overmap_terrain_from_json.py msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "버려진 드라이브 스루" +msgid "veterinarian clinic" +msgstr "동물병원" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "박물관" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "영안실" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "세탁소" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "금은방" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "2층 모텔" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "대형 오피스 타워" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "인테리어점" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -83542,6 +84547,10 @@ msgstr "볼링장" msgid "boxing gym" msgstr "복싱 체육관" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "헬스장" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "도장" @@ -83555,37 +84564,13 @@ msgid "gardening supply" msgstr "원예용품점" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "헬스장" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "인테리어점" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "금은방" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "세탁소" +msgid "abandoned drive-through" +msgstr "버려진 드라이브 스루" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "이름 없음" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "영안실" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "박물관" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "동물병원" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "파산한 피자가게" @@ -83823,14 +84808,6 @@ msgstr "학교" msgid "projects" msgstr "공영주택" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "2층 모텔" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "대형 오피스 타워" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "자동차 정비소" @@ -83947,6 +84924,34 @@ msgstr "" msgid "regional dump" msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -88577,6 +89582,112 @@ msgstr "" "종말이 오기 전에, 당신의 취미는 상업 로봇을 재프로그래밍하고 재창조하는 것이었습니다. 그러나 당신의 생존이 그 취미에 달려 있다는 것은" " 생각하지도 못했습니다." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -91594,7 +92705,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" #: lang/json/snippet_from_json.py @@ -91618,22 +92729,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" @@ -91642,7 +92751,7 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "" #: lang/json/snippet_from_json.py @@ -91658,17 +92767,16 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." -msgstr "" +msgid "Just because a place is dangerous doesn't mean it's worth looting." +msgstr "장소가 위험할수록 더 쓸만한 물건이 나오는 것은 아니다." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" #: lang/json/snippet_from_json.py @@ -91699,12 +92807,13 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" #: lang/json/snippet_from_json.py @@ -91714,8 +92823,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" #: lang/json/snippet_from_json.py @@ -91738,15 +92846,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" +msgid "Why walk when you can use a car? Or a tank?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" #: lang/json/snippet_from_json.py @@ -91799,7 +92907,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" @@ -91833,9 +92941,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" #: lang/json/snippet_from_json.py @@ -91859,7 +92965,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -91876,9 +92982,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -91894,17 +92998,78 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "액체를 담을 수 있는 용기위에 깔때기를 설치하면 빗물을 모을 수 있다." + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -96805,6 +97970,67 @@ msgstr "물... 근처에 오아시스가 있을까?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "탈수로 죽는 것이 수면 부족으로 죽는 것보다 빠르다는 거 알아?" +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "" @@ -97269,7 +98495,7 @@ msgstr "친구" msgid "fella" msgstr "좋은 친구" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "당신" @@ -98345,6 +99571,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "" @@ -98361,6 +99599,10 @@ msgstr "" msgid "What's that noise?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "" @@ -98370,7 +99612,7 @@ msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py @@ -98378,7 +99620,7 @@ msgid "Did you hear that? Sounded like" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -98514,6 +99756,10 @@ msgstr "" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "" @@ -98526,10 +99772,6 @@ msgstr "좀비" msgid "Z's" msgstr "" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "죽은" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -101587,1818 +102829,598 @@ msgid "Clothing Store" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "That sure is a shiny badge you got there!" +msgstr "너 번쩍거리는 배지를 달고 있네?" #: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" +msgid "Heh, you look important." +msgstr "헤. 넌 뭐 좀 할 사람 같아 보이는데?" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "" +msgid "I'm actually new." +msgstr "난 여기 처음이야." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" +msgid "What are you doing here?" +msgstr "넌 여기서 뭐하고 있어?" #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "" +msgid "Heard anything about the outside world?" +msgstr "바깥소식 좀 들은 거 있어?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" +msgid "Is there any way I can join your group?" +msgstr "당신네 그룹에 들어갈 방법이 있어?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" +msgid "What's with your ears?" +msgstr "네 귀는 왜 그래?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "" +msgid "Anything I can help with?" +msgstr "내가 뭐 도울 것 없을까?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "그럼, 잘 가." #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." -msgstr "" +msgid "Sucks..." +msgstr "젠장..." #: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" +msgid "" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" +"아. 요 아래층에 공기압 대포를 주무르는 녀석이 있지. 그건 철근을 말이야, 소리도 없이 대포처럼 쏴 갈겨. 효율로 따지자면 끝내주지. " +"네가 만들 수 있는 즉석 무기들 같은 부족함도 없어. 더 대단한 건 말이지, 그걸로 요새화를 진행 중인 거 같단 거야. 괴물들 중 그게 " +"설치된 벽이나 울타리를 뚫고 올 놈은 거의 없을걸?" #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "" +msgid "Well, then..." +msgstr "그래, 그럼..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" -msgstr "" +"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 "그리 낙관적이진 않아. 전에 도로가에서 단파 라디오로 송신이 왔었는데, 가보니 아무도 없고, 그냥 고장이었던 거야." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "" +msgid "Nothing optimistic?" +msgstr "낙관적인 부분은 없어?" #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" +"비상대피소는 현재 대부분 와해 되었어. 도시는 좀비들로 부글대고, 숲 속에서 조차 놈들의 눈깔이 번들대지. 이 밖은 다 그렇게 미쳐 " +"돌아가고, 라디오(무전기)를 가진 모두는 사람들의 끔찍한 종말을 함께 체험하곤 해." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" +msgid "I feel bad for asking." +msgstr "물어봐서 미안해." #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" +"잘은 몰라. 내 생각엔, 너 스스로 쓸모 있어지면 될지도. 물론 요즘엔 뭐 하나 확실한 것이 없지만, 그건 네가 누구에게 묻느냐에 " +"달렸겠지. 내가 더 팔 게 없어지면 저 상인은 분명히 내가 더 머무는 것을 원하지 않겠지만... 어떤 사람들은 그런 상황을 모면하기도 " +"해." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "" +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." +msgstr "당신이랑 마찬가지지. 대놓고 말하지 말라고. 어떤 사람들은 우리 같은 사람을 얕잡아보거든." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." -msgstr "" +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "쉿. 여기 있는 사람 중 일부는... 돌연변이를 매우 싫어해. 내 귀는 사고 때문이었는데도 말이지." #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "" +msgid "Sorry to ask" +msgstr "물어봐서 미안" #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" +msgid "You're disgusting." +msgstr "역겹군." #: lang/json/talk_topic_from_json.py msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" +"\"난 건물에 불을 지르고 자유상인연합에 물건을 팔지. 어, 진짜야. 네가 교외에 있던 불에 탄 잔해를 발견하고, 또 그 철근 무더기가 " +"매물이라면, 그거 내가 한걸 거야. 그 대가로 난 먹고사는 거니깐. 만약 네가 원한다면, 몰로토프 칵테일(화염병) 한두 병 팔 수도 " +"있어." #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "" +msgid "I'll buy." +msgstr "살게." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" +msgid "Who needs rebar?" +msgstr "누구 철근 필요해?" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." +msgid "As if you're one to talk. Screw You." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "" +msgid "Screw You!" +msgstr "엿 먹어!" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" +msgid "Another survivor! We should travel together." +msgstr "같은 생존자 잖아! 같이 움직이자구!" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "" +msgid "What are you doing?" +msgstr "뭐하는 중이야?" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" +msgid "Care to trade?" +msgstr "거래할 생각 있나?" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "" +msgid "&Put away weapon." +msgstr "&무기를 치운다." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "" +msgid "&Drop weapon." +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 "" +msgid "Don't worry, I'm not going to hurt you" +msgstr "걱정하지 마, 다치게 할 생각은 없어" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "" +msgid "Drop your weapon!" +msgstr "무기 버려!" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" +msgid "Get out of here or I'll kill you." +msgstr "여기서 꺼지지 않으면 죽여버리겠어." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" +msgid "Hey there, ." +msgstr "안녕, ." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "잘가." #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "" +msgid "Hello there." +msgstr "안녕." #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" +msgid "Okay, no sudden movements..." +msgstr "좋아, 가만히 있으라고..." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "" +msgid "Keep your distance!" +msgstr "가까이 오지마!" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" +msgid "Calm down. I'm not going to hurt you." +msgstr "진정해. 난 너에게 해코지할 생각이 없어." #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" +msgid "Screw you, no." +msgstr "엿이나 먹어, 당연히 안돼." #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" +msgid "&Put hands up." +msgstr "&손을 든다." #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." +msgid "*drops his weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "" +msgid "*drops_her_weapon." +msgstr "*drops_her_weapon." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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." +msgid "Now get out of here" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" +msgid "Now get out of here, before I kill you." +msgstr "내가 죽여버리기 전에 꺼져." #: 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 "" +msgid "Okay, I'm going." +msgstr "알았어. 가는 중이야." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "" +msgid "About that job..." +msgstr "일 말인데..." #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "" +msgid "About one of those jobs..." +msgstr "일거리 말인데..." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" +msgid "What's the matter?" +msgstr "뭐가 문제야?" #: 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 "" +msgid "I don't care." +msgstr "내가 알 바 아냐." #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "" +msgid "I see." +msgstr "알겠어." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "오. 알았어." #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "" +msgid "Never mind, I'm not interested." +msgstr "아무것도 아냐, 난 관심 없어." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "아무것도 하지 않음." #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" +msgid "I'll do it!" +msgstr "내가 하지!" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "" +msgid "Not interested." +msgstr "관심 없어." #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" +msgid "Not a problem." +msgstr "그 정돈 쉽지." #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" +msgid "Got any advice?" +msgstr "해줄 충고라도 있나?" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" +msgid "Can you share some equipment?" +msgstr "몇 가지 장비좀 나눠줄 수 있어?" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "" +msgid "I'll be back soon!" +msgstr "곧 돌아갈게!" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good, thanks." +msgstr "괜찮은 생각인데, 고마워." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good. Bye!" +msgstr "좋은 생각같네. 안녕!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" +msgid "I'm sorry." +msgstr "미안." #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" +msgid "Whatever. Bye." +msgstr "마음대로 해. 안녕." #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "" +msgid "Well, um, sorry." +msgstr "어, 음. 미안." #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" +msgid "I'm sorry. I did what I could." +msgstr "미안. 내가 할 수 있는걸 한거야." #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "" +msgid "Sure, here you go!" +msgstr "물론, 여기 있어!" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" +msgid "Thank you." +msgstr "고맙군." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Thanks, bye." +msgstr "고마워. 잘가." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Well, I guess it's just us." +msgstr "흠, 우리 뿐인 것 같네." #: 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 "" +msgid "At least we've got shelter." +msgstr "최소한 피난처는 있잖아." #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "" +msgid "What should we do now?" +msgstr "이제 뭘 해야하지?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Any tips?" +msgstr "조언 좀 해줄래?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "뭔가 해줄 일이 있을까?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Want to travel with me?" +msgstr "나하고 같이 여행할래?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "거래하자." #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." +msgid "I can't leave the shelter without equipment." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" +msgid "Relax and chat with me for a while..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Well, I'm feeling pretty sick... are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +msgid "Oh you know, not bad, not bad..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "글쎄, 보급품하고 다른 생존자를 찾아보는 건 어떨까." #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "" +msgid "Maybe we should start boarding up this place." +msgstr "아마 우린 여기를 떠나는 게 좋을 것 같아." #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." +msgstr "만약 우리가 여기서 빨리 벗어나야 한다면 차를 한대 얻는 게 좋을거야." #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" +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 "" #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." +msgstr "우린 저 도시에서 멀리 벗어나는게 좋을거야, 저기에 유용한 것들이 많이 있더라도 말이지." #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "" +msgid "Hmm, okay." +msgstr "흠, 알겠어." #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" +msgid "Not until I get some antibiotics..." +msgstr "내가 항생제를 얻기 전까진 안돼..." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "You asked me recently; ask again later." +msgstr "물어봤잖아, 나중에 다시 물어보라고." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "Why should I travel with you?" +msgstr "내가 왜 너하고 같이 가야하는데?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" +msgid "Understood. I'll get those antibiotics." +msgstr "알았어. 항생제를 가져다주지." #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "" +msgid "Right, right, I'll ask later." +msgstr "그래, 그래, 나중에 물어보지." #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "" +msgid "I can keep you safe." +msgstr "나는 너를 안전하게 지켜줄 수 있어." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" +msgid "You can keep me safe." +msgstr "당신은 나를 안전하게 지켜줄 수 있어요." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "" +msgid "We're friends, aren't we?" +msgstr "우린 친구지, 그렇지?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" +msgid "I'll kill you if you don't." +msgstr "안 그러면 죽여버리겠어." #: 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 "" +msgid "You got it, I'm with you!" +msgstr "좋았아, 너하고 같이 가지!" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "" +msgid "Awesome!" +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 "" +msgid "Okay, let's go!" +msgstr "좋았어, 가자!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "" +msgid "Yeah... I don't think so." +msgstr "음... 내 생각은 다른데." #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "" +msgid "You're really leaving?" +msgstr "정말 떠날거야?" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" +msgid "Yeah, I'm sure. Bye." +msgstr "그래, 잘 알겠어. 안녕." #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "" +msgid "Nah, I'm just kidding." +msgstr "아니, 그냥 농담이야." -#: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "뭐야?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "" +msgid "How much further?" +msgstr "얼마나 더 멀리?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "" +msgid "I'd like to lead for a while." +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 "" +msgid "Step aside. I'm leader now." +msgstr "물러서라. 지금은 내가 리더야." -#: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "가자." #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" +msgid "Alright. You can lead now." +msgstr "좋아. 네가 대장을 하라고." #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" +msgid "Good. Something else..." +msgstr "좋아. 그 밖에..." #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" +msgid "Alright, let's go." +msgstr "좋아, 가자." #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "" +msgid "Okay, okay." +msgstr "좋아, 좋아." #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "시발 안되지, 그랬다간 뒤쳐질거라고!" #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." +msgid "Fine." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "" +msgid "I'm on watch." +msgstr "경계 중이야." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "네가 나와 같이 가줬으면 좋겠어." #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" +msgid "See you around." +msgstr "또 봐." #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "" +msgid "I really don't feel comfortable doing so..." +msgstr "너 자꾸 왜 그래? 너가 이러는 거 엄청 불편해." #: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "" +msgid "I'll give you some space." +msgstr "알겠어. 귀찮게 굴지 않을게." #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" +msgid "I'd prefer to keep that to myself." +msgstr "그냥 마음속에 담아 두는게 좋겠어." #: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" +msgid "I understand..." +msgstr "알겠어..." #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" +msgid "Okay, here you go." +msgstr "좋아. 이거 받아." #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "" +msgid "Thank you!" +msgstr "고마워!" #: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" +msgid "Thanks! But can I have some more?" +msgstr "고마워! 그런데 좀 더 가질 수 있을까?" #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "" +msgid "Thanks, see you later!" +msgstr "고마워, 나중에 봐!" #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" +msgid "Okay, okay, sorry." +msgstr "알았어 알았어.. 미안해." #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "" +msgid "Seriously, give me more stuff!" +msgstr "장난치지 말고, 좀 더 줘!" #: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" +msgid "Okay, fine, bye." +msgstr "그래, 좋아, 안녕." #: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: 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 "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "너 번쩍거리는 배지를 달고 있네?" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "헤. 넌 뭐 좀 할 사람 같아 보이는데?" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "난 여기 처음이야." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "넌 여기서 뭐하고 있어?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "바깥소식 좀 들은 거 있어?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "당신네 그룹에 들어갈 방법이 있어?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "네 귀는 왜 그래?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "내가 뭐 도울 것 없을까?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "그럼, 잘 가." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "젠장..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"아. 요 아래층에 공기압 대포를 주무르는 녀석이 있지. 그건 철근을 말이야, 소리도 없이 대포처럼 쏴 갈겨. 효율로 따지자면 끝내주지. " -"네가 만들 수 있는 즉석 무기들 같은 부족함도 없어. 더 대단한 건 말이지, 그걸로 요새화를 진행 중인 거 같단 거야. 괴물들 중 그게 " -"설치된 벽이나 울타리를 뚫고 올 놈은 거의 없을걸?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -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 "그리 낙관적이진 않아. 전에 도로가에서 단파 라디오로 송신이 왔었는데, 가보니 아무도 없고, 그냥 고장이었던 거야." - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "낙관적인 부분은 없어?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"비상대피소는 현재 대부분 와해 되었어. 도시는 좀비들로 부글대고, 숲 속에서 조차 놈들의 눈깔이 번들대지. 이 밖은 다 그렇게 미쳐 " -"돌아가고, 라디오(무전기)를 가진 모두는 사람들의 끔찍한 종말을 함께 체험하곤 해." - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "물어봐서 미안해." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"잘은 몰라. 내 생각엔, 너 스스로 쓸모 있어지면 될지도. 물론 요즘엔 뭐 하나 확실한 것이 없지만, 그건 네가 누구에게 묻느냐에 " -"달렸겠지. 내가 더 팔 게 없어지면 저 상인은 분명히 내가 더 머무는 것을 원하지 않겠지만... 어떤 사람들은 그런 상황을 모면하기도 " -"해." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." -msgstr "당신이랑 마찬가지지. 대놓고 말하지 말라고. 어떤 사람들은 우리 같은 사람을 얕잡아보거든." - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "쉿. 여기 있는 사람 중 일부는... 돌연변이를 매우 싫어해. 내 귀는 사고 때문이었는데도 말이지." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "물어봐서 미안" - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "역겹군." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"\"난 건물에 불을 지르고 자유상인연합에 물건을 팔지. 어, 진짜야. 네가 교외에 있던 불에 탄 잔해를 발견하고, 또 그 철근 무더기가 " -"매물이라면, 그거 내가 한걸 거야. 그 대가로 난 먹고사는 거니깐. 만약 네가 원한다면, 몰로토프 칵테일(화염병) 한두 병 팔 수도 " -"있어." - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "살게." - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "누구 철근 필요해?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "엿 먹어!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "같은 생존자 잖아! 같이 움직이자구!" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "뭐하는 중이야?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "거래할 생각 있나?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&무기를 치운다." - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&무기를 떨어트린다." - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "걱정하지 마, 다치게 할 생각은 없어" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "무기 버려!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "여기서 꺼지지 않으면 죽여버리겠어." - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "안녕, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "잘가." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "안녕." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "좋아, 가만히 있으라고..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "가까이 오지마!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "진정해. 난 너에게 해코지할 생각이 없어." - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "엿이나 먹어, 당연히 안돼." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&손을 든다." - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*drops_her_weapon." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "내가 죽여버리기 전에 꺼져." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "알았어. 가는 중이야." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "일 말인데..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "일거리 말인데..." - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "뭐가 문제야?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "내가 알 바 아냐." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "알겠어." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "오. 알았어." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "아무것도 아냐, 난 관심 없어." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "아무것도 하지 않음." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "내가 하지!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "관심 없어." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "그 정돈 쉽지." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "해줄 충고라도 있나?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "몇 가지 장비좀 나눠줄 수 있어?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "곧 돌아갈게!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "괜찮은 생각인데, 고마워." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "좋은 생각같네. 안녕!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "미안." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "마음대로 해. 안녕." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "어, 음. 미안." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "미안. 내가 할 수 있는걸 한거야." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "물론, 여기 있어!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "고맙군." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "고마워. 잘가." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "흠, 우리 뿐인 것 같네." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "최소한 피난처는 있잖아." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "이제 뭘 해야하지?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "조언 좀 해줄래?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "뭔가 해줄 일이 있을까?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "나하고 같이 여행할래?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "거래하자." - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "글쎄, 보급품하고 다른 생존자를 찾아보는 건 어떨까." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -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 "만약 우리가 여기서 빨리 벗어나야 한다면 차를 한대 얻는 게 좋을거야." - -#: 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 "" - -#: 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 "우린 저 도시에서 멀리 벗어나는게 좋을거야, 저기에 유용한 것들이 많이 있더라도 말이지." - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "흠, 알겠어." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "내가 항생제를 얻기 전까진 안돼..." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "물어봤잖아, 나중에 다시 물어보라고." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "내가 왜 너하고 같이 가야하는데?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "알았어. 항생제를 가져다주지." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "그래, 그래, 나중에 물어보지." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "나는 너를 안전하게 지켜줄 수 있어." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "당신은 나를 안전하게 지켜줄 수 있어요." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "우린 친구지, 그렇지?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "안 그러면 죽여버리겠어." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "좋았아, 너하고 같이 가지!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "훌륭해!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "좋았어, 가자!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "음... 내 생각은 다른데." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "정말 떠날거야?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "그래, 잘 알겠어. 안녕." - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "아니, 그냥 농담이야." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "뭐야?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "얼마나 더 멀리?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "잠깐 지휘해줬으면 좋겠는데." - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "물러서라. 지금은 내가 리더야." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "가자." - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "좋아. 네가 대장을 하라고." - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "좋아. 그 밖에..." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "좋아, 가자." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "좋아, 좋아." - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "시발 안되지, 그랬다간 뒤쳐질거라고!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "경계 중이야." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "네가 나와 같이 가줬으면 좋겠어." - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "또 봐." - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "너 자꾸 왜 그래? 너가 이러는 거 엄청 불편해." - -#: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." -msgstr "알겠어. 귀찮게 굴지 않을게." - -#: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "그냥 마음속에 담아 두는게 좋겠어." - -#: lang/json/talk_topic_from_json.py -msgid "I understand..." -msgstr "알겠어..." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "좋아. 이거 받아." - -#: lang/json/talk_topic_from_json.py -msgid "Thank you!" -msgstr "고마워!" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" -msgstr "고마워! 그런데 좀 더 가질 수 있을까?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" -msgstr "고마워, 나중에 봐!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." -msgstr "알았어 알았어.. 미안해." - -#: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" -msgstr "장난치지 말고, 좀 더 줘!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." -msgstr "그래, 좋아, 안녕." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "좋아, 시작해볼까." +msgid "Alright, let's begin." +msgstr "좋아, 시작해볼까." #: lang/json/talk_topic_from_json.py msgid "Sounds good." @@ -104505,40 +104527,302 @@ msgstr "" "건 이 세계에 남아 있는 가장 강한 사람들 사이에서 이름을 알리는 좋은 길이야." #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning sir, how can I help you?" -msgstr "좋은 아침입니다 선생님, 무엇을 도와드릴까요?" +msgid "Please, help me. I need food." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "좋은 아침입니다 부인, 무엇을 도와드릴까요?" +msgid "Get away from me." +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 "[임무] 피난 시설의 상인이 너에게 계획서를 받아오라고 날 보냈어." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I heard you were setting up an outpost out here." +msgid "Why don't you go somewhere else?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What's your job here?" -msgstr "여기에서 무슨 일을 하고 있어?" +msgid "Why don't you scavenge your own food?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I was starting to wonder if they were really interested in the project or " -"were just trying to get rid of me." +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Ya, that representative from the Old Guard asked the two of us to come out " +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "아니오." + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Can I help you, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Morning sir, how can I help you?" +msgstr "좋은 아침입니다 선생님, 무엇을 도와드릴까요?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning ma'am, how can I help you?" +msgstr "좋은 아침입니다 부인, 무엇을 도와드릴까요?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " +"from you." +msgstr "[임무] 피난 시설의 상인이 너에게 계획서를 받아오라고 날 보냈어." + +#: lang/json/talk_topic_from_json.py +msgid "I heard you were setting up an outpost out here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's your job here?" +msgstr "여기에서 무슨 일을 하고 있어?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was starting to wonder if they were really interested in the project or " +"were just trying to get rid of me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ya, that representative from the Old Guard asked the two of us to come out " "here and begin fortifying this place as a refugee camp. I'm not sure how " "fast he expects the two of us to get setup but we were assured additional " "men were coming out here to assist us. " @@ -104748,6 +105032,10 @@ msgid "" "time..." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -105151,6 +105439,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -105195,6 +105491,66 @@ msgstr "" msgid "This an error! npc allies 2 test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "" @@ -105239,6 +105595,30 @@ msgstr "" msgid "This is a multi-effect response" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -105254,6 +105634,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -105271,6 +105659,149 @@ msgid "" "I'll ever know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -105282,6 +105813,10 @@ msgid "" "against a town in riot. Then things really got fucked up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -105357,6 +105892,336 @@ msgid "" " about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from" @@ -105370,6 +106235,135 @@ msgid "" " on the head with my tablet." msgstr "" +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school. I'm a senior. We'd heard about riots... It started with " @@ -105444,6 +106438,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -105467,6 +106465,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -105520,6 +106526,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -105584,6 +106594,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -105621,6 +106635,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -105715,6 +106733,243 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -105766,10 +107021,493 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -105800,6 +107538,158 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -105925,6 +107815,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -107298,6 +109244,44 @@ msgstr "" msgid " phase-strikes %s" msgstr "" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "" @@ -109507,7 +111491,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "rose bush" -msgstr "" +msgstr "장미 덩굴" #. ~ Description for rose bush #: lang/json/terrain_from_json.py @@ -110559,6 +112543,26 @@ msgstr "뜨개질" msgid "bullet pulling" msgstr "탄약 분해" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "롤 매트" @@ -111405,6 +113409,18 @@ msgstr "사용자 지정_없음" msgid "canoe" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "" @@ -111578,7 +113594,7 @@ msgstr "지붕" #. ~ Description for roof #: lang/json/vehicle_part_from_json.py msgid "A metal roof." -msgstr "" +msgstr "금속 지붕." #: lang/json/vehicle_part_from_json.py msgid "heavy duty roof" @@ -112644,7 +114660,7 @@ msgstr "프레임" 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 "" +msgstr "금속 프레임이다. 프레임 위에 다른 차량 부품들을 장착할 수 있고, 또 다른 프레임을 붙여서 차량 크기를 늘릴 수 있다. " #. ~ Description for wooden frame #: lang/json/vehicle_part_from_json.py @@ -112707,8 +114723,16 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -112724,6 +114748,19 @@ msgid "" "the front." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -113038,6 +115075,36 @@ msgstr "넓은 바퀴 (조종 가능)" msgid "A wooden wheel." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "노" @@ -114713,6 +116780,12 @@ msgstr "" msgid "You dissect the corpse with a trusty scalpel." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -115127,8 +117200,8 @@ msgid "Repeat once" msgstr "한 번 더" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "가능한 오랫동안 반복" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -115138,11 +117211,24 @@ msgstr "완전히 수리될 때까지 반복, 강화는 안함" msgid "Repeat until success/failure/level up" msgstr "성공, 실패, 또는 수준이 늘어날 때까지 반복" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "%s의 잔여량이 모두 떨어졌다." +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "무엇을 수리합니까?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "%s으로 수리할 수 있는 물건이 없다." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "그 행동에서 아무것도 배운 것이 없다." @@ -115150,13 +117236,15 @@ msgstr "그 행동에서 아무것도 배운 것이 없다." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"성공 확률: %.1f%%\n" -"실패 확률: %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -115210,6 +117298,11 @@ msgstr "기다리는 것을 멈췄다." msgid "%s finishes with you..." msgstr "%s이(가) 끝났다..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "" @@ -115285,6 +117378,11 @@ msgstr "" msgid "You finish filling up %s." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "면도도구를 꺼내서 면도했다." @@ -115293,6 +117391,20 @@ msgstr "면도도구를 꺼내서 면도했다." msgid "You give your hair a trim." msgstr "머리카락을 다듬었다." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "%s을(를) 분해했다." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "%s의 내용물을 회수했다." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "이곳의 땅을 휘저었다." @@ -115301,6 +117413,15 @@ msgstr "이곳의 땅을 휘저었다." msgid "You tilled every tile you could." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "" @@ -116506,6 +118627,10 @@ msgstr "숨쉬는" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "마치 숨쉬듯이, 일정한 주기로 미세하게 줄어들었다 커지고 있다." +#: src/artifact.cpp +msgid "dead" +msgstr "죽은" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "얼음을 만지는 것처럼 차갑다." @@ -117803,8 +119928,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "전력: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -119272,12 +121398,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "파일이 손상되었습니다. 아무 키나 눌러주세요..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"기계가 안구에\n" -"LSD와 뼈 퓌레의 용해액을 주사하였다." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -120281,6 +122404,62 @@ msgstr "달콤한 꿀을 아주 맛있게 즐겼다." msgid "You can't finish it all!" msgstr "다 먹을 수 없다!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "겨울잠을 대비하여 열량을 보충해야 한다." @@ -120770,7 +122949,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" @@ -121060,7 +123239,7 @@ msgstr "어느 오버맵으로 갑니까?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "다음 오버맵으로 순간이동 (%d,%d,%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "당신" @@ -126747,6 +128926,10 @@ msgstr "" msgid "Crash game (test crash handling)" msgstr "" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "메인 메뉴로 나가기" @@ -127035,22 +129218,25 @@ msgid "Underground" msgstr "지하" #: src/game.cpp -msgid "Weather:" -msgstr "날씨:" - -#: src/game.cpp -msgid "Temperature:" +msgid "Weather :" msgstr "" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "달 %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "밝기:" +#: src/game.cpp +msgid "Deaf!" +msgstr "귀먹음!" + +#: src/game.cpp +msgid "Sound: " +msgstr "" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -127354,6 +129540,11 @@ msgstr "모든 물품 버리기" msgid "Attach bag" msgstr "가방 메게 하기" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "풀기" @@ -127428,6 +129619,11 @@ msgstr "%1$s의 소지무게가 한도에 달했다. %2$s을(를) 옮길 수 없 msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "%1$s에는 %2$s을(를) 넣을 공간이 없다, 너무 크다!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "정말로 노예 좀비를 죽이겠습니까?" @@ -128180,63 +130376,6 @@ msgstr "회수할 것이 없다." msgid "You're not wielding anything." msgstr "손에 들고 있는 것이 없다." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "%s을(를) 회수했다." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "%s은(는) 이미 비어있다!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "" - -#: src/game.cpp -msgid "Unload what?" -msgstr "무엇의 내용물을 회수합니까?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "%s의 내용물을 회수할 수 없다!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "재충전식 %s에서는 배터리를 빼낼 수 없다!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "%s은(는) 충전되지 않았다." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "%s은(는) 장전되지 않았다." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "%s을(를) 분해했다." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "%s의 내용물을 회수했다." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "미사용 플루토늄 %i개를 회수했다." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "부분적으로 고갈된 플루토늄은 제거할 수 없다!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -129713,10 +131852,6 @@ msgstr "네." msgid "Yes, and save game before sleeping." msgstr "네, 그리고 자기 전에 게임을 저장합니다." -#: src/handle_action.cpp -msgid "No." -msgstr "아니오." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "자기 전에 이것들을 꺼두는 것이 좋습니다." @@ -129794,6 +131929,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "" @@ -130540,10 +132695,23 @@ msgstr "" msgid "The seed blossoms into a flower-looking fungus." msgstr "" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "%s에 이미 비료를 주었다." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "" #: src/iexamine.cpp #, c-format @@ -130559,6 +132727,11 @@ msgstr "%s에 비료주기" msgid "Use which fertilizer?" msgstr "어떤 비료를 쓸까요?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "%s에 이미 비료를 주었다." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "이 가마에는 이미 숯이 담겨있습니다." @@ -132375,6 +134548,10 @@ msgstr "" msgid "Minimum strength required modifier: " msgstr "" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "사용 대상: " @@ -132383,6 +134560,10 @@ msgstr "사용 대상: " msgid "Location: " msgstr "장착 위치: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "보호 부위:" @@ -132509,7 +134690,7 @@ msgstr " (치수 맞음)" #: src/item.cpp msgid " (poor fit)" -msgstr "" +msgstr "(불편함)" #: src/item.cpp msgid "Encumbrance: " @@ -132547,7 +134728,7 @@ msgstr "" msgid "" "Protection values are reduced by damage and you may be able to " "improve them by repairing this item." -msgstr "" +msgstr "방어도가 의류의 손상으로 인해 감소되었다. 수리를 통해 다시 원상복구할 수 있다." #: src/item.cpp msgid "Just for fun." @@ -133085,7 +135266,7 @@ msgstr "" #: src/item.cpp msgid " (poor fit)" -msgstr "" +msgstr "(불편함)" #: src/item.cpp msgid " (filthy)" @@ -133245,6 +135426,11 @@ msgstr "탄피받이를 부착할 수 없다." msgid "must be unloaded before installing this mod" msgstr "장전물 잔존" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -135864,13 +138050,8 @@ msgid "No music on device" msgstr "장치에 음악이 존재하지 않음" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "제작법: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "전자잉크 화면으로 제작법 보기" +msgid "View recipes on E-ink screen" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" @@ -135939,13 +138120,8 @@ msgid "You turned on music on your %s." msgstr "%s으로 음악을 켰다." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "표시할 제작법 선택:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "태블릿 화면이 %s의 제작법을 표시하도록 변경했다." +msgid "List recipes:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -136001,10 +138177,6 @@ msgstr "사진을 메모리카드에 업로드" msgid "No photos in memory" msgstr "메모리에 사진이 존재하지 않음" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "셀카를 찍을 땐 플래시를 안 쓰기로 했다." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "그곳엔 특별히 흥미로운것이 없다." @@ -136037,6 +138209,10 @@ msgstr "%s에 막혀 사진을 찍을 수 없다." msgid "This photo is better than the previous one." msgstr "이 사진은 예전 사진보다 낫다." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -137299,15 +139475,6 @@ msgstr "보이질 않아 할 수 없다!" msgid "Your tool does not have enough charges to do that." msgstr "도구의 충전량이 부족해서 할 수 없다." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "무엇을 수리합니까?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "%s으로 수리할 수 있는 물건이 없다." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -137589,12 +139756,6 @@ msgstr "상위 버전이 설치되어있다." msgid "Remove which modification?" msgstr "어떤 개조부품을 제거할까요?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "%2$s에서 %1$s을(를) 떼어냈다." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "개조되지 않았다." @@ -139136,6 +141297,10 @@ msgstr "파괴가능. " msgid "Diggable. " msgstr "굴착가능. " +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "거칠다. " @@ -141224,6 +143389,21 @@ msgstr "이 모드는 Lua 지원이 필요" msgid "This mod requires Lua support" msgstr "이 모드는 Lua 지원이 필요" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s이(가) 다트를 쏘았다!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -141849,11 +144029,6 @@ msgstr "%s이(가) 끌어내려 했지만 벗어났다!" msgid " resist the %s as it tries to drag them!" msgstr "%s이(가) 을(를) 끌어내려 했지만 벗어났다!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s이(가) 다트를 쏘았다!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "몸에 독이 퍼지는 것을 느꼈다!" @@ -142906,10 +145081,42 @@ msgstr "극심한 부상을 입음" msgid "It is nearly dead!" msgstr "" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "%s. %s" +msgid "This is a %s. %s %s" +msgstr "" #: src/monster.cpp #, c-format @@ -143718,12 +145925,10 @@ msgstr "포인트" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(%s 키를 눌러 전환)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "정렬기준:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -144293,14 +146498,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "%s 들고 있음" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "착용:" -#: src/npc.cpp -msgid "Wielding: " -msgstr "들고 있는 것: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "완전히 불신 중" @@ -144920,6 +147121,10 @@ msgstr " 관심 있다면 도와줬으면 하는 일이 있는데." msgid " If you are interested, I have another job for you." msgstr "관심있으면, 줄 일이 있는데." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "방금 장비를 달라고 했잖아. 나중에 물어보라고." @@ -145306,17 +147511,17 @@ msgstr "좋아, 훈련을 다시 시작하자고 " msgid "%s ( cost $%d )" msgstr "%s ( 비용 $%d )" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (비용 $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "좋아, 고마워." @@ -145493,14 +147698,14 @@ msgstr "장애물을 때리지마." msgid "You can bash obstacles." msgstr "장애물을 때려도 돼." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "피곤할때 자." - #: src/npctalk.cpp msgid "Stay awake." msgstr "계속 깨어있어." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "피곤할때 자." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "조용히 있어." @@ -145517,14 +147722,14 @@ msgstr "좀비 시체를 내버려 둬." msgid "Smash zombie corpses." msgstr "좀비 시체를 박살 내." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "문을 닫아 둬." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "문을 열어 둬." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "문을 닫아 둬." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "줍기 규칙 설정." @@ -145601,7 +147806,7 @@ msgstr "" msgid "%s has abandoned the camp." msgstr "" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "주먹" @@ -145670,6 +147875,23 @@ msgstr "%1$s이(가) %2$s을(를) 줬다." msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "나는 이런 걸 먹을 정도로 널 불신한다..." @@ -145822,6 +148044,16 @@ msgstr "%s이(가) 머리를 깔끔하게 다듬어줬다..." msgid "%s gives you a decent shave..." msgstr "%s이(가) 면도를 깔끔하게 해줬다..." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -147866,13 +150098,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "예: -파이프,-,조각,-강철 등" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "검색 [c]카테고리 또는 [m]재료:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "예시: c:음식, m:금속, q:망치" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "" #: src/output.cpp msgid "unknown" @@ -148209,6 +150441,10 @@ msgstr "" msgid "Load or unload a vehicle" msgstr "" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -148371,6 +150607,11 @@ msgstr "내용물을 쏟지 않으려고 %1$s을(를) %2$s에 뒀다." msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "내용물을 쏟지 않으려고 이(가) %1$s을(를) %2$s에 뒀다." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "당신" + #: src/player.cpp msgid "your" msgstr "당신의ㅤ" @@ -148677,8 +150918,9 @@ msgstr "획득 바이오닉: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "내장전력: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" #: src/player.cpp msgid "Weapon:" @@ -148764,6 +151006,14 @@ msgstr "아주 크게 고함을 질렀다!" msgid "The sound of your voice is almost completely muffled!" msgstr "내 목소리가 거의 완전히 막혀 들리지 않는다!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "내 목소리가 상당히 막혀 들리지 않는다!" @@ -149289,7 +151539,7 @@ msgstr "%s을(를) 계속하기엔 너무 지쳤다." #: src/player.cpp msgid "You're drowning!" -msgstr "몸이 흠뻑 젖었다!" +msgstr "물에 익사하고 있다!" #. ~Sound of buzzing Insect Wings #: src/player.cpp @@ -149427,10 +151677,6 @@ msgstr "" msgid "This place is dangerous, you shouldn't be here." msgstr "" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "" - #: src/player.cpp msgid "That's not true, is it?" msgstr "" @@ -149723,11 +151969,6 @@ msgstr "시각 중추는 분명 멀쩡한 게 확실한데..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "당신의 방사능 센서로부터 오는 비정상적인 신호가 느껴진다." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "방사능 배지가 %1$s에서 %2$s로 바뀌었다!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "전력 시스템에 과부하가 걸려 가슴이 타는 듯 아프다!" @@ -149875,6 +152116,11 @@ msgstr "" msgid "You fall over!" msgstr "" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "방사능 배지가 %1$s에서 %2$s로 바뀌었다!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -150344,6 +152590,53 @@ msgstr "그곳에 물품을 놓을 수 없다!" msgid " can't place items here!" msgstr "이(가) 그곳에 물품을 놓을 수 없다!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "%s을(를) 회수했다." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "%s은(는) 이미 비어있다!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "" + +#: src/player.cpp +msgid "Unload what?" +msgstr "무엇의 내용물을 회수합니까?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "%s의 내용물을 회수할 수 없다!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "재충전식 %s에서는 배터리를 빼낼 수 없다!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "%s은(는) 충전되지 않았다." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "%s은(는) 장전되지 않았다." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "미사용 플루토늄 %i개를 회수했다." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "부분적으로 고갈된 플루토늄은 제거할 수 없다!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -150356,6 +152649,12 @@ msgid "Your %s has %d charge but needs %d." msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "%s에는 %d만큼 충전되어있지만, %d 더 필요하다." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "%2$s에서 %1$s을(를) 떼어냈다." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -150802,6 +153101,10 @@ msgstr "이 정도의 %s작업은 쉬워진 것 같다." msgid "You resume your task." msgstr "작업을 재개했다." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "무엇을 듭니까?" @@ -150840,6 +153143,14 @@ msgstr "끌고 다니는 것을 멈췄다." msgid "Your body strains under the weight!" msgstr "짐이 너무 무겁다!" +#: src/player.cpp +msgid "Wielding: " +msgstr "들고 있는 것: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -151038,7 +153349,7 @@ msgstr "방해도와 보온도" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" +msgid "Bionic Power: %1$d" msgstr "" #: src/player_display.cpp @@ -151566,14 +153877,6 @@ msgstr "천식 발작으로 인해 쓰러졌다." msgid "You wheeze and gasp for air." msgstr "호흡이 힘들어 겨우 숨을 쉬었다." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "뼈가 고무처럼 되어 녹았다가, 다시 복구되는 것을 느꼈다." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "몸의 뼈가 잘게 부서지는 것 같다." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "머리가 조금 욱신거린다." @@ -152347,15 +154650,6 @@ msgstr "심한 추위!%s" msgid "Freezing!%s" msgstr "극심한 추위!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "귀먹음!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "소음 %d" - #: src/sidebar.cpp msgid "Parched" msgstr "심한 탈수증" @@ -153626,6 +155920,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "가속력: %3d %s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -153633,21 +155940,22 @@ msgstr "질량: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "적재량: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "상태:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "최고손상 (수리 불가):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "최고손상:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "최고손상 (수리 불가):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "수리 필요:" @@ -153677,6 +155985,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "이름: " @@ -153887,9 +156200,9 @@ msgid "Could not find base part in requirements for %s." msgstr "%s을(를) 설치하려면 기초 부품이 있어야 한다." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "헤드라이트가 향할 방향을 정합니다. space를 눌러 진행." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "" #: src/veh_interact.cpp #, c-format @@ -153976,10 +156289,10 @@ msgstr "%1$s의 %2$s을(를) 수리했다." msgid "Lost connection with the vehicle due to distance!" msgstr "거리가 너무 멀어져서 차량과의 연결이 끊겼다!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "쾅!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -154193,13 +156506,13 @@ msgstr "다중 충돌" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s에 바퀴가 부족하다!" +msgid "The %s is too leaky!" +msgstr "%s이(가) 새어 나오고 있다!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s이(가) 새어 나오고 있다!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s에 바퀴가 부족하다!" #: src/vehicle_move.cpp #, c-format @@ -154423,6 +156736,14 @@ msgstr "" msgid "headlights" msgstr "헤드라이트" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "경광등" @@ -154678,18 +156999,23 @@ msgstr "%1$s에는 %2$s이(가) 없는것 같다." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s이(가) 길게 삑 소리를 냈다." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s이(가) 한 번 딸깍거리는 소리를 냈다." +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s이(가) 빠르게 딸깍거리는 소리를 냈다." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -154698,8 +157024,8 @@ msgstr "%s이(가) 드드드득 소리를 냈다." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s이(가) 시끄럽게 철커덕 소리를 냈다." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -154719,6 +157045,11 @@ msgstr "삐이익!" msgid "You honk the horn, but nothing happens." msgstr "경적을 울렸지만, 아무 일도 일어나지 않았다." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "확성기에서 단조로운 멜로디가 울려퍼지고 있다." diff --git a/lang/po/pl.po b/lang/po/pl.po index 9025a9948a81c..7a67c51a6b98f 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -5,15 +5,15 @@ # Brett Dong , 2018 # Faalagorn, 2018 # Radomir Kozłowski , 2018 -# Aleksander Sienkiewicz , 2018 +# Aleksander Sienkiewicz , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Aleksander Sienkiewicz , 2018\n" +"Last-Translator: Aleksander Sienkiewicz , 2019\n" "Language-Team: Polish (https://www.transifex.com/cataclysm-dda-translators/teams/2217/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5947,6 +5947,25 @@ msgstr "" "Prowizoryczny ubiór z ubrań sprzed kataklizmu, przeznaczony do długich " "wędrówek. Ma sporą przestrzeń w kieszeniach." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "lekki ubiór nomada" +msgstr[1] "lekki ubiór nomada" +msgstr[2] "lekki ubiór nomada" +msgstr[3] "lekki ubiór nomada" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"Prowizoryczny ubiór z ubrań sprzed kataklizmu, przeznaczony do długich " +"letnich wędrówek. Oferuje mniejszą przestrzeń na przedmioty i słabszą " +"ochronę niż zwykły ubiór nomada." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -7236,6 +7255,21 @@ msgstr "" "Plastikowy płaszcz z kapturem w dwiema dużymi kieszeniami. Zapewnia ochronę " "przed deszczem." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -21674,41 +21708,41 @@ msgid "Spice" msgstr "Przyprawa" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "wino riesling" -msgstr[1] "wino riesling" -msgstr[2] "wino riesling" -msgstr[3] "wino riesling" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "wino Riesling" +msgstr[1] "wino Riesling" +msgstr[2] "wino Riesling" +msgstr[3] "wino Riesling" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "" "Musujące białe wino, z najszlachetniejszych światowych odmian winogron." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "wino chardonnay" -msgstr[1] "wino chardonnay" -msgstr[2] "wino chardonnay" -msgstr[3] "wino chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "wino Chardonnay" +msgstr[1] "wino Chardonnay" +msgstr[2] "wino Chardonnay" +msgstr[3] "wino Chardonnay" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "Najpopularniejsze wino Ameryki, nie bez powodu." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "wino cabernet sauvignon" -msgstr[1] "wino cabernet sauvignon" -msgstr[2] "wino cabernet sauvignon" -msgstr[3] "wino cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "wino Cabernet Sauvignon" +msgstr[1] "wino Cabernet Sauvignon" +msgstr[2] "wino Cabernet Sauvignon" +msgstr[3] "wino Cabernet Sauvignon" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -21744,8 +21778,11 @@ msgstr[3] "whiskey" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "Stworzone z, przez i dla południowych poruczników." +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" +"Destylowany z ziaren alkohol. Stworzony z, przez i dla południowych " +"poruczników!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -21757,8 +21794,12 @@ msgstr[3] "wódka" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "W Sowieckiej Rosji wódka pije ciebie!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" +"Napój z alkoholu, wody i w zasadzie niczego poza tym. W Ameryce ludzie " +"tworzą wódkę, w Sowieckiej Rosji wódka tworzy człowieka." #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -21770,8 +21811,12 @@ msgstr[3] "dżin" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Lekko pachnie bzem, ale głównie gorzałą." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" +"Napój alkoholowy aromatyzowany jagodami jałowca. Pachnie lekko jałowcem, ale" +" głównie alkoholem." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -21783,8 +21828,12 @@ msgstr[3] "rum" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "Picie tego sprawi, że będziesz piracił. A może i nie." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" +"Napój alkoholowy produkowany z fermentującej melasy. Picie go może sprawić " +"że poczujesz się jak pirat. Albo i nie." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -21796,8 +21845,12 @@ msgstr[3] "tequila" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "Ne zjedz robaka. Chwila! W tej butelce nie ma robaka." +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 "" +"Destylowany napój alkoholowy z sukulentu z kolczastymi liśćmi. Nie jesz " +"robaka! Zaraz, w tej butelce nie ma robaka." #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -21912,10 +21965,12 @@ msgstr[3] "long island iced tea" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" "Mieszanka niezwykle wyrazistych w smaku alkoholi, która nie smakuje jak " -"żaden z nich." +"żaden z nich. Nie zawiera herbaty, ale dodatek koli daje mu podobny do " +"herbaty kolor." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -21923,8 +21978,12 @@ msgstr "koktajl screwdriver" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "Dyskretny wybór wiecznie narąbanego mechanika." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" +"Miks soku pomarańczowego i wódki. Dyskretny wybór wiecznie narąbanego " +"mechanika." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -21963,10 +22022,11 @@ msgstr[3] "piwo" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"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 "" -"Najlepiej podane zimne, w kuflu, z limonką - ale takiego szczęścia nie " -"uświadczysz." +"Alkohol z ziaren aromatyzowany chmielem. Najlepiej podane zimne, w kuflu, z " +"limonką - ale takiego szczęścia nie uświadczysz." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -22041,11 +22101,13 @@ msgstr[3] "bimber" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"Tylko najmocniejszy, najczystszy, dobry stary bimber. Gwarantowane " -"zapomnienie o tym całym kataklizmie, lub zwracamy wzrok." +"Tylko najmocniejszy, najczystszy, dobry stary bimber, destylowany z " +"kukurydzy i cukru. Gwarantowane zapomnienie o tym całym kataklizmie, lub " +"zwracamy wzrok." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -22058,11 +22120,11 @@ msgstr[3] "europejski pilzner" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Pilzner importowany z europy. Najlepiej podany zimny w kuflu, ale takiego " -"szczęścia nie uświadczysz." +"Jasne pełne importowane z Europy. Najlepiej podane zimne w kuflu, ale " +"takiego szczęścia nie uświadczysz." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -22122,7 +22184,7 @@ msgstr[3] "belgijskie piwo ale" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" "Pełne smaku piwo ważone przez mnichów w Belgii. Najlepsze będzie gdy go pić " @@ -22209,11 +22271,11 @@ msgstr "calimocho" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Nie tak złe jak by ktoś sobie wyobrażał, ten drink jest popularny wśród " -"młodzieży i ubóstwa w niektórych krajach. Mieszkanka koli z winem." +"Miks pół na pół wina i koli. Nie tak zły, jakby to ktoś to sobie wyobrażał, " +"ten drink jest popularny wśród młodzieży i ubóstwa w niektórych krajach." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -22670,8 +22732,11 @@ msgstr[3] "skrawki mięsa" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "Niewiele, ale w niedostatku i tyle się nada." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "" +"Nieduży jadalny ścinek mięsa. Niewielki, ale w niedostatku i tyle się nada." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -22683,8 +22748,16 @@ msgstr[3] "odrzuty rzeźnicze" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "Ohyda." +msgid "" +"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." +msgstr "" +"Ohyda. To kupa wymieszanej ziemi, odchodów, tkanki łącznej, odpadków takich " +"jak włosie i pazury, i innych resztek z procesu rzeźniczego. Zjedzenie tego " +"nie jest warte nawet rozwagi, ale warto pomyśleć o pozbyciu się tego gdyż " +"może przyciągnąć szkodniki." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -22692,8 +22765,12 @@ msgstr "gotowane mięso" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Świeżo ugotowane mięso. Bardzo pożywne." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" +"To kawałek gotowanego mięsa. Jest sycące i pożywne, ale bez przypraw i nieco" +" mdłe." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -22710,11 +22787,13 @@ msgstr "surowe podroby" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Surowe organy wewnętrzne i jelita. Nieapetyczny posiłek, ale pełen " -"niezbędnych witamin." +"Podroby to nieprzyrządzone organy wewnętrzne i jelita. Są pełne niezbędnych " +"witamin, ale większość ludzi uważa je za dość ohydne, chyba że są " +"odpowiednio przyrządzone." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -22727,10 +22806,12 @@ msgstr[3] "gotowane podroby" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Świeżo ugotowane organy wewnętrzne i jelita. Nieapetyczny posiłek, ale pełen" -" niezbędnych witamin." +"To gotowane podroby i jelita. Są pełne niezbędnych witamin, ale większość " +"ludzi uważa je za dość ohydne, chyba że są odpowiednio przyrządzone." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -22743,11 +22824,13 @@ msgstr[3] "peklowane podroby" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Gotowane flaczki, konserwowane w zalewie solnej. Napakowane witaminami, " -"smakują lepiej niż pachną." +"To masa jelit i tkanek organów wewnętrznych, zakonserwowanych w słonej " +"zalewie. Pełne niezbędnych witamin, i mimo że wyglądają nieco jak preparat " +"laboratoryjny, to są całkiem smaczne. " #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -22760,10 +22843,10 @@ msgstr[3] "puszkowane podroby" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" -"Gotowane flaczki, konserwowane przez zapuszkowanie. niesmaczne, ale " +"Gotowane flaczki, konserwowane przez zapuszkowanie. Niesmaczne, ale " "wypełnione niezbędnymi witaminami." #: lang/json/COMESTIBLE_from_json.py @@ -22836,8 +22919,12 @@ msgstr "wędzone mięso" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "Smaczne mięso mocno uwędzone dla długotrwałego przechowywania." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "" +"Smaczne mięso mocno uwędzone dla długotrwałego przechowywania. Może być " +"ponownie uwędzone dla pełnego odwodnienia." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -22849,8 +22936,12 @@ msgstr[3] "wędzona ryba" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "Smaczna ryba mocno uwędzona dla długotrwałego przechowywania." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "" +"Smaczna ryba mocno uwędzona dla długotrwałego przechowywania. Może być " +"ponownie uwędzona dla pełnego odwodnienia." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -22859,29 +22950,49 @@ msgstr "wędzony drań" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" -"Mocno uwędzony kawałek ludzkiego mięsa. Długo zachowa świeżość i nieźle " -"smakuje, jeśli ktoś lubi te rzeczy." +"Mocno uwędzony kawałek ludzkiego mięsa. Bardzo długo zachowa świeżość i " +"nieźle smakuje, jeśli ktoś lubi te rzeczy." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "surowe płuca" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "kawałek surowych płuc" +msgstr[1] "kawałki surowych płuc" +msgstr[2] "kawałki surowych płuc" +msgstr[3] "kawałki surowych płuc" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "Zwierzęce płuco. Całe gąbczaste." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"Porcja płuc ze zwierzęcia. Gąbczaste i różowe, i szybko się psują. Mogą być " +"przysmakiem jeśli odpowiednio przyrządzone - ale źle przyrządzone są " +"gumiastym kawałkiem niesmacznej tkanki łącznej." #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "gotowane płuca" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "gotowany kawałek płuc" +msgstr[1] "gotowane kawałki płuc" +msgstr[2] "gotowane kawałki płuc" +msgstr[3] "gotowane kawałki płuc" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." -msgstr "Nie wygląda dużo smaczniej, ale przynajmniej pasożyty się wygotowały." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." +msgstr "" +"Przyrządzone w ten sposób, są gumiastą szarawą masą niesmacznej tkanki " +"łącznej. Nie wyglądają na smaczniejsze od surowych, ale przynajmniej " +"pasożyty się wygotowały." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -22889,8 +23000,14 @@ msgstr "surowa wątroba" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "Zwierzęca wątroba." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Wątroba zwierzęca. Choć wielu nie odpowiada tekstura, to jedna z bardziej " +"bogatych w witaminy części zwierzęcych. Bardzo dobra do kiełbasek, i nieco " +"mniej apetyczna gdy ugotowana sama w sobie." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -22898,8 +23015,14 @@ msgstr "gotowana wątroba" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "Klin pełen witaminy B!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "" +"Pełna witaminy z grupy B! Gotowana wątróbka nie jest taka zła, w zależności " +"jak gustujesz w jej teksturze, choć jest to bodaj najmniej ciekawy sposób " +"jej przyrządzenia." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -22924,8 +23047,12 @@ msgstr[3] "gotowane mózgi" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "Teraz możesz naśladować zombiaki, które tak bardzo kochasz!" +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 "" +"Teraz możesz udawać zombie, które kochasz tak bardzo! Przygotowanie mózgu do" +" spożycia jest wyzwaniem, a to nie wygląda na najlepszy sposób na to." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -22933,8 +23060,12 @@ msgstr "surowa nerka" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "Zwierzęca nerka." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "" +"Nerka zwierzęca. Przygotowanie jej do gotowania to wyzwanie, chyba że chcesz" +" żeby kuchnia śmierdziała moczem." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -22951,8 +23082,12 @@ msgstr "surowa nerkówka" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "Nerkówki to grasica lub trzustka zwierzęcia." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "" +"Nerkówki to grasica lub trzustka zwierzęcia. To przysmak, jeśli przyrządzony" +" prawidłowo." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -23045,12 +23180,12 @@ msgstr "skażone kości" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" "Przegniła i krucha kość z nienaturalnego stworzenia lub czegoś podobnego. " -"Może do czegoś się przydać, choćby do wyrobu węgla. Możesz ją zjeść, ale się" -" zatrujesz." +"Może do czegoś się przydać, choćby do wyrobu węgla lub kleju. Możesz ją " +"zjeść, ale się zatrujesz." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -23414,8 +23549,14 @@ msgstr[3] "kawa" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Kawa. Poranny rytuał przedapokaliptycznego świata." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" +"Poranny rytuał świata sprzed apokalipsy, zrobiony z jagód kawy, w procesie " +"usuwania, prażenia, mielenia i zaparzania ziaren. Kawa jest znacząco " +"bogatsza w kofeinę niż konkurencyjna herbata." #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -23450,11 +23591,11 @@ msgstr[3] "mleko skondensowane" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" -"Jedzenie małych cielaków, przetworzone dla dużych ludzi. Mleko osłodzono i " -"zagęszczono, zmieniając w słodki dodatek do dowolnego jedzenia." +"Krowie mleko częściowo zagęszczone przez odwodnienie dla znacznego " +"wydłużenia żywotności, i ponadto osłodzone." #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -23521,8 +23662,12 @@ msgstr "napój energetyczny" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Popularny wśród tych co muszą być na nogach późno w nocy." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" +"Mocno napompowany kofeiną drink bezalkoholowy. Popularny wśród tych co muszą" +" być na nogach późno w nocy." #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -23656,8 +23801,10 @@ msgstr "biała kawa" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "Kawa z mlekiem to w zasadzie oficjalny poranny napój w wielu krajach." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "" +"Syrop kawowy zmieszany z mlekiem. Drink stanowy Rhode Island od 1993 r." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -23665,10 +23812,8 @@ msgstr "bawarka" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "" -"Zwykle pita o poranku, herbata z mlekiem jest popularna w wielu krajach." +msgid "Hot tea with cold milk." +msgstr "Gorąca herbata z zimnym mlekiem." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -23780,8 +23925,12 @@ msgstr "herbata" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Herbata, powszechny napój dżentelmenów." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" +"Napój gentlemanów z całego świata, zrobiony poprzez zaparzenie liści krzewu " +"herbacianego /Camellia sinensis/." #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -23841,8 +23990,8 @@ msgstr "koncentrat pomidorowy" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Sos pomidorowy, mniam." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "Delikatnie doprawiony sos z gotowanych pomidorów." #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -23867,8 +24016,11 @@ msgstr[3] "majonez" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "Stary dobry majonez, doskonały do kanapek." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" +"Gęsty miks z jajek, oleju i soli, tradycyjnie używany do nawilżania kanapek." #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -23876,8 +24028,8 @@ msgstr "keczup" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "Stary dobry keczup, świetnie smakuje na hot dogach." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "Gęsta pasta z pomidorów, soli i octu." #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -23889,8 +24041,12 @@ msgstr[3] "musztarda" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "Stara dobra musztarda, świetnie smakuje na hamburgerze." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" +"Przyprawa robiona z nasion gorczycy (/Brassica/ lub /Sinapis/), octu, soli i" +" przypraw." #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -23941,8 +24097,12 @@ msgstr[3] "ocet" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Szokująco cierpki biały ocet." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" +"Szokująco kwaśny biały ocet. To co otrzymasz jak zbyt długo fermentujesz " +"swój alkohol." #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -23967,9 +24127,13 @@ msgstr[3] "melasa" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." +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 "" -"Niezwykle słodki przypominający smołę syrop, z lekko gorzkawym posmakiem." +"Niezwykle słodki przypominający smołę syrop, z lekko gorzkawym posmakiem, " +"produkowany przez wielokrotne gotowanie soku z trzciny cukrowej lub buraków " +"cukrowych." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -25387,8 +25551,11 @@ msgstr[3] "syrop klonowy" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Słodki smaczny syrop klonowy prosto z Vermont." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" +"Gotowanie żywicy klonowej skoncentrowało ją w słodki i pyszny syrop klonowy." #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -25717,14 +25884,13 @@ msgstr "" "Smaczniejsze i bardziej sycące, ale szybko się zepsuje." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "kurczak smażony w głębokim tłuszczu" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "" -"Garść kawałków kurczaka smażonych w głębokim tłuszczu. Tak złe, że aż dobre." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "Kurczak gotowany przez zanurzenie w oleju. Jest tłusty i smaczny." #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -25908,8 +26074,8 @@ msgstr "surowa kiełbasa" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "Swojska surowa kiełbasa, gotowa do wędzenia." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "Swojska surowa kiełbasa, gotowa do wędzenia lub ugotowania." #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -25920,6 +26086,15 @@ msgstr "kiełbasa" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "Swojska kiełbasa wędzona dla długotrwałej zdatności do spożycia." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "gotowana kiełbasa" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "Swojska kiełbasa, która została ugotowana." + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "kiełbasa z cieniasa" @@ -25946,6 +26121,23 @@ msgstr[3] "słodkie kiełbaski" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "Słodkie i smakowite kiełbaski. Zjedz puki świeże." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "kiełbasa grillowa" +msgstr[1] "kiełbasa grillowa" +msgstr[2] "kiełbasa grillowa" +msgstr[3] "kiełbasa grillowa" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" +"Rodzaj niemieckiej kiełbasy z drobno siekanego mięsa, ktrórą przyrządza się " +"smażąc na patelni lub grillując. Najlepsza jest świeża na gorąco." + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "królewska wołowina" @@ -26143,8 +26335,12 @@ msgstr "plastry mięsa" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Pyszne plasterki mięsa idealne na zimną płytę. " +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" +"Gotowane i konserwowane mięso, pocięte w cienkie plastry dla łatwiejszego " +"robienia kanapek. Smakuje dobrze na zimno." #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -26153,9 +26349,13 @@ msgstr "mortadela" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." -msgstr "Wstępnie pocięta w plastry mortadela, do spożycia na zimno." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." +msgstr "" +"Formalnie zwana kiełbasą bolońską, to drobno mielone i konserwowane mięso " +"wstępnie pokrojone w okrągłe plastry. Jego pierwsze imię nie brzmi Oskar. " +"Można jeść na zimno." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -26726,11 +26926,11 @@ msgstr "morda-dela" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Wstępnie pocięta w plastry mortadela z ludzkiego mięsa, do spożycia na " -"zimno." +"Zakonserwowane i pokrojone ludzkie mięso. Jego pierwsze imię mogło brzmieć " +"Oskar. Możesz jeść je na zimno jak zimnokrwisty ludożerca, którym jesteś." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -26988,8 +27188,39 @@ msgstr "surowa kiełbasa z cieniasa" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "Swojska surowa kiełbasa z ludzkiego mięsa gotowa do wędzenia." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" +"Swojska surowa kiełbasa z ludzkiego mięsa gotowa do wędzenia lub gotowania." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "gotowana kiełbasa z cieniasa" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" +"Swojska gotowana kiełbasa z ludzkiego mięsa. Pachnie smakowicie jak to tylko" +" po ludzku możliwe." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "grillowa kiełbasa z cieniasa" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" +"Rodzaj niemieckiej kiełbasy z drobno siekanego ludzkiego mięsa, którą " +"przyrządza się smażąc na patelni lub grillując. Najlepsza jest świeża na " +"gorąco. Wystarczy dowolny człowiek, ni musi to być Niemiec." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -28110,6 +28341,24 @@ msgstr "" "infekcję od razu, ale wzmacniają układ odpornościowy przeciwko nim. Jedna " "dawka starcza na dwanaście godzin." +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "syrop na zgagę" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "Zażywasz syrop na zgagę." + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" +"Kremowo-różowy syrop na zgagę, który uśmierza wzburzony żołądek i uspokaja " +"odruch wymiotny. Ma odkręcaną nakrętkę, która służy też za dozownik." + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -29859,79 +30108,79 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "Kwaśny cytrus. Możesz ją zjeść jeśli bardzo tego chcesz." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "jagody" -msgstr[1] "jagody" -msgstr[2] "jagody" -msgstr[3] "jagody" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "garść jagód" +msgstr[1] "garść jagód" +msgstr[2] "garść jagód" +msgstr[3] "garść jagód" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Niebieskie, co nie znaczy że smutne." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "truskawka" -msgstr[1] "truskawki" -msgstr[2] "truskawek" -msgstr[3] "truskawki" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "garść truskawek" +msgstr[1] "garść truskawek" +msgstr[2] "garść truskawek" +msgstr[3] "garść truskawek" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Pyszne, czerwone, duże soczyste jagody. Często rosną dziko na polach." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "żurawina" -msgstr[1] "żurawina" -msgstr[2] "żurawina" -msgstr[3] "żurawina" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "garść żurawin" +msgstr[1] "garść żurawin" +msgstr[2] "garść żurawin" +msgstr[3] "garść żurawin" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "Kwaśne czerwone jagody. Dobre dla zdrowia." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "maliny" -msgstr[1] "maliny" -msgstr[2] "maliny" -msgstr[3] "maliny" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "garść malin" +msgstr[1] "garść malin" +msgstr[2] "garść malin" +msgstr[3] "garść malin" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Słodka czerwona jagoda." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "borówka" -msgstr[1] "borówki" -msgstr[2] "borówek" -msgstr[3] "borówki" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "garść borówek" +msgstr[1] "garść borówek" +msgstr[2] "garść borówek" +msgstr[3] "garść borówek" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "Borówki, często mylone z jagodami." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "morwa" -msgstr[1] "morwy" -msgstr[2] "morw" -msgstr[3] "morwy" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "garść owoców morwy" +msgstr[1] "garść owoców morwy" +msgstr[2] "garść owoców morwy" +msgstr[3] "garść owoców morwy" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -29942,14 +30191,14 @@ msgstr "" "świecie." #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "czarny bez" -msgstr[1] "czarny bez" -msgstr[2] "czarny bez" -msgstr[3] "czarny bez" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "garść owoców czarnego bzu" +msgstr[1] "garść owoców czarnego bzu" +msgstr[2] "garść owoców czarnego bzu" +msgstr[3] "garść owoców czarnego bzu" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" @@ -29957,14 +30206,14 @@ msgstr "" "nadaje się do zjedzenia." #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "róża biodrowa" -msgstr[1] "róże biodrowe" -msgstr[2] "róż biodrowych" -msgstr[3] "róże biodrowe" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "garść owoców dzikiej róży" +msgstr[1] "garść owoców dzikiej róży" +msgstr[2] "garść owoców dzikiej róży" +msgstr[3] "garść owoców dzikiej róży" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "Owoc zapylonego kwiatu róży." @@ -30001,14 +30250,14 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Owoc cytrusowy, którego smak oscyluje między kwaśnym a półsłodkim." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "wiśnie" -msgstr[1] "wiśnie" -msgstr[2] "wiśnie" -msgstr[3] "wiśnie" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "garść wiśni" +msgstr[1] "garść wiśni" +msgstr[2] "garść wiśni" +msgstr[3] "garść wiśni" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Czerwone słodkie owoce z pestką, które rosną na drzewach." @@ -30024,14 +30273,14 @@ msgid "" msgstr "Garść dużych purpurowych śliwek. Zdrowe i poprawiają trawienie." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "winogrona" -msgstr[1] "winogrona" -msgstr[2] "winogrona" -msgstr[3] "winogrona" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "garść winogron" +msgstr[1] "garść winogron" +msgstr[2] "garść winogron" +msgstr[3] "garść winogron" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "Pęk soczystych winogron." @@ -30086,14 +30335,14 @@ msgid "A large and very sweet fruit." msgstr "Duży i bardzo słodki owoc." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "jeżyny" -msgstr[1] "jeżyny" -msgstr[2] "jeżyny" -msgstr[3] "jeżyny" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "garść jeżyn" +msgstr[1] "garść jeżyn" +msgstr[2] "garść jeżyn" +msgstr[3] "garść jeżyn" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "Ciemniejszy kuzyn malin." @@ -30136,10 +30385,14 @@ msgid "" msgstr "Duża, brązowa i włochata jagoda. Ma smaczny miąższ zielonego koloru." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "morela" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "garść moreli" +msgstr[1] "garść moreli" +msgstr[2] "garść moreli" +msgstr[3] "garść moreli" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Miękkoskóry owoc podobny do brzoskwini." @@ -30204,7 +30457,7 @@ msgstr "kapusta" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." +msgid "Crisp white cabbage." msgstr "Twarda główka chrupiącej białej kapusty." #: lang/json/COMESTIBLE_from_json.py @@ -30310,7 +30563,7 @@ msgstr "ogórek" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." +msgid "Comes from the gourd family. Not tasty but very juicy." msgstr "" "Pochodzi z rodziny roślin spokrewnionych z tykwą. Niezbyt smaczny, ale " "soczysty." @@ -30828,6 +31081,10 @@ msgstr[3] "nasiona jeżyn" msgid "Some blackberry seeds." msgstr "Nieco nasion jeżyn." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "jeżyna" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -30841,6 +31098,10 @@ msgstr[3] "nasiona jagód" msgid "Some blueberry seeds." msgstr "Nieco nasion jagód." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "jagoda" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -30854,6 +31115,10 @@ msgstr[3] "nasiona żurawiny" msgid "Some cranberry seeds." msgstr "Nieco nasion żurawiny." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "żurawina" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -30867,6 +31132,10 @@ msgstr[3] "nasiona borówki" msgid "Some huckleberry seeds." msgstr "Trochę nasion borówki." +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "borówka" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -30880,6 +31149,10 @@ msgstr[3] "nasiona morwy" msgid "Some mulberry seeds." msgstr "Trochę nasion morwy." +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "morwa" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -30893,6 +31166,10 @@ msgstr[3] "nasiona czarnego bzu" msgid "Some elderberry seeds." msgstr "Trochę nasion czarnego bzu." +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "czarny bez" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -30906,6 +31183,10 @@ msgstr[3] "nasiona malin" msgid "Some raspberry seeds." msgstr "Nieco nasion malin." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "malina" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -30919,6 +31200,10 @@ msgstr[3] "nasiona truskawek" msgid "Some strawberry seeds." msgstr "Nieco nasion truskawek." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "truskawka" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -30932,6 +31217,10 @@ msgstr[3] "nasiona winogron" msgid "Some grape seeds." msgstr "Trochę nasion winogron." +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "winogron" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -32693,6 +32982,15 @@ msgstr "'wyjątkowe' ciastko brownie" msgid "This is definitely not how grandma used to bake them." msgstr "Zdecydowanie nie było pieczone według babcinej receptury." +#: lang/json/COMESTIBLE_from_json.py +msgid "brownie" +msgstr "brownie" + +#. ~ Description for brownie +#: lang/json/COMESTIBLE_from_json.py +msgid "A rich chocolate brownie, just like how grandma used to bake them." +msgstr "Pożywne czekoladowe ciasto brownie, takie jak piekła babcia." + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "włóknista łodyga" @@ -34469,6 +34767,23 @@ msgstr[3] "beczki na niebezpieczne odpady" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "Żółta beczka służąca do przechowywania niebezpiecznych substancji." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "donica ogrodowa" +msgstr[1] "donica ogrodowa" +msgstr[2] "donica ogrodowa" +msgstr[3] "donica ogrodowa" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" +"To specjalna donica do sadzenia roślin. Służy do utrzymania komfortowych " +"warunków dla roślin dla optymalnego wzrostu i owocowania." + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -37817,6 +38132,39 @@ msgstr "" "urządzeniach chłodzących. Hermetycznie zamknięty by zapobiec odparowaniu - " "nie może być otwarty przed uprzednim podłączeniem do kompatybilnego zaworu." +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "twarda stalowa płyta" +msgstr[1] "twarde stalowe płyty" +msgstr[2] "twarde stalowe płyty" +msgstr[3] "twarde stalowe płyty" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" +"Bardzo grube stalowe płyty zbrojne, opracowane do noszenia w kuloodpornej " +"kamizelce." + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "stalowa płyta" +msgstr[1] "stalowe płyty" +msgstr[2] "stalowe płyty" +msgstr[3] "stalowe płyty" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" +"Stalowa płyta zbrojna, opracowana do noszenia w kuloodpornej kamizelce." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -39086,10 +39434,10 @@ msgstr[3] "kamień w skarpecie" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -"Skarpeta z przywiązanym na końcu kamieniem. Prawdziwie desperacka broń." +"Para zawiniętych w sobie skarpet wypełnionych kamieniem. Prawdziwie " +"desperacka broń." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -41046,6 +41394,23 @@ msgstr "" "Reflektor do pojazdu obudowany klatką ochronną która chroni przed " "uszkodzeniem nie redukując efektywności." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "wzmocniony reflektor szerokokątny" +msgstr[1] "wzmocnione reflektory szerokokątne" +msgstr[2] "wzmocnione reflektory szerokokątne" +msgstr[3] "wzmocnione reflektory szerokokątne" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" +"Reflektor szerokokątny do pojazdu obudowany klatką ochronną która chroni " +"przed uszkodzeniem nie redukując efektywności." + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -41533,6 +41898,23 @@ msgid "A large and heavy light designed to illuminate wide areas." msgstr "" "Duży ciężki reflektor przeznaczony do oświetalania szerokich przestrzeni." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "reflektor kierunkowy" +msgstr[1] "reflektory kierunkowe" +msgstr[2] "reflektory kierunkowe" +msgstr[3] "reflektory kierunkowe" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" +"Duży ciężki reflektor przeznaczony do oświetlania szerokich przestrzeni w " +"półokrągłym stożku." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -41817,6 +42199,19 @@ msgstr[3] "reflektory samochodowe" msgid "A vehicle headlight to light up the way." msgstr "Reflektor samochodowy oświetlający drogę." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "szerokokątny reflektor samochodowy" +msgstr[1] "szerokokątne reflektory samochodowe" +msgstr[2] "szerokokątne reflektory samochodowe" +msgstr[3] "szerokokątne reflektory samochodowe" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "Szerokokątny reflektor samochodowy oświetlający drogę." + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -42325,6 +42720,19 @@ msgstr[3] "Zui Quan i Ty" msgid "A complete guide to Zui Quan." msgstr "Kompletny przewodnik po Zui Quan." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "Droga Włóczni" +msgstr[1] "Droga Włóczni" +msgstr[2] "Droga Włóczni" +msgstr[3] "Droga Włóczni" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "Kompletny przewodnik po Sōjutsu." + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -44041,10 +44449,10 @@ msgstr "Duże i ciężki metalowy dysk o ostrych brzegach do kopania rowów." #: lang/json/GENERIC_from_json.py msgid "airjack" msgid_plural "airjacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "podnośnik pneumatyczny" +msgstr[1] "podnośnik pneumatyczny" +msgstr[2] "podnośnik pneumatyczny" +msgstr[3] "podnośnik pneumatyczny" #. ~ Description for airjack #. ~ Description for air jack system @@ -44053,6 +44461,8 @@ 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 "" +"Wysuwany metalowy pylon używany jako zamiennik przenośnego podnośnika. " +"Zamontowany w pojeździe, może być użyty do podniesienia go." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "motorcycle kickstand" @@ -44700,6 +45110,62 @@ msgstr[3] "nowy zepsuty animatroniczny królik" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Zepsuty animatroniczny królik. Bezwładny i martwy." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "drewniany kadłub łodzi" +msgstr[1] "drewniany kadłub łodzi" +msgstr[2] "drewniany kadłub łodzi" +msgstr[3] "drewniany kadłub łodzi" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" +"Drewniany kadłub, który utrzymuje łódź na powierzchni. Dodaj kadłuby do " +"pojazdu, aż będzie pływalny. Potem dołącz wiosła lub silnik by napędzić " +"łódkę." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "plastikowy kadłub łodzi" +msgstr[1] "plastikowy kadłub łodzi" +msgstr[2] "plastikowy kadłub łodzi" +msgstr[3] "plastikowy kadłub łodzi" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Twardy plastikowy płat kadłuba, który utrzymuje łódź na powierzchni. " +"Zamontuj w pojeździe kadłuby aż będzie pływalny. Potem dołącz wiosła lub " +"silnik by napędzić łódkę." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "kadłub łodzi z włókien węglowych" +msgstr[1] "kadłub łodzi z włókien węglowych" +msgstr[2] "kadłub łodzi z włókien węglowych" +msgstr[3] "kadłub łodzi z włókien węglowych" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Twardy płat kadłuba z włókien węglowych, który utrzymuje łódź na " +"powierzchni. Zamontuj w pojeździe kadłuby aż będzie pływalny. Potem dołącz " +"wiosła lub silnik by napędzić łódkę." + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -44713,6 +45179,32 @@ msgstr[3] "wiosła" msgid "Oars for a boat." msgstr "Wiosła do łódki." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "nadmuchiwana sekcja" +msgstr[1] "nadmuchiwana sekcja" +msgstr[2] "nadmuchiwana sekcja" +msgstr[3] "nadmuchiwana sekcja" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Nadmuchiwana sekcja łódki." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "nadmuchiwana poduszka powietrzna" +msgstr[1] "nadmuchiwana poduszka powietrzna" +msgstr[2] "nadmuchiwana poduszka powietrzna" +msgstr[3] "nadmuchiwana poduszka powietrzna" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Nadmuchiwana poduszka powietrzna." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -44842,6 +45334,455 @@ msgstr[1] "połączenia do pasa amunicyjnego" msgstr[2] "połączenia do pasa amunicyjnego" msgstr[3] "połączenia do pasa amunicyjnego" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "donica ogrodowa (z pomidorami)" +msgstr[1] "donica ogrodowa (z pomidorami)" +msgstr[2] "donica ogrodowa (z pomidorami)" +msgstr[3] "donica ogrodowa (z pomidorami)" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "Pomidory są gotowe do zbiorów!" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "Szybko rosną." + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rosną pomidory. Gdy dojrzeją musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "donica ogrodowa (z dojrzałymi pomidorami)" +msgstr[1] "donica ogrodowa (z dojrzałymi pomidorami)" +msgstr[2] "donica ogrodowa (z dojrzałymi pomidorami)" +msgstr[3] "donica ogrodowa (z dojrzałymi pomidorami)" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rosną dojrzałe pomidory. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "donica ogrodowa (z pszenicą)" +msgstr[1] "donica ogrodowa (z pszenicą)" +msgstr[2] "donica ogrodowa (z pszenicą)" +msgstr[3] "donica ogrodowa (z pszenicą)" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "Pszenica jest gotowa do zbiorów!" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "Pszenica szybko rośnie." + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie pszenica. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "donica ogrodowa (z dojrzałą pszenicą)" +msgstr[1] "donica ogrodowa (z dojrzałą pszenicą)" +msgstr[2] "donica ogrodowa (z dojrzałą pszenicą)" +msgstr[3] "donica ogrodowa (z dojrzałą pszenicą)" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzała pszenica. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "donica ogrodowa (z chmielem)" +msgstr[1] "donica ogrodowa (z chmielem)" +msgstr[2] "donica ogrodowa (z chmielem)" +msgstr[3] "donica ogrodowa (z chmielem)" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "Już gotowe na zbiory!" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie chmiel. Gdy dojrzeje musisz ją aktywować" +" by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "donica ogrodowa (z dojrzałym chmielem)" +msgstr[1] "donica ogrodowa (z dojrzałym chmielem)" +msgstr[2] "donica ogrodowa (z dojrzałym chmielem)" +msgstr[3] "donica ogrodowa (z dojrzałym chmielem)" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzały chmiel. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "donica ogrodowa (z gryką)" +msgstr[1] "donica ogrodowa (z gryką)" +msgstr[2] "donica ogrodowa (z gryką)" +msgstr[3] "donica ogrodowa (z gryką)" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie gryka. Gdy dojrzeje musisz ją aktywować " +"by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "donica ogrodowa (z dojrzałą gryką)" +msgstr[1] "donica ogrodowa (z dojrzałą gryką)" +msgstr[2] "donica ogrodowa (z dojrzałą gryką)" +msgstr[3] "donica ogrodowa (z dojrzałą gryką)" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzała gryka. Rozbierz by zebrać plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "donica ogrodowa (z brokułami)" +msgstr[1] "donica ogrodowa (z brokułami)" +msgstr[2] "donica ogrodowa (z brokułami)" +msgstr[3] "donica ogrodowa (z brokułami)" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rosną brokuły. Gdy dojrzeją musisz ją aktywować" +" by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "donica ogrodowa (z dojrzałymi brokułami)" +msgstr[1] "donica ogrodowa (z dojrzałymi brokułami)" +msgstr[2] "donica ogrodowa (z dojrzałymi brokułami)" +msgstr[3] "donica ogrodowa (z dojrzałymi brokułami)" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" +"To donica ogrodowa, w której rosną dojrzałe brokuły. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "donica ogrodowa (z owsem)" +msgstr[1] "donica ogrodowa (z owsem)" +msgstr[2] "donica ogrodowa (z owsem)" +msgstr[3] "donica ogrodowa (z owsem)" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie owies. Gdy dojrzeje musisz ją aktywować " +"by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "donica ogrodowa (z dojrzałym owsem)" +msgstr[1] "donica ogrodowa (z dojrzałym owsem)" +msgstr[2] "donica ogrodowa (z dojrzałym owsem)" +msgstr[3] "donica ogrodowa (z dojrzałym owsem)" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzały owies. Rozbierz by zebrać plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "donica ogrodowa (z jęczmieniem)" +msgstr[1] "donica ogrodowa (z jęczmieniem)" +msgstr[2] "donica ogrodowa (z jęczmieniem)" +msgstr[3] "donica ogrodowa (z jęczmieniem)" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie jęczmień. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "donica ogrodowa (z dojrzałym jęczmieniem)" +msgstr[1] "donica ogrodowa (z dojrzałym jęczmieniem)" +msgstr[2] "donica ogrodowa (z dojrzałym jęczmieniem)" +msgstr[3] "donica ogrodowa (z dojrzałym jęczmieniem)" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzały jęczmień. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "donica ogrodowa (z marchewką)" +msgstr[1] "donica ogrodowa (z marchewką)" +msgstr[2] "donica ogrodowa (z marchewką)" +msgstr[3] "donica ogrodowa (z marchewką)" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie marchew. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "donica ogrodowa (z dojrzałą marchewką)" +msgstr[1] "donica ogrodowa (z dojrzałą marchewką)" +msgstr[2] "donica ogrodowa (z dojrzałą marchewką)" +msgstr[3] "donica ogrodowa (z dojrzałą marchewką)" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzała marchew. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "donica ogrodowa (z bawełną)" +msgstr[1] "donica ogrodowa (z bawełną)" +msgstr[2] "donica ogrodowa (z bawełną)" +msgstr[3] "donica ogrodowa (z bawełną)" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie bawełna. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "donica ogrodowa (z dojrzałą bawełną)" +msgstr[1] "donica ogrodowa (z dojrzałą bawełną)" +msgstr[2] "donica ogrodowa (z dojrzałą bawełną)" +msgstr[3] "donica ogrodowa (z dojrzałą bawełną)" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzała bawełna. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "donica ogrodowa (z kapustą)" +msgstr[1] "donica ogrodowa (z kapustą)" +msgstr[2] "donica ogrodowa (z kapustą)" +msgstr[3] "donica ogrodowa (z kapustą)" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie kapusta. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "donica ogrodowa (z dojrzałą kapustą)" +msgstr[1] "donica ogrodowa (z dojrzałą kapustą)" +msgstr[2] "donica ogrodowa (z dojrzałą kapustą)" +msgstr[3] "donica ogrodowa (z dojrzałą kapustą)" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzała kapusta. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "donica ogrodowa (z ogórkiem)" +msgstr[1] "donica ogrodowa (z ogórkiem)" +msgstr[2] "donica ogrodowa (z ogórkiem)" +msgstr[3] "donica ogrodowa (z ogórkiem)" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie ogórek. Gdy dojrzeje musisz ją aktywować" +" by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "donica ogrodowa (z dojrzałym ogórkiem)" +msgstr[1] "donica ogrodowa (z dojrzałym ogórkiem)" +msgstr[2] "donica ogrodowa (z dojrzałym ogórkiem)" +msgstr[3] "donica ogrodowa (z dojrzałym ogórkiem)" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzały ogórek. Rozbierz by zebrać " +"plon." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "donica ogrodowa (z czosnkiem)" +msgstr[1] "donica ogrodowa (z czosnkiem)" +msgstr[2] "donica ogrodowa (z czosnkiem)" +msgstr[3] "donica ogrodowa (z czosnkiem)" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"To donica ogrodowa, w której rośnie czosnek. Gdy dojrzeje musisz ją " +"aktywować by przygotować do zbiorów." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "donica ogrodowa (z dojrzałym czosnkiem)" +msgstr[1] "donica ogrodowa (z dojrzałym czosnkiem)" +msgstr[2] "donica ogrodowa (z dojrzałym czosnkiem)" +msgstr[3] "donica ogrodowa (z dojrzałym czosnkiem)" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" +"To donica ogrodowa, w której rośnie dojrzały czosnek. Rozbierz by zebrać " +"plon." + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -46046,10 +46987,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken assassin robot" msgid_plural "broken assassin robots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty robot zabójca" +msgstr[1] "zepsuty robot zabójca" +msgstr[2] "zepsuty robot zabójca" +msgstr[3] "zepsuty robot zabójca" #. ~ Description for broken assassin robot #: lang/json/GENERIC_from_json.py @@ -46057,14 +46998,16 @@ msgid "" "A broken assassin robot, now limp and immobile. Could be stripped down or " "re-crafted." msgstr "" +"Zepsuty robot zabójca, teraz kulawy i nieruchomy. Można go rozebrać na " +"części lub odtworzyć." #: lang/json/GENERIC_from_json.py msgid "broken elixirator" msgid_plural "broken elixirators" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty eliksirator" +msgstr[1] "zepsuty eliksirator" +msgstr[2] "zepsuty eliksirator" +msgstr[3] "zepsuty eliksirator" #. ~ Description for broken elixirator #: lang/json/GENERIC_from_json.py @@ -46072,14 +47015,16 @@ msgid "" "A broken elixirator, now shattered and lifeless. Could be stripped down or " "re-crafted." msgstr "" +"Zepsuty eliksirator, teraz rozbity i nieruchomy. Można go rozebrać na części" +" lub odtworzyć." #: lang/json/GENERIC_from_json.py msgid "broken party bot" msgid_plural "broken party bots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty robot imprezowicz" +msgstr[1] "zepsuty robot imprezowicz" +msgstr[2] "zepsuty robot imprezowicz" +msgstr[3] "zepsuty robot imprezowicz" #. ~ Description for broken party bot #: lang/json/GENERIC_from_json.py @@ -46087,14 +47032,16 @@ msgid "" "A broken party robot, now wasted and burnt out. Looks like the party's " "over. Could be stripped down or re-crafted." msgstr "" +"Zepsuty robot imprezowicz, teraz wypalony i zniszczony. Koniec imprezy. " +"Można go rozebrać na części lub odtworzyć." #: lang/json/GENERIC_from_json.py msgid "broken insane cyborg" msgid_plural "broken insane cyborgs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zniszczony szalony cyborg" +msgstr[1] "zniszczony szalony cyborg" +msgstr[2] "zniszczony szalony cyborg" +msgstr[3] "zniszczony szalony cyborg" #. ~ Description for broken insane cyborg #: lang/json/GENERIC_from_json.py @@ -46102,14 +47049,16 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be gutted for parts or " "crafted into a salvaged robot." msgstr "" +"Zepsuty cyborg, kulawy i nieruchomy. Może być wypruty na części albo " +"przerobiony na robota z odzysku." #: lang/json/GENERIC_from_json.py msgid "broken necrotic cyborg" msgid_plural "broken necrotic cyborgs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty nekrotyczny cyborg" +msgstr[1] "zepsuty nekrotyczny cyborg" +msgstr[2] "zepsuty nekrotyczny cyborg" +msgstr[3] "zepsuty nekrotyczny cyborg" #. ~ Description for broken necrotic cyborg #: lang/json/GENERIC_from_json.py @@ -46117,14 +47066,16 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be stripped down or re-" "crafted into a salvaged robot." msgstr "" +"Zepsuty cyborg, kulawy i nieruchomy. Może być wypruty na części albo " +"przerobiony na robota z odzysku." #: lang/json/GENERIC_from_json.py msgid "broken rat snatcher" msgid_plural "broken rat snatchers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty szczurołap" +msgstr[1] "zepsuty szczurołap" +msgstr[2] "zepsuty szczurołap" +msgstr[3] "zepsuty szczurołap" #. ~ Description for broken rat snatcher #: lang/json/GENERIC_from_json.py @@ -46132,6 +47083,8 @@ msgid "" "A broken rat snatcher, now harmless and inert. Could be stripped down or " "re-crafted." msgstr "" +"Zepsuty szczurołap, teraz bezbronny i nieruchomy. Można go rozebrać na " +"części lub odtworzyć." #: lang/json/GENERIC_from_json.py msgid "broken grab-bot" @@ -46151,10 +47104,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken pest hunter" msgid_plural "broken pest hunters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "zepsuty łowca szkodników" +msgstr[1] "zepsuty łowca szkodników" +msgstr[2] "zepsuty łowca szkodników" +msgstr[3] "zepsuty łowca szkodników" #. ~ Description for broken pest hunter #: lang/json/GENERIC_from_json.py @@ -46162,6 +47115,8 @@ msgid "" "A broken pest hunter, now harmless and inert. Could be gutted for parts or " "re-crafted." msgstr "" +"Zepsuty łowca szkodników, teraz bezbronny i nieruchomy. Można go rozebrać na" +" części lub odtworzyć." #: lang/json/GENERIC_from_json.py msgid "broken defense bot" @@ -46185,6 +47140,7 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." msgstr "" +"Zniszczony robot z odzysku. Może być rozebrany na części albo przerobiony." #: lang/json/GENERIC_from_json.py msgid "broken shortcircuit samurai" @@ -46224,6 +47180,8 @@ msgid "" "A broken military trainer robot, shattered and inert. This one is armed with" " an integrated paintball gun. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot treningowy, teraz rozbity i nieruchomy. Ten jest " +"uzbrojony w zintegrowany painball. Można go rozebrać na części." #: lang/json/GENERIC_from_json.py msgid "broken military robot" @@ -46239,6 +47197,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 5.56mm firearm. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną broń 5,56 mm. Można go rozebrać na części." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -46246,6 +47206,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 7.62mm firearm. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną broń 7,62 mm. Można go rozebrać na części." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -46253,6 +47215,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 50 caliber firearm. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną broń kalibru 50. Można go rozebrać na części." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -46260,6 +47224,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 8x40mm firearm. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną broń 8x40 mm. Można go rozebrać na części." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -46267,6 +47233,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated flechette gun. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną broń strzałkową. Można go rozebrać na części." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -46274,6 +47242,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 40mm grenade launcher. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowaną wyrzutnię granatów 40 mm. Można go rozebrać na części." #: lang/json/GENERIC_from_json.py msgid "broken military flame robot" @@ -46289,6 +47259,8 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated flamethrower. Could be stripped for parts." msgstr "" +"Zepsuty wojskowy robot , teraz rozbity i nieruchomy. Ten jest uzbrojony w " +"zintegrowany miotacz ognia. Można go rozebrać na części." #: lang/json/GENERIC_from_json.py msgid "broken robo-gaurdian" @@ -46306,6 +47278,7 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped or recrafted." msgstr "" +"Zniszczony robot z odzysku. Może być rozebrany na części albo przerobiony." #: lang/json/GENERIC_from_json.py msgid "broken robote deluxe" @@ -46319,6 +47292,7 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "A broken deluxe robot. Could be stripped or recrafted." msgstr "" +"Zniszczony robot deluxe. Może być rozebrany na części albo przerobiony." #: lang/json/GENERIC_from_json.py msgid "broken robo-protector" @@ -46350,6 +47324,9 @@ msgid "" "A broken advanced robot. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" +"Zepsuty zaawansowany robot. Jego zintegrowany moduł broni został " +"wymontowany. Może być rozebrany na części albo przerobiony na robota z " +"odzysku." #: lang/json/GENERIC_from_json.py msgid "broken advanced robot" @@ -46365,6 +47342,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated laser-emitter." " Could be stripped for parts." msgstr "" +"Zepsuty zaawansowany robot, teraz rozbity i nieruchomy. Ten jest uzbrojony w" +" zintegrowany emiter laserowy. Można go rozebrać na części." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -46372,6 +47351,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated plasma-" "ejector. Could be stripped for parts." msgstr "" +"Zepsuty zaawansowany robot, teraz rozbity i nieruchomy. Ten jest uzbrojony w" +" zintegrowany miotacz plazmy. Można go rozebrać na części." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -46379,6 +47360,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated electro-" "caster. Could be stripped for parts." msgstr "" +"Zepsuty zaawansowany robot, teraz rozbity i nieruchomy. Ten jest uzbrojony w" +" zintegrowany miotacz łuku elektrycznego. Można go rozebrać na części." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -46386,6 +47369,8 @@ msgid "" "A broken advanced robot. This one is armed with an integrated EMP projector." " Could be stripped for parts." msgstr "" +"Zepsuty zaawansowany robot, teraz rozbity i nieruchomy. Ten jest uzbrojony w" +" zintegrowany emiter EMP. Można go rozebrać na części." #: lang/json/GENERIC_from_json.py msgid "broken glittering lady" @@ -46419,6 +47404,8 @@ msgid "" "A broken salvaged robot. Thank God it's finally dead. Could be stripped or " "recrafted." msgstr "" +"Zniszczony robot z odzysku. Dzięki Bogu jest już martwy. Może być rozebrany " +"na części ale przerobiony." #: lang/json/GENERIC_from_json.py msgid "broken screeching terror" @@ -48799,6 +49786,15 @@ msgstr "" "Zamienia bronie i amunicję uproszczonymi rodzajami. Uwaga: możne wejść w " "konflikt z innymi modami." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "Ręczna Instalacja Implantów Bionicznych" @@ -50784,6 +51780,10 @@ msgstr "" "dzięki na wpół skrzepniętemu kwasowi pokrywającemu całe napompowane ciało. " "Niezdarnie porusza się wokół, ale atakuje dużymi zasobami kwasu." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "Kwasowy zombie wypluwa globulę kwasu!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "pełzający zombie" @@ -55683,7 +56683,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fist king" -msgstr "" +msgstr "król pięści" #. ~ Description for fist king #: lang/json/MONSTER_from_json.py @@ -55693,10 +56693,15 @@ 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 wreckless behemoth." msgstr "" +"Dron czołgowy z odzysku wyposażony w parę potężnych pneumatycznych młotów, " +"których używa do miażdżenia wszystkiego na swojej drodze, w tym budynków. " +"Mimo braku broni dystansowych, jego zbroja i siła sprawiają że jest godnym " +"przeciwnikiem nawet największych potworów. Tylko szaleniec zbudowałby " +"takiego Behemota szos." #: lang/json/MONSTER_from_json.py msgid "atomic sultan" -msgstr "" +msgstr "atomowy sułtan" #. ~ Description for atomic sultan #: lang/json/MONSTER_from_json.py @@ -55707,6 +56712,11 @@ msgid "" "radioactive gas leaks. Only a lunatic would dare build such a wreckless " "monster." msgstr "" +"Dron czołgowy z odzysku wyposażony w rozgrzaną do czerwoności zgniatarkę. " +"Mnogie rdzenie fuzyjne zapewniają robotowi dużą moc ale powodują wycieki " +"radioaktywnego gazu. Mimo braku broni dystansowych, jego zbroja i siła " +"sprawiają, że jest godnym przeciwnikiem nawet największych potworów. Tylko " +"szaleniec zbudowałby takiego Behemota szos." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "gelatinous mass" @@ -55967,11 +56977,18 @@ msgstr[1] "fedora" msgstr[2] "fedora" msgstr[3] "fedora" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "Uchyl" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Przechylasz swoją fedorę." +#, no-python-format +msgid "You tip your %s." +msgstr "Uchylasz swój %s." #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -57722,6 +58739,14 @@ msgstr[1] "kamienne kowadło" msgstr[2] "kamienne kowadło" msgstr[3] "kamienne kowadło" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "bioniczna zapalarka" +msgstr[1] "bioniczne zapalarki" +msgstr[2] "bioniczne zapalarki" +msgstr[3] "bioniczne zapalarki" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -59339,44 +60364,6 @@ msgstr "" "Mały metalowy pojemnik na węgiel drzewny z dołączoną zapalniczką. Możesz " "używać go do gotowania żywności." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "zestaw chemiczny" -msgstr[1] "zestaw chemiczny" -msgstr[2] "zestaw chemiczny" -msgstr[3] "zestaw chemiczny" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Zestaw chemiczny składany w pudle. Zawiera szklane pojemniki, rurki i " -"zlewki, metalowy drut, kuchenkę turystyczną i okulary ochronne. Może być " -"wykorzystywany przy produkcji chemikaliów jeśli zechcesz." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "podstawowy zestaw chemiczny" -msgstr[1] "podstawowy zestaw chemiczny" -msgstr[2] "podstawowy zestaw chemiczny" -msgstr[3] "podstawowy zestaw chemiczny" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"Ten podstawowy zestaw chemiczny zawiera szklane pojemniki, rurki i zlewki. " -"Może być wykorzystywany przy produkcji chemikaliów, ale potrzeba do niego " -"źródła ciepła." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -59857,10 +60844,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (off)" msgid_plural "electric chainsaw lajatangs (off)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "lajatang z elektrycznych pił łańcuchowych (wył.)" +msgstr[1] "lajatang z elektrycznych pił łańcuchowych (wył.)" +msgstr[2] "lajatang z elektrycznych pił łańcuchowych (wył.)" +msgstr[3] "lajatang z elektrycznych pił łańcuchowych (wył.)" #. ~ Description for electric chainsaw lajatang (off) #: lang/json/TOOL_from_json.py @@ -59870,14 +60857,18 @@ msgid "" "ensures that only someone both strong and very skilled could possibly hope " "to use it." msgstr "" +"Długi drewniany kij z elektrycznymi piłami łańcuchowymi niepraktycznie " +"przypiętymi na obu końcach. Wytwór geniuszu lub szaleństwa, ale nie obu " +"naraz. Waga sprawia że ktoś dostatecznie silny i bardzo uzdolniony mógłby " +"mieć nadzieję na użycie go." #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (on)" msgid_plural "electric chainsaw lajatangs (on)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "lajatang z elektrycznych pił łańcuchowych (wł.)" +msgstr[1] "lajatang z elektrycznych pił łańcuchowych (wł.)" +msgstr[2] "lajatang z elektrycznych pił łańcuchowych (wł.)" +msgstr[3] "lajatang z elektrycznych pił łańcuchowych (wł.)" #. ~ Description for electric chainsaw lajatang (on) #: lang/json/TOOL_from_json.py @@ -59886,6 +60877,8 @@ msgid "" "ends. They are currently on and draining power; use this item to turn them " "off." msgstr "" +"Długi drewniany kij z elektrycznymi piłami łańcuchowymi niepraktycznie " +"przypiętymi na obu końcach. Są włączone i zużywają paliwo. Użyj by wyłączyć." #. ~ Description for cutlass #: lang/json/TOOL_from_json.py @@ -65090,10 +66083,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "platinum grille" msgid_plural "platinum grilles" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "platynowy grill" +msgstr[1] "platynowy grill" +msgstr[2] "platynowy grill" +msgstr[3] "platynowy grill" #. ~ Description for platinum grille #: lang/json/TOOL_from_json.py @@ -65101,6 +66094,8 @@ msgid "" "This is a metal grille with a layer of platinum plating, suitable for use as" " a catalyst for some chemical reactions." msgstr "" +"To metalowy grill z powłoką platynową, który może być użyty jako katalizator" +" pewnych reakcji chemicznych." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" @@ -65634,6 +66629,210 @@ msgstr "" "Zdalne sterowanie do prawdziwego pojazdu. Potrafi włączać i wyłączać systemy" " pokładowe. Niektórymi pojazdami można sterować zdalnie." +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "zestaw chemiczny" +msgstr[1] "zestaw chemiczny" +msgstr[2] "zestaw chemiczny" +msgstr[3] "zestaw chemiczny" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Zestaw chemiczny składany w pudle. Zawiera szklane pojemniki, rurki i " +"zlewki, metalowy drut, kuchenkę turystyczną i okulary ochronne. Może być " +"wykorzystywany przy produkcji chemikaliów jeśli zechcesz." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "podstawowy zestaw chemiczny" +msgstr[1] "podstawowy zestaw chemiczny" +msgstr[2] "podstawowy zestaw chemiczny" +msgstr[3] "podstawowy zestaw chemiczny" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"Ten podstawowy zestaw chemiczny zawiera szklane pojemniki, rurki i zlewki. " +"Może być wykorzystywany przy produkcji chemikaliów, ale potrzeba do niego " +"źródła ciepła." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "podstawowy laboratoryjny zestaw analityczny" +msgstr[1] "podstawowy laboratoryjny zestaw analityczny" +msgstr[2] "podstawowy laboratoryjny zestaw analityczny" +msgstr[3] "podstawowy laboratoryjny zestaw analityczny" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" +"Ten ciężki zestaw zawiera pewne podstawowe rzeczy bez których pewnie nie " +"powinieneś próbować precyzyjnej chemii: a dokładnie małą wagę, " +"spektrofotometr, aparat pomiaru punktu topnienia, miernik pH, i zestaw " +"papierków do chromatografii cienkich warstw. Ułatwia on o wiele stwierdzenie" +" na pewno czy chemia którą stworzyłeś to na prawdę to co myślisz, że " +"stworzyłeś." + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "waga małych skali" +msgstr[1] "waga małych skali" +msgstr[2] "waga małych skali" +msgstr[3] "waga małych skali" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" +"To prosta waga z zestawem odważników przesuwanych na linii podziałowej do " +"dość dokładnego pomiaru masy próbek." + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "spektrofotometr" +msgstr[1] "spektrofotometr" +msgstr[2] "spektrofotometr" +msgstr[3] "spektrofotometr" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" +"Ten powszechny przyrząd analityczny do chemii mierzy absorpcję światła " +"płynnej próbki w specjalnej tubie zwanej kuwetą." + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "zestaw kuwet do spektrometrii" +msgstr[1] "zestaw kuwet do spektrometrii" +msgstr[2] "zestaw kuwet do spektrometrii" +msgstr[3] "zestaw kuwet do spektrometrii" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" +"Małe pudełko wypełnione precyzyjnie skalibrowanymi plastikowymi tubami do " +"użytku ze spektrometrem laboratoryjnym." + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "miernik pH" +msgstr[1] "miernik pH" +msgstr[2] "miernik pH" +msgstr[3] "miernik pH" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" +"Zasadniczo są to dwie szklane sondy na woltomierzu. Wkładając jedną sondę do" +" roztworu kalibrującego (załączonego dla wygody) a drugą do substancji " +"mierzonej, można obliczyć kwasowość." + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "aparat pomiaru punktu topnienia" +msgstr[1] "aparat pomiaru punktu topnienia" +msgstr[2] "aparat pomiaru punktu topnienia" +msgstr[3] "aparat pomiaru punktu topnienia" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" +"W zasadzie jest to płyta grzewcza z metalowym zadaszeniem. Zadaszeniem ma " +"otwór wziernika z powiększeniem i otwór na rurkę kapilarną zawierającą " +"skrystalizowaną próbkę. Urządzenie pozwala precyzyjnie zmierzyć punkt " +"topnienia kryształu, cechę bardzo użyteczną do identyfikacji co to jest i " +"jakiej czystości." + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "detektor światła" +msgstr[1] "detektor światła" +msgstr[2] "detektor światła" +msgstr[3] "detektor światła" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" +"To fotodioda na układzie scalonym, opracowana do konwersji padającego " +"światła w elektryczność celem pomiaru." + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "szklany pryzmat" +msgstr[1] "szklany pryzmat" +msgstr[2] "szklany pryzmat" +msgstr[3] "szklany pryzmat" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" +"To wysokiej jakości pryzmat ze szkła kryształowego do separacji i zmiany " +"kierunku światła." + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "mała szklana tuba" +msgstr[1] "mała szklana tuba" +msgstr[2] "mała szklana tuba" +msgstr[3] "mała szklana tuba" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "To mała szklana tuba. Czego więcej chciałbyś się o niej dowiedzieć?" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -65956,10 +67155,10 @@ msgstr "Automatyczna zaawansowana wieżyczka. Brakuje jej zintegrowanej broni." #: lang/json/TOOL_from_json.py msgid "inactive 9mm defense turret" msgid_plural "inactive 9mm defense turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywna wieżyczka obronna 9 mm" +msgstr[1] "nieaktywna wieżyczka obronna 9 mm" +msgstr[2] "nieaktywna wieżyczka obronna 9 mm" +msgstr[3] "nieaktywna wieżyczka obronna 9 mm" #. ~ Description for inactive 9mm defense turret #: lang/json/TOOL_from_json.py @@ -65969,14 +67168,19 @@ 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 "" +"Nieaktywna wieżyczka obronna 9mm. Maksymalnie 100 standardowych pocisków 9 " +"mm zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w czasie" +" aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim " +"zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję bezpieczeństwa w " +"razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive shotgun defense turret" msgid_plural "inactive shotgun defense turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywna wieżyczka obronna strzelba" +msgstr[1] "nieaktywna wieżyczka obronna strzelba" +msgstr[2] "nieaktywna wieżyczka obronna strzelba" +msgstr[3] "nieaktywna wieżyczka obronna strzelba" #. ~ Description for inactive shotgun defense turret #: lang/json/TOOL_from_json.py @@ -65986,14 +67190,19 @@ 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 "" +"Nieaktywna wieżyczka obronna strzelba. Maksymalnie 100 standardowych " +"pocisków 9 mm zostanie automatycznie załadowane z twego ekwipunku do " +"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive riot control turret" msgid_plural "inactive riot control turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywna wieżyczka kontroli tłumu" +msgstr[1] "nieaktywna wieżyczka kontroli tłumu" +msgstr[2] "nieaktywna wieżyczka kontroli tłumu" +msgstr[3] "nieaktywna wieżyczka kontroli tłumu" #. ~ Description for inactive riot control turret #: lang/json/TOOL_from_json.py @@ -66004,6 +67213,11 @@ msgid "" "with its advanced IFF software. Consult your safety manual in the event of " "a malfunction." msgstr "" +"Nieaktywna wieżyczka kontroli tłumów. Maksymalnie 50 niezabójczych woreczków" +" z grochem zostanie automatycznie załadowane z twego ekwipunku do wieżyczki " +"w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela " +"swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #. ~ Description for inactive riot control turret #: lang/json/TOOL_from_json.py @@ -66014,6 +67228,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna wieżyczka kontroli tłumów. Maksymalnie 50 kanistrów z gazem " +"łzawiącym 40 mm zostanie automatycznie załadowane z twego ekwipunku do " +"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive 5.56mm military turret" @@ -66032,6 +67251,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna wieżyczka wojskowa 5,56 mm. Maksymalnie 100 standardowych " +"pocisków 5,56 mm NATO zostanie automatycznie załadowane z twego ekwipunku do" +" wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive 7.62mm military turret" @@ -66050,6 +67274,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna wieżyczka wojskowa 7,62 mm. Maksymalnie 100 standardowych " +"pocisków 7,62 mm NATO zostanie automatycznie załadowane z twego ekwipunku do" +" wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive 50 caliber military turret" @@ -66068,6 +67297,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna wieżyczka wojskowa kal 50. Maksymalnie 100 standardowych pocisków" +" kal 50 zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w " +"czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela " +"swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive military needle turret" @@ -66086,6 +67320,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka igłacz. Maksymalnie 100 standardowych " +"pocisków strzałkowych 5x50 mm zostanie automatycznie załadowane z twego " +"ekwipunku do wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje " +"cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive military 8x40mm turret" @@ -66104,6 +67343,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka 8x40 mm. Maksymalnie 100 standardowych " +"pocisków 8x40 mm zostanie automatycznie załadowane z twego ekwipunku do " +"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive military 40mm grenade turret" @@ -66122,6 +67366,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna wojskowa wieżyczka granatnik. Maksymalnie 50 standardowych " +"granatów odłamkowych 40 mm zostanie automatycznie załadowane z twego " +"ekwipunku do wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje " +"cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive military flamethrower turret" @@ -66139,6 +67388,11 @@ 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 "" +"Nieaktywna wieżyczka miotacz ognia. Maksymalnie 100 jednostek napalmu " +"zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w czasie " +"aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim " +"zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję bezpieczeństwa w " +"razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced laser turret" @@ -66155,6 +67409,9 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka laserowa. Umieść wieżyczkę a zidentyfikuje" +" cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced plasma turret" @@ -66171,6 +67428,9 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka plazmowa. Umieść wieżyczkę a zidentyfikuje" +" cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced railgon turret" @@ -66189,6 +67449,11 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka szynowa. Maksymalnie 50 standardowych " +"pocisków szynowych zostanie automatycznie załadowane z twego ekwipunku do " +"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " +"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " +"bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced acid turret" @@ -66205,6 +67470,9 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka kwasowa. Umieść wieżyczkę a zidentyfikuje " +"cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced EMP turret" @@ -66221,6 +67489,9 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka EMP. Umieść wieżyczkę a zidentyfikuje cię " +"jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " +"instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py msgid "inactive advanced electro turret" @@ -66237,14 +67508,17 @@ msgid "" " friendly with its advanced IFF software. Consult your safety manual in the" " event of a malfunction." msgstr "" +"Nieaktywna zaawansowana wieżyczka elektryczna. Umieść wieżyczkę a " +"zidentyfikuje cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. " +"Przeczytaj instrukcję bezpieczeństwa w razie awarii." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "garden gnome" msgid_plural "garden gnomes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "gnom ogrodowy" +msgstr[1] "gnom ogrodowy" +msgstr[2] "gnom ogrodowy" +msgstr[3] "gnom ogrodowy" #. ~ Description for garden gnome #: lang/json/TOOL_from_json.py @@ -66252,14 +67526,16 @@ msgid "" "A normal and completely harmless garden gnome. You can place him in your " "garden or elsewhere." msgstr "" +"Zwykły i całkowicie niegroźny gnom ogrodowy. Można go umieścić w ogrodzie " +"lub gdzie indziej." #: lang/json/TOOL_from_json.py msgid "gaurdin gnome" msgid_plural "gaurdin gnomes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "gnom strażnik" +msgstr[1] "gnom strażnik" +msgstr[2] "gnom strażnik" +msgstr[3] "gnom strażnik" #. ~ Description for gaurdin gnome #: lang/json/TOOL_from_json.py @@ -66267,6 +67543,8 @@ msgid "" "A normal and completely harmless garden gnome. He holds up to 100 rounds of" " 9mm ammo." msgstr "" +"Zwykły i całkowicie niegroźny gnom ogrodowy. Przechowuje do 100 pocisków " +"kalibru 9 mm." #: lang/json/TOOL_from_json.py msgid "hobo stove" @@ -66604,6 +67882,8 @@ msgid "" "A robot crafting assistant. Useable in its current state as a portable " "workbench, or deployable as a traveling companion." msgstr "" +"Robotyczny pomocnik rzemieślnika. Użyteczny w tej formie jako mobilny stół " +"roboczy, i można go rozstawić jako towarzysza podróży." #. ~ Description for light auto armor #. ~ Description for basic auto armor @@ -66613,6 +67893,9 @@ msgid "" "A set of light power armor fitted with an AI core for automated use. " "Activate it to deploy the robot or disassemble it to use as armor." msgstr "" +"Zestaw pancerza wspomaganego wyposażonego w rdzeń sztucznej inteligencji do " +"autonomicznego działania. Aktywuj by uruchomić robota lub rozłóż by użyć " +"jako pancerza." #: lang/json/TOOL_from_json.py msgid "basic auto armor" @@ -66625,28 +67908,28 @@ msgstr[3] "" #: lang/json/TOOL_from_json.py msgid "inactive hack" msgid_plural "inactive hacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywny młynek" +msgstr[1] "nieaktywny młynek" +msgstr[2] "nieaktywny młynek" +msgstr[3] "nieaktywny młynek" #: lang/json/TOOL_from_json.py msgid "inactive floating lantern" msgid_plural "inactive floating lanterns" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywna dryfująca latarnia" +msgstr[1] "nieaktywna dryfująca latarnia" +msgstr[2] "nieaktywna dryfująca latarnia" +msgstr[3] "nieaktywna dryfująca latarnia" #. ~ Use action friendly_msg for inactive floating lantern. #: lang/json/TOOL_from_json.py msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "" +msgstr "Dryfująca latarnia wylatuje ci z ręki i oświetla otoczenie!" #. ~ Use action hostile_msg for inactive floating lantern. #: lang/json/TOOL_from_json.py msgid "You misprogram the lantern." -msgstr "" +msgstr "Błędnie programujesz latarnię." #. ~ Description for inactive floating lantern #: lang/json/TOOL_from_json.py @@ -66656,24 +67939,28 @@ msgid "" "aggressive and has no means of attack. Activate this item to deploy the " "salvaged robot." msgstr "" +"Nieaktywna dryfująca latarnia, robot rozmiaru pięści latający w powietrzu i " +"rozświetlający otoczenie jasnymi lampami LED. Latarnia nie jest agresywna i " +"nie ma środków by atakować. Aktywuj ten przedmiot by wypuścić robota z " +"odzysku." #: lang/json/TOOL_from_json.py msgid "inactive distract-o-hack" msgid_plural "inactive distract-o-hacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywny młynek-wabik" +msgstr[1] "nieaktywny młynek-wabik" +msgstr[2] "nieaktywny młynek-wabik" +msgstr[3] "nieaktywny młynek-wabik" #. ~ Use action friendly_msg for inactive distract-o-hack. #: lang/json/TOOL_from_json.py msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "" +msgstr "Młynek wabik wylatuje ci z ręki i zaczyna iskrzyć!" #. ~ Use action hostile_msg for inactive distract-o-hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the distract-o-hack!" -msgstr "" +msgstr "Błędnie programujesz młynek-wabik!" #. ~ Description for inactive distract-o-hack #: lang/json/TOOL_from_json.py @@ -66683,24 +67970,28 @@ msgid "" "will harass hostile targets to draw their attention. Activate this item to " "deploy the robot. It cannot be recovered once activated." msgstr "" +"Niekatywny młynek-wabik, robot rozmiaru pięści latający w powietrzu, " +"wydający dźwięki, dymiący i iskrzący. Robot z odzysku nie posiada broni, ale" +" będzie nękał wrogów, by skupić na sobie ich uwagę. Aktywuj ten przedmiot by" +" wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." #: lang/json/TOOL_from_json.py msgid "inactive arson hack" msgid_plural "inactive arson hacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywny młynek podpalacz" +msgstr[1] "nieaktywny młynek podpalacz" +msgstr[2] "nieaktywny młynek podpalacz" +msgstr[3] "nieaktywny młynek podpalacz" #. ~ Use action friendly_msg for inactive arson hack. #: lang/json/TOOL_from_json.py msgid "The arson hack flies from your hand! Get clear!" -msgstr "" +msgstr "Młynek podpalacz wylatuje ci z ręki! Z drogi!" #. ~ Use action hostile_msg for inactive arson hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the arson hack! Run!" -msgstr "" +msgstr "Błędnie programujesz młynek-podpalacz! Uciekaj!" #. ~ Description for inactive arson hack #: lang/json/TOOL_from_json.py @@ -66711,6 +68002,10 @@ msgid "" "Activate this item to deploy the robot. It cannot be recovered once " "activated." msgstr "" +"Niekatywny młynek-podpalacz, robot rozmiaru pięści latający w powietrzu, " +"chaotycznie rozpraszający ogień. Robot z odzysku nie posiada broni, ale " +"będzie rozprzestrzeniał ogień lecąc w kierunku wrogów. Aktywuj ten przedmiot" +" by wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." #: lang/json/TOOL_from_json.py msgid "inactive spore hack" @@ -66723,12 +68018,12 @@ msgstr[3] "" #. ~ Use action friendly_msg for inactive spore hack. #: lang/json/TOOL_from_json.py msgid "The spore hack flies from your hand!" -msgstr "" +msgstr "Młynek zapylacz wylatuje ci z ręki!" #. ~ Use action hostile_msg for inactive spore hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the spore hack!" -msgstr "" +msgstr "Błędnie programujesz młynek-zapylacz!" #. ~ Description for inactive spore hack #: lang/json/TOOL_from_json.py @@ -66738,6 +68033,10 @@ msgid "" "intermitently cover the terrain with puffs of fungal spores. Activate this " "item to depoly the robot." msgstr "" +"Nieaktywny młynek-zapylacz, robot rozmiaru pięści latający w powietrzu, " +"rozpraszając obce skażenie. Robot będzie zapylał wrogie cele i sporadycznie " +"pokrywał teren chmurami grzybiczych zarodników. Aktywuj ten przedmiot by " +"wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." #: lang/json/TOOL_from_json.py msgid "inactive water turret" @@ -66755,6 +68054,10 @@ msgid "" "Place the turret and it will ID you as friendly with its advanced IFF " "software. There is no safety manual." msgstr "" +"Nieaktywna wodna wieżyczka obronna. Maksymalnie 1000 jednostek wody zostanie" +" automatycznie załadowane z twego ekwipunku do wieżyczki w czasie aktywacji." +" Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim zaawansowanym " +"oprogramowaniem IFF. Instrukcji bezpieczeństwa brak." #: lang/json/TOOL_from_json.py msgid "inactive eyebot" @@ -66779,6 +68082,9 @@ msgid "" "constant jet of warm air to heat an enclosed space. It is non-aggessive and" " has no weapons systems. Activate this item to deploy the robot." msgstr "" +"Odzyskany ze złomu okobot przerobiony na latający grzejnik. Emituje stały " +"strumień gorącego powietrza, które rozgrzeje zamkniętą przestrzeń. Nie jest " +"agresywny i nie jest wyposażony w żadną broń. Aktywuj by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive floating furnace" @@ -66796,6 +68102,10 @@ msgid "" "aggessive and has no weapons systems. Activate this item to deploy the " "robot." msgstr "" +"Odzyskany ze złomu okobot przerobiony na latający grzejnik. Emituje stały " +"strumień niebezpiecznie gorącego powietrza, które rozgrzeje zamkniętą " +"przestrzeń. Nie jest agresywny i nie jest wyposażony w żadną broń. Aktywuj " +"by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive burning eye" @@ -66811,6 +68121,8 @@ msgid "" "A salvaged eyebot refitted with a laser weapon which it will use on hostile " "targets. Activate this item to deploy the robot." msgstr "" +"Odzyskany ze złomu okobot wyposażony w laser, którym razi wrogów. Aktywuj by" +" uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive utilibot" @@ -66836,6 +68148,9 @@ msgid "" "this item to deploy the robot and begin the incubation process, but you " "probably shouldn't." msgstr "" +"Robot użytkowy z odzysku zmieniony w mobilny inkubator obcych glutów. Nie " +"jest agresywny i jest nieuzbrojony. Aktywuj by uruchomić i rozpocząć " +"inkubację, choć może nie powinieneś." #: lang/json/TOOL_from_json.py msgid "inactive slime breeder" @@ -66853,6 +68168,9 @@ msgid "" "and has no weapon systems. You can activate this item to deploy the robot " "and begin the incubation process." msgstr "" +"Robot użytkowy z odzysku zmieniony w mobilny inkubator obcych glutów, i " +"ulepszony by produkować tylko przyjazne gluty. Nie jest agresywny i jest " +"nieuzbrojony. Aktywuj by uruchomić i rozpocząć inkubację." #: lang/json/TOOL_from_json.py msgid "inactive digestron" @@ -66870,6 +68188,10 @@ msgid "" "reserves. It is non aggressive and has no weapon systems. Activate this " "item to deploy the robot." msgstr "" +"Robot użytkowy z odzysku przerobiony na automatyczny odkurzacz. Będzie " +"zasysał pozostawione luzem przedmioty z ziemi i rozpuszczał jej w " +"wewnętrznych zbiornikach z kwasem. Nieagresywny i nieuzbrojony. Aktywuj by " +"uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive bee-bot" @@ -66888,6 +68210,10 @@ msgid "" "Activate this item, with wooden bolts in your inventory, to load and deploy " "the robot." msgstr "" +"Robot użytkowy z odzysku przerobiony na wędrowny ul pszczeli, który okresowo" +" przetwarza i dostarcza plastry miodu. Chroni swoją kolonię insektów kuszą " +"mechaniczną zamontowaną w korpusie. Aktywuj mając bełty w ekwipunku, by " +"załadować i uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive medibot" @@ -66912,6 +68238,9 @@ msgid "" "hostile targets with a set of blades and a toxic needle. Activate this item" " to deploy the robot." msgstr "" +"Robot medyczny z odzysku przerobiony na maszynę mordercę. Będzie atakować " +"wrogów zestawem straszliwych ostrzy, i strzykawką napełnioną toksynami. " +"Aktywuj by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive elixirator" @@ -66927,6 +68256,8 @@ msgid "" "A salvaged medibot with its internal pharma-fabricators repurposed to " "produce mutagen. Activate this item to deploy the robot." msgstr "" +"Robot medyczny z odzysku z syntezatorem farmaceutyków przebudowanym do " +"produkcji mutagenów. Aktywuj by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive party bot" @@ -66943,6 +68274,8 @@ msgid "" "lights, and programmed to dance. Activate this item to get the party " "started." msgstr "" +"Robot medyczny z odzysku napchany marihuaną, pokryty wielokolorowymi " +"migającymi światełkami i zaprogramowany do tańca. Aktywuj by zacząć imprezę." #: lang/json/TOOL_from_json.py msgid "inactive skitterbot" @@ -66967,6 +68300,8 @@ msgid "" "with pincers and an integrated tazer. Activate this item to deploy the " "robot." msgstr "" +"Bot smyrgacz z odzysku przerobiony do polowania na małą zdobycz. Atakuje " +"cele szczypcami i zintegrowanym paralizatorem. Aktywuj by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive grab-bot" @@ -66982,6 +68317,8 @@ msgid "" "A salvaged skitterbot repurposed to grab onto and immobilize enemies. " "Activate this item to deploy the robot." msgstr "" +"Bot smyrgacz z odzysku przerobiony do chwytania i unieruchamiania wrogów. " +"Aktywuj by uruchomić." #: lang/json/TOOL_from_json.py msgid "inactive pest hunter" @@ -66997,6 +68334,8 @@ msgid "" "A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " "this item, with ammo in your inventory, to load and deploy the robot." msgstr "" +"Bot smyrgacz z odzysku wyposażony w zintegrowaną broń kalibru 8 mm. Aktywuj " +"mając amunicję w ekwipunku by przeładować i uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive cyborg" @@ -67021,6 +68360,8 @@ msgid "" "animate head retains some of its ability to revive zombies. Activate this " "item to deploy the robot." msgstr "" +"Cyborg z odzysku na którym osadzono głowę nekromanty zombie. Ożywiona głowa " +"zachowała nieco zdolności do ożywiania zombie. Aktywuj by uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive defense robot" @@ -67045,6 +68386,8 @@ msgid "" " Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" +"Robot obronny z odzysku wyposażony w strzelbę i dwie piły tarczowe. Aktywuj " +"mając amunicję w ekwipunku by przeładować i uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive shortcircuit samurai" @@ -67076,6 +68419,9 @@ msgid "" "searing hot blades. Activate this item, with gasoline in your inventory, to" " load and deploy the robot... preferably far from anything flamable" msgstr "" +"Robot obronny z odzysku wyposażony w domowej roboty miotacz ognia i dwa " +"rozgrzane do czerwoności ostrza. Aktywuj mając benzynę w ekwipunku, by " +"przeładować i uruchomić robota, najlepiej z dala od palnych rzeczy..." #: lang/json/TOOL_from_json.py msgid "inactive military robot" @@ -67085,6 +68431,14 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -67100,6 +68454,8 @@ msgid "" "Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" +"Robot wojskowy z odzysku wyposażony w zestaw zintegrowanych broni kalibru 9 " +"mm. Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive robote deluxe" @@ -67117,6 +68473,10 @@ msgid "" "apoyalypse in style. Activate this item, with ammo in your inventory, to " "load and deploy the robot." msgstr "" +"Nabity diamentami i kryty złotem robot uzbrojony w parę broni kalibru 9 mm. " +"Wystawny luksusowy robot dla tych, którzy życzą sobie przeżyć apokalipsę w " +"wysokim stylu. Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić" +" robota." #: lang/json/TOOL_from_json.py msgid "inactive robo-protector" @@ -67133,6 +68493,9 @@ msgid "" "Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" +"Robot wojskowy z odzysku wyposażony w zintegrowany karabin kalibru 5,56 mm. " +"Zmodyfikowana broń jest zdolna do strzelania seriami po trzy pociski, ale ma" +" przyzwoity zasięg i celność. Nadaj się na solidnego sojusznika w walce." #: lang/json/TOOL_from_json.py msgid "inactive robo-defender" @@ -67148,6 +68511,8 @@ msgid "" "A salvaged military robot refitted with an integrated 50bmg rifle. Activate" " this item, with ammo in your inventory, to load and deploy the robot." msgstr "" +"Robot wojskowy z odzysku wyposażony w zintegrowany karabin kalibru 50. " +"Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive advanced robot" @@ -67172,6 +68537,9 @@ msgid "" " It attacks hostile targets with its two integral lasers and blinding " "flashes. Activate this item to deploy the robot." msgstr "" +"Zaawansowany robot z odzysku zmieniony w błyskającą latarnię destrukcji. " +"Atakuje cele dwoma zintegrowanymi laserami i oślepiającymi fleszami. Aktywuj" +" by uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive bitter spinster" @@ -67188,6 +68556,9 @@ msgid "" "acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " "to deploy the robot." msgstr "" +"Robot wojskowy z odzysku przerobiony na kaustycznego potwora. Wewnętrzna " +"kadź fermentacyjna kwasu zasila miotacz globul i sprej. Aktywuj by uruchomić" +" robota." #: lang/json/TOOL_from_json.py msgid "inactive chickenwalker" @@ -67272,14 +68643,17 @@ msgid "" "it uses to crush anything in its way, including buildings. Activate this " "item to deploy the robot." msgstr "" +"Dron czołgowy z odzysku wyposażony w parę potężnych pneumatycznych młotów, " +"których używa do miażdżenia wszystkiego na swojej drodze, w tym budynków. " +"Aktywuj ten przedmiot by uruchomić robota." #: lang/json/TOOL_from_json.py msgid "inactive atomic sultan" msgid_plural "inactive atomic sultans" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "nieaktywny atomowy sułtan" +msgstr[1] "nieaktywny atomowy sułtan" +msgstr[2] "nieaktywny atomowy sułtan" +msgstr[3] "nieaktywny atomowy sułtan" #: lang/json/TOOL_from_json.py msgid "active glowball" @@ -68017,51 +69391,6 @@ msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "" "Ręcznie robione drewniane kółko do wózka ze wzmacniającą metalową obręczą." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "nadmuchiwana sekcja" -msgstr[1] "nadmuchiwana sekcja" -msgstr[2] "nadmuchiwana sekcja" -msgstr[3] "nadmuchiwana sekcja" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Nadmuchiwana sekcja łódki." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "nadmuchiwana poduszka powietrzna" -msgstr[1] "nadmuchiwana poduszka powietrzna" -msgstr[2] "nadmuchiwana poduszka powietrzna" -msgstr[3] "nadmuchiwana poduszka powietrzna" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Nadmuchiwana poduszka powietrzna." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "pokład łodzi" -msgstr[1] "pokład łodzi" -msgstr[2] "pokład łodzi" -msgstr[3] "pokład łodzi" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"Drewniany pokład który utrzymuje łódź na powierzchni. By zmienić pojazd w " -"łódź zamontuj pokład jakbyś montował koła w samochodzie. Potem dołącz wiosła" -" lub silnik by napędzić łódkę." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "Żelatynowa gąsiennica" @@ -68295,6 +69624,10 @@ msgstr "Przestać manipulować pojazdem?" msgid "Stop training?" msgstr "Przestać trenować?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "Przestać rozmawiać towarzysko?" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "Przestać stosować pierwszą pomoc?" @@ -68351,6 +69684,14 @@ msgstr "Przestać kopać grządki?" msgid "Stop planting seeds?" msgstr "Przestać sadzić nasiona?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "Przestać zbierać plony?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "Przestać nawozić pole?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "Przestać manipulować ekwipunkiem?" @@ -68455,10 +69796,18 @@ msgstr "Przestać się golić?" msgid "Stop cutting your hair?" msgstr "Przestać się strzyc?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "Przestać bawić się ze zwierzakiem?" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "Zaprzestać prób zaśnięcia?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "Przestać rozładowywać?" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -71649,6 +72998,19 @@ msgstr "" "Znacznik SI na okoliczność zapytania NPC o trenowanie cię. Jeśli go masz to " "znaczy że to bug." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "Zapytany o rozmowę towarzyską" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" +"Znacznik SI na okoliczność zapytania NPC o rozmowę towarzyską. Jeśli go masz" +" to znaczy że to bug." + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Informator" @@ -73015,23 +74377,6 @@ msgstr "Jesteś pozbawiony tchu." msgid "The ceiling collapses on you!" msgstr "Dach zapada się na ciebie!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Kuracja komórkami macierzystymi" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"Twoje wnętrzności przemieszczają się w osobliwy sposób gdy terapia odnosi " -"swój skutek." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "Otrzymujesz zastrzyk z puree z kości i szkliwa w oko." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "Zażyłeś antykonwulsanty" @@ -73602,6 +74947,15 @@ msgstr "Panaceum" msgid "You feel incredible! You could take on the world!" msgstr "Czujesz wyśmienicie! Możesz stawić czoła całemu światu!" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "Uspokojony żołądek" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "Jesteś pod wpływem leku na dolegliwości żołądkowe." + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "Wyładowanie" @@ -73627,12 +74981,11 @@ msgstr "Historia Odrzucona" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" -"Znacznik SI używany gdy już pytałeś NPC o szczegóły jego histori przetrwania" -" a nie chciał ci opowiedzieć ponownie w tym momencie. Jeśli go masz to błąd." +"Znacznik SI: już pytałeś NPC o szczegóły i nie chce ci ich mówić ponownie. " +"To błąd jeśli go masz." #: lang/json/effects_from_json.py msgid "Religious Offence" @@ -81311,10 +82664,10 @@ msgstr "walka wręcz bronią" #: lang/json/gun_from_json.py msgid "base robogun" msgid_plural "base roboguns" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "bazowy robokarabin" +msgstr[1] "bazowy robokarabin" +msgstr[2] "bazowy robokarabin" +msgstr[3] "bazowy robokarabin" #: lang/json/gun_from_json.py msgid "" @@ -83175,6 +84528,45 @@ msgid "" msgstr "" "Precyzyjnie wyważony mechanizm spustowy nieco ulepszający celność broni." +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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 "ar15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -83360,6 +84752,20 @@ msgstr "" "45 stopni, używanych gdy luneta lub inna modyfikacja uniemożliwia używanie " "podstawowych celowników." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "boczna szyna celowników" +msgstr[1] "boczna szyna celowników" +msgstr[2] "boczna szyna celowników" +msgstr[3] "boczna szyna celowników" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" +"Dodatkowa szyna akcesoryjna ustawiona pod kątem 45° do umieszczania drugiego" +" celownika." + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -84464,6 +85870,11 @@ 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 "" +"Może się zdarzyć że będziesz chciał poruszać się szybciej przytrzymując " +"klawisz kierunku. Może to prowadzić do niebezpiecznych sytuacji lub śmierci " +"zanim zdołasz zareagować. Wciskając przełączysz Tryb " +"Bezpieczny. Gdy jest włączony ruch będzie ignorowany gdy w zasięgu wzroku " +"gracza pojawią się nowe potwory." #: lang/json/help_from_json.py msgid ": Viewing" @@ -84480,6 +85891,15 @@ msgid "" " 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 "" +"Gracz może często widzieć więcej niż może być pokazane na ekranie. " +"Naciśniecie spowoduje wejście w tryb rozglądania się, " +"pozwalający na przesunięcie strzałkami widoku i podglądu przedmiotów na " +"mapie jak i potworów wraz z ich nastawieniem do postaci. Naciśnięcie " +" wyświetla widoczne w pobliżu przedmioty, choć przedmioty " +"zamknięte w skrzyniach, szafach, lodówkach, itd. nie będą widoczne dopóki " +"nie będziesz wystarczająco blisko. naciskając Shift + (h,j,k,l,y,u,b,n) " +"pozwoli na stałe przesunięcie obrazu i obserwowanie rzeczy gdy się " +"przemieszczasz." #: lang/json/help_from_json.py msgid ": Hunger, thirst, and sleep" @@ -84532,6 +85952,16 @@ msgid "" "diseased water. To make sure it's healthy, purify the water by boiling it or" " using water purifier before drinking." msgstr "" +"Znalezienie żywności w mieście jest zwykle proste; poza miastem możesz " +"potrzebować polować. Po zabiciu zwierzęcia stań nad jego ciałem i potnij je " +"na małe kawałki mięsa naciskając . Możesz też spróbować " +"zbieractwa jadalnych owoców lub warzyw; by to zrobić znajdź i zbadaj " +"obiecującą roślinę. Analogicznie, możesz potrzebować napić się wody z rzeki " +"lub innego naturalnego źródła. By nabrać wody stań na płyciźnie i naciśnij " +". Potrzebujesz nieprzepuszczalnego pojemnika by ją przechować." +" Bądź uprzedzony, że pewne źródła wody nie są zaufane i mogą być źródłem " +"zakażonej wody. By upewnić się że woda jest zdatna do picia, zagotuj ją lub " +"użyj oczyszczacza wody przed wypiciem." #: lang/json/help_from_json.py msgid "" @@ -84543,6 +85973,13 @@ msgid "" " be vulnerable to attack, so try to find a safe place to sleep, or set traps" " for unwary intruders." msgstr "" +"Co 14 - 20 godzin, będziesz odczuwał potrzebę snu. Jeżeli nie położysz się " +"spać naciskając , zaczniesz odczuwać kary do statystyk i " +"prędkości. Nie zawsze zaśniesz od razu. Spanie w budynkach, zwłaszcza na " +"łóżku pomaga. Jeśli to za mało pigułki na sen mogą być przydatne. Podczas " +"snu powoli odzyskasz utracone punkty zdrowia. Będziesz za to wystawiony na " +"atak, więc spróbuj znaleźć bezpieczne miejsce, lub rozstaw pułapki na " +"nieostrożnych intruzów." #: lang/json/help_from_json.py msgid ": Pain and stimulants" @@ -84808,6 +86245,12 @@ msgid "" " Many bionic canisters are difficult to find, but may be purchased from " "certain wandering vagabonds for a very high price." msgstr "" +"Bioniki pakowane są w gotowe do instalacji zestawy. Instalację bionik lepiej" +" powierzyć wytrenowanym specjalistom lub specjalistycznemu aparatowi " +"medycznemu. Użycie maszyn do operowania bionikami wymaga wysokiego poziomu " +"inteligencji, pierwszej pomocy, mechaniki i elektroniki. Uważaj, nieudana " +"próba może cię okaleczyć! Wiele pojemników z bionikami trudno znaleźć, ale " +"mogą być też kupione od szwendających się wagabundów za duże pieniądze." #: lang/json/help_from_json.py msgid "" @@ -84938,6 +86381,9 @@ 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 "" +"Wiele pułapek jest całkowicie lub częściowo ukrytych. Twoja zdolność " +"wykrycia pułapek zależy wyłącznie od twojej Percepcji. Jeśli wpadniesz w " +"pułapkę masz szansę na jej uniknięcie w zależności od zdolności Uników." #: lang/json/help_from_json.py msgid ": Items overview" @@ -84987,6 +86433,10 @@ msgid "" "Armor reduces damage and helps you resist things like smoke. To take off an " "item, press then the proper letter." msgstr "" +"By ubrać część ubioru naciśnij następnie odpowiednią literę. " +"Zbroja redukuje obrażenia i pomaga chronić się przed rzeczami takimi jak " +"dym. By zdjąć przedmiot, naciśnij a następnie odpowiednią " +"literę." #: lang/json/help_from_json.py msgid "" @@ -84994,6 +86444,10 @@ msgid "" "open) is the ability to filter or prioritize items. You can enter item " "names, or various advanced filter strings: {:}" msgstr "" +"Ponadto dostępna w podglądzie pobliskich rzeczy (naciśnij " +"by otworzyć) jest zdolność filtrowania i nadawania priorytetów przedmiotom. " +"Możesz wprowadzać nazwy przedmiotów, lub różne zaawansowane wyrażenia " +"filtra: { : }" #: lang/json/help_from_json.py msgid "" @@ -85003,6 +86457,11 @@ msgid "" "\t dgt = damage greater than (0-5) | {dgt:2}\n" "\t dlt = damage less than (0-5) | {dlt:1}" msgstr "" +"Obecnie dostępne tokeny:\n" +"\t c = kategoria {książki, żywność, itd.) | {c:ksiązki}\n" +"\t m = materiał (bawełna, kevlar, itd.) | {m:żelazo}\n" +"\t dgt = obrażenia większe niż (0-5) | {dgt:2}\n" +"\t dit = obrażenia mniejsze niż (0-5) | {dit:!}" #: lang/json/help_from_json.py msgid ": Combat" @@ -85140,6 +86599,14 @@ msgid "" "accidentally wielding weapons taken from the ground, enable \"Keep hands " "free\" found in the styles menu." msgstr "" +"By wybrać styl walki naciśnij . Niektóre style działają " +"gdy walczysz bez broni, inne są kompatybilne lub nawet wymagają konkretnych " +"broni. Jeśli obecna broń jest kompatybilna ze stylem rozpoczniesz go używać " +"od razu. W innym przypadku będzie on ustawiony jako styl domyślny. By go " +"zacząć używać weź odpowiednią broń lub opróżnij ręce, naciskając " +", następnie klawisz dla przedmiotu obecnie trzymanego. Jeśli " +"chcesz zapobiec przypadkowemu trzymaniu broni wziętej z ziemi, ustaw " +"\"Trzymaj ręce puste\" w menu stylów." #: lang/json/help_from_json.py msgid "" @@ -86981,15 +88448,13 @@ msgstr "Po włączeniu zatrzyma pojazd, jeśli nie ma mocnego silnika." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" -"Jeśli środek ciężkości pojazdu znajduje się pomiędzy wszystkimi deskami " -"łodzi, a nie masz kół, pojazd będzie mógł unosić się nad wodą, pod " -"warunkiem, że ma aktywny silnik lub motor o mocy wystarczającej do " -"poruszenia pojazdu." +"Każdy kadłub łodzi zredukuje zanurzenie twojego pojazdu i zwiększy wysokość " +"zabezpieczoną przed dostępem wody. Jeżeli zanurzenie jest mniejsze niż " +"zabezpieczona wysokość, twój pojazd będzie unosił się na wodzie." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -87750,7 +89215,7 @@ msgstr "Tnij mięso" msgid "Chat with NPC" msgstr "Rozmwaiaj z NPC" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Rozejrzyj Się Wokół" @@ -88361,6 +89826,14 @@ msgstr "Przełącz zamrażarkę" msgid "Toggle headlights" msgstr "Przełącz reflektory" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "Przełącz szerokokątne reflektory" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "Przełącz kierunkowe światła nad głową" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Przełącz światła nad głową" @@ -88774,14 +90247,14 @@ msgid "Analyze blood" msgstr "Analizuj krew" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Mr. Komórka Macierzysta" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "Terapia Komórkami Macierzystymi" +msgid "Bonesetting Treatment" +msgstr "Nastawianie Kości" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -88952,6 +90425,15 @@ msgstr ", , i byli tutaj!" msgid "it works." msgstr "działa." +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" +"Nazwa kostnicy z szybko napisanym dopiskiem o treści: 'nie jestem " +"odpowiedzialny jeśli twoi bliscy nie pozostaną martwi.'" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -90228,6 +91710,38 @@ msgstr "" "+Siła zbroja vs miażdżonym, +Zręczność zbroja vs kwasowi, +Inteligencja " "zbroja vs elektryczności, +Percepcja zbroja vs ogniowi." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "Sōjutsu" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" +"Sōjutsu, \"Droga Włóczni\", to japoński styl walki włócznią. Skupia się na " +"trzymaniu wroga na dystans celem osiągnięcia przewagi w boju." + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +msgstr "Poza Sōjutsu" + +#. ~ 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 "Bonusowy blok z bronią zasięgową gdy stoisz w miejscu" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Rush" +msgstr "Pęd Sōjutsu" + +#. ~ 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 "Zwiększone obrażenia podczas ruchu ale brak bonusowego bloku" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Średniowieczna Sztuka Władania Mieczem" @@ -93975,6 +95489,10 @@ msgstr "Smakował ci %s" msgid "Enjoyed a hot meal" msgstr "Smakował ci gorący posiłek" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "Zadowolony z pogawędki" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Muzyka" @@ -94185,6 +95703,10 @@ msgstr "Ogoliłeś się" msgid "Barfed" msgstr "Żygałeś" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "Spędziłeś czas na zabawie ze zwierzęciem" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "Rozpalono ogień" @@ -95368,6 +96890,21 @@ msgstr "" "Mimo że nadal cierpisz negatywne efekty bólu, to przynosi on też niezwykłą " "przyjemność." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "Psychoza Stymulantów" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" +"Masz barwną historię ze stymulantami (jak kawa lub amfetamina). Tolerujesz " +"je bardziej be przedawkowania, ale jeśli pozwolisz sobie na więcej, " +"zaczynasz widzieć rzeczy..." + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -95522,10 +97059,10 @@ msgstr "Trening W Walce Wręcz" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" "Praktykowałeś walkę bronią białą. Zaczynasz według wyboru z Eskrima, " -"Szermierka, Pentjak Silat or Niten Ichi-Ryu." +"Szermierka, Pentjak Silat, Niten Ichi-Ryu lub Sōjutsu." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -96258,6 +97795,19 @@ msgstr "" "niższa niż zwykle i dużo wolniej odzyskujesz zdrowie. Dodaje się ze Szklaną " "Szczęką." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "Genetyczna Równia Pochyła" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" +"Kataklizm nieodwracalnie zniszczył twoje DNA. Często mutujesz, a mutacje z " +"dowolnego źródła są zawsze negatywne." + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Szorstka Skóra" @@ -100809,6 +102359,24 @@ msgstr "Nowe opcje mogły stać się dostępne!" msgid "Has Level 2 Construction Built" msgstr "Ma Zbudowane Konstrukcje 2 Poziomu" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "Startowi NPC" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "Marker dla startowych NPC" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "Statyczni NPC" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "Marker dla statycznych NPC" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "Zdebugowana Wizję" @@ -101625,6 +103193,10 @@ msgstr "Apis" msgid "I'm bugged - I shouldn't talk to you." msgstr "Jestem zbugowany - nie powinienem gadać do ciebie." +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "Żebrak" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -101988,6 +103560,30 @@ msgstr "Bandyta" msgid "Psycho" msgstr "Psycho" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "żebrak" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "Reena Sandhu" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "Dinozaur Dave" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "Luo Meizhen" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "Brandon Garder" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "Yusuke Taylor" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "Najeźdźca" @@ -103163,8 +104759,36 @@ msgid "trailhead" msgstr "początek szlaku" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "opuszczony bar dla zmotoryzowanych" +msgid "veterinarian clinic" +msgstr "klinika weterynaryjna" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "muzeum" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "kostnica" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "pralnia samoobsługowa" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "jubiler" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "dwupiętrowy motel" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "Biurowiec Drapacz Chmur" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "sklep budowlany" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -103190,6 +104814,10 @@ msgstr "kręgielnia" msgid "boxing gym" msgstr "sala bokserska" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "sale fitness" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "dojo" @@ -103203,37 +104831,13 @@ msgid "gardening supply" msgstr "zaopatrzenie ogrodnictwa" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "sale fitness" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "sklep budowlany" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "jubiler" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "pralnia samoobsługowa" +msgid "abandoned drive-through" +msgstr "opuszczony bar dla zmotoryzowanych" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "beznazwy" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "kostnica" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "muzeum" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "klinika weterynaryjna" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "Zbankrutowana Pizzeria" @@ -103471,14 +105075,6 @@ msgstr "szkoła" msgid "projects" msgstr "mieszkania socjalne" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "dwupiętrowy motel" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "Biurowiec Drapacz Chmur" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "garaż mechaników" @@ -103595,6 +105191,40 @@ msgstr "wulkanizator" msgid "regional dump" msgstr "regionalne wysypisko" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "Wagabunda" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Okoliczności zmusiły cię do wędrówki, bez domu, rodziny i przyjaciół. Ale " +"świat, który znałeś już odszedł, wiec twoje doświadczenia w opieraniu się na" +" sobie samym by przetrwać mogą nadać się w tym nowym świecie." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "Wagabunda" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Okoliczności zmusiły cię do wędrówki, bez domu, rodziny i przyjaciół. Ale " +"świat, który znałaś już odszedł, wiec twoje doświadczenia w opieraniu się na" +" sobie samym by przetrwać mogą nadać się w tym nowym świecie." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -108690,6 +110320,130 @@ msgstr "" "Przed końcem, twoim hobby było nielegalne przeprogramowywanie komercyjnych " "robotów, ale nigdy nie sądziłaś, że twoje przetrwanie może od tego zależeć." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "Inżynier Robotyk" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Byłeś inżynierem niskiego szczebla w wytwórni robotów. Zarząd powtarzał ci, " +"że montowanie miotaczy ognia na młynkach jest \"niepotrzebne\" i \"zbyt " +"niebezpieczne\", ale teraz nic cię nie powstrzymuje." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "Inżynier Robotyk" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Byłaś inżynierem niskiego szczebla w wytwórni robotów. Zarząd powtarzał ci, " +"że montowanie miotaczy ognia na młynkach jest \"niepotrzebne\" i \"zbyt " +"niebezpieczne\", ale teraz nic cię nie powstrzymuje." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "Geniusz Robotyki" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Budowałeś roboty, od kiedy tylko mogłeś utrzymać w ręku lutownicę, i nie " +"zamierzasz pozwolić by koniec świata stanął temu na przeszkodzie." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "Geniusz Robotyki" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Budowałaś roboty, od kiedy tylko mogłeś utrzymać w ręku lutownicę, i nie " +"zamierzasz pozwolić by koniec świata stanął temu na przeszkodzie." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "Adoptowany przez Robota" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Podczas zamieszek robot wojskowy przybył ci znikąd na ratunek. Może myśli, " +"że jesteś kimś ważnym, kto wie." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "Adoptowana przez Robota" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Podczas zamieszek robot wojskowy przybył ci znikąd na ratunek. Może myśli, " +"że jesteś kimś ważnym, kto wie." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "Zrobotyzowany Myśliwy" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Zapłaciłeś lokalnemu hakerowi by zbudował ci psa-robota do polowań. Jest " +"niemal tak dobry jak prawdziwy, ale nie lubi być głaskany." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "Zrobotyzowany Myśliwy" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Zapłaciłaś lokalnemu hakerowi by zbudował ci psa-robota do polowań. Jest " +"niemal tak dobry jak prawdziwy, ale nie lubi być głaskany." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -111983,7 +113737,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "Ogień się szybko rozprzestrzenia, zwłaszcza z dostatkiem paliwa." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "Nawet bez prądu w piekarniku bezpiecznie rozpalisz ognisko." #: lang/json/snippet_from_json.py @@ -112007,23 +113761,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "Piwnica lub ziemianka schłodzą jedzenie by przetrwało dłużej." #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." -msgstr "" -"Umarłeś? To część doświadczenia. Spróbuj ponownie i ucz się na błędach." +msgid "Dying is part of the experience. Try again with what you've learned." +msgstr "Śmierć to część doświadczenia. Spróbuj ponownie i ucz się na błędach." #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "Jedzenie zamarzło? Ogrzej je w garnku lub połóż obok ognia." #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." -msgstr "Podziemna jaskinia lub piwnica jest chłodna lecz nigdy nie zamarza." +msgid "Underground spaces like basements or caves stay cool year-round." +msgstr "W podziemiach np. w jaskini lub piwnicy jest chłodno przez cały rok." #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" "Boisz się dzikich zwierząt? Krzycz aż uciekną, lecz uważać co możesz " @@ -112034,9 +113785,8 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "Zwierzęta i zombie nie są przyjaciółmi. Wykorzystaj to." #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "" -"Drzwi to nie jedyne wejście. Ani jedyne wyjście, jeśli to ma znaczenie." +msgid "A door is not the only way in or out of most places." +msgstr "Drzwi to nie jedyne wejście lub wyjście z większości miejsc." #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -112052,20 +113802,16 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "Wiele przedmiotów ma specjalne akcje. Postaraj się poznać co robią." #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." -msgstr "" -"Niebezpieczne miejsce nie gwarantuje dobrych znalezisk. Działaj z głową." +msgid "Just because a place is dangerous doesn't mean it's worth looting." +msgstr "To że miejsce jest niebezpieczne nie oznacza że jest warte złupienia." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." -msgstr "" -"Wejście to nie problem. Myśl o drodze wyjścia i nie daj się zapędzić w ślepy" -" róg." +msgid "If you're breaking in, be sure you also know how to get back out." +msgstr "Jak się włamujesz bądź pewien, że wiesz którędy wyjdziesz." #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" "Zwykle jest więcej niż jeden sposób na osiągnięcie czegoś. Myśl " "niestereotypowo." @@ -112105,17 +113851,18 @@ msgstr "Niewiele przeżyje samochód przy 200 km/h. A ty?" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"Nie chcesz mieć przerośniętych karaluchów w swojej zepsutej żywności. " -"Pozbądź się jej." +"Zepsute jedzenie zwykle przyciąga owady, a te są znacznie większe ostatnimi " +"czasy..." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" -"Leki mogą ci pomóc w potrzebie, ale uważaj by nie przedawkować i nie " -"uzależnić się." +"Narkotyki świetnie i szybko podbijają statystyki, ale uważaj na uzależnienie" +" i przedawkowanie." #: lang/json/snippet_from_json.py msgid "" @@ -112126,11 +113873,9 @@ msgstr "" "cię w to co potrzebujesz." #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -"Rany leczą się z czasem. Bandażowanie i dezynfekcja przyspieszają ten " -"proces." +"Rany goją się z czasem. Bandażowanie i dezynfekcja przyspieszają ten proces." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -112158,18 +113903,17 @@ msgstr "" "Natura potrafi obdarzyć. Możesz żyć z darów natury jeśli nauczysz się jak." #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" "Surowe jedzenie i woda z niepewnych źródeł nie mogą być zdrowe? Zgadza się?" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "" -"Po co iść pieszo do najbliższego miasta skoro można zaadoptować pojazd?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "Po iść pieszo jak można jechać samochodem? Albo czołgiem?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." -msgstr "Jedzenie sprzed kataklizmu nie jest wieczne. Miej to na uwadze." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." +msgstr "Jedzenie sprzed Kataklizmu nie jest wieczne. Miej to na uwadze." #: lang/json/snippet_from_json.py msgid "" @@ -112229,7 +113973,7 @@ msgstr "Rutyna zabija. Bądź uważny! Nie opuszczaj gardy." #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" "Większość leków nie działa od razu, więc nie połykaj całej butelki pigułek." @@ -112273,12 +114017,9 @@ msgstr "" "rezultaty." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -"Trwałość żywności nie jest stała. Sposób przechowywania ma znaczenie, " -"zwłaszcza temperatura." +"Temperatura wpływa na czas trwałości żywności. Im chłodniej tym lepiej." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -112307,7 +114048,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" "Spowalnia cię złamana kończyna? Szpital może mieć najnowszy sprzęt by " @@ -112330,12 +114071,8 @@ msgstr "" "toaletowego." #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." -msgstr "" -"Utrudniony ruch przez trudny teren może być wykorzystany do zdobycia " -"przewagi." +msgid "Terrain that slows you down will also slow down your enemies." +msgstr "Teren który cię spowalnia, spowolni też twoich wrogów." #: lang/json/snippet_from_json.py msgid "" @@ -112354,11 +114091,12 @@ msgstr "" "grę. Wciel się w rolę!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "Ocalony towarzysz to przyjaciel w biedzie. W większości przypadków..." #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" "Uczysz się gry? Odwiedź menu klawiszologii i naucz się jak pociągać za " "sznurki." @@ -112367,6 +114105,78 @@ msgstr "" msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "Oczekuj nieoczekiwanego, choćby to była Hiszpańska Inkwizycja." +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" +"Możesz rzucać przedmioty zza winkla. Doskonałe na pozbywanie się wieżyczek." + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" +"Nikt nie powiedział automatom sprzedającym o końcu świata. Karty płatnicze w" +" ruch!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" +"Te sekretne podziemne laboratoria muszą być pełne ciekawe rzeczy, czyż nie?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "Umieść lejek nad słoikiem albo beczką i gromadź z czasem deszczówkę." + +#: 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 "" +"Liczba zombie w mieście jest wielka ale skończona. Możesz je (kiedyś) " +"wszystkie zabić." + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" +"Zabrałeś wszystko co nie było przybite do ścian? To wróć się jeszcze po " +"gwoździe." + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "Możesz sam ustawić reguły Trybu Bezpiecznego w menu pauzy." + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "Najlepsza broń na świecie bez amunicji to złom." + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" +"Większość zombie nie omija samochodów a pcha się przez nie. Pamiętaj o tym " +"jak uciekasz." + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" +"Jak siedzisz w domu ze złamaną nogą, poczytaj książki by szybciej mijał " +"czas." + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "Z niektórych ciał można wydobyć bionikę podczas sekcji zwłok." + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "Nie bądź zbyt chciwy. Łup nie ma znaczenia gdy jesteś martwy." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -114217,6 +116027,11 @@ msgid "" "\"Rivtech retractable monomolecular blade system. Failure is never an " "option.\" and \"Rivtech Bionics, guaranteed for life.\"" msgstr "" +"To reklama Monomolekularnego Ostrza CBM marki Rivtech. Pokazuje obraz " +"kobiety z bionicznym ostrzem wystającym z ramienia, niezłomnie broniącej " +"dzieci przed rozzłoszczonym niedźwiedziem. Napis głosi: \"Wysuwane ostrze " +"monomolekularne Rivtech. Przegrana nie jest opcją.\" oraz \"Bioniki Rivtech," +" dożywotnia gwarancja.\"" #: lang/json/snippet_from_json.py msgid "" @@ -114235,6 +116050,10 @@ msgid "" " The caption reads: \"Rivtech 8x40mm caseless. Nothing else comes " "close.\"" msgstr "" +"Reklama amunicji RivTech. Pokazuje obraz pancernej stalowej płyty z ziejącą " +"dziurą wystrzeloną pośrodku. Obok płyty leży blok jaskrawo pomalowanej " +"bezłuskowej amunicji. Napis głosi: \"RivTech bezłuskowa 8x40mm. Nic się z " +"nią nie równa.\"" #: lang/json/snippet_from_json.py msgid "" @@ -114329,6 +116148,11 @@ msgid "" "IS JUST! YOU WILL BE DIVIDED FATHER AGAINST SON AND MOTHER AGAINST CHILD " "UNTO THE VERY LAST SINNER!" msgstr "" +"To wiadomość publiczna z nienazwanego źródła. Jej treść, skserowana z " +"nabazgranej ręcznie kopii, głosi: POKUTUJ ZA GRZECHY BABILONIE BO CZAS JEGO " +"SĄDU NADCHODZI! PATRZ NA SWE ZNISZCZENIE I WIEDZ ŻE JEST SPRAWIEDLIWE! " +"ZOSTANIECIE PODZIELENI OJCIEC PRZECIW SYNOWI I MATKA PRZECIW DZIECKU AŻ DO " +"OSTATNIEGO GRZESZNIKA!" #: lang/json/snippet_from_json.py msgid "" @@ -114339,6 +116163,12 @@ msgid "" "authorized military personnel. This curfew will remain in effect until " "further notice. Stay indoors. Violators will be shot on sight." msgstr "" +"To publiczne ostrzeżenie od Armii Stanów Zjednoczonych. Krótka wiadomość " +"powtórzona w kilku językach głosi: Prezydent Stanów Zjednoczonych ogłosił " +"jednostronnie stan wojenny obejmujący cały kraj. Chrońcie się w miejscu " +"pobytu aż do ewakuacji do właściwego obozu zarządzania kryzysowego przez " +"upoważniony personel wojskowy. Godzina policyjna obowiązuje do odwołania. " +"Nie wychodźcie za drzwi. Naruszający zakaz zostaną zastrzeleni na miejscu." #: lang/json/snippet_from_json.py msgid "" @@ -114372,6 +116202,10 @@ 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 "" +"To ulotka sieci fast food. Jest w niej facet w samochodzie składający " +"zamówienie z atrakcyjną kobietą noszącą jaskrawo zieloną koszulę w oknie z " +"dwoma szczęśliwymi dzieciakami na tylnych siedzeniach. Ulotka głosi " +"\"Burgery, frytki i Uśmiech.\" W roku jest logo sieci." #: lang/json/snippet_from_json.py msgid "" @@ -114418,6 +116252,10 @@ msgid "" "claymore walking towards the viewer. At his side is his trusty cyberdog " "companion and in the background is an explosion." msgstr "" +"To duży plakat filmowy \"Napakowane Akcją 6: Zemsta Psich Ludzi\". Pokazuje " +"wysportowanego mężczyznę w skórzanej kamizelce z rewolwerem i miną claymore " +"idącego w kierunku widza. Przy boku ma wiernego psa cyborga, a w tle widać " +"eksplozję." #: lang/json/snippet_from_json.py msgid "" @@ -114454,6 +116292,12 @@ msgid "" "this one with a permanent marker. It is now covered in rude images and " "racial epithets." msgstr "" +"To ulotka sieci fast food. Jest w niej facet w samochodzie składający " +"zamówienie z atrakcyjną kobietą noszącą jaskrawo zieloną koszulę w oknie z " +"dwoma szczęśliwymi dzieciakami na tylnych siedzeniach. Ulotka głosi " +"\"Burgery, frytki i Uśmiech.\" W roku jest logo sieci. Ktoś ostro sobie na " +"niej użył niezmywalnym markerem. Jest pokryta obraźliwymi obrazkami i " +"rasistowskimi hasłami." #: lang/json/snippet_from_json.py msgid "" @@ -114462,6 +116306,10 @@ msgid "" "above his head. Someone has drawn an exaggerated mustache on the cartoon " "Italian, along with a pair of crude, oversized breasts." msgstr "" +"To ulotka lokalnej sieci pizzerii. Jest na niej kreskówkowa postać Włocha " +"trzymającego pizzę, ze słowami \"To doooobra pizza\" napisanymi nad jego " +"głową. Ktoś domalował przesadzone wąsy kreskówkowemu Włochowi wraz z parą " +"topornych przerośniętych piersi." #: lang/json/snippet_from_json.py msgid "" @@ -114496,6 +116344,11 @@ msgid "" " Join the VAULT program today.\" which is written in the middle. However, " "there seems to be no information about *how* one might do so." msgstr "" +"To plakat reklamowy podziemnego bunkra. Pokazuje wybuch atomowy niszczący " +"miasto, podczas gdy rodzina skrywa się bezpiecznie pod ziemią. Slogan " +"pośrodku głosi: \"Obawiasz się ataku wroga? Chcesz chronić rodzinę? Przyłącz" +" się do programu SCHRON już dziś.\" Jednakże wygląda na to, że nie ma " +"żadnych informacji *jak* ktoś miałby to zrobić." #: lang/json/snippet_from_json.py msgid "" @@ -114505,6 +116358,10 @@ msgid "" " The caption reads \"When you chose Red Ryder, you invested in the American" " Dream. You invested in our Independence.\"" msgstr "" +"To ulotka wiatrówek Red Ryder. Pokazuje dziecko ciągnące wózek z upieczonym " +"bażantem i wiatrówką na ramieniu. Dziecko śmieje się, a u jego boku biegnie " +"wierny pies. Napis głosi \"Gdy wybierasz Red Ryder inwestujesz w Amerykański" +" Sen. Inwestujesz w naszą niepodległość.\"" #: lang/json/snippet_from_json.py msgid "" @@ -114515,6 +116372,12 @@ msgid "" " out of the advert. The caption reads \"Witness the rebirth of New Noir " "with 'Jersey Shore Blues'. Starring Jenifer Languiz as 'Snookie'!\"" msgstr "" +"To stara ulotka filmu z lat 30-tych. Opalony mężczyzna z kruczoczarnymi " +"włosami i napakowanymi mięśniami, ubrany w garniturze ze złamanej bieli " +"jedna ręką przyciska do biodra kobietę w czarnej skórzanej sukni. Stojąc z " +"ugiętymi biodrami trzyma ona pistolet i patrzy poza kadr. Napis głosi " +"\"Zobacz odrodzenie Nowego Noir z 'Blues Wybrzeża Jersey'. Występuje Jenifer" +" Languiz jako 'Snookie'!\"" #: lang/json/snippet_from_json.py msgid "" @@ -116921,6 +118784,12 @@ msgid "" "hardware. The caption reads: \"Autodoc - augmentation has never been so " "easy, reliable, and safe.\"" msgstr "" +"To reklama miejscowego szpitala. Widzisz na niej czysty pokój szpitalny z " +"uśmiechniętym człowiekiem leżącym na łóżku. Łóżko jest podłączone do " +"jakiegoś medycznego aparatu z napisem \"Autodok Model X\". Doktor pracuje " +"przy konsoli, a jego asystent rozpakowuje jakiś sprzęt wysokiej technologii." +" Napis głosi: \"Autodoc - augmentacje nigdy nie były tak łatwe, pewne i " +"bezpieczne.\"" #: lang/json/snippet_from_json.py msgid "You feel cold. You need the warmth of a fire." @@ -118288,6 +120157,75 @@ msgstr "Wody... Jest w pobliżu jakaś oaza?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "Wiesz że brak wody zabija szybciej niż czegokolwiek innego?" +#: 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 "" +"Tak, pewnie, nie dało się nie zauważyć, że masz ze sobą piwo! Wypijmy po " +"jednym i pogadajmy, , jak leci?" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" +"O, z całą pewnością, co powiesz na piwko, które widzę przy tobie? Co " +"porabiasz?" + +#: 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 "" +"Podzielisz się piwkiem, które tam chomikujesz i możemy gadać ile dusza " +"zapragnie! Tylko żartowałem, co tam ?" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" +"Hej, jasna sprawa, , i tak przyda mis się chwila przerwy, jak się " +"miewasz?" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "No pewnie, , jak leci?" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "Pewnie, ognia ze wszystkich działonów! Wszystko u ciebie OK?" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "Czemu nie? Jak leci?" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "Mi pasuje, co nowego?" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "Kilka minut mi nie zaszkodzi, jak się miewasz?" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "Jasna sprawa , wszystko w porząsiu?" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "Pewnie, leży ci coś na sercu?" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "Zawsze gotów na dobrą pogawędkę! Ale co tam, wszystko ok?" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "OK , poznajmy się bliżej, jak się miewasz?" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "Z całą pewnością, jestem cały twój? Trzymasz się tam?" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "kurde" @@ -118752,7 +120690,7 @@ msgstr "kolego" msgid "fella" msgstr "koleżko" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "ty" @@ -119828,6 +121766,18 @@ msgstr "Czy to Reno? Bo chcę patrzyć jak umierasz!" msgid "You're going to pay for that, !" msgstr "Zapłacisz za to, !" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "Cicho tam być!" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "Słyszałeś jak ktoś coś mówił?" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "Kto to powiedział?" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "To nie brzmi dobrze." @@ -119844,6 +121794,10 @@ msgstr "Słyszałeś to?" msgid "What's that noise?" msgstr "Co to za hałas?" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "Czy tam coś jest?" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "Słyszałem jak coś się porusza - brzmiało jak" @@ -119853,16 +121807,16 @@ msgid "What's that sound? I heard" msgstr "Co to za dźwięk? Słyszałem" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" -msgstr "Kto tam? Słyszałem" +msgid "What's there? I heard" +msgstr "Co tam jest? Słyszałem " #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" msgstr "Słyszałeś to? Brzmiało jak" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" -msgstr "Kto tak hałasuje? Słyszę" +msgid "What is making that sound? I can hear the" +msgstr "Co wydaje ten dźwięk? Słyszę " #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." @@ -119997,6 +121951,10 @@ msgstr "chodzący trup" msgid " " msgstr " " +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "nieumarłych" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "nieumarły" @@ -120009,10 +121967,6 @@ msgstr "zombie" msgid "Z's" msgstr "Z-dy" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "martwy" - #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -123181,2179 +125135,510 @@ msgid "Clothing Store" msgstr "Sklep z Ubraniami" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"Nawet nie wiem o co biega. Nie mam bladego pojęcia co się " -"dzieje. Po prostu robię co mogę żeby przeżyć. Świat się skończył a ja " -"popłynąłem z nurtem nie umierając, puki cię nie spotkałem." +msgid "That sure is a shiny badge you got there!" +msgstr "Nosisz zaprawdę błyszczącą odznakę!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "Huh." +msgid "Heh, you look important." +msgstr "Heh, wyglądasz na kogoś ważnego." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" -"Zanim nastał? Kogo to obchodzi? To nowy świat, i tak, jest " -"nieźle . Jednak to jedyny jaki mamy, więc nie roztrząsajmy " -"przeszłości gdy powinniśmy pozbierać do kupy to minimum co nam jeszcze " -"zostało." +msgid "I'm actually new." +msgstr "Jestem tu tak naprawdę nowy." #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "Szanuję to." +msgid "What are you doing here?" +msgstr "Co tu robisz?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" -"By być szczerym... tak naprawdę nie pamiętam. Przypominam sobie niejasne " -"przebłyski szczegółów życia zanim świat stał się jaki jest, ale sam " -"? Zamazany obraz. Nie wiem jak dostałem się w miejsce gdzie " -"teraz jestem, ani jak się to wszystko stało. Sądzę że coś złego musiało mi " -"się przydarzyć. Albo mocno oberwałem w głowę. Pewnie jedno i drugie." +msgid "Heard anything about the outside world?" +msgstr "Słyszałeś coś o świecie na zewnątrz?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" -"Moja historia. Huh. Nic specjalnego. Miałem ludzi, ale odeszli do Pana. Nie " -"wiem czemu mnie także nie wziął, ale to pewnie stanie się jasne z czasem." +msgid "Is there any way I can join your group?" +msgstr "Jest jakiś sposób abym mógł dołączyć do waszej grupy?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "Mówisz w sensie religijnym, czy... ?" +msgid "What's with your ears?" +msgstr "Co z twoimi uszami?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "W czymś mogę pomóc?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "Cóż, na razie." #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" -"Oczywiście. To wystarczająco jasne, czyż nie? Ten... ten koniec, to " -"wniebowzięcie wiernych. Nadal tu jestem, i nie wiem dlaczego, ale będę miał " -"Jezusa w sercu przez wszystkie nadchodzące umartwienia. Gdy już miną jestem " -"pewien, że przyjmie mnie do królestwa niebieskiego. Lub... coś w tym " -"rodzaju. Nie dzieje się dokładnie tak myślałem że będzie, ale oto " -"przepowiednia dla ciebie." - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "Co jeśli się mylisz?" +"No to jest nas dwóch. Przynajmniej poniekąd. Ale chyba nie przyjmujemy, " +"niestety. Zapełnione po brzegi; na dole prawie że tłum. Widziałeś tego kupca" +" przy wejściu? Jego pytaj." #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "Co wtedy zrobisz?" +msgid "Sucks..." +msgstr "Do dupy..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" -"Co? Jak możesz mówić coś takiego? Nie wierzę, że widzisz to wszystko wokół i" -" nie uważasz, że to koniec czasów. Martwi chodzą, otwarły się wrota piekieł," -" bestie diabelskie kroczą przez ziemię, a sprawiedliwi zostali zabrani do " -"królestwa Pana. Jakich dowodów tu jeszcze potrzeba?" +"Cóż, na dole jest gość, który ma działające pneumatyczne działo. Strzela " +"metalem jak... jak działo, ale bez \"bang\". Cholernie bezkosztowe. I " +"praktycznie nie ma granic w prowizorycznych broniach, które możesz zrobić. " +"Wielka rzecz jednak, wygląda na to, to kontynuacja budowy fortyfikacji. " +"Niewiele z tych potworów wydaje się móc przebić przez ogrodzenie lub mur " +"zbudowany z czegokolwiek." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "Co zatem zrobisz?" +msgid "Well, then..." +msgstr "Coż, zatem..." #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"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 "" -"Będę strzec wiary, i modlić się, i bić wysłanników piekielnych gdziekolwiek " -"ich ujrzę. Tylko tyle nasza garstka może zrobić, czy nie tak? Sądzę że być " -"może to my jesteśmy ci cisi, którzy posiądą ziemię. Choć nie uśmiechają mi " -"się nasze szanse na to." +"Nic optymistycznego, co najmniej. Miałem kumpelę na drodze z krótkofalówką, " +"ale jej już nie ma i radia też. Kaput." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" -"Taki jak każdego. Odwróciłem się od Boga, i teraz płacę cenę. Wniebowzięcie " -"wiernych nadeszło, a ja zostałem w tyle. Więc teraz, jak sądzę, kroczę przez" -" piekło na ziemi. Szkoda, że nie słuchałem na szkółce niedzielnej." +msgid "Nothing optimistic?" +msgstr "Nic optymistycznego?" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" -"OK, to zabrzmi jak szaleństwo ale ja, tak jakby, ja wiedziałem, że to się " -"wydarzy. Znaczy się zanim to się stało. Możesz nawet zapytać mojej wróżki, " -"ale tak jakby, myślę że ona już nie żyje. Powiedziałem jej o moich snach " -"tydzień przed tym jak świat się skończył. Serio!" +"Większość obozów przejściowych do tej pory się rozpadała. Miasta są " +"oblężone, w lasach pełzają świecące oczy i zombie. Dzieje się jakieś " +"popaprane gówno, i wygląda na to, że chyba każdy kto ma radio nabrał ochoty " +"na udokumentowanie swoich ostatnich okropnych chwil." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "O czym śniłeś?" +msgid "I feel bad for asking." +msgstr "Czuję się źle, że zapytałem." #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" -"OK, a więc, pierwszy sen jaki miałem każdej nocy przez trzy tygodnie. Śniłem" -" że biegnę przez las z kijem, walcząc z wielkimi pająkami. Naprawdę! Każdej " -"nocy." +"Nie wiem. To znaczy, jeżeli jesteś w stanie stać się przydać. Ale to obecnie" +" jest dość zawiłe. Zależy kogo pytasz. Kupiec zdecydowanie nie chce mnie " +"tutaj jeżeli nie handluję, ale... niektórym jakoś udaje się prześlizgać." #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "OK, to nie brzmi znów tak nadzwyczajnie." +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." +msgstr "" +"Założę się, że tak samo jak ty zdobyłeś swoją. Nie rozgłaszaj tego, " +"niektórzy tutaj nie lubią tu takich jak my." #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" -"Wow, szalone, nie mogę uwierzyć, że naprawdę wyśniłeś ." +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "Ssh. Niektórzy ludzie tutaj nienawidzą... mutacji. To był wypadek." #: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"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, to tylko, tak jakby, wiesz, początek. A zatem, na tydzień nim to się " -"stało, po tym śnie z pająkami, budziłem się, szedłem się wysikać i wracałem " -"do łóżka, bo byłem trochę wystraszony, co nie? I wtedy miałem kolejny sen, " -"tak jakby, w którym moja szefowa umarła i powróciła do żywych! A potem w " -"pracy, kilka dni później, mąż szefowej wpadł z wizytą i miał atak serca, a " -"kolejnego dnia usłyszałem, że wrócił do żywych! Tak jak we śnie, tylko że to" -" była inna osoba!" +msgid "Sorry to ask" +msgstr "Wybacz że pytam" #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "To trochę dziwne." +msgid "You're disgusting." +msgstr "Jesteś obrzydliwy." #: lang/json/talk_topic_from_json.py msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and I heard the next " -"day that he'd come back from the dead! Just like in my dream, only it was a" -" different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" -"CO NIE? I jeszcze to nie wszystko! A zatem, na tydzień nim to się stało, po " -"tym śnie z pająkami, budziłem się, szedłem się wysikać i wracałem do łóżka, " -"bo byłem trochę wystraszony, co nie? I wtedy miałem kolejny sen, tak jakby, " -"w którym moja szefowa umarła i powróciła do żywych! A potem w pracy, kilka " -"dni później, mąż szefowej wpadł z wizytą i miał atak serca, a kolejnego dnia" -" usłyszałem, że wrócił do żywych! Tak jak we śnie, tylko że to była inna " -"osoba!" +"Podpalam budynki i sprzedaję materiały Wolnym Kupcom. Nie, naprawdę! Jak " +"widziałeś wypalone skorupy na przedmieściach, lub stertę prętów " +"zbrojeniowych na sprzedaż, to pewnie ja za tym stoję. Zaopatrują mnie w " +"zamian całkiem przyzwoicie, jak sądzę. Mogę ci sprzedać koktajl Mołotowa lub" +" dwa, jak chcesz." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" -"PRAWDA?! W każdym razie, nadal mam koszmarne sny po końcu świata, ale nie są" -" już o przyszłości. Tak jakby, mam wiele koszmarów po końcu świata. Tak " -"jakby, co kilka nocy, śnię o tysiącu czarnych gwiazd wokół Ziemi, i przez " -"sekundę wszystkie patrzą na Ziemię jak milion malutkich czarnych oczu. Po " -"czym mrugają i odwracają wzrok, a potem Ziemie jest jedną z tych czarnych " -"gwiazd, jak wszystkie pozostałe, a ja jestem na niej wciąż uwięziony, sam " -"jak palec, i przerażony. Ten jest najgorszy. Choć jest jeszcze kilka innych." +msgid "I'll buy." +msgstr "Kupuję." #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "Opowiedz mi jeszcze o twoich dziwnych snach." +msgid "Who needs rebar?" +msgstr "Kto potrzebuje prętów zbrojeniowych?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" -"OK, więc, czasem śnię ze sam jestem zombie. Tylko nie zdaję sobie z tego " -"sprawy. Zachowuję się normalnie z mojego punktu widzenia i widzę zombie jako" -" ludzi a ludzi jako zombie. Gdy się budzę wiem ze to fałsz bo gdyby to była " -"prawda, było by więcej normalnych ludzi. Bo byliby zombie. A teraz każdy " -"jest zombie." +msgid "As if you're one to talk. Screw You." +msgstr "Tak jakbyś miał coś do gadania. Pieprz się." #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "Myślę, że wszyscy mamy teraz takie sny." +msgid "Screw You!" +msgstr "Pieprz się!" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" -"Tak, zapewne. Czasem śnię też, że jestem motkiem kurzu, unoszącym się w " -"rozległej, nie dbającej o nic galaktyce. Ten z kolei sprawia, że żałuję, że " -"mojego dealera jointów, Brudnego Dana zeżarł gigantyczny krab potwór." +msgid "Another survivor! We should travel together." +msgstr "Kolejny ocalały! Powinniśmy podróżować razem." #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "Biedny Brudny Dan. " +msgid "What are you doing?" +msgstr "Co robisz?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "Dzięki, że mo o tym opowiedziałeś. " +msgid "Care to trade?" +msgstr "Chcesz pohandlować?" #: 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 "" -"Udało mi się dostać do jednego z tych schronów ewakuacyjnych, ale " -"było niemal gorzej niż gdybym został na zewnątrz. Uciekłem stamtąd, i " -"uciekam wciąż od tamtego czasu." +msgid "&Put away weapon." +msgstr "&Odłóż broń." #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "Jak przetrwałeś podczas ucieczki?" +msgid "&Drop weapon." +msgstr "&Upuść broń." #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" -"Spędziłem sporo czasu na przeczesywanie lasów w poszukiwaniu rabarbaru i " -"innych skrawków warzyw zanim zebrałem się na odwagę by ubić i oskubać " -"niektóre z tych martwych potworów. Chyba byłem już zdesperowany." +msgid "Don't worry, I'm not going to hurt you" +msgstr "Nie martw się, nie zrobię ci krzywdy" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" -"Tak jak większość ludzi, którzy nie zginęli wprost w czasie zamieszek. " -"Udałem się do jednej z tych ewakuacyjnych śmiertelnych " -"pułapek. Nawet żyłem tam chwilowo z trójką innych ocalonych. Jeden gość, " -"który jak sądzę naoglądał się filmów niby rządził tym miejscem, bo wydawało " -"się, że naprawdę wie co się dzieje. Uwaga, spojler: faktycznie nie " -"wiedział." +msgid "Drop your weapon!" +msgstr "Rzuć broń!" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "Co stało się z twoją pierwotną załogą?" +msgid "Get out of here or I'll kill you." +msgstr "Znikaj stąd, bo cię zabiję." #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" -"Sprawy poszły się paść gdy nasz nieustraszony lider zdecydował, że musimy " -"posłać do piachu jedną z pozostałych ocalonych, która została ugryziona. Jej" -" mąż był zdecydowanie przeciwny, a i mi się to nie uśmiechało. Do tego czasu" -" już w wielu sprawach zdążył nie mieć racji. Cóż, wziął sprawy we własne " -"ręce i ją zabił. Wtedy jej mąż uznał, że trzeba iść za ciosem i zabił tego " -"idiotę. Następnie ona wstała z martwych więc zabiłem ja ponownie, a także " -"rozbiłem na miazgę naszego byłego lidera. Niestety podczas szamotaniny " -"nieźle nadgryzła swojego męża, gdy nie mógł się pozbierać do kupy " -"wystarczająco by się obronić. Nie żebym go kurwa winił. Zmyliśmy się stamtąd" -" razem, ale to było dla niego zbyt wiele i już nie był sobą... W ugryzienie " -"wdała się infekcja, ale to inny ostatecznie go zabił. I wtedy byłem" -" już sam." +msgid "Hey there, ." +msgstr "Hej tam, ." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "Żegnaj." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "A jak sądzisz co się stało? Widzisz ich gdzieś tutaj?" +msgid "Hello there." +msgstr "Witajcie." #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"Nie mam we mnie nic specjalnego, i nie jestem pewien dlaczego przeżyłem. " -"Ewakuowano mnie z garstka pozostałych, ale było już zbyt późno na drugą " -"podróż do obozu FEMA. Zaatakowali nas umarli... Jedynie mnie udało się " -"wyrwać. Nigdy nie spojrzałem wstecz." +msgid "Okay, no sudden movements..." +msgstr "Okej, żadnych gwałtownych ruchów..." #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" -"Transportowali mnie z szeregiem innych ewakuowanych do centrum uchodźców, i " -"wtedy największy zombie jakiegokolwiek widziałeś zmiażdżył autobus. Gdy " -"zajmował się innymi pasażerami zrobiłem to co zrobiłby każdy na moim miejscu" -" i spieprzyłem stamtąd." +msgid "Keep your distance!" +msgstr "Trzymaj dystans!" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" -"Mój schron ewakuacyjny napadł rój tych takich pszczół, tych o rozmiarze psa." -" Kilka ubiłem deską, ale szybko doszedłem do wniosku, że ale uderzam w " -"długą, albo wypatroszą mnie jak świnię. Reszta to historia." +msgid "Calm down. I'm not going to hurt you." +msgstr "Uspokój się. Nie zrobię ci krzywdy." #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "Wielkie pszczoły? Powiedz mi więcej." +msgid "Screw you, no." +msgstr "Wypchaj się, nic z tego." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "Ale pszczoły nie są zwykle agresywne..." +msgid "&Put hands up." +msgstr "&Podnieś ręce." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" -"Tak, jestem pewien że już je widziałeś, są wszędzie. Jak coś ze starego " -"filmu fantastyczno-naukowego. Paru innych w schronie pożądliły, nie ma " -"żartów. Niestety nie zostałem na tyle długo by widzieć jakie są " -"długoterminowe skutki. Ale nie wstydzę się że uciekałem jak tchórz." +msgid "*drops his weapon." +msgstr "*upuszcza jego broń." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "Ale pszczoły nie są zwykle agresywne... Masz na myśli osy?" +msgid "*drops_her_weapon." +msgstr "*upuszcza jej broń." #: 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 "" -"No wybacz mi, że nie zaczekałem by zapytać jakimi zabójczymi " -"robalami były." +msgid "Now get out of here" +msgstr "A teraz wypad stąd" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "Wybacz. Możesz mi więcej o nich powiedzieć?" +msgid "Now get out of here, before I kill you." +msgstr "A teraz zmiataj, zanim cię zabiję." #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "No tak. Wybacz." +msgid "Okay, I'm going." +msgstr "Okej, idę." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" -"Cóż, byłem w domu gdy odezwał się alarm w komórce nakazując udanie się do " -"schronu ewakuacyjnego. I tam też się udałem. Później schron się przeludnił i" -" ludzie czekali na przeniesienie do centrum dla uchodźców, ale autobusy " -"nigdy nie przyjechały. O tym już pewnie wiesz. Powstałą panika a następnie " -"walka. Nie zostałem by przekonać się co będzie dalej; pobiegłem do lasu z " -"tymi narzędziami jakie udało mi się zgarnąć ze schowków. Wróciłem tam parę " -"dni później, ale miejsce było całkowicie opuszczone. Nie mam pojęcia co " -"stało się z tymi ludźmi." +msgid "About that job..." +msgstr "W sprawie tej pracy..." #: 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 "" -"Dużo byś chciał. Jak sądzę krótka wersja sprowadza do tego że ewakuowano " -"mnie do obozu FEMA, w niby bezpieczne miejsce, ale szczęśliwie się stamtąd " -"wyrwałem." +msgid "About one of those jobs..." +msgstr "W sprawie jednej z tych prac.." #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "Powiedz coś więcej o obozie FEMA." +msgid "What's the matter?" +msgstr "Co się dzieje?" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "Jak się stamtąd wydostałeś?" +msgid "I don't care." +msgstr "Nie obchodzi mnie to." #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" -"To było przerażające. Przywieziono nas w przerobionych szkolnych busach, " -"około trzydzieści dusz. Już pewnie domyślasz się jaki to kłopot. Klika osób " -"było rannych i jakiś filozof, który naoglądał się byt dużo filmów klasy B " -"upierał się, że \"każdy pogryziony przemieni się\" Pieprzony idiota, nie? " -"Byłem pogryziony z tuzin razy i co najwyżej nabawiłem się wstrętnej " -"infekcji." +msgid "I see." +msgstr "Rozumiem." + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "Oh, okej." #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "Co się wydarzyło potem?" +msgid "Never mind, I'm not interested." +msgstr "Nieważne, nie jestem zainteresowany." + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "Nieważne." #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" -"Gość wpadł w szał. Ludzie i tak już panikowali. Był tam uzbrojony koleś " -"który ubezpieczał transport, który zgrywał gliniarza, ale faktycznie to był " -"tylko dzieciak, któremu dano broń. Próbował uspokoić nastroje, i " -"sądzę że przez chwile to działało, ale zgraja \"zabić zainfekowanych\" była " -"już całkiem odjechana, i gotowa na moment gdy jakiejś babci z raną " -"na dłoni pojawi się piana na ustach. Zaczęli znowu świrować jak dojechaliśmy" -" do obozu. Nie skończyło się to dla nich dobrze. Kilku dobrze uzbrojonych " -"żołnierzy odciągnęło ich i nie zobaczyłem ich więcej." +msgid "I'll do it!" +msgstr "Zrobię to." #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" -"Na miejscu panował chaos. Zostałem tam tylko kilka godzin. Mieli tam koparkę" -" na chodzi, kopiącą wielki dół w sekcji otoczonej przez kordon, do której " -"nie można nam było się zbliżać. Cóż, mnie udało się zerknąć i widziałem jak " -"wyładowywali tam ładunek za ładunkiem martwych ciał do tego dołu, zasypując " -"je piachem nawet gdy ożywione próbowały się stamtąd wygrzebać. Nawet biorąc " -"pod uwagę całe gówno które widziałem potem, ten widok nadal mnie " -"prześladuje. Wtedy wiedziałem, że muszę uciekać. Szczęśliwie dla mnie " -"następnego ranka zostaliśmy zaatakowani przez jakiś gigantyczny horror, z " -"rodzaju jakiego nie widziałem od tamtej pory. Podczas gdy straż była zajęta " -"obroną, przytuliłem nieco zapasów zgromadzonych w nocy i spieprzyłem " -"stamtąd. Kilka osób spieprzało razem ze mną, ale o ile wiem tylko mi się " -"poszczęściło." +msgid "Not interested." +msgstr "Nie zgłaszam zainteresowania." #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "To opowieść na inny dzień. Nie lubię o tym myśleć." +msgid "Not a problem." +msgstr "Bez problemu." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "Wybacz. Powiedz coś więcej o obozie FEMA." +msgid "Got any advice?" +msgstr "Jakieś rady?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Wybacz że pytałem. " +msgid "Can you share some equipment?" +msgstr "Podzielisz się ekwipunkiem?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Wybacz że pytałem. " +msgid "I'll be back soon!" +msgstr "Wkrótce wrócę." #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" -"Byłem spóźniony na ewakuację, gdy wszystko poszło w diabły. Utknąłem w " -"mieście na kilka dni, ocalałem kryjąc się w piwnicach jedząc ciastka " -"harcerskie popijając ciepłym piwem korzennym. W końcu udało mi się wymsknąć " -"nie będąc schwytanym przez . Spędziłem trochę czasu w opuszczonym " -"markecie, ale potrzebowałem żywności, więc wyprawiłem się walczyć o swoje do" -" lasu. Średnio mi to wychodziło, więc cieszę się, że się zjawiłeś." +msgid "Sounds good, thanks." +msgstr "Brzmi dobrze, dzięki." #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" -"Leżałem w domu z grypą, gdy świat się zawalił, i jak wydobrzałem na tyle by " -"pobiec do sklepu po zakupy... Cóż, biegłem już stale od tej pory." +msgid "Sounds good. Bye!" +msgstr "Brzmi dobrze. Żegnaj!" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "No dalej, nie zostawiaj mnie w zawieszeniu." +msgid "I'm sorry." +msgstr "Przykro mi." #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" -"Okej, cóż, odpłynąłem nieco w te pierwsze dni. Wiem ze były burze, ale " -"majaczyłem w gorączce i te sprawy. Po prawdzie powinienem był się udać do " -"szpitala, ale pewnie wtedy byłbym teraz martwy. Nie wiedziałem co jest " -"częścią snu a co końcem świata. Pamiętam jak poszedłem do lodówki i nie było" -" w niej światła a woda była ciepła. To było zanim gorączka się obniżyła. " -"Nadal byłem przymulony gdy skończył mi się rosół, więc chwilę mi zajęło " -"zorientowanie się jak martwy i mroczny jest mój budynek gdy wyszedłem na " -"zewnątrz." +msgid "Whatever. Bye." +msgstr "Nieważne. Żegnaj." #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "Co się wydarzyło po tym jak wyszedłeś?" +msgid "Well, um, sorry." +msgstr "Cóż, um, przepraszam." #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" -"Pewnie pamiętasz jak wyglądały miasta. To był chyba dzień czwarty. Jak tylko" -" wyszedłem zorientowałem się co się dzieje, a raczej zdałem sobie sprawę, że" -" nie wiem co się dzieje. Widziałem kilku protestujących rozwalających " -"samochód, i spostrzegłem że jeden z nich rozbija czaszkę kobiety. Odwołałem " -"spacer do warzywniaka, i pobiegłem do mieszkania zanim mnie zauważyli, i " -"zabunkrowałem się tam tak długo jak mogłem. Rzeczy stały się relatywnie " -"ciche gdy martwi przeważyli liczebnie nad żywymi, więc zacząłem szabrować u " -"sąsiadów zabijając ich ponownie w razie potrzeby. W końcu otoczyły" -" budynek i musiałem się wydostać i udać w stronę wzgórz na starym rowerze." +msgid "I'm sorry. I did what I could." +msgstr "Wybacz mi, robiłem co się dało." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Dziękuję, że mi to powiedziałeś. " +msgid "Sure, here you go!" +msgstr "Pewnie, proszę bardzo!" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Dziękuję, że mi to powiedziałeś. " +msgid "Thank you." +msgstr "Dziękuję" #: 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 "" -"Nic specjalnego przez . Gdy zmarli zaczęli chodzić wziąłem " -"sprzęt i zacząłem wysyłać ich z powrotem na ich miejsce." +msgid "Thanks, bye." +msgstr "Dziękuję, do zobaczenia." #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "Jak ci poszło?" +msgid "Well, I guess it's just us." +msgstr "Cóż, zgaduję że tylko my." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Nieźle. " +msgid "At least we've got shelter." +msgstr "Przynajmniej mamy schronienie." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Nieźle. " +msgid "What should we do now?" +msgstr "Co teraz zrobimy?" #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" -"Niemalże zginałem. Jeden to bułka z masłem, ale dziesięciu to już " -"za wiele, a setka to śmiertelna pułapka. Zbyt się zagłębiłem, i ledwo się " -"wyrwałem z kiszkami nadal w brzuchu. Zabunkrowałem się w starym motelu na " -"jakiś czas, liżąc rany i rozmyślając co by tu robić dalej. I wtedy wpadłem " -"na pomysł." +msgid "Any tips?" +msgstr "Jakieś wskazówki?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "Co mogę dla ciebie zrobić?" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "Do czego doszedłeś?" +msgid "Want to travel with me?" +msgstr "Chcesz podróżować ze mną?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "Pohandlujmy." #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Nie ważne. " +msgid "I can't leave the shelter without equipment." +msgstr "Nie opuszczę schronu bez wyposażenia." #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Nie ważne. " +msgid "Relax and chat with me for a while..." +msgstr "Rozluźnij się i zamień ze mną kilka słów przez chwilę..." + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" -"Że to jest to. Do tego jestem stworzony. Tam na ulicy, tłukąc głowy " -"potworów, modląc się o drogę ucieczki? Nigdy sie tak nie czułem. Żywy. " -"Ważny. Więc jak poskładałem się do kupy, zebrałem się w sobie i wróciłem do " -"tego. Pewnie zabiłem z tysiąc Zedów od tego czasu, i jeszcze mi się to nie " -"znudziło." +"Tak, ten letni gorąc daje mi popalić, zróbmy sobie przerwę, jak leci " +"?" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Dobrze że odnalazłeś swoje powołanie. " +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "Ok, może to pozwoli mi nie zamarznąć w tą pogodę, co słychać?" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Dobrze że odnalazłeś swoje powołanie. " +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "Cóż, czuję się dość chory... może chociaż ty się miewasz okej?" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +"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 "" -"Oh, no wiesz. Blah, blah, blah, miałem robotę i życie, wszyscy zginęli. " -"Wielkie mecyje. Ale będą z tobą szczery: naprawdę sądzę że tak jest mi " -"lepiej. Walka o przetrwanie każdego dnia? Nidy nie czułem się bardziej żywy." -" Zabiłem setki tych skurczybyków. Prędzej czy później jeden z nich mnie " -"dorwie, ale odejdę z myślą, że zrobiłem w końcu coś ważnego." +"Choćby teraz, mamy przecież chwilę, i tak sobie myślę, że to już ponad " +"miesiąc od... od kiedy to się zdarzyło, jak sobie dajesz z tym radę?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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 "" -"No widzisz, ja w ogóle nie jestem stąd. Jechałem z południa odwiedzić syna " -"gdy to wszystko się wydarzyło. Zatrzymałem się w motelu gdy przejechał obok " -"konwój wojskowy, nakazują ewakuację do obozu FEMA." +msgid "Oh you know, not bad, not bad..." +msgstr "Oh, no wiesz, nieźle, całkiem nieźle..." #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "Opowiedz mi o swoim synu." +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "Nie wiem, poszukaj zapasów lub innych ocalonych, jak myślę." #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "Więc udałeś się do jednego z obozów FEMA?" +msgid "Maybe we should start boarding up this place." +msgstr "Może powinniśmy zabić to miejsce dechami." #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." msgstr "" -"Mieszka w północnej części Kanady, tam gdzie psy dupami szczekają, ze swoją " -"szaloną żona i moimi trzema wnukami. Jest inżynierem środowiskowym dla " -"jednej ze spółek wydobywających ropę i gaz ziemny w tamtych rejonach. Kocham" -" ich oboje mimo wszystko, i o ile wiem wyszli bez szwanku z tego całego " -"ambarasu na tej pipidówie. Pewnie myślą że jestem martwy, więc będą się " -"trzymać z dala od tej piekielnej dziury, i dobrze dla nich." +"Zgaduję, że jakiś wóz na chodzie byłby nie od rzeczy, gdyby trzeba było " +"szybko stąd wiać." #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "O czym to wspomniałeś wcześniej?" +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 "" +"Powinniśmy rozejrzeć się za jakimś gospodarstwem rolniczym. Mogą być źródłem" +" masy jedzenia i są oddalone od miast." #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" -"Na boga, nie. Popieprzyło by mnie jakbym pozwolił dzieciakowi w zbyt dużym " -"mundurze mówić mi co mam do cholery robić. Mój Hummer był wyładowany i " -"gotowi do drogi przełajowej, miałem tonę paliwa, i nawet tyle broni palnej " -"ile tylko straż graniczna byłaby skłonna przepuścić wraz ze mną, Nie " -"wiedziałem przed czym niby miałbym uciekać, ale do diabła jestem pewien, że " -"nie uciekałem." +"Powinniśmy się raczej trzymać z dala od miast, choć jest w nich wiele " +"przydatnych rzeczy. " #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "Więc gdzie się udałeś?" +msgid "Hmm, okay." +msgstr "Hmmm, okej." #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" -"Na początku po prostu brnąłem na północ, aż dotarłem do wielkiej blokady " -"wojskowej. Mieli nawet te olbrzymie roboty kroczące jak w TV. Zbliżyłem się " -"żeby się rozeznać i zanim się spostrzegłem otworzyli ogień! Mogłem zginąć, " -"ale nadal miałem szybki refleks. Obróciłem się ogonem i zwiałem stamtąd. Mój" -" Hummer jednak oberwał całkiem poważnie, i na własnych plecach przekonałem " -"się, że wycieka mu paliwo po całej autostradzie. Zrobiłem kilka mil zanim " -"utknąłem pośrodku jakiegoś zadupia. Sądzę, że nadal zmierzam na północ, ale " -"teraz chyba nieco okrężną drogą, co nie?" +msgid "Not until I get some antibiotics..." +msgstr "Nie, dopóki nie dostanę antybiotyków..." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "To całkiem niezła historia. " +msgid "You asked me recently; ask again later." +msgstr "Niedawno mnie o to pytałeś. Poproś później." #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "To całkiem niezła historia. " +msgid "Why should I travel with you?" +msgstr "Czemu mam z tobą podróżować?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" -"Oooo, chłopcze, byłem na to gotów. Wiatry wiały w tym kierunku od lat. " -"Miałem pełen schron ostatniego człowieka zorganizowany za miastem. Więc " -"oczywiście odezwało się moje szczęście: byłem całe mile poza miastem na " -"konferencji w delegacji gdy Chiny zaatakowały i świat się skończył." +msgid "Understood. I'll get those antibiotics." +msgstr "Zrozumiałem. Przyniosę te antybiotyki." #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "Co się z tobą stało?" +msgid "Right, right, I'll ask later." +msgstr "Dobrze, dobrze, potem zapytam." #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "A co z twoim schronem?" +msgid "I can keep you safe." +msgstr "Mogę zapewnić ci bezpieczeństwo." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" -"Nasza konferencja odbywała się w zacisznym zajeździe nad jeziorem. Wszyscy " -"otrzymaliśmy alarmową transmisję na komórki, ale tylko ja doczytałem " -"pomiędzy wierszami i wiedziałem co się szykuje: bio-terroryzm na szeroką " -"skalę. Nie miałem zamiaru zostać i przekonać się, który z kolegów to uśpiony" -" agent. Choć postawił bym stówę, że to był Lee. W każdym razie, ukradłem " -"pickupa koordynatora i udałem się w kierunku schronu." +msgid "You can keep me safe." +msgstr "Możesz zapewnić mi bezpieczeństwo." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "Dostałeś się do niego?" +msgid "We're friends, aren't we?" +msgstr "Jesteśmy przyjaciółmi, czyż nie?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" -"Nie, ujechałem tylko dwie mile. Rozbiłem się o jakiś piekielny pomiot czy " -"też bio broń, szaleńczo skrzeczący zrobiony z ramion i nóg i głów " -"z różnych stworzeń, w tym ludzi. Chyba to zabiłem, ale pewne jest że to " -"zabiło mój wóz. Zabrałem torbę podróżną i uciekłem po tym jak na deser " -"posłałem w to coś kilka kulek. Mam nadzieję, że więcej czegoś takiego nie " -"zobaczę." +msgid "I'll kill you if you don't." +msgstr "W przeciwnym wypadku cię zabiję." #: 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 "" -"Wciąż tam nie dotarłem. Za każdym razem gdy próbowałem musiałem oddalić się " -"z uwagi na . Kto wie, może kiedyś." +msgid "You got it, I'm with you!" +msgstr "Rozumiem, jestem z tobą!" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "Możesz mi opowiedzieć tą historię jeszcze raz?" +msgid "Awesome!" +msgstr "Doskonale!" #: 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, człowieku. Myślałem, że jestem gotowy. Miałem to wszystko zaplanowane. " -"Torby ze sprzętem. Mapy z trasami ucieczki. Bunkier w ogródku." +msgid "Okay, let's go!" +msgstr "Okej, ruszajmy!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "Brzmi jakby to nie wypaliło." +msgid "Yeah... I don't think so." +msgstr "Taaak... nie sądzę." #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "Hej, bardzo bym był zainteresowany zerknięciem na te mapy." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" -"Zależy od twojej definicji. W końcu żyję, czyż nie? Gdy samo piekło spadło z" -" nieba a potwory zaatakowały miasta, zabrałem sprzęt i zamknąłem się w " -"bunkrze. Moje kamery na zewnątrz działały przez wiele dni; widziałem " -"wszystko co tam się dzieje. Widziałem jak te rzeczy przechodzą obok. Nadal " -"mam koszmary o sposobie w jaki ich ciała się poruszają, jakby złamały świat " -"po to tylko by tu być. Nie miałem nic lepszego do roboty. Widziałem jak drą " -"w strzępy policję i wojsko, jak martwi wstają by walczyć z żywymi. Widziałem" -" miłą starszą panią z ulicy, która urwała łeb psu mojego sąsiada. Widziałem " -"ciało żołnierza w drgawkach, rosnące w zelektryfikowane cielsko olbrzyma. " -"Widziałem jak to wszystko się działo." - -#: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "Czemu opuściłeś bunkier?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" -"Szczerze? Planowałem umrzeć. Po tym co widziałem, lekko oszalałem. Myślałem " -"że to pewny koniec, ze nie ma sensu walczyć. Myślałem że na zewnątrz nie " -"przetrwam minuty, ale nie mogłem się zdecydować zakończyć tego tam. " -"Wyszedłem planując, że mnie wykończą, ale co mogę powiedzieć? " -"Instynkt samozachowawczy to zabawna rzecz, i zabiłem te wokół bunkra. " -"Zapewne potrzebna mi była doza adrenaliny. Trzyma mnie na nogach do teraz." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Dziękuję, że mi to wszystko powiedziałeś. " - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Dziękuję, że mi to wszystko powiedziałeś. " - -#: 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 "" -"Tak, chcę. Zgodzę się rozstać z nimi za powiedzmy $1000. Prosto z twojego " -"konta w banku, żadnych kart płatniczych." - -#: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "[$2000] Umowa stoi." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "Cokolwiek jest na tej mapie przyniesie pożytek nam obojgu." - -#: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" -"A może powiedzmy, że ty oddasz to a ja się nie wkurwię?" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "Wybacz zmianę tematu. O czym to mówiłeś?" - -#: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "W porządku. Oto one." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "Dzięki! O czym to wspomniałeś wcześniej?" - -#: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "Nie ze mną te numery. Chcesz mapy, dawaj forsę." - -#: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "Dobra. O czym to wspomniałeś wcześniej?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" -"Z początku nawet nie wiedziałem o . Byłem daleko stąd, z dala" -" od najgorszego. Mój samochód zepsuł się na autostradzie, i czekałem " -"godzinami na lawetę. W końcu robiłem obóz w krzakach przy drodze, i dobrze, " -"bo ciężarówka - prowadzona a jakże - przez martwego kierowcę, zmieniła mój " -"wóz w plamę na drodze. Żal mi tych skubańców, którzy byli w miastach jak to " -"się stało." - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "Jak przetrwałeś w naturze?" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "Co widziałeś w te pierwsze dni?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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, sam tego do końca nie pojmuję. Te pierwsze dni to był ciężki czas na " -"bycie na zewnątrz, nie ma co do tego wątpliwości. Dopadła mnie jedna z tych " -"piekielnych burz, i niemal wypaliła mi skórę. Udało schować mi się pod " -"samochodem, leżąc na moim namiocie. Zniszczyłem go, ale lepiej on niż ja. Z " -"tego co słyszałem, to jednak miałem szczęście. To było bodaj najgorsze co " -"przeżyłem. Nie wpadłem na żadnego demonicznego stwora, które jak słyszałem " -"napadły na miasta, wiec raczej mi się poszczęściło." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" -"Oprócz kwaśnego deszczu widziałem głównie ludzi uciekających z miast. " -"Starałem się trzymać z dala od dróg, ale nie chciałem się też zgubić w " -"lesie, wiec trzymałem się w głębokich obrzeżach. Widziałem samochody, busy i" -" ciężarówki wyładowane ewakuowanymi. Wielu odjechało ale sporo zatrzymało " -"się z braku paliwa i innych powodów. Niektóre były tak wyładowane sprzętem " -"że ludzi z nich dosłownie zwisali. Zatrzymanie się było wyrokiem śmierci bo " -"zmarli podążali wzdłuż dróg wyłapując ocalonych." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" -"Pojechałem z przyjaciółką na ryby gdy to się stało. Nie wiem w jakiej " -"dokładnie kolejności układały się dni... pierwszym śladem że nadeszła " -"apokalipsa było nadejście jakiego trującego wiatru, z dodatkiem jakieś " -"kwaśnej mgły która paliła oczy i skórę. Nie wiedzieliśmy z czym to powiązać," -" więc skryliśmy się do środka by odpocząć, a gdy tam byliśmy na wszystko " -"opadł dziwny pył." - -#: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "Co się wydarzyło po kwaśnej mgle?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" -"Rankiem okolice jeziora pokrywała różowa pleśń, w której przechadzały się " -"grzyby strzelające chmurami pyły w powietrze. Nie wiedzieliśmy co się " -"dzieje, ale żadne z nas nie chciało zostać by to sprawdzić. Spakowaliśmy " -"sprzęt, odwiązaliśmy łódź i popłynęliśmy w górę rzeki." - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "Co się stało twoją przyjaciółką?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" -"Rozchorowała się kilka godzin po opuszczeniu jeziora. Wymiotowała narzekając" -" na ból stawów. Zabrałem nas do małego sklepu na brzegu rzeki, o którym " -"wiedziałem, licząc na to, że będą mieli coś co może pomóc, lub choćby jakieś" -" wieści o tym co się dzieje." - -#: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "Zgaduję, że nie wiedzieli." - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" -"Sklep był faktycznie pusty. Jednak ona była zdesperowana więc się włamałem. " -"Dowiedziałem się więcej o chaosie w miastach ze sklepowego radia. Zdobyłem " -"przyjaciółce trochę środków przeciwbólowych i przeciwwymiotnych, ale gdy " -"wróciłem do łodzi, cóż... było już dla niej za późno." - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "Umarła?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" -"Chciałbym. To by było litościwe. Wydawała z siebie ohydny duszący wrzask, a " -"jej ciało rozrywało się samo w strzępy. Grzyby wystrzeliwały z każdej jej " -"części. Ja... Ja uciekłem. Teraz żałuję że nie ulżyłem jej w cierpieniu, ale" -" powrót tam teraz byłby samobójstwem." - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "To okropne. " - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "To okropne. " - -#: 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 "" -"Moja żona zdołała uciec ze mną, ale pożarł ją jeden z tych " -"roślinnych potworów kilka dni przed tym jak cię spotkałem. To nie był dla " -"mnie najlepszy rok." - -#: lang/json/talk_topic_from_json.py -msgid "" -"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 "" -"Mój mąż zdołał uciec ze mną, ale pożarł go jeden z tych roślinnych " -"potworów kilka dni przed tym jak cię spotkałem. To nie był dla mnie " -"najlepszy rok." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "Przykro mi to słyszeć." - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "Opowiedz mi o tych roślinnych potworach." - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" -"Tak to bywa, czy nie? To koniec czasów, Nie chcę o tym rozmawiać więcej niż " -"trzeba. I szczerze sądzę, że nie pasowałem do starego świata. W dziwny " -"sposób wydaje mi się ze teraz mam cel. Masz czasem takie wrażenie?" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -msgstr "Nie, to pokręcone." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I get that. Sometimes I feel like my existence began shortly after " -"the cataclysm." -msgstr "" -"Tak, mam to samo. Czasem wydaje mi się, że moje istnienie zaczęło się " -"wkrótce po kataklizmie." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" -"Zgaduje ze ci z nas którzy dotrwali do tej chwili przeżyli z jakiegoś " -"powodu, lub coś w tym stylu. Nie chodzi mi o jakiś cel religijny, tylko " -"że... jesteśmy ocaleni." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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, tak, potrafię sobie wyobrazić czemu tak myślisz. Nie mówię że to dobra" -" apokalipsa. Mam tylko na myśli że teraz wiem co robię każdego dnia. I tak " -"zabiłbym setkę zombie za dostęp do internetu i noc spędzoną na oglądaniu " -"słabych filmów z... wybacz. Zmieńmy temat." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" -"Tak, widziałeś je już może? To takie chodzące kwiaty z " -"wielkimi żądłami pośrodku. Podróżują w stadach. Nie znoszą zombie, i " -"używaliśmy ich jako osłony by oczyścić hordę truposzy. Niestety okazało się," -" że roślinki są lepszymi tropicielami od . Niemal wyglądają na " -"inteligentne... Ledwo mi się udało zbiec, tylko dlatego że były, uh, zajęte " -"czymś innym." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "Przykro mi że kogoś straciłeś." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" -"To tylko kolejna bajka o miłości i stracie. Nic nad czym lubiłbym " -"się rozwodzić." - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -msgstr "Mogę pomóc zdjąć to z twoich barków." - -#: lang/json/talk_topic_from_json.py -msgid "Suck it up. If we're going to work together I need to know you." -msgstr "Przełknij to. Jak mamy pracować razem muszę cię znać." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "Nieważne. Wybacz, że o to pytałem." - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "Doceniam staranie, ale nie sądzę by to pomogło. Odpuść." - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "OK." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "Oh, . To nie ma nic wspólnego z tobą, ani z nami." - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "W porządku. Miałem kogoś. I ją straciłem." - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "W porządku. Miałam kogoś. I jego straciłam." - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "Co się stało?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"Była w domu gdy bomby spadły i świat poszedł w diabły. Byłem w pracy. " -"Starałem się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." -" Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " -"samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " -"cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " -"przyłączyć się do wrogów. Gdyby nie moja żona, po prostu bym odszedł, ale " -"robiłem co mogłem i się prześliznąłem. Cudem uszedłem z życiem." - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"Był w domu gdy bomby spadły i świat poszedł w diabły. Byłam w pracy. " -"Starałam się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." -" Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " -"samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " -"cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " -"przyłączyć się do wrogów. Gdyby nie mój mąż, po prostu bym odeszła, ale " -"robiłam co mogłam i się prześliznęłam. Cudem uszłam z życiem." - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "Musiałeś widzieć masę strasznych rzeczy." - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "Zgaduję, że w domu było źle." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" -"Tak. W rzeczy samej. Dwa dni zajęło mi przebycie miasta na nogach, obozując " -"w śmietnikach i podobnych miejscach. Zacząłem przemieszczać się bardziej w " -"nocy, i nauczyłem się właściwego sposobu unikania wojskowych. Byli jak " -"magnes na , i zwykle stacjonowali tam gdzie potwory szły. Niektóre " -"części miasta były z początku spokojniejsze. Kilka przecznic gdzie ludzi " -"ewakuowano lub przemieszczono, a raczej się tam nie zapuszczały. " -"Później w te okolice zaczęli napływać inni tacy jak ja, więc zmieniłem " -"podejście i przebiegałem przez wysadzone centrum. I tak musiałem przejść " -"tamtędy, by dostać się do domu. W czasie gdy zmieniłem plan walki już " -"wygasały, wiec głównie unikałem zwracania uwagi zombie i innych rzeczy." - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" -"Pierwszym ostrzeżeniem było to że musiałem przejść z bardziej zachowanych " -"części miasta do wypalonych, by dostać się do domu. Dalej było gorzej. Zaraz" -" przed domem była barykada policyjna z dwiema całkiem bezużytecznymi " -"wieżyczkami siedzącymi bezczynnie i obserwującymi przebiegające zombie. To " -"było zanim przestawiono je na zabijanie wszystkiego dookoła, gdy jeszcze " -"zabijały tylko ludzi naruszających ich granice. Szczęśliwe czasy, zawsze " -"można liczyć na to, że biurokraci spieprzą wszystko w najbardziej " -"spektakularny możliwy sposób. W każdym razie dom był częściowo zawalony, " -"furgonetka SWAT przeorała go na pół. Sądziłem, że wiem co zastanę w środku, " -"ale zbyt wiele przeszedłem by teraz odwrócić się plecami." - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "Musiałeś widzieć masę strasznych rzeczy po drodze." - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "Dostałeś się do wnętrza domu?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"Dostałem się. Kilka godzin zajęło zanim pojawiła się sposobność. I chcesz " -"poznać najbardziej popieprzoną rzecz? Z tego wszystkiego dookoła? Moja żona " -"wciąż żyła. Była przez cały ten czas w piwnicy, przyszpilona kawałkiem " -"zapadniętej podłogi. Straciła masę krwi i majaczyła gdy ją odnalazłem. Nie " -"mogłem jej uwolnić więc ja napoiłem i nakarmiłem, i zostałem z nią trzymając" -" ją za rękę aż odeszła. A potem... cóż, zrobiłem to co trzeba teraz robić z " -"umarłymi. W końcu spakowałem ostatnie ułomki mojego życia, i staram się nie " -"patrzeć wstecz." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"Dostałam się. Kilka godzin zajęło zanim pojawiła się sposobność. I chcesz " -"poznać najbardziej popieprzoną rzecz? Z tego wszystkiego dookoła? Mój mąż " -"wciąż żył. Był przez cały ten czas w piwnicy, przyszpilony kawałkiem " -"zapadniętej podłogi. Stracił masę krwi i majaczył gdy go odnalazłam. Nie " -"mogłam go uwolnić więc go napoiłam i nakarmiłam, i zostałam z nim trzymając " -"go za rękę aż odszedł. A potem... cóż, zrobiłam to co trzeba teraz robić z " -"umarłymi. W końcu spakowałam ostatnie ułomki mojego życia, i staram się nie " -"patrzeć wstecz." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"Żyłem samotnie, w starej rodzinnej posiadłości daleko od miasta. Moja żona " -"zmarła ponad miesiąc zanim to się zaczęło... rak. Jeśli cokolwiek dobrego z " -"tego przyszło to to, że w końcu widzę dobrą stronę w tym, że odeszła tak " -"młodo. Byłem zamknięty sam w każdym razie przez pewien czas. Gdy wiadomości " -"zaczęły opowiadać o chińskim bio-terroryzmie i uśpionych agentach, pokazując" -" zamieszki w Bostonie itp. zawinąłem się pod pierzyną z puszką zupy i " -"zmieniłem kanał." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"Żyłam samotnie, w starej rodzinnej posiadłości daleko od miasta. Mój mąż " -"zmarł ponad miesiąc zanim to się zaczęło... rak. Jeśli cokolwiek dobrego z " -"tego przyszło to to, że w końcu widzę dobrą stronę w tym, że odszedł tak " -"młodo. Byłam zamknięta sama w każdym razie przez pewien czas. Gdy wiadomości" -" zaczęły opowiadać o chińskim bio-terroryzmie i uśpionych agentach, " -"pokazując zamieszki w Bostonie itp. zawinęłam się pod pierzyną z puszką zupy" -" i zmieniłam kanał." - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "Co się potem zdarzyło?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" -"Cóż. Sprawy się nieco rozwinęły. Przyszedł kwaśny deszcz, spalił jeden z " -"moich ciągników. Nie żebym pracował na polach od czasu... cóż to był " -" rok i robiłem nic wartego roboty. Były wybuchy i takie tam, i " -"śmigłowce przelatujące nad głowami. Byłem wystraszony, trzymałem zasłony " -"zasłonięte, stale zmieniałem kanały. W końcu któregoś dnia nie było już " -"kanałów do zmieniania. Tylko transmisje ostrzegawcze, zapętlone w kółko." - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" -"To była pierwsza rzecz, która mną otrząsnęła. Nie miałem jakiś bliskich " -"przyjaciół, ale w mieście miałem kilku ludzi na których troszkę mi zależało." -" Wysłałem kilka wiadomości ale nie załapałem, że nie odpowiedzieli przez " -"wiele dni. Wsiadłem do mojego wozu i próbowałem dostać się do miasta. Daleko" -" nie ujechałem zanim nie natknąłem się na pełny karambol blokujący " -"drogę, i wtedy rzeczy zaczęły mi wskakiwać na właściwe miejsca. Nidy nie " -"dotarłem do miasta. Niestety doprowadziłem z powrotem na moją " -"farmę, więc musiałem stamtąd zwiewać. Może wrócę i ją oczyszczę, pewnego " -"dnia." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" -"Cóż, żyłem na obrzeżu małego miasteczka. Sklep na rogu, stacja paliw i w " -"zasadzie nic więcej. Słyszeliśmy że źle się dzieje w mieście, ale nie " -"widzieliśmy tego wiele dopóki wojsko nie weszło plując ogniem i próbując " -"rozłożyć się tu z obozem. Chcieli nas wszystkich zakorkować tu w miasteczku " -"jak w butelce, co nie było mi po drodze, więc mój pies i ja poszliśmy w " -"długą podczas gdy oni wąchali własne smrody." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 i ja wyśliznęliśmy się i wyruszyliśmy na wschód, na ranczo mojego " -"przyjaciela. Uroczy mały palant myślał, że po prostu idziemy na długi " -"spacer. Nie mogłem wziąć ciężarówki, bo wojskowi od razu by zwęszyli co się " -"święci. Udało się nam dojść do lasu, rozbiliśmy obóz pod wiatą. Spakowaliśmy" -" się i ruszyliśmy dalej. Wpierw szliśmy wzdłuż autostrady przez chwilę, ale " -"widzieliśmy zbyt wiele wojskowych ciężarówek i busów pełnych ewakuowanych " -"osób, i wtedy dowiedzieliśmy się o ." - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "Gdzie jest teraz Buck?" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Widzę do czego to zmierza. " - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Widzę do czego to zmierza. " - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" -"Dotarliśmy do rancza mojego kumpla, ale wojsko dotarło tam przed " -"nami. Było całkowicie zabite dechami a na zewnątrz była policyjna barykada. " -"Jedna z tych wieżyczek... postrzeliła Buck'a. Mnie też " -"niemal nie dorwała. Udało mi się dostać do szczeniaka, zabrać go stamtąd, " -"to... nie było łatwe, musiałem użyć drzwi radiowozu jak tarczy, musiałem " -"załatwić zombie-glinę najpierw. A potem, cóż, gdy wciąż płakałem Buck " -"powrócił. Musiałem ... . Ja... nie mogę o tym mówić. Sam wiesz." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Przykro mi z powodu Buck'a. " - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Przykro mi z powodu Buck'a. " - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" -"No cóż, to niezła historia, więc się rozgość. Wszystko zaczęło się jakieś " -"pięć lat temu, jak przeszedłem na emeryturę z pracy w młynie. Czasy były " -"trudne, ale radziliśmy sobie." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "Okej, proszę mów dalej." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "Po namyśle, porozmawiajmy o czymś innym." - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" -"Wtedy miałem moją starą ciężarówkę, niebieską. Nazywaliśmy ją starą jękliwą " -"jędzą. Pewnego razu ja i Marty Gumps - który znany był mi jako Rdzewiejący G" -" - jechaliśmy jęczącą jędzą w górę Mount Greenwood w letni dzień, szukając " -"świetlików do złapania." - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "Świetliki. Rozumiem." - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "Jak to się ma do tego o co pytałem?" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "Muszę już iść." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" -"Rdzewiejący G - to mój stary kumpel Marty Gumps - siedział na miejscu " -"pasażera ze swoją wierną 18-tką na kolanach. Tak się nazywała jego suka, ale" -" nazywaliśmy ją w skrócie 18-tka." - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "18-tka. Pies. Załapałem." - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "Chyba widzę nadchodzące zombiaki. Powinniśmy się streszczać." - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "Przymknij się, stary pierdzielu." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" -"Do diabła, już kończę, ugryź się w język. Jak już mówiłem Rdzewiejący G - to" -" mój kumpel Marty Gumps - - siedział na miejscu pasażera ze swoją wierną " -"18-tką na kolanach. Tak się nazywała jego suka, ale nazywaliśmy ją w skrócie" -" 18-tka." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" -"No więc na szczycie Mount Greenwood była kiedyś strażnica leśna, taka z " -"czasu zanim się urodziłeś. Jednego roku się spaliła, mówili ze od pioruna, " -"ale ty i ja wiemy, że studenci tam imprezowali. Rdzewiejący G i ja " -"zostawiliśmy jęczącą jędzę i poszliśmy ją obejrzeć. Wypalona skorupa " -"wyglądała upiornie, domyśliliśmy się, że te cholerne dzieciaki się tam " -"szwendały. Rdzewiejący przyprowadził 18-tkę i na szczęście, biorąc pod uwagę" -" co tam widzieliśmy." - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "A co widzieliście?" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "Naprawdę, ale to naprawdę musimy już iść." - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "Do diabła, ZAMKNIJ SIĘ!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" -"Cierpliwości! Prawie skończyłem. No więc na szczycie Mount Greenwood była " -"kiedyś strażnica leśna, taka z czasu zanim się urodziłeś. Jednego roku się " -"spaliła, mówili ze od pioruna, ale ty i ja wiemy, że studenci tam " -"imprezowali. Rdzewiejący G i ja zostawiliśmy jęczącą jędzę i poszliśmy ją " -"obejrzeć. Wypalona skorupa wyglądała upiornie, domyśliliśmy się, że te " -"cholerne dzieciaki się tam szwendały. Rdzewiejący przyprowadził 18-tkę i na " -"szczęście, biorąc pod uwagę co tam widzieliśmy." - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" -"Cholerny łoś! Urządził się w strażnicy leśnej! Niemal wziął Rdzawego na " -"rogi, ale ten wypalił z 18tki i zrobił wielka dziurę w futrze zwierza. Stara" -" 18-tka pobiegła na wzgórza ale ją wytropiliśmy. Łoś poturlał się jak wór " -"kartofli, ale taki wielki wór, jeśli wiesz co mam na myśli." - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "Wiem co masz na myśli." - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "Już skończyłeś? Serio?" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "Na wszystkie świętości, PROSZĘ zamknij się wreszcie!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" -"W każdym razie, mówiąc w skrócie, zmierzałem w górę Mount Greenwood ponownie" -" sprawdzić strażnicę gdy usłyszałem spadające bomby i przelatujące " -"helikoptery. Zdecydowałem się rozbić tam obóz, żeby to wszystko przeczekać, " -"ale to się nigdy nie skończyło, co nie? Więc jestem tutaj." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "Dzięki za historię!" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "." - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "Nosisz zaprawdę błyszczącą odznakę!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Heh, wyglądasz na kogoś ważnego." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "Jestem tu tak naprawdę nowy." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "Co tu robisz?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "Słyszałeś coś o świecie na zewnątrz?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "Jest jakiś sposób abym mógł dołączyć do waszej grupy?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "Co z twoimi uszami?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "W czymś mogę pomóc?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Cóż, na razie." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" -"No to jest nas dwóch. Przynajmniej poniekąd. Ale chyba nie przyjmujemy, " -"niestety. Zapełnione po brzegi; na dole prawie że tłum. Widziałeś tego kupca" -" przy wejściu? Jego pytaj." - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Do dupy..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"Cóż, na dole jest gość, który ma działające pneumatyczne działo. Strzela " -"metalem jak... jak działo, ale bez \"bang\". Cholernie bezkosztowe. I " -"praktycznie nie ma granic w prowizorycznych broniach, które możesz zrobić. " -"Wielka rzecz jednak, wygląda na to, to kontynuacja budowy fortyfikacji. " -"Niewiele z tych potworów wydaje się móc przebić przez ogrodzenie lub mur " -"zbudowany z czegokolwiek." - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Coż, zatem..." - -#: 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 "" -"Nic optymistycznego, co najmniej. Miałem kumpelę na drodze z krótkofalówką, " -"ale jej już nie ma i radia też. Kaput." - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "Nic optymistycznego?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"Większość obozów przejściowych do tej pory się rozpadała. Miasta są " -"oblężone, w lasach pełzają świecące oczy i zombie. Dzieje się jakieś " -"popaprane gówno, i wygląda na to, że chyba każdy kto ma radio nabrał ochoty " -"na udokumentowanie swoich ostatnich okropnych chwil." - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "Czuję się źle, że zapytałem." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"Nie wiem. To znaczy, jeżeli jesteś w stanie stać się przydać. Ale to obecnie" -" jest dość zawiłe. Zależy kogo pytasz. Kupiec zdecydowanie nie chce mnie " -"tutaj jeżeli nie handluję, ale... niektórym jakoś udaje się prześlizgać." - -#: 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 "" -"Założę się, że tak samo jak ty zdobyłeś swoją. Nie rozgłaszaj tego, " -"niektórzy tutaj nie lubią tu takich jak my." - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "Ssh. Niektórzy ludzie tutaj nienawidzą... mutacji. To był wypadek." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "Wybacz że pytam" - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "Jesteś obrzydliwy." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"Podpalam budynki i sprzedaję materiały Wolnym Kupcom. Nie, naprawdę! Jak " -"widziałeś wypalone skorupy na przedmieściach, lub stertę prętów " -"zbrojeniowych na sprzedaż, to pewnie ja za tym stoję. Zaopatrują mnie w " -"zamian całkiem przyzwoicie, jak sądzę. Mogę ci sprzedać koktajl Mołotowa lub" -" dwa, jak chcesz." - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "Kupuję." - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "Kto potrzebuje prętów zbrojeniowych?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "Tak jakbyś miał coś do gadania. Pieprz się." - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Pieprz się!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "Kolejny ocalały! Powinniśmy podróżować razem." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "Co robisz?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "Chcesz pohandlować?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&Odłóż broń." - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&Upuść broń." - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "Nie martw się, nie zrobię ci krzywdy" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "Rzuć broń!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "Znikaj stąd, bo cię zabiję." - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Hej tam, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "Żegnaj." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "Witajcie." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Okej, żadnych gwałtownych ruchów..." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "Trzymaj dystans!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "Uspokój się. Nie zrobię ci krzywdy." - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "Wypchaj się, nic z tego." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&Podnieś ręce." - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*upuszcza jego broń." - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*upuszcza jej broń." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "A teraz wypad stąd" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "A teraz zmiataj, zanim cię zabiję." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "Okej, idę." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "W sprawie tej pracy..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "W sprawie jednej z tych prac.." - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "Co się dzieje?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "Nie obchodzi mnie to." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "Rozumiem." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "Oh, okej." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "Nieważne, nie jestem zainteresowany." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "Nieważne." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "Zrobię to." - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "Nie zgłaszam zainteresowania." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "Bez problemu." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "Jakieś rady?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "Podzielisz się ekwipunkiem?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "Wkrótce wrócę." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Brzmi dobrze, dzięki." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Brzmi dobrze. Żegnaj!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Przykro mi." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Nieważne. Żegnaj." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Cóż, um, przepraszam." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Wybacz mi, robiłem co się dało." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "Pewnie, proszę bardzo!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Dziękuję" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Dziękuję, do zobaczenia." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Cóż, zgaduję że tylko my." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "Przynajmniej mamy schronienie." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "Co teraz zrobimy?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "Jakieś wskazówki?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "Co mogę dla ciebie zrobić?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "Chcesz podróżować ze mną?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "Pohandlujmy." - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "Nie opuszczę schronu bez wyposażenia." - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "Nie wiem, poszukaj zapasów lub innych ocalonych, jak myślę." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -msgstr "Może powinniśmy zabić to miejsce dechami." - -#: 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 "" -"Zgaduję, że jakiś wóz na chodzie byłby nie od rzeczy, gdyby trzeba było " -"szybko stąd wiać." - -#: 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 "" -"Powinniśmy rozejrzeć się za jakimś gospodarstwem rolniczym. Mogą być źródłem" -" masy jedzenia i są oddalone od miast." - -#: 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 "" -"Powinniśmy się raczej trzymać z dala od miast, choć jest w nich wiele " -"przydatnych rzeczy. " - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "Hmmm, okej." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Nie, dopóki nie dostanę antybiotyków..." - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Niedawno mnie o to pytałeś. Poproś później." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "Czemu mam z tobą podróżować?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "Zrozumiałem. Przyniosę te antybiotyki." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "Dobrze, dobrze, potem zapytam." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "Mogę zapewnić ci bezpieczeństwo." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "Możesz zapewnić mi bezpieczeństwo." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "Jesteśmy przyjaciółmi, czyż nie?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "W przeciwnym wypadku cię zabiję." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "Rozumiem, jestem z tobą!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "Doskonale!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "Okej, ruszajmy!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "Taaak... nie sądzę." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "Naprawdę odchodzisz?" +msgid "You're really leaving?" +msgstr "Naprawdę odchodzisz?" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm sure. Bye." @@ -126206,6 +126491,9 @@ 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 "" +"System obozu frakcji zapewnia ci większą kontrolę nad twoimi towarzyszami, " +"pozwalając ci przypisywać im ich własne misje. Misje rozciągają się od " +"zbierania zasobów i wytwarzania aż po ewentualne patrole bojowe." #: lang/json/talk_topic_from_json.py msgid "Go on." @@ -126232,6 +126520,12 @@ msgid "" "reputation across the faction. Which can lead to VERY bad things if it gets" " too low." msgstr "" +"Żywność jest niezbędna na misjach lub jest produkowana w ich trakcie. Misje " +"o stałym czasie wymagają od ciebie zapłaty z góry, podczas gdy misje " +"powtarzane, jak zbieranie drewna opałowego, są płatne po ich wykonaniu. Brak" +" pożywienia niezbędnego do opłacenia towarzyszy spowoduje utratę reputacji " +"we frakcji. Może to prowadzić do BARDZO złych rzeczy, gdy spadnie zbyt " +"nisko." #: lang/json/talk_topic_from_json.py msgid "Wait, repeat what you said." @@ -126246,6 +126540,12 @@ msgid "" "camp requires at least two NPCs: one to be the camp manager and an " "additional NPC to task out." msgstr "" +"Na pierwszy obóz wybierz miejsce posiadające pola w 8 pobliskich lokacjach, " +"oraz sporo lasów w pobliżu. Lasy są podstawowym źródłem materiałów " +"budowlanych we wczesnym stadium, podczas gdy pola mogą być użyte do " +"ogrodnictwa. Nie musisz zbytnie przebierać, gdyż możesz założyć tyle obozów " +"ile chcesz. Każdy wymaga co najmniej dwóch NPC, z których jeden zarządza " +"obozem a drugi może wykonywać misje." #: lang/json/talk_topic_from_json.py msgid "" @@ -126258,6 +126558,14 @@ msgid "" " to send companions to recruit new members, build overmap fortifications, or" " even conduct combat patrols" msgstr "" +"Po wybraniu miejsca potrzebujesz znaleźć lub wytworzyć materiały do " +"ulepszenia obozu, by wykonywać zaawansowane misje. Pierwsze skupiają się na " +"zdobyciu materiałów do rozbudowy, abyś sam się nie musiał tym martwić. Po " +"dwóch lub trzech rozbudowach będziesz miał dostęp do [Prac " +"Fizycznych], misji pozwalających wysłać towarzyszy do posortowania " +"wszystkich rzeczy w pobliżu obozu w kategorie. Późniejsze rozbudowy pozwolą " +"wysyłać towarzyszy na rekrutację nowych członków, budowę fortyfikacji, lub " +"na zbrojne patrole." #: lang/json/talk_topic_from_json.py msgid "" @@ -126274,6 +126582,17 @@ 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 "" +"Kiedy całkowicie rozbudujesz pierwszy namiot odblokujesz możliwość rozwoju. " +"Opcje rozwoju pozwolą wyspecjalizować każdy zbudowany obóz przez skupienie " +"się na potrzebnym ci przemyśle. [Farma] przyda " +"się graczom, którzy chcą zbudować dużą frakcję podczas gdy " +"[Kuchnia] jest lepsza dla graczy poszukujących " +"jakości życia w zleceniu NPC gotowania ich pożywienia. " +"[Garaż] to użyteczna dziupla do misji " +"pozwalających rozebrać pojazd na użyteczne części i zasoby. Zasoby te można " +"zmienić w cenny sprzęt w [Kuźni]. Możesz zbudować" +" dodatkowe rozszerzenie obozu co drugi poziomi po odblokowaniu pierwszego, a" +" gdy jeden obóz jest pełen, możesz zbudować łatwo kolejny." #: lang/json/talk_topic_from_json.py msgid "Thanks, let's go back to talking about camps." @@ -126717,6 +127036,327 @@ msgstr "" " droga do wyrobienie sobie imienia wśród najbardziej wpływowych ludzi jacy " "pozostają przy życiu." +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "" +"Proszę, pomóż mi. Potrzebuję pożywienia. Nie jesteś aby ich szeryfem? Nie " +"możesz mi pomóc?" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "Proszę pomóż mi, potrzebuję żywności." + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "Odejdź ode mnie." + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" +"Oni mnie nie wpuszczą. Mówią że już są zapełnieni. Wolno mi tu obozować, " +"jeśli po sobie sprzątam i nie robię problemów, ale jestem tak głodny." + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "Czemu nie pójdziesz gdzie indziej?" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "Czemu nie zdobędziesz sam sobie jedzenia?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "Co robiłeś przed kataklizmem?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "Wybacz, nie mogę ci pomóc." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" +"Niby gdzie? Nie mogę walczyć z tym na zewnątrz. Jestem w kiepskim stanie " +"fizycznym, nie mam użytecznych umiejętności, i przerażają mnie i " +"przemoc. Jak mam znaleźć bezpieczne miejsce?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" +"Tam? to samobójstwo! Ludzie którzy idą na zewnątrz nie wracają, tacy co " +"wiążą koniec z końcem... w przeciwieństwie do mnie. Dzięki, ale lepiej mi " +"błagać o resztki i czekać aż ktoś w środku umrze i zwolni mi miejsce." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" +"Byłem nauczycielem matematyki w szkole. To była dobra praca, kochałem ją. " +"Zabawne, ale nie jest zbyt pomocna po końcu świata. Wiem że w końcu ludziom " +"będą potrzebni nauczyciele, ale na razie potrzebują pożywienia, schronienia," +" i ubrań." + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "Czy mówiłem ci już o kartonie przyjacielu? Czy masz może jakiś?" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "Karton?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "Czemu tu przesiadujesz?" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "Na serio nosisz ten kostium dinozaura?" + +#: lang/json/talk_topic_from_json.py +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 "" +"Buduję dom z kartonu. Piaskowy dziadek nie chce, żebym to robił ale niech " +"się odpieprzy." + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "Czemu karton?" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "Myślę, że muszę już iść." + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" +"Tyle tego jest teraz, a zombie się go boją. Zapewnił mi bezpieczeństwo jak " +"dotąd. Promienie beta promieniują z centrum zombie, więc uderzają w karton i" +" nie mogą go przebić. Odbicie może zapobiec dalszym obrażeniom." + +#: lang/json/talk_topic_from_json.py +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 "" +"Ci tchórze boją się mnie. Nie wpuszczą mnie do swojej bazy. Zbuduję sobie " +"nowy dom i ich też nie wpuszczę." + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "Zbudować dom?" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "Nie." + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "O co chodziło z tym kartonem?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "Nie przejmuje się tymi dupkami." + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "Co tam?" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "Ok... do zobaczenia." + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "Są \"zbyt zapchani\". Niczym się nie podzielą." + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "Czemu zatem tu mieszkasz?" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "Lepiej już pójdę." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" +"Nawet bez ich pomocy, to najbezpieczniejsze miejsce by przycupnąć. Dopóki " +"dbamy o czystość i nie sprawiamy problemów sanitarnych, nie mają nic " +"przeciwko byśmy siedzieli obok wejścia. To miło z ich strony że pozwalają " +"nam tu siedzieć i umierać z głodu." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Hej, jesteś wielkim fanem przeżycia najlepszych?" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "Czemu pytasz?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "Wybacz, nie jestem zainteresowany." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" +"Bo ja, to pewne, do najlepszych nie należę, więc posiedzę tu aż umrę z " +"głodu. Pomożesz biednej duszy w potrzebie?" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "Co z tobą nie tak?" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "Nie wpuszczą cię bo jesteś chory?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "Jak się tu w ogóle dostałeś jak jesteś taki chory?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "Czemu tu obozujesz skoro cię nie wpuszczą?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" +"Do wyboru do koloru! Astma, cukrzyca, reumatyzm. Cukrzyca nie daje się we " +"znaki od kiedy, wiesz, przestałem jeść regularnie. Przynajmniej zakładam, że" +" nie ujawnia się. Nie żebym mógł zrobić, jak mu tam było, ten test krwi o " +"który lekarze upominali się raz na kilka miesięcy." + +#: lang/json/talk_topic_from_json.py +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 "" +"Mają wystarczająco gąb do wyżywienia które potrafią udźwignąć swoją wagę. Ja" +" mam za dużo wagi i jestem zbyt słaby by ją udźwignąć, wiec jestem tutaj." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" +"Przybyłem z małą grupą jakiś czas temu. Tamci byli młodzi i sprawni, więc są" +" w środku. I tak byli jedynymi z ostatnich, którzy się dostali. Ja nie " +"spełniłem warunków." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" +"To jest litość. Mam schronienie, światło, ciepło, a strażnicy pomogą ja się " +"pojawi tu jakiś zombie. Nie jest tak źle. Gdybym był tam sam, nie maiłbym " +"nic z tych rzeczy a i tak musiałbym poszukiwać żarcia. Więc byłbym sztywny " +"jak grobowa deska. Albo w zasadzie nieumarły." + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "Witaj, przyjacielu." + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "Co ty tu robisz?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "Nie sposób nie zauważyć, że pokrywa cię futro." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" +"Mieszkam tu, Zbyt zmutowany by zasilić szeregi fajnych dzieciaków, ale nie " +"na tyle zmutowany by zabić bez zadawania pytań." + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "Czemu tu mieszkasz?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" +"Wygląda na to, że potrafisz o siebie zadbać. Nie chciałbyś podróżować ze " +"mną?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" +"To bezpieczniejsze niż zorganizowanie własnego miejsca. Wybywam na " +"poszukiwania jak potrzebuję. Puki dbamy o porządek i robimy swoje jak " +"nadchodzą zombie, pozwalają nam tu pomieszkiwać, jako dodatkowa ochrona. Nie" +" podoba im się natomiast, że przynoszę żywność dla pozostałych lokatorów... " +"Myślę że chcieliby nas powoli zagłodzić, i choć nie napełnię wszystkim " +"żołądków, to zdołam przynieść na tyle by utrzymać tych gości w jako takiej " +"kondycji. Podejrzewam, że w końcu znajdą wymówkę by mnie stąd w końcu " +"wywalić." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" +"Ohyda, co nie? Są jak włosy łonowe. Zaczęły rosnąć gdzie popadnie zaraz po " +"kataklizmie. Nie mam pojęcia co to spowodowało. Nie mam im za złe, że ich " +"nienawidzą, sam ich nienawidzę." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" +"No cóż, to miła uchu oferta, i cieszę się, że nie odstręczają cię moje włosy" +" łonowe na całym ciele. Ale wybacz mi. Stałem się niejako odpowiedzialny za " +"tą zgraję dzikich lokatorów. Dopóki jestem jedyny, który zapewnia im " +"przetrwanie, nie sądzę abym mógł ot tak odejść." + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "Mogę ci pomóc marszalu?" @@ -127017,6 +127657,10 @@ msgid "" msgstr "" "Nie wiem co mógłbyś zrobić. Próbowałem wszystkiego. Po prosty daj mi czas..." +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "OK." + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -127462,6 +128106,14 @@ msgstr "To odpowiedź testowa zdolności npc." msgid "This is a npc short trait test response." msgstr "To krótka odpowiedź testowa zdolnościncp." +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "To odpowiedź testowa flag zdolności." + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "To odpowiedź testowa flag zdolności npc." + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "To odpowiedź testowa efektu npc." @@ -127506,6 +128158,66 @@ msgstr "To odpowiedź testowa towarzyszy npc 1." msgid "This an error! npc allies 2 test response." msgstr "To odpowiedź testowa towarzyszy npc 2." +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "To odpowiedź testowa pory roku wiosna." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "To odpowiedź testowa 30 dni od kataklizmu." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "To odpowiedź testowa pory roku lato." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "To odpowiedź testowa 120 dni od kataklizmu." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "To odpowiedź testowa pory roku jesień." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "To odpowiedź testowa 210 dni od kataklizmu." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "To odpowiedź testowa pory roku zima." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "To odpowiedź testowa 300 dni od kataklizmu." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "To testowa odpowiedź dzień." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "To testowa odpowiedź noc." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "To testowa odpowiedź przełącznik 1." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "To testowa odpowiedź przełącznik 2." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "To testowa odpowiedź przełącznik domyślny 1." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "To testowa odpowiedź przełącznik domyślny 2." + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "To kolejna podstawowa testowa odpowiedź." + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "To warunkowa odpowiedź testowa zdolności." @@ -127550,6 +128262,30 @@ msgstr "To testowa odpowiedź u_spend_cash" msgid "This is a multi-effect response" msgstr "To odpowiedź testowa multi-effect" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "To odpowiedź testowa - u_sell_item - plastikowa butelka" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "To odpowiedź testowa - u_has_item - piwo" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "To odpowiedź testowa - u_has_item - szklana butelka" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "To odpowiedź testowa - u_has_items - piwo" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "Bład testu! To odpowiedź testowa h_has_item." + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -127560,140 +128296,1026 @@ 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 "" +"Zanim się to zaczęło, miałem nędzną pracę przy obracaniu burgerów w Grillu " +"Sambali. Jej utrata to nic takiego. Utrata rodziców boli o wiele bardziej. " +"Gdy ostatni ich widziałem żywych, właśnie wróciłem ze szkoły, przegryzłem " +"coś i pobiegłem do pracy. Nawet nie wiem czy powiedziałem mamie, że ją " +"kocham, i byłem zły na tatę o jakieś gówno bez znaczenia. Nie miało " +"znaczenia wtedy, nie ma znaczenia teraz. Zwariowane rzeczy zaczęły się dziać" +" jak byłem w pracy... Wojsko wjechało do miasta, i syrena obwieściła " +"ewakuację." + +#: lang/json/talk_topic_from_json.py +msgid "So, did you evacuate?" +msgstr "Więc się ewakuowałeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't evacuate. I went home... saw some freaky shit on the way, but at " +"the time I just thought it was riots or drugs. By the time I got there, my " +"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 "" +"Nie ewakuowałem się. Poszedłem do domu... Widziałem wariackie rzeczy po " +"drodze, ale wtedy myślałem że to zamieszki albo narkotyki. Gdy już tam " +"dotarłem, rodziców nie było. Ani śladu. Był wielki bałagan, rzeczy walały " +"się wszędzie jakby była jakaś przepychanka, na podłodze były ślady krwi." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I haven't found them yet. Whenever I see a , a little part of me is" +" afraid it's going to be one of them. But then, maybe not. Maybe they " +"were evacuated, maybe they fought and tried to wait for me but the military " +"took them anyway? I've heard that sort of thing happened. I don't know if " +"I'll ever know." +msgstr "" +"Jeszcze ich nie znalazłem. Za każdym razem gdy widzę , mała cząstka " +"mnie boi się że to będzie jedno z nich. Ale z drugiej strony może nie. Może " +"zostali ewakuowani, może walczyli by zaczekać, ale wojsko ich zabrało? " +"Słyszałem że tak się zdarzało. Nie wiem czy kiedykolwiek się dowiem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" +"No cóż, to niezła historia, więc się rozgość. Wszystko zaczęło się jakieś " +"pięć lat temu, jak przeszedłem na emeryturę z pracy w młynie. Czasy były " +"trudne, ale radziliśmy sobie." + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "Okej, proszę mów dalej." + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "Po namyśle, porozmawiajmy o czymś innym." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" +"Wtedy miałem moją starą ciężarówkę, niebieską. Nazywaliśmy ją starą jękliwą " +"jędzą. Pewnego razu ja i Marty Gumps - który znany był mi jako Rdzewiejący G" +" - jechaliśmy jęczącą jędzą w górę Mount Greenwood w letni dzień, szukając " +"świetlików do złapania." + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "Świetliki. Rozumiem." + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "Jak to się ma do tego o co pytałem?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "Muszę już iść." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" +"Rdzewiejący G - to mój stary kumpel Marty Gumps - siedział na miejscu " +"pasażera ze swoją wierną 18-tką na kolanach. Tak się nazywała jego suka, ale" +" nazywaliśmy ją w skrócie 18-tka." + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "18-tka. Pies. Załapałem." + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "Chyba widzę nadchodzące zombiaki. Powinniśmy się streszczać." + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "Przymknij się, stary pierdzielu." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +"Do diabła, już kończę, ugryź się w język. Jak już mówiłem Rdzewiejący G - to" +" mój kumpel Marty Gumps - - siedział na miejscu pasażera ze swoją wierną " +"18-tką na kolanach. Tak się nazywała jego suka, ale nazywaliśmy ją w skrócie" +" 18-tka." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" +"No więc na szczycie Mount Greenwood była kiedyś strażnica leśna, taka z " +"czasu zanim się urodziłeś. Jednego roku się spaliła, mówili ze od pioruna, " +"ale ty i ja wiemy, że studenci tam imprezowali. Rdzewiejący G i ja " +"zostawiliśmy jęczącą jędzę i poszliśmy ją obejrzeć. Wypalona skorupa " +"wyglądała upiornie, domyśliliśmy się, że te cholerne dzieciaki się tam " +"szwendały. Rdzewiejący przyprowadził 18-tkę i na szczęście, biorąc pod uwagę" +" co tam widzieliśmy." + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "A co widzieliście?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "Naprawdę, ale to naprawdę musimy już iść." + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "Do diabła, ZAMKNIJ SIĘ!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" +"Cierpliwości! Prawie skończyłem. No więc na szczycie Mount Greenwood była " +"kiedyś strażnica leśna, taka z czasu zanim się urodziłeś. Jednego roku się " +"spaliła, mówili ze od pioruna, ale ty i ja wiemy, że studenci tam " +"imprezowali. Rdzewiejący G i ja zostawiliśmy jęczącą jędzę i poszliśmy ją " +"obejrzeć. Wypalona skorupa wyglądała upiornie, domyśliliśmy się, że te " +"cholerne dzieciaki się tam szwendały. Rdzewiejący przyprowadził 18-tkę i na " +"szczęście, biorąc pod uwagę co tam widzieliśmy." + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" +"Cholerny łoś! Urządził się w strażnicy leśnej! Niemal wziął Rdzawego na " +"rogi, ale ten wypalił z 18tki i zrobił wielka dziurę w futrze zwierza. Stara" +" 18-tka pobiegła na wzgórza ale ją wytropiliśmy. Łoś poturlał się jak wór " +"kartofli, ale taki wielki wór, jeśli wiesz co mam na myśli." + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "Wiem co masz na myśli." + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "Już skończyłeś? Serio?" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "Na wszystkie świętości, PROSZĘ zamknij się wreszcie!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" +"W każdym razie, mówiąc w skrócie, zmierzałem w górę Mount Greenwood ponownie" +" sprawdzić strażnicę gdy usłyszałem spadające bomby i przelatujące " +"helikoptery. Zdecydowałem się rozbić tam obóz, żeby to wszystko przeczekać, " +"ale to się nigdy nie skończyło, co nie? Więc jestem tutaj." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "Dzięki za historię!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"Nawet nie wiem o co biega. Nie mam bladego pojęcia co się " +"dzieje. Po prostu robię co mogę żeby przeżyć. Świat się skończył a ja " +"popłynąłem z nurtem nie umierając, puki cię nie spotkałem." + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "Huh." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a cop. Small town sheriff. We got orders without even really knowing" +" what they meant. At some point one of the g-men on the phone told me it " +"was a Chinese attack, something in the water supply... I don't know if I " +"believe it now, but at the time it was the best explanation. At first it " +"was weird, a few people - - fighting like rabid animals. Then it " +"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 "" +"Byłem gliną. Szeryfem w małym miasteczku. Dostaliśmy rozkazy nie wiedząc " +"nawet co oznaczają. W którymś momencie jeden federalny powiedział przez " +"telefon że to atak Chin, coś w wodociągach... Nie wiem czy w to teraz " +"wierzę, ale na tamten czas było to najlepsze z wyjaśnień. Na początku było " +"dziwnie, paru ludzi - - walczyło jak wściekłe zwierzęta. Potem " +"było gorzej. Starałem się mieć sprawy pod kontrolą, ale byłem tylko ja i " +"zastępcy przeciwko miasto ogarniętemu zamieszkami. Później sprawy całkiem " +"się popieprzyły." + +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "Co się stało?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A big-ass hole opened up right in the middle of town, and a " +"crawled out, right in front of the church. We unloaded into it, but bullets" +" just bounced off. Got some civilians in the crossfire. It started just " +"devouring people like potato chips into a gullet that looked like a rotting " +"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " +"have been the only person to escape. I haven't been able to even look at my" +" badge since then." +msgstr "" +"Wielgachna dziura otworzyła się w środku miasta i wypełzł z niej , " +"prosto przed kościołem. Strzelaliśmy w niego ale pociski się po prostu " +"odbijały od niego. Kilku cywilów dostało się w krzyżowy ogień. Zaczął " +"pożerać ludzi jak czipsy wsadzając ich w gardziel wyglądającą jak gnijąca " +"zębata dupa, i... straciłem rezon. Uciekłem. Chyba jako jedyny zdołałem " +"zbiec. Od tego czasu nawet nie potrafię spojrzeć na odznakę." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was SWAT. By all rights I should be dead. We were called to control " +"\"riots\", which we all know were the first hordes. Fat lot of " +"good we were. Pretty sure we killed more civilians. Even among my crew, " +"morale was piss poor and we were shooting wild. Then something hit us, " +"something big. Might have been a bomb, I really don't remember. I woke up " +"pinned underneath the SWAT van. I couldn't see anything... but I could " +"hear it, . I could hear everything. I spent hours, maybe days " +"under that van, not even trying to get out." +msgstr "" +"Byłem w jednostce SWAT. W zasadzie powinienem już nie żyć. Wezwano nas do " +"opanowania \"zamieszek\", które jak wiemy wszyscy były pierwszymi hordami " +". Na nic się nie przydaliśmy. Jestem całkiem pewien że zabiliśmy " +"więcej cywili. Nawet w mojej załodze morale upadło i strzelaliśmy gdzie " +"popadnie. Potem coś nas trafiło. Może bomba, nie pamiętam. Obudziłem się " +"przyszpilony pod furgonetką SWAT. Niczego nie mogłem zobaczyć... ale mogłem " +"słyszeć, . Mogłem wszystko słyszeć. Spędziłem godziny, może dnie pod" +" furgonetką, nawet nie próbując się wydostać." + +#: lang/json/talk_topic_from_json.py +msgid "But you did get out." +msgstr "Ale wydostałeś się." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." +msgstr "" +"W końcu tak. Było cicho od kilku godzin. Byłem spragniony, ranny i " +"przerażony. Chyba tylko mój trening ocalił mnie przed szaleństwem. " +"Zdecydowałem się wyciągnąć się stamtąd i sprawdzić jak poważne są moje " +"obrażenia. to było łatwe. Bok furgonetki był rozerwany, więc okazało " +"się że w zasadzie leżę pod cienką warstwą gruzu, i furgonetką jak namiotem " +"nade mną. Nawet nie byłem poważnie ranny. Zebrałem tyle sprzętu ile mogłem i" +" wymknąłem się stamtąd. Była noc. Słyszałem odgłosy walki w innych częściach" +" miasta, więc udałem się w przeciwnym kierunku. Przebyłem kilka przecznic " +"zanim wpadłem na jakieś ... Uciekłem od nich. Uciekałem, i " +"uciekałem i jeszcze trochę uciekałem. I oto jestem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." +msgstr "" +"Siedziałem na dołku. Wzięli mnie noc wcześniej, za gówniane naruszenie " +"warunkowego zwolnienia. Dupki. Siedziałem w celi jak gliny zaczęły krzyczeć " +"o jakimś alarmie, wzięły sprzęt i zostawiły mnie tam tylko z tym " +"robotem na straży. Utknąłem tam na dwa cholerne dni, bez żarcia i z odrobiną" +" wody. Wtedy ten wilki zombie wbił się na posterunek i zaczął rozróbę z " +"robotem. Nie wiedziałem co mam o tym myśleć, ale podczas walki rozwalili " +"drzwi do celi, i udało mi się zwiać." + +#: lang/json/talk_topic_from_json.py +msgid "Lucky you. How did you get away?" +msgstr "Szczęściarz, jak się wydostałeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." +msgstr "" +"Na ulicach panował chaos, człowieku. Ale chaos to ja znam. Nie " +"pożyjesz tak długo jak ja, jak nie wiesz jak unikać walki, której nie " +"wygrasz. Największym problemem nie były zombie i potwory, szczera prawda. " +"Tylko to pieprzone roboty policyjne. Wiedziały, że jest na mnie nakaz, i " +"wciąż próbowały mnie aresztować." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." +msgstr "" +"Byłem naprawdę szczęściarzem jeśli chodzi o . " +"Mieszkałem na dziko w magazynie na obrzeżach miasta. To była prawdziwie " +" miejscówka, a mój zespół został zasadniczo aresztowany w dużej " +"wtopie narkotykowej, w której mnie nie było. Bałem się, że pomyślą że ich " +"wystawiłem i przyjdą po mnie, ale hej, teraz już nie ma zmartwienia." + +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "Wow, szczęśliwie dla ciebie. Jak się dowiedziałeś o ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" +"Byłem wprost w magazynie, nie w Zambonii. Miałem internet. Oglądałem te " +"szalone filmy na youtubie na żywo, przerażony nie na żarty. Miałem tam " +"całkiem przyzwoite warunki, zwinąłem trochę puszkowanego żarcia i takie tam," +" i miałem całkiem dobrą miejscówkę w tym magazynie. Planowałem przecież " +"spędzić tam sporo czasu, aż wymyśliłbym jak ułagodzić moją ekipę." + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "Ale coś cię stamtąd wywiało." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" +"Ta. . Cała zgraja, prowadzone przez takiego ponurego czarnego jak " +"smoła skurczybyka z świecącymi czerwono oczami, nie wciskam ci kitu. Nie mam" +" pojęcia co ich pognało takie kawał drogi w moim kierunku, ale zobaczyły jak" +" odlewam się na zewnątrz i było po ptokach. Strzeliłem parę razy do nich, " +"ale ten jeden upiorny skurwysyn tylko pomachał łapami i sprowadził ich z " +"powrotem, więc uciekłem. Jak pozbierałem się do kupy zdałem sobie sprawę że " +"nie było tak źle, i tak kończyły mi się zapasy. Odtąd żyję z tego co znajdę," +" a teraz spotkałem ciebie." + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "Jakieś wskazówki co do szefa zombie?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" +"Cóż, no wiec, jeśli ma pod ręką kolegów, tak jak mówiłem, i może ich " +"postawić na nogi ot tak, to drań musi być straszny. Jakbym go dorwał sam na " +"sam pewnie dałbym mu radę. Ponadto po drodze wpadłem jeszcze na jednego " +"zombie i przerobiłem go na sieczkę gałęzią, zanim reszta nadążyła. Próbował " +"i tego podnieść, ale tym razem bez skutku." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" +"OK, to zabrzmi jak szaleństwo ale ja, tak jakby, ja wiedziałem, że to się " +"wydarzy. Znaczy się zanim to się stało. Możesz nawet zapytać mojej wróżki, " +"ale tak jakby, myślę że ona już nie żyje. Powiedziałem jej o moich snach " +"tydzień przed tym jak świat się skończył. Serio!" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "O czym śniłeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" +"OK, a więc, pierwszy sen jaki miałem każdej nocy przez trzy tygodnie. Śniłem" +" że biegnę przez las z kijem, walcząc z wielkimi pająkami. Naprawdę! Każdej " +"nocy." + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "OK, to nie brzmi znów tak nadzwyczajnie." + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" +"Wow, szalone, nie mogę uwierzyć, że naprawdę wyśniłeś ." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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, to tylko, tak jakby, wiesz, początek. A zatem, na tydzień nim to się " +"stało, po tym śnie z pająkami, budziłem się, szedłem się wysikać i wracałem " +"do łóżka, bo byłem trochę wystraszony, co nie? I wtedy miałem kolejny sen, " +"tak jakby, w którym moja szefowa umarła i powróciła do żywych! A potem w " +"pracy, kilka dni później, mąż szefowej wpadł z wizytą i miał atak serca, a " +"kolejnego dnia usłyszałem, że wrócił do żywych! Tak jak we śnie, tylko że to" +" była inna osoba!" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "To trochę dziwne." + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" +"CO NIE? I jeszcze to nie wszystko! A zatem, na tydzień nim to się stało, po " +"tym śnie z pająkami, budziłem się, szedłem się wysikać i wracałem do łóżka, " +"bo byłem trochę wystraszony, co nie? I wtedy miałem kolejny sen, tak jakby, " +"w którym moja szefowa umarła i powróciła do żywych! A potem w pracy, kilka " +"dni później, mąż szefowej wpadł z wizytą i miał atak serca, a kolejnego dnia" +" usłyszałem, że wrócił do żywych! Tak jak we śnie, tylko że to była inna " +"osoba!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" +"PRAWDA?! W każdym razie, nadal mam koszmarne sny po końcu świata, ale nie są" +" już o przyszłości. Tak jakby, mam wiele koszmarów po końcu świata. Tak " +"jakby, co kilka nocy, śnię o tysiącu czarnych gwiazd wokół Ziemi, i przez " +"sekundę wszystkie patrzą na Ziemię jak milion malutkich czarnych oczu. Po " +"czym mrugają i odwracają wzrok, a potem Ziemie jest jedną z tych czarnych " +"gwiazd, jak wszystkie pozostałe, a ja jestem na niej wciąż uwięziony, sam " +"jak palec, i przerażony. Ten jest najgorszy. Choć jest jeszcze kilka innych." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "Opowiedz mi jeszcze o twoich dziwnych snach." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"OK, więc, czasem śnię ze sam jestem zombie. Tylko nie zdaję sobie z tego " +"sprawy. Zachowuję się normalnie z mojego punktu widzenia i widzę zombie jako" +" ludzi a ludzi jako zombie. Gdy się budzę wiem ze to fałsz bo gdyby to była " +"prawda, było by więcej normalnych ludzi. Bo byliby zombie. A teraz każdy " +"jest zombie." + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "Myślę, że wszyscy mamy teraz takie sny." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" +"Tak, zapewne. Czasem śnię też, że jestem motkiem kurzu, unoszącym się w " +"rozległej, nie dbającej o nic galaktyce. Ten z kolei sprawia, że żałuję, że " +"mojego dealera jointów, Brudnego Dana zeżarł gigantyczny krab potwór." + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "Biedny Brudny Dan. " + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +msgstr "Dzięki, że mo o tym opowiedziałeś. " + +#: 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 "" +"Udało mi się dostać do jednego z tych schronów ewakuacyjnych, ale " +"było niemal gorzej niż gdybym został na zewnątrz. Uciekłem stamtąd, i " +"uciekam wciąż od tamtego czasu." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "Jak przetrwałeś podczas ucieczki?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" +"Spędziłem sporo czasu na przeczesywanie lasów w poszukiwaniu rabarbaru i " +"innych skrawków warzyw zanim zebrałem się na odwagę by ubić i oskubać " +"niektóre z tych martwych potworów. Chyba byłem już zdesperowany." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" +"Tak jak większość ludzi, którzy nie zginęli wprost w czasie zamieszek. " +"Udałem się do jednej z tych ewakuacyjnych śmiertelnych " +"pułapek. Nawet żyłem tam chwilowo z trójką innych ocalonych. Jeden gość, " +"który jak sądzę naoglądał się filmów niby rządził tym miejscem, bo wydawało " +"się, że naprawdę wie co się dzieje. Uwaga, spojler: faktycznie nie " +"wiedział." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "Co stało się z twoją pierwotną załogą?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" +"Sprawy poszły się paść gdy nasz nieustraszony lider zdecydował, że musimy " +"posłać do piachu jedną z pozostałych ocalonych, która została ugryziona. Jej" +" mąż był zdecydowanie przeciwny, a i mi się to nie uśmiechało. Do tego czasu" +" już w wielu sprawach zdążył nie mieć racji. Cóż, wziął sprawy we własne " +"ręce i ją zabił. Wtedy jej mąż uznał, że trzeba iść za ciosem i zabił tego " +"idiotę. Następnie ona wstała z martwych więc zabiłem ja ponownie, a także " +"rozbiłem na miazgę naszego byłego lidera. Niestety podczas szamotaniny " +"nieźle nadgryzła swojego męża, gdy nie mógł się pozbierać do kupy " +"wystarczająco by się obronić. Nie żebym go kurwa winił. Zmyliśmy się stamtąd" +" razem, ale to było dla niego zbyt wiele i już nie był sobą... W ugryzienie " +"wdała się infekcja, ale to inny ostatecznie go zabił. I wtedy byłem" +" już sam." + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "A jak sądzisz co się stało? Widzisz ich gdzieś tutaj?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"Nie mam we mnie nic specjalnego, i nie jestem pewien dlaczego przeżyłem. " +"Ewakuowano mnie z garstka pozostałych, ale było już zbyt późno na drugą " +"podróż do obozu FEMA. Zaatakowali nas umarli... Jedynie mnie udało się " +"wyrwać. Nigdy nie spojrzałem wstecz." + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" +"Transportowali mnie z szeregiem innych ewakuowanych do centrum uchodźców, i " +"wtedy największy zombie jakiegokolwiek widziałeś zmiażdżył autobus. Gdy " +"zajmował się innymi pasażerami zrobiłem to co zrobiłby każdy na moim miejscu" +" i spieprzyłem stamtąd." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" +"Mój schron ewakuacyjny napadł rój tych takich pszczół, tych o rozmiarze psa." +" Kilka ubiłem deską, ale szybko doszedłem do wniosku, że ale uderzam w " +"długą, albo wypatroszą mnie jak świnię. Reszta to historia." + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "Wielkie pszczoły? Powiedz mi więcej." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "Ale pszczoły nie są zwykle agresywne..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" +"Tak, jestem pewien że już je widziałeś, są wszędzie. Jak coś ze starego " +"filmu fantastyczno-naukowego. Paru innych w schronie pożądliły, nie ma " +"żartów. Niestety nie zostałem na tyle długo by widzieć jakie są " +"długoterminowe skutki. Ale nie wstydzę się że uciekałem jak tchórz." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "Ale pszczoły nie są zwykle agresywne... Masz na myśli osy?" + +#: 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 "" +"No wybacz mi, że nie zaczekałem by zapytać jakimi zabójczymi " +"robalami były." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "Wybacz. Możesz mi więcej o nich powiedzieć?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "No tak. Wybacz." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" +"Cóż, byłem w domu gdy odezwał się alarm w komórce nakazując udanie się do " +"schronu ewakuacyjnego. I tam też się udałem. Później schron się przeludnił i" +" ludzie czekali na przeniesienie do centrum dla uchodźców, ale autobusy " +"nigdy nie przyjechały. O tym już pewnie wiesz. Powstałą panika a następnie " +"walka. Nie zostałem by przekonać się co będzie dalej; pobiegłem do lasu z " +"tymi narzędziami jakie udało mi się zgarnąć ze schowków. Wróciłem tam parę " +"dni później, ale miejsce było całkowicie opuszczone. Nie mam pojęcia co " +"stało się z tymi ludźmi." + +#: 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 "" +"Dużo byś chciał. Jak sądzę krótka wersja sprowadza do tego że ewakuowano " +"mnie do obozu FEMA, w niby bezpieczne miejsce, ale szczęśliwie się stamtąd " +"wyrwałem." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "Powiedz coś więcej o obozie FEMA." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "Jak się stamtąd wydostałeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" +"To było przerażające. Przywieziono nas w przerobionych szkolnych busach, " +"około trzydzieści dusz. Już pewnie domyślasz się jaki to kłopot. Klika osób " +"było rannych i jakiś filozof, który naoglądał się byt dużo filmów klasy B " +"upierał się, że \"każdy pogryziony przemieni się\" Pieprzony idiota, nie? " +"Byłem pogryziony z tuzin razy i co najwyżej nabawiłem się wstrętnej " +"infekcji." + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "Co się wydarzyło potem?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" +"Gość wpadł w szał. Ludzie i tak już panikowali. Był tam uzbrojony koleś " +"który ubezpieczał transport, który zgrywał gliniarza, ale faktycznie to był " +"tylko dzieciak, któremu dano broń. Próbował uspokoić nastroje, i " +"sądzę że przez chwile to działało, ale zgraja \"zabić zainfekowanych\" była " +"już całkiem odjechana, i gotowa na moment gdy jakiejś babci z raną " +"na dłoni pojawi się piana na ustach. Zaczęli znowu świrować jak dojechaliśmy" +" do obozu. Nie skończyło się to dla nich dobrze. Kilku dobrze uzbrojonych " +"żołnierzy odciągnęło ich i nie zobaczyłem ich więcej." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" +"Na miejscu panował chaos. Zostałem tam tylko kilka godzin. Mieli tam koparkę" +" na chodzi, kopiącą wielki dół w sekcji otoczonej przez kordon, do której " +"nie można nam było się zbliżać. Cóż, mnie udało się zerknąć i widziałem jak " +"wyładowywali tam ładunek za ładunkiem martwych ciał do tego dołu, zasypując " +"je piachem nawet gdy ożywione próbowały się stamtąd wygrzebać. Nawet biorąc " +"pod uwagę całe gówno które widziałem potem, ten widok nadal mnie " +"prześladuje. Wtedy wiedziałem, że muszę uciekać. Szczęśliwie dla mnie " +"następnego ranka zostaliśmy zaatakowani przez jakiś gigantyczny horror, z " +"rodzaju jakiego nie widziałem od tamtej pory. Podczas gdy straż była zajęta " +"obroną, przytuliłem nieco zapasów zgromadzonych w nocy i spieprzyłem " +"stamtąd. Kilka osób spieprzało razem ze mną, ale o ile wiem tylko mi się " +"poszczęściło." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "To opowieść na inny dzień. Nie lubię o tym myśleć." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "Wybacz. Powiedz coś więcej o obozie FEMA." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Wybacz że pytałem. " + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Wybacz że pytałem. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." +msgstr "" +"Nie jestem stąd... Pewnie poznajesz po akcencie że jestem Brytyjczykiem. " +"Byłem na studiach doktoranckich w Dartmouth. Byłem w połowie drogi do MIT na" +" konferencję gdy zatrzymał mnie . Zatrzymałem się w małym " +"zapchlonym motelu na skraju drogi. Gdy się obudziłem i poszedłem sprawdzić " +"co za chłam nazywają tu śniadaniem, gruby zakrwawiony właściciel siedział " +"przy swoim biurku, nosząc te same brudne rzeczy z wczoraj. Myślałem, że może" +" tam zasnął, ale ale jak na mnie spojrzał... cóż, wiesz jak wyglądają oczy " +"Zedów. Rzucił się na mnie i zareagowałem instynktownie. Walnąłem go po " +"głowie moim tabletem." + +#: 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 "" +"Nic specjalnego przez . Gdy zmarli zaczęli chodzić wziąłem " +"sprzęt i zacząłem wysyłać ich z powrotem na ich miejsce." + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "Jak ci poszło?" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Nieźle. " + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Nieźle. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" +"Niemalże zginałem. Jeden to bułka z masłem, ale dziesięciu to już " +"za wiele, a setka to śmiertelna pułapka. Zbyt się zagłębiłem, i ledwo się " +"wyrwałem z kiszkami nadal w brzuchu. Zabunkrowałem się w starym motelu na " +"jakiś czas, liżąc rany i rozmyślając co by tu robić dalej. I wtedy wpadłem " +"na pomysł." + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "Do czego doszedłeś?" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "Nie ważne. " #: lang/json/talk_topic_from_json.py -msgid "So, did you evacuate?" -msgstr "" +msgid "Never mind. " +msgstr "Nie ważne. " #: lang/json/talk_topic_from_json.py msgid "" -"I didn't evacuate. I went home... saw some freaky shit on the way, but at " -"the time I just thought it was riots or drugs. By the time I got there, my " -"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." +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." msgstr "" +"Że to jest to. Do tego jestem stworzony. Tam na ulicy, tłukąc głowy " +"potworów, modląc się o drogę ucieczki? Nigdy sie tak nie czułem. Żywy. " +"Ważny. Więc jak poskładałem się do kupy, zebrałem się w sobie i wróciłem do " +"tego. Pewnie zabiłem z tysiąc Zedów od tego czasu, i jeszcze mi się to nie " +"znudziło." #: lang/json/talk_topic_from_json.py -msgid "" -"I haven't found them yet. Whenever I see a , a little part of me is" -" afraid it's going to be one of them. But then, maybe not. Maybe they " -"were evacuated, maybe they fought and tried to wait for me but the military " -"took them anyway? I've heard that sort of thing happened. I don't know if " -"I'll ever know." -msgstr "" +msgid "It's good you found your calling. " +msgstr "Dobrze że odnalazłeś swoje powołanie. " #: lang/json/talk_topic_from_json.py -msgid "" -"I was a cop. Small town sheriff. We got orders without even really knowing" -" what they meant. At some point one of the g-men on the phone told me it " -"was a Chinese attack, something in the water supply... I don't know if I " -"believe it now, but at the time it was the best explanation. At first it " -"was weird, a few people - - fighting like rabid animals. Then it " -"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 "" -"Byłem gliną. Szeryfem w małym miasteczku. Dostaliśmy rozkazy nie wiedząc " -"nawet co oznaczają. W którymś momencie jeden federalny powiedział przez " -"telefon że to atak Chin, coś w wodociągach... Nie wiem czy w to teraz " -"wierzę, ale na tamten czas było to najlepsze z wyjaśnień. Na początku było " -"dziwnie, paru ludzi - - walczyło jak wściekłe zwierzęta. Potem " -"było gorzej. Starałem się mieć sprawy pod kontrolą, ale byłem tylko ja i " -"zastępcy przeciwko miasto ogarniętemu zamieszkami. Później sprawy całkiem " -"się popieprzyły." +msgid "It's good you found your calling. " +msgstr "Dobrze że odnalazłeś swoje powołanie. " #: lang/json/talk_topic_from_json.py msgid "" -"A big-ass hole opened up right in the middle of town, and a " -"crawled out, right in front of the church. We unloaded into it, but bullets" -" just bounced off. Got some civilians in the crossfire. It started just " -"devouring people like potato chips into a gullet that looked like a rotting " -"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " -"have been the only person to escape. I haven't been able to even look at my" -" badge since then." +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" -"Wielgachna dziura otworzyła się w środku miasta i wypełzł z niej , " -"prosto przed kościołem. Strzelaliśmy w niego ale pociski się po prostu " -"odbijały od niego. Kilku cywilów dostało się w krzyżowy ogień. Zaczął " -"pożerać ludzi jak czipsy wsadzając ich w gardziel wyglądającą jak gnijąca " -"zębata dupa, i... straciłem rezon. Uciekłem. Chyba jako jedyny zdołałem " -"zbiec. Od tego czasu nawet nie potrafię spojrzeć na odznakę." +"Oh, no wiesz. Blah, blah, blah, miałem robotę i życie, wszyscy zginęli. " +"Wielkie mecyje. Ale będą z tobą szczery: naprawdę sądzę że tak jest mi " +"lepiej. Walka o przetrwanie każdego dnia? Nidy nie czułem się bardziej żywy." +" Zabiłem setki tych skurczybyków. Prędzej czy później jeden z nich mnie " +"dorwie, ale odejdę z myślą, że zrobiłem w końcu coś ważnego." #: lang/json/talk_topic_from_json.py msgid "" -"I was SWAT. By all rights I should be dead. We were called to control " -"\"riots\", which we all know were the first hordes. Fat lot of " -"good we were. Pretty sure we killed more civilians. Even among my crew, " -"morale was piss poor and we were shooting wild. Then something hit us, " -"something big. Might have been a bomb, I really don't remember. I woke up " -"pinned underneath the SWAT van. I couldn't see anything... but I could " -"hear it, . I could hear everything. I spent hours, maybe days " -"under that van, not even trying to get out." +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" +"No widzisz, ja w ogóle nie jestem stąd. Jechałem z południa odwiedzić syna " +"gdy to wszystko się wydarzyło. Zatrzymałem się w motelu gdy przejechał obok " +"konwój wojskowy, nakazują ewakuację do obozu FEMA." #: lang/json/talk_topic_from_json.py -msgid "But you did get out." -msgstr "" +msgid "Tell me about your son." +msgstr "Opowiedz mi o swoim synu." #: lang/json/talk_topic_from_json.py -msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." -msgstr "" +msgid "So, you went to one of the FEMA camps?" +msgstr "Więc udałeś się do jednego z obozów FEMA?" #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." msgstr "" +"Mieszka w północnej części Kanady, tam gdzie psy dupami szczekają, ze swoją " +"szaloną żona i moimi trzema wnukami. Jest inżynierem środowiskowym dla " +"jednej ze spółek wydobywających ropę i gaz ziemny w tamtych rejonach. Kocham" +" ich oboje mimo wszystko, i o ile wiem wyszli bez szwanku z tego całego " +"ambarasu na tej pipidówie. Pewnie myślą że jestem martwy, więc będą się " +"trzymać z dala od tej piekielnej dziury, i dobrze dla nich." #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" -msgstr "" +msgid "What was it you said before?" +msgstr "O czym to wspomniałeś wcześniej?" #: lang/json/talk_topic_from_json.py msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " msgstr "" +"Na boga, nie. Popieprzyło by mnie jakbym pozwolił dzieciakowi w zbyt dużym " +"mundurze mówić mi co mam do cholery robić. Mój Hummer był wyładowany i " +"gotowi do drogi przełajowej, miałem tonę paliwa, i nawet tyle broni palnej " +"ile tylko straż graniczna byłaby skłonna przepuścić wraz ze mną, Nie " +"wiedziałem przed czym niby miałbym uciekać, ale do diabła jestem pewien, że " +"nie uciekałem." #: lang/json/talk_topic_from_json.py -msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." -msgstr "" +msgid "Where did you go then?" +msgstr "Więc gdzie się udałeś?" #: lang/json/talk_topic_from_json.py msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" msgstr "" +"Na początku po prostu brnąłem na północ, aż dotarłem do wielkiej blokady " +"wojskowej. Mieli nawet te olbrzymie roboty kroczące jak w TV. Zbliżyłem się " +"żeby się rozeznać i zanim się spostrzegłem otworzyli ogień! Mogłem zginąć, " +"ale nadal miałem szybki refleks. Obróciłem się ogonem i zwiałem stamtąd. Mój" +" Hummer jednak oberwał całkiem poważnie, i na własnych plecach przekonałem " +"się, że wycieka mu paliwo po całej autostradzie. Zrobiłem kilka mil zanim " +"utknąłem pośrodku jakiegoś zadupia. Sądzę, że nadal zmierzam na północ, ale " +"teraz chyba nieco okrężną drogą, co nie?" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "To całkiem niezła historia. " + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "To całkiem niezła historia. " #: lang/json/talk_topic_from_json.py msgid "" @@ -127704,10 +129326,16 @@ 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 "" +"Byłem w szkole, klasa seniorów. Słyszeliśmy o zamieszkach... Zaczęło się od " +"dzieciaka pokazującego wideo jednej z większych zamieszek w Providence. " +"Pewnie widziałeś? To ta w które kobieta obraca się do kamery i widać że ma " +"całkowicie oderwaną dolną wargę, zwisającą swobodnie. Zrobiło się tak " +"nieciekawie, że ogłosili przez interkom o obecności chińskich narkotyków w " +"wodociągach. Jasne... Czy ktoś to w ogóle kupuje?" #: lang/json/talk_topic_from_json.py msgid "Where did things go from there?" -msgstr "" +msgstr "I jak to się dalej potoczyło?" #: lang/json/talk_topic_from_json.py msgid "" @@ -127717,10 +129345,16 @@ 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 "" +"Zgaduję, że się tylko pogorszyło, bo rada zdecydowała żeby nas zamknąć. Na " +"wiele godzin. A potem przyjechały autobusy szkolne by nas ewakuować. W końcu" +" zabrakło autobusów. Byłem jednym z tych szczęściarzy dla których zabrakło " +"miejsc. Żołnierze byli niewiele starsi ode mnie... Nie wyglądali na takich " +"co wiedzą co się dzieje. Mieszkałem kilka przecznic dalej więc się " +"wymknąłem." #: lang/json/talk_topic_from_json.py msgid "Did you get home?" -msgstr "" +msgstr "Dotarłeś do domu?" #: lang/json/talk_topic_from_json.py msgid "" @@ -127730,6 +129364,11 @@ 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 "" +"Jasne. Po drodze spotkałem trochę na serio. Goniły mnie, ale na " +"torze wyścigowym dawałem radę, wiec ich zgubiłem... Ale nie mogłem dostać " +"się do domu, było ich zbyt wielu. Więc skończyło się na kolejnym bieganiu. " +"Ukradłem rower i uciekałem nadal. Teraz już lepiej mi idzie zabijanie ich, " +"ale do domu nadal nie dotarłem. Chyba obawiam się co zastanę." #: lang/json/talk_topic_from_json.py msgid "" @@ -127788,6 +129427,10 @@ msgstr "" "straszne rzeczy z nich wychodziły. Zdecydowałem że bezpieczniej będzie mi " "pozostać w zamkniętym domu." +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "Przykro mi to słyszeć." + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -127826,6 +129469,14 @@ msgstr "" "więcej w połowie zmiany ja... cóż, załamałem się. Widziałem tak potworne " "rany, a potem... , nawet nie mogę o tym mówić." +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +msgstr "Mogę pomóc zdjąć to z twoich barków." + +#: lang/json/talk_topic_from_json.py +msgid "Suck it up. If we're going to work together I need to know you." +msgstr "Przełknij to. Jak mamy pracować razem muszę cię znać." + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "Nie. Nie mogę. Po prostu nie." @@ -127906,6 +129557,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "Co zobaczyłeś będąc na dachu?" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Dziękuję, że mi to powiedziałeś. " + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -128005,6 +129660,10 @@ msgstr "" " przez krótki czas, ale obszar wokół szpitala był zbyt gorący by to " "kontynuować, wiec udałem się w bardziej zielone miejsca, i oto jestem." +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Dziękuję, że mi to wszystko powiedziałeś. " + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -128014,10 +129673,16 @@ 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 "" +"Żyję z dala od miasta. Słyszałem ze mniejsze miejscowości przetrwały dłużej " +"niż duże miasta. Bez znaczenia dla mnie, bo byłem na polowaniu wieńczącym " +"zimę, wiec od tygodnia nie byłem w mieście. Pierwszą oznaką że coś się " +"dzieje źle jak zobaczyłem grzyb dymu nad starą opuszczoną bazą wojskową, " +"pośrodku głuszy. Nie zaprzątałem sobie tym głowy. Potem zaatakował mnie " +"demon." #: lang/json/talk_topic_from_json.py msgid "A demon?" -msgstr "" +msgstr "Demon?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128029,6 +129694,13 @@ 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 "" +"Ta, był jak .... krab w miękkiej skorupie, z mackowatymi otworami gębowymi, " +"i gadał językami. Zobaczyłem to zanim ono zobaczyło mnie, i dorwałem to z " +"mojego Remingtona. Tylko się wkurzyło, ale oddałem kolejne dwa strzały jak " +"szarżowało. Trzeci lub czwarty strzał położył to w końcu. Domyśliłem się, że" +" gówno się wylało, jakimś sposobem. Wróciłem do chaty i przez jakiś czas tam" +" obozowałem, ale musiałem się zwinąć gdy banda się pojawiła i " +"wywróciła ją do góry nogami. Niedługo później spotkałem ciebie." #: lang/json/talk_topic_from_json.py msgid "" @@ -128041,6 +129713,18 @@ msgid "" "in a time where I don't feel like I need to convince you I'm telling the " "truth." msgstr "" +"Brat i ja byliśmy na polowaniu. Widzieliśmy przelatujące nad głowami " +"śmigłowce... duże, wojskowe, wyładowane kosmicznym sprzętem wojskowym jaki " +"widuje się tylko w TV. Działka laserowe nawet. Lecieli w kierunku rancza " +"naszych rodziców. Coś w tym widoku naprawdę nami wstrząsnęło, więc i my " +"udaliśmy się w tym kierunku... niewiele już nam zostało jak zobaczyliśmy to " +"wielkie, latające oko, które pojawiło się znikąd. Ha. Ciężko uwierzyć, że " +"żyjemy w czasach, w których nie muszę cię, jak sądzę, przekonywać, że to co " +"mówię to prawda." + +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "Co się potem zdarzyło?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128050,10 +129734,15 @@ 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 "" +"Patrzyliśmy jak oko wystrzeliło w jeden z helikopterów Apache jakiś promień." +" Śmigłowiec odpowiedział ogniem, ale i tak poszedł w dół. Spadał prosto na " +"nas... skręciłem gwałtownie, zjechałem mu z drogi, ale kawałek śmigłowca " +"wbił się w podłogę i nasza ciężarówka wywinęła orła poza drogę. Uderzenie " +"zgasiło mi światła pod kopułą. Brat... nie miał tyle szczęścia." #: lang/json/talk_topic_from_json.py msgid "Oh, no." -msgstr "" +msgstr "Oh, nie." #: lang/json/talk_topic_from_json.py msgid "" @@ -128067,10 +129756,18 @@ msgid "" " grabbed my hunting knife and ran, but my brother got out and started " "crawling after me." msgstr "" +"Ta, ten... wypadek go wykończył, ale kiedy się ocknąłem już się reanimował. " +"Dzięki bogi za pasy bezpieczeństwa, nie? Syczał i warczał, wymachując " +"ramionami, wisząc głową w dół. Z początku myślałem że jest ranny, ale rzucał" +" się na mnie za każdym razem jak chciałem z nim rozmawiać. Jego ramię było " +"poważnie uszkodzone i zamiast odpiąć pas... odrywał je ciągnąc za pas. To " +"razem z historią z helikopterem uwiadomiło mi jak porąbane stały się sprawy." +" Złapałem mój nóż myśliwski i uciekłem, ale mój brat się wydostał i zaczął " +"za mną pełznąć." #: lang/json/talk_topic_from_json.py msgid "Did you keep running?" -msgstr "" +msgstr "Uciekałeś dalej?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128082,10 +129779,18 @@ 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 "" +"Biegłem przez chwilę, po czym zobaczyłem żołnierzy zombie wyczołgujących się" +" z rozbitego helikoptera. Mieli taki sam wygląd jak mój brat, i z jednej " +"strony miałem ich a z drugiej jego. Geniuszem nie jestem ale widziałem kilka" +" filmów: domyśliłem się jak to działa. Nie miałem ochoty mierzyć się z " +"kevlarowym pancerzem z moim nożem, wiec zawróciłem i zmierzyłem się z tamtym" +" zombie. Nie mogłem pozostawić brata... w takim stanie. Więc zrobiłem co " +"musiałem, i będę musiał z tym żyć po wieki." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me your story. " msgstr "" +"Dziękuję ci za opowiedzenie mi swojej historii. " #: lang/json/talk_topic_from_json.py msgid "" @@ -128097,10 +129802,17 @@ msgid "" "Pat.Dionne@FreeMailNow.co.ru... Even more surprised when it was a series of" " nostalgic references to a D&D game we played years earlier." msgstr "" +"Dla mnie wszystko to zaczęło się kilka dni przez . Jestem " +"biochemikiem. Robiłem pracę habilitacyjną z genialnym kolegą, Pat Dionne. " +"Nie rozmawiałem z Pat od wieków... Plotka głosi że rząd zwąchał temat naszej" +" rozprawy, domyślił się że Pat odwalił ciężką robotę, i kontakt nam się " +"urwał na lata. Nieco się więc zdziwiłem że dostaję nagle e-mail z adresu " +"Pat.Dionne@FreeMailNow.co.ru... A jeszcze bardziej gdy widzę że jest pełna " +"nostalgicznych wspomnień gier D&D w jakie graliśmy przed laty." #: lang/json/talk_topic_from_json.py msgid "I don't see where this is going." -msgstr "" +msgstr "Nie wiem do czego to zmierza." #: lang/json/talk_topic_from_json.py msgid "" @@ -128111,10 +129823,17 @@ 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 "" +"Cóż, odniesienia nie były do końca zgodne. Pat odwoływał się do rzeczy, w " +"które nie graliśmy. Kontekst był bliski, ale niewłaściwy, ale jako " +"poskładałem to do kupy ułożyła się opowieść. Opowieść o naukowcu którego " +"dzieci były zakładnikami skorumpowanego rządu, zmuszanego do badań nad " +"czarna magią dla nich. Był jeszcze rozstrzygający wątek: ostrzeżenie, że " +"magia się wydostała, ostrzeżenie by wszyscy herosi opuścili królestwo zanim " +"upadnie." #: lang/json/talk_topic_from_json.py msgid "Okay..." -msgstr "" +msgstr "Okey..." #: lang/json/talk_topic_from_json.py msgid "" @@ -128124,10 +129843,15 @@ msgid "" "time and skip town for a while. I packed for the end of the world. Turns " "out, I packed the right stuff." msgstr "" +"Słuchaj, wiem że brzmi to głupio. Takie jest D&D. W każdym razie, coś w " +"tonie wypowiedzi postawiło mnie na nogi. Wiedziałem, że to ważne. Straciłem " +"nieco czasu nad rozwodzeniem się nad tym, po czym zdecydowałem wykorzystać " +"pozostały urlop i udać się za miasto na jakiś czas. Zapakowałem bagażnik jak" +" na koniec świata. Wychodzi na to, że dobór bagażu był dobry." #: lang/json/talk_topic_from_json.py msgid "Was there anything else of use in that email?" -msgstr "" +msgstr "Było coś jeszcze użytecznego w tym mailu?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128135,6 +129859,347 @@ msgid "" "could probably decipher it, but I'm sure those burned up in ." " They bombed those labs, you know." msgstr "" +"Było, w rzeczy samej, ale enigmatyczne. Jakbym miła kopię notatek Pat, " +"pewnie bym to rozszyfrował, ale pewnie się spaliły w . " +"Zbombardowali laboratoria jak wiesz." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" +"Byłem spóźniony na ewakuację, gdy wszystko poszło w diabły. Utknąłem w " +"mieście na kilka dni, ocalałem kryjąc się w piwnicach jedząc ciastka " +"harcerskie popijając ciepłym piwem korzennym. W końcu udało mi się wymsknąć " +"nie będąc schwytanym przez . Spędziłem trochę czasu w opuszczonym " +"markecie, ale potrzebowałem żywności, więc wyprawiłem się walczyć o swoje do" +" lasu. Średnio mi to wychodziło, więc cieszę się, że się zjawiłeś." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" +"Leżałem w domu z grypą, gdy świat się zawalił, i jak wydobrzałem na tyle by " +"pobiec do sklepu po zakupy... Cóż, biegłem już stale od tej pory." + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "No dalej, nie zostawiaj mnie w zawieszeniu." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" +"Okej, cóż, odpłynąłem nieco w te pierwsze dni. Wiem ze były burze, ale " +"majaczyłem w gorączce i te sprawy. Po prawdzie powinienem był się udać do " +"szpitala, ale pewnie wtedy byłbym teraz martwy. Nie wiedziałem co jest " +"częścią snu a co końcem świata. Pamiętam jak poszedłem do lodówki i nie było" +" w niej światła a woda była ciepła. To było zanim gorączka się obniżyła. " +"Nadal byłem przymulony gdy skończył mi się rosół, więc chwilę mi zajęło " +"zorientowanie się jak martwy i mroczny jest mój budynek gdy wyszedłem na " +"zewnątrz." + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "Co się wydarzyło po tym jak wyszedłeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" +"Pewnie pamiętasz jak wyglądały miasta. To był chyba dzień czwarty. Jak tylko" +" wyszedłem zorientowałem się co się dzieje, a raczej zdałem sobie sprawę, że" +" nie wiem co się dzieje. Widziałem kilku protestujących rozwalających " +"samochód, i spostrzegłem że jeden z nich rozbija czaszkę kobiety. Odwołałem " +"spacer do warzywniaka, i pobiegłem do mieszkania zanim mnie zauważyli, i " +"zabunkrowałem się tam tak długo jak mogłem. Rzeczy stały się relatywnie " +"ciche gdy martwi przeważyli liczebnie nad żywymi, więc zacząłem szabrować u " +"sąsiadów zabijając ich ponownie w razie potrzeby. W końcu otoczyły" +" budynek i musiałem się wydostać i udać w stronę wzgórz na starym rowerze." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Dziękuję, że mi to powiedziałeś. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"My wife made it out with me, but got eaten by one of those plant " +"monsters a few days before I met you. This hasn't been a great year for me." +msgstr "" +"Moja żona zdołała uciec ze mną, ale pożarł ją jeden z tych " +"roślinnych potworów kilka dni przed tym jak cię spotkałem. To nie był dla " +"mnie najlepszy rok." + +#: 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 "" +"Mój mąż zdołał uciec ze mną, ale pożarł go jeden z tych roślinnych " +"potworów kilka dni przed tym jak cię spotkałem. To nie był dla mnie " +"najlepszy rok." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "Opowiedz mi o tych roślinnych potworach." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" +"Tak to bywa, czy nie? To koniec czasów, Nie chcę o tym rozmawiać więcej niż " +"trzeba. I szczerze sądzę, że nie pasowałem do starego świata. W dziwny " +"sposób wydaje mi się ze teraz mam cel. Masz czasem takie wrażenie?" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +msgstr "Nie, to pokręcone." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I get that. Sometimes I feel like my existence began shortly after " +"the cataclysm." +msgstr "" +"Tak, mam to samo. Czasem wydaje mi się, że moje istnienie zaczęło się " +"wkrótce po kataklizmie." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" +"Zgaduje ze ci z nas którzy dotrwali do tej chwili przeżyli z jakiegoś " +"powodu, lub coś w tym stylu. Nie chodzi mi o jakiś cel religijny, tylko " +"że... jesteśmy ocaleni." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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, tak, potrafię sobie wyobrazić czemu tak myślisz. Nie mówię że to dobra" +" apokalipsa. Mam tylko na myśli że teraz wiem co robię każdego dnia. I tak " +"zabiłbym setkę zombie za dostęp do internetu i noc spędzoną na oglądaniu " +"słabych filmów z... wybacz. Zmieńmy temat." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" +"Tak, widziałeś je już może? To takie chodzące kwiaty z " +"wielkimi żądłami pośrodku. Podróżują w stadach. Nie znoszą zombie, i " +"używaliśmy ich jako osłony by oczyścić hordę truposzy. Niestety okazało się," +" że roślinki są lepszymi tropicielami od . Niemal wyglądają na " +"inteligentne... Ledwo mi się udało zbiec, tylko dlatego że były, uh, zajęte " +"czymś innym." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "Przykro mi że kogoś straciłeś." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" +"To tylko kolejna bajka o miłości i stracie. Nic nad czym lubiłbym " +"się rozwodzić." + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "Nieważne. Wybacz, że o to pytałem." + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "Doceniam staranie, ale nie sądzę by to pomogło. Odpuść." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "Oh, . To nie ma nic wspólnego z tobą, ani z nami." + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "W porządku. Miałem kogoś. I ją straciłem." + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "W porządku. Miałam kogoś. I jego straciłam." + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Była w domu gdy bomby spadły i świat poszedł w diabły. Byłem w pracy. " +"Starałem się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." +" Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " +"samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " +"cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " +"przyłączyć się do wrogów. Gdyby nie moja żona, po prostu bym odszedł, ale " +"robiłem co mogłem i się prześliznąłem. Cudem uszedłem z życiem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Był w domu gdy bomby spadły i świat poszedł w diabły. Byłam w pracy. " +"Starałam się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." +" Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " +"samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " +"cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " +"przyłączyć się do wrogów. Gdyby nie mój mąż, po prostu bym odeszła, ale " +"robiłam co mogłam i się prześliznęłam. Cudem uszłam z życiem." + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "Musiałeś widzieć masę strasznych rzeczy." + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "Zgaduję, że w domu było źle." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" +"Tak. W rzeczy samej. Dwa dni zajęło mi przebycie miasta na nogach, obozując " +"w śmietnikach i podobnych miejscach. Zacząłem przemieszczać się bardziej w " +"nocy, i nauczyłem się właściwego sposobu unikania wojskowych. Byli jak " +"magnes na , i zwykle stacjonowali tam gdzie potwory szły. Niektóre " +"części miasta były z początku spokojniejsze. Kilka przecznic gdzie ludzi " +"ewakuowano lub przemieszczono, a raczej się tam nie zapuszczały. " +"Później w te okolice zaczęli napływać inni tacy jak ja, więc zmieniłem " +"podejście i przebiegałem przez wysadzone centrum. I tak musiałem przejść " +"tamtędy, by dostać się do domu. W czasie gdy zmieniłem plan walki już " +"wygasały, wiec głównie unikałem zwracania uwagi zombie i innych rzeczy." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" +"Pierwszym ostrzeżeniem było to że musiałem przejść z bardziej zachowanych " +"części miasta do wypalonych, by dostać się do domu. Dalej było gorzej. Zaraz" +" przed domem była barykada policyjna z dwiema całkiem bezużytecznymi " +"wieżyczkami siedzącymi bezczynnie i obserwującymi przebiegające zombie. To " +"było zanim przestawiono je na zabijanie wszystkiego dookoła, gdy jeszcze " +"zabijały tylko ludzi naruszających ich granice. Szczęśliwe czasy, zawsze " +"można liczyć na to, że biurokraci spieprzą wszystko w najbardziej " +"spektakularny możliwy sposób. W każdym razie dom był częściowo zawalony, " +"furgonetka SWAT przeorała go na pół. Sądziłem, że wiem co zastanę w środku, " +"ale zbyt wiele przeszedłem by teraz odwrócić się plecami." + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "Musiałeś widzieć masę strasznych rzeczy po drodze." + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "Dostałeś się do wnętrza domu?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"Dostałem się. Kilka godzin zajęło zanim pojawiła się sposobność. I chcesz " +"poznać najbardziej popieprzoną rzecz? Z tego wszystkiego dookoła? Moja żona " +"wciąż żyła. Była przez cały ten czas w piwnicy, przyszpilona kawałkiem " +"zapadniętej podłogi. Straciła masę krwi i majaczyła gdy ją odnalazłem. Nie " +"mogłem jej uwolnić więc ja napoiłem i nakarmiłem, i zostałem z nią trzymając" +" ją za rękę aż odeszła. A potem... cóż, zrobiłem to co trzeba teraz robić z " +"umarłymi. W końcu spakowałem ostatnie ułomki mojego życia, i staram się nie " +"patrzeć wstecz." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"Dostałam się. Kilka godzin zajęło zanim pojawiła się sposobność. I chcesz " +"poznać najbardziej popieprzoną rzecz? Z tego wszystkiego dookoła? Mój mąż " +"wciąż żył. Był przez cały ten czas w piwnicy, przyszpilony kawałkiem " +"zapadniętej podłogi. Stracił masę krwi i majaczył gdy go odnalazłam. Nie " +"mogłam go uwolnić więc go napoiłam i nakarmiłam, i zostałam z nim trzymając " +"go za rękę aż odszedł. A potem... cóż, zrobiłam to co trzeba teraz robić z " +"umarłymi. W końcu spakowałam ostatnie ułomki mojego życia, i staram się nie " +"patrzeć wstecz." #: lang/json/talk_topic_from_json.py msgid "" @@ -128142,10 +130207,13 @@ 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 "" +"Byłem w szkole w czasie . Zabawne, co ciekawe: zbierałem " +"sprzęt by poprowadzić grę RPG w stylu surwiwal zombie z kolegami w weekend. " +"Ha, nie sądziłem, że zmieni się w LARP! Okey... Nie, to nie było śmieszne." #: lang/json/talk_topic_from_json.py msgid "How did you survive school?" -msgstr "" +msgstr "Jak przeżyłeś w szkole?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128159,24 +130227,35 @@ 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 "" +"Cóż, mogę być wielkim nerdem, ale nie jestem idiotą. Poza tym jestem" +" koneserem tematu. Już wtedy słyszeliśmy o ludziach wracających z zaświatów," +" i między innymi dlatego przygotowywałem to RPG. Jak pojawiły się gliny by " +"zamknąć szkołę udało mi się wymknąć tyłem. Mieszkam daleko od miasta, ale " +"nie było szans żebym złapał autobus do domu więc poszedłem pieszo. Dwie " +"godziny. Słyszałem wiele syren, a nawet widziałem myśliwce na niebie. Robiło" +" się późno gdy wróciłem do domu, ale rodzice jeszcze nie wrócili z pracy. " +"Zostałem w domu, licząc na to że wrócą. Wysyłałem smsy ale bez odpowiedzi. " +"Po kilku dniach, cóż... Wiadomości były coraz to gorsze aż w ogóle zamarły." #: lang/json/talk_topic_from_json.py msgid "What about your parents?" -msgstr "" +msgstr "Co z twoimi rodzicami?" #: lang/json/talk_topic_from_json.py msgid "What got you out of there?" -msgstr "" +msgstr "Co cię stamtąd wyprowadziło?" #: 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 "" +"Nie jestem głupi. Wiem, że już ich nie ma. Kto wie gdzie... Może w schronie " +"ewakuacyjnym, może w obozie FEMA. Większość ludzi zginęła." #: lang/json/talk_topic_from_json.py msgid "What got you out of the house?" -msgstr "" +msgstr "Co cię wyciągnęło z domu?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128186,10 +130265,670 @@ msgid "" "When they started knocking at the door, I slipped out the back and took to " "the street. And here I am." msgstr "" +"W końcu przyszły zombie. Domyśliłem się że się pojawią. Zanim padła sieć, " +"było dużo filmów online, z których jasno wynikało co się dzieje. Wybrałem " +"trochę dobrego sprzętu i wypchałem torbę zapasami... Jak zaczęły walić do " +"drzwi wymknąłem się tyłem, i wyszedłem na ulicę. I oto jestem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"Zanim nastał? Kogo to obchodzi? To nowy świat, i tak, jest " +"nieźle . Jednak to jedyny jaki mamy, więc nie roztrząsajmy " +"przeszłości gdy powinniśmy pozbierać do kupy to minimum co nam jeszcze " +"zostało." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "Szanuję to." + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" +"By być szczerym... tak naprawdę nie pamiętam. Przypominam sobie niejasne " +"przebłyski szczegółów życia zanim świat stał się jaki jest, ale sam " +"? Zamazany obraz. Nie wiem jak dostałem się w miejsce gdzie " +"teraz jestem, ani jak się to wszystko stało. Sądzę że coś złego musiało mi " +"się przydarzyć. Albo mocno oberwałem w głowę. Pewnie jedno i drugie." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" +"Zabrzmi jak wariactwo, ale obudziłem się w lesie pośrodku głuszy, zmarznięty" +" jak diabli, jakiś tydzień przed spotkaniem ciebie. Miałem na sobie ubranie," +" głowa bolała mnie jak nigdy, i nie miałem ani śladu wspomnień o " +"czymkolwiek. Tak że, znam rzeczy. Potrafię mówić, rozumiem i mam " +"umiejętności... ale nie pamiętam skąd to wszystko pochodzi. Miałem w " +"kieszeni prawo jazdy i tylko stąd wiem jak się nazywam." + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "Jak myślisz, co się stało?" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "To faktycznie brzmi trochę jak wariactwo..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" +"Było kilka śladów. Choćby ból głowy który trwał kilka dni, ale żadnych ran i" +" siniaków. I ślady spalenizny na drzewach w dziwnych tnących wzorach wokół " +"mnie. Cokolwiek mi się przydarzyło, musiało być to nieźle pokręcone " +"dziadostwo." + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "Próbujesz zatem odzyskać wspomnienia?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" +"Cóż, brak wypomnień to dziwne uczucie, ale bądźmy szczerzy: czy to coś " +"polepszy? Z tym co się dzieje wokół, dam sobie rękę uciąć że moje " +"wspomnienia nie należą do szczęśliwych. Oprócz prawa jazdy w kieszeni były " +"zdjęcia dzieci... nie żeby to pobudziło jakieś wspomnienie. Nie widziałem " +"żadnych dzieci wokół. Może utrata zmysłów to dar losu. Do diabła, może to " +"jakieś załamanie nerwowe i mój umysł sam to sobie zrobił. Szczerze mówiąc " +"wole się skupić na przeżyciu, i się tym nie martwić." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" +"Wiem, że to wariactwo. Brzmi jak udawana amnezja z kreskówki o Króliku " +"Bugsie. Widzisz? Jak mogę to wiedzieć, a nie pamiętać skąd to wiem? Widzisz," +" pamiętam Królika Bugsa, ale nie przypominam sobie abym kiedykolwiek " +"siedział i oglądał tą kreskówkę." + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "O czym mówiłeś wcześniej?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" +"Kim byłem zginęło. Wszystko to spaliło się w . Rozumiesz? To " +"kim jestem zaczęło się dwa dni od początku. Uciekałem przed piekielnie " +"wielkim zombie, uciekałem jak zawsze to robiłem, gdy znalazłem metalowego " +"baseballa leżącego ot tak na ziemi. Wziąłem to za znak i rozbiłem tego " +"dziada na miazgę... i wtedy stałem się sobą. Nadal uciekam, bo kto teraz nie" +" ucieka, ale teraz stawiam na swoim." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "Co się wydarzyło z tobą potem?" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "To nie jest chyba zdrowe tak porzucić swoją przeszłość..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" +"Szedłem naprzód, uciekając jak musiałem i walcząc gdy mogłem, jak każdy z " +"nas. Zacząłem uczyć się kim jestem. Straciłem pałkę w walce z jakimś " +"elektrycznym zombi. Ładował błyskawicami w kij, więc go upuściłem i użyłem " +"pobliskiej deski, ale musiałem uciekać i zostawiłem starą pałkę za sobą. " +"Niemal wtedy zginąłem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" +"Słuchaj. Mówiłem wyraźnie, i jak będziesz drążył, to się wkurwię. Kim byłem " +"przepadło. Zginęło w mroku. Nie pierdol o 'zdrowiu', i nie pytaj " +"więcej." + +#: 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 "" +"Nie mówmy o tym, ok? Sama myśl o tym boli. Straciłem tylu bliskich... i " +"sądzę że ty podobnie. Skupmy się na tu i teraz." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "Szanuję to. " + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "W porządku. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" +"Z początku nawet nie wiedziałem o . Byłem daleko stąd, z dala" +" od najgorszego. Mój samochód zepsuł się na autostradzie, i czekałem " +"godzinami na lawetę. W końcu robiłem obóz w krzakach przy drodze, i dobrze, " +"bo ciężarówka - prowadzona a jakże - przez martwego kierowcę, zmieniła mój " +"wóz w plamę na drodze. Żal mi tych skubańców, którzy byli w miastach jak to " +"się stało." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "Jak przetrwałeś w naturze?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "Co widziałeś w te pierwsze dni?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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, sam tego do końca nie pojmuję. Te pierwsze dni to był ciężki czas na " +"bycie na zewnątrz, nie ma co do tego wątpliwości. Dopadła mnie jedna z tych " +"piekielnych burz, i niemal wypaliła mi skórę. Udało schować mi się pod " +"samochodem, leżąc na moim namiocie. Zniszczyłem go, ale lepiej on niż ja. Z " +"tego co słyszałem, to jednak miałem szczęście. To było bodaj najgorsze co " +"przeżyłem. Nie wpadłem na żadnego demonicznego stwora, które jak słyszałem " +"napadły na miasta, wiec raczej mi się poszczęściło." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" +"Oprócz kwaśnego deszczu widziałem głównie ludzi uciekających z miast. " +"Starałem się trzymać z dala od dróg, ale nie chciałem się też zgubić w " +"lesie, wiec trzymałem się w głębokich obrzeżach. Widziałem samochody, busy i" +" ciężarówki wyładowane ewakuowanymi. Wielu odjechało ale sporo zatrzymało " +"się z braku paliwa i innych powodów. Niektóre były tak wyładowane sprzętem " +"że ludzi z nich dosłownie zwisali. Zatrzymanie się było wyrokiem śmierci bo " +"zmarli podążali wzdłuż dróg wyłapując ocalonych." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" +"Pojechałem z przyjaciółką na ryby gdy to się stało. Nie wiem w jakiej " +"dokładnie kolejności układały się dni... pierwszym śladem że nadeszła " +"apokalipsa było nadejście jakiego trującego wiatru, z dodatkiem jakieś " +"kwaśnej mgły która paliła oczy i skórę. Nie wiedzieliśmy z czym to powiązać," +" więc skryliśmy się do środka by odpocząć, a gdy tam byliśmy na wszystko " +"opadł dziwny pył." + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "Co się wydarzyło po kwaśnej mgle?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" +"Rankiem okolice jeziora pokrywała różowa pleśń, w której przechadzały się " +"grzyby strzelające chmurami pyły w powietrze. Nie wiedzieliśmy co się " +"dzieje, ale żadne z nas nie chciało zostać by to sprawdzić. Spakowaliśmy " +"sprzęt, odwiązaliśmy łódź i popłynęliśmy w górę rzeki." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "Co się stało twoją przyjaciółką?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" +"Rozchorowała się kilka godzin po opuszczeniu jeziora. Wymiotowała narzekając" +" na ból stawów. Zabrałem nas do małego sklepu na brzegu rzeki, o którym " +"wiedziałem, licząc na to, że będą mieli coś co może pomóc, lub choćby jakieś" +" wieści o tym co się dzieje." + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "Zgaduję, że nie wiedzieli." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" +"Sklep był faktycznie pusty. Jednak ona była zdesperowana więc się włamałem. " +"Dowiedziałem się więcej o chaosie w miastach ze sklepowego radia. Zdobyłem " +"przyjaciółce trochę środków przeciwbólowych i przeciwwymiotnych, ale gdy " +"wróciłem do łodzi, cóż... było już dla niej za późno." + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "Umarła?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" +"Chciałbym. To by było litościwe. Wydawała z siebie ohydny duszący wrzask, a " +"jej ciało rozrywało się samo w strzępy. Grzyby wystrzeliwały z każdej jej " +"części. Ja... Ja uciekłem. Teraz żałuję że nie ulżyłem jej w cierpieniu, ale" +" powrót tam teraz byłby samobójstwem." + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "To okropne. " + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "To okropne. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" +"Oooo, chłopcze, byłem na to gotów. Wiatry wiały w tym kierunku od lat. " +"Miałem pełen schron ostatniego człowieka zorganizowany za miastem. Więc " +"oczywiście odezwało się moje szczęście: byłem całe mile poza miastem na " +"konferencji w delegacji gdy Chiny zaatakowały i świat się skończył." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "Co się z tobą stało?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "A co z twoim schronem?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" +"Nasza konferencja odbywała się w zacisznym zajeździe nad jeziorem. Wszyscy " +"otrzymaliśmy alarmową transmisję na komórki, ale tylko ja doczytałem " +"pomiędzy wierszami i wiedziałem co się szykuje: bio-terroryzm na szeroką " +"skalę. Nie miałem zamiaru zostać i przekonać się, który z kolegów to uśpiony" +" agent. Choć postawił bym stówę, że to był Lee. W każdym razie, ukradłem " +"pickupa koordynatora i udałem się w kierunku schronu." + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "Dostałeś się do niego?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" +"Nie, ujechałem tylko dwie mile. Rozbiłem się o jakiś piekielny pomiot czy " +"też bio broń, szaleńczo skrzeczący zrobiony z ramion i nóg i głów " +"z różnych stworzeń, w tym ludzi. Chyba to zabiłem, ale pewne jest że to " +"zabiło mój wóz. Zabrałem torbę podróżną i uciekłem po tym jak na deser " +"posłałem w to coś kilka kulek. Mam nadzieję, że więcej czegoś takiego nie " +"zobaczę." + +#: 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 "" +"Wciąż tam nie dotarłem. Za każdym razem gdy próbowałem musiałem oddalić się " +"z uwagi na . Kto wie, może kiedyś." + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +msgstr "Możesz mi opowiedzieć tą historię jeszcze raz?" + +#: 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, człowieku. Myślałem, że jestem gotowy. Miałem to wszystko zaplanowane. " +"Torby ze sprzętem. Mapy z trasami ucieczki. Bunkier w ogródku." + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "Brzmi jakby to nie wypaliło." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "Hej, bardzo bym był zainteresowany zerknięciem na te mapy." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" +"Zależy od twojej definicji. W końcu żyję, czyż nie? Gdy samo piekło spadło z" +" nieba a potwory zaatakowały miasta, zabrałem sprzęt i zamknąłem się w " +"bunkrze. Moje kamery na zewnątrz działały przez wiele dni; widziałem " +"wszystko co tam się dzieje. Widziałem jak te rzeczy przechodzą obok. Nadal " +"mam koszmary o sposobie w jaki ich ciała się poruszają, jakby złamały świat " +"po to tylko by tu być. Nie miałem nic lepszego do roboty. Widziałem jak drą " +"w strzępy policję i wojsko, jak martwi wstają by walczyć z żywymi. Widziałem" +" miłą starszą panią z ulicy, która urwała łeb psu mojego sąsiada. Widziałem " +"ciało żołnierza w drgawkach, rosnące w zelektryfikowane cielsko olbrzyma. " +"Widziałem jak to wszystko się działo." + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "Czemu opuściłeś bunkier?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" +"Szczerze? Planowałem umrzeć. Po tym co widziałem, lekko oszalałem. Myślałem " +"że to pewny koniec, ze nie ma sensu walczyć. Myślałem że na zewnątrz nie " +"przetrwam minuty, ale nie mogłem się zdecydować zakończyć tego tam. " +"Wyszedłem planując, że mnie wykończą, ale co mogę powiedzieć? " +"Instynkt samozachowawczy to zabawna rzecz, i zabiłem te wokół bunkra. " +"Zapewne potrzebna mi była doza adrenaliny. Trzyma mnie na nogach do teraz." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Dziękuję, że mi to wszystko powiedziałeś. " + +#: 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 "" +"Tak, chcę. Zgodzę się rozstać z nimi za powiedzmy $1000. Prosto z twojego " +"konta w banku, żadnych kart płatniczych." + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "[$2000] Umowa stoi." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "Cokolwiek jest na tej mapie przyniesie pożytek nam obojgu." + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" +"A może powiedzmy, że ty oddasz to a ja się nie wkurwię?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "Wybacz zmianę tematu. O czym to mówiłeś?" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "W porządku. Oto one." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "Dzięki! O czym to wspomniałeś wcześniej?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "Nie ze mną te numery. Chcesz mapy, dawaj forsę." + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "Dobra. O czym to wspomniałeś wcześniej?" #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +"Siedziałem w kiciu do , ale uciekłem. Piekielna historia." + +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "Opowiedz mi tą \"piekielną historię\"" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "Za co siedziałeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" +"To historia sama w sobie, przyjacielu. Miałem jedną z największych plantacji" +" ziela na wschodnim wybrzeżu. Hah, historie którym mógłbym opowiedzieć... " +"ale nie opowiem. To już daleko za mną." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" +"To taka trochę ... taka rzecz. Zaczęło się jako wyzwanie. Skończyło się tym " +"że stworzyłem broń biologiczną. Nie została użyta, nic z tych rzeczy, ale " +"cóż, wymknęła się spod kontroli." + +#: 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 "" +"Unikanie podatków. Byłem księgowym, i pomagałem szefowi wyprowadzić masę " +"kasy na różne sprytne sposoby. Nie za sprytne jak się okazuje..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" +"Brzmi lepiej niż w rzeczywistości: posiadanie nielicencjonowanego " +"akceleratora atomowego." + +#: 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 "" +"Zajmowałem się trochę czarnym rynkiem obrotu organami. Brzmi gorzej niż w " +"rzeczywistości, ale rzeczywistość też nie była różowa." + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" +"Wielokrotne zarzuty posiadania. Byłem kiedyś mocno uzależniony od mety." + +#: 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 "" +"Zarzut napaści. Nie wchodźmy w szczegóły, ale powiedzmy że nie chcesz przy " +"mnie paplać japą jak oglądam spokojnie film, okej?" + +#: 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 "" +"Wiesz, nie chcę ponownie o tym mówić. To już za mną, i niech tak zostanie." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" +"Okej, cóż, byłem w złym miejscu o złej porze. Była duża rozróba, nie " +"oddaliłem się, więc mnie i paru innych wsadzili do izolatek, podczas gdy " +"jeszcze paru innych odesłali do izby chorych. Niektórych nieźle " +"poharatanych, wiec się teraz zastanawiam, czy któryś z nich był naszym " +"pierwszym ." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "Jak się wydostałeś z zamknięcia?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" +"Słyszałem strzały, nawet z dołka. Nie za wiele wrzasków i innych. To był " +"pierwszy znak że coś się święci. Potem przestało przychodzić żarcie. Dalej " +"zgasły światła. Byłam tam od wielu godzin, może dni, aż w końcu na kraty " +"padło światło latarki oślepiając mnie. To był strażnik. Wypuścił mnie, " +"opowiedział co się dzieje. Myślałem, że mu odbiło ale coś w jego oczach... " +"Uwierzyłem mu." + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "Co wtedy zrobiłeś?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" +"Wypuściliśmy pozostałych z izolatek. Byliśmy odcięci, roboty strażnicze " +"oszalały i nikogo nie wypuszczały, a pozostali oprócz tego jednego strażnika" +" pozmieniali się. Parę dni spędziliśmy masakrując i próbując " +"obmyślić bezpieczny sposób ominięcia robotów. Kończyło się jedzenie. W końcu" +" wybraliśmy najgorszy, jedyny plan jaki wymyśliliśmy: zaciągnęliśmy metalowe" +" szafki do hallu, użyliśmy ich jako tarcz, pchając je przed sobą aż byliśmy " +"dostatecznie blisko by załatwić sensory botów z broni." + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "I to faktycznie zadziałało?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" +"Zadziałało lepiej niż to sobie wyobrażałem, taka prawda. Myśleliśmy że boty " +"będą strzelać w szafki, ale chyba uznały nas za dalekich kuzynów. Było nasz " +"sześciu a ich cztery, i czterem z nas udało się wydostać." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "Co się stało z pozostałymi, którzy się wydostali?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" +"Strażnik udał się w swoją stronę samotnie. Nie ufał nam, i nie mam do niego " +"pretensji. Pozostała dwója chciała zawiązać bandycką szajkę. Nie leżało mi " +"to wiec rozstaliśmy się na całkiem przyjaznych warunkach. Na strażnika " +"wpadłem jeszcze parę razy. Myślałem czy by się nie przyłączył do tułaczki, " +"ale kto wie. Nie sądzę żeby przyjął ofertę, zawsze byłbym dla niego " +"skazańcem. Jak chcesz spróbować mogę ci powiedzieć gdzie ostatnio go " +"widziałem. Nie tak dawno przed spotkaniem ciebie, i szło mu całkiem nieźle, " +"więc może jest jeszcze w okolicy." #: lang/json/talk_topic_from_json.py msgid "" @@ -128203,12 +130942,23 @@ msgid "" "collateral damage after it got blasted off Orleans by a tank. I was already" " busy running frantically by then." msgstr "" +"Jestem w rzeczy samej profesorem chemii na Harwardzie. Byłem na urlopie " +"naukowym od pół roku. Nie wyobrażam sobie że uniwersytet był dobrym miejscem" +" by tam być, biorąc pod uwagę to co słyszałem o Boston... wątpię by " +"ktokolwiek się wydostał. Byłem mojej chacie w Chatham, rzekomo pracując nad " +"ostatnimi szlifami do publikacji, ale głównie sącząc whiskey i modląc się do" +" gwiazd o etat wykładowcy. To były dobre dni. Potem nadszedł " +", konwoje wojskowe, . Chatę zniszczył , " +"niewielka strata po tym jak oberwała pociskiem z czołgu z Orleans. Od tego " +"momentu spędzam czas na chaotycznej ucieczce." #: lang/json/talk_topic_from_json.py msgid "" "Do you think there's some way your knowledge could help us understand all " "this?" msgstr "" +"Myślisz że twoja wiedza mogła by uchylić rąbka tajemnicy w zrozumieniu tego " +"co się dzieje?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128216,10 +130966,233 @@ 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 "" +"Trudno powiedzieć. Nie jestem ekspertem w chemii organicznej, zajmowałem się" +" chemią geologiczną. Gubię się w tym gdzie mogła by mieć tu zastosowanie, " +"ale jeśli znajdziesz coś w czym moja wiedza się przyda to służę pomocą." #: lang/json/talk_topic_from_json.py msgid "Cool. What did you say before that?" +msgstr "Nieźle. O czym to mówiłeś wcześniej?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" +"Moja historia. Huh. Nic specjalnego. Miałem ludzi, ale odeszli do Pana. Nie " +"wiem czemu mnie także nie wziął, ale to pewnie stanie się jasne z czasem." + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "Mówisz w sensie religijnym, czy... ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" +"Oczywiście. To wystarczająco jasne, czyż nie? Ten... ten koniec, to " +"wniebowzięcie wiernych. Nadal tu jestem, i nie wiem dlaczego, ale będę miał " +"Jezusa w sercu przez wszystkie nadchodzące umartwienia. Gdy już miną jestem " +"pewien, że przyjmie mnie do królestwa niebieskiego. Lub... coś w tym " +"rodzaju. Nie dzieje się dokładnie tak myślałem że będzie, ale oto " +"przepowiednia dla ciebie." + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "Co jeśli się mylisz?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "Co wtedy zrobisz?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" +"Co? Jak możesz mówić coś takiego? Nie wierzę, że widzisz to wszystko wokół i" +" nie uważasz, że to koniec czasów. Martwi chodzą, otwarły się wrota piekieł," +" bestie diabelskie kroczą przez ziemię, a sprawiedliwi zostali zabrani do " +"królestwa Pana. Jakich dowodów tu jeszcze potrzeba?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "Co zatem zrobisz?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"Będę strzec wiary, i modlić się, i bić wysłanników piekielnych gdziekolwiek " +"ich ujrzę. Tylko tyle nasza garstka może zrobić, czy nie tak? Sądzę że być " +"może to my jesteśmy ci cisi, którzy posiądą ziemię. Choć nie uśmiechają mi " +"się nasze szanse na to." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" +"Taki jak każdego. Odwróciłem się od Boga, i teraz płacę cenę. Wniebowzięcie " +"wiernych nadeszło, a ja zostałem w tyle. Więc teraz, jak sądzę, kroczę przez" +" piekło na ziemi. Szkoda, że nie słuchałem na szkółce niedzielnej." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"Żyłem samotnie, w starej rodzinnej posiadłości daleko od miasta. Moja żona " +"zmarła ponad miesiąc zanim to się zaczęło... rak. Jeśli cokolwiek dobrego z " +"tego przyszło to to, że w końcu widzę dobrą stronę w tym, że odeszła tak " +"młodo. Byłem zamknięty sam w każdym razie przez pewien czas. Gdy wiadomości " +"zaczęły opowiadać o chińskim bio-terroryzmie i uśpionych agentach, pokazując" +" zamieszki w Bostonie itp. zawinąłem się pod pierzyną z puszką zupy i " +"zmieniłem kanał." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"Żyłam samotnie, w starej rodzinnej posiadłości daleko od miasta. Mój mąż " +"zmarł ponad miesiąc zanim to się zaczęło... rak. Jeśli cokolwiek dobrego z " +"tego przyszło to to, że w końcu widzę dobrą stronę w tym, że odszedł tak " +"młodo. Byłam zamknięta sama w każdym razie przez pewien czas. Gdy wiadomości" +" zaczęły opowiadać o chińskim bio-terroryzmie i uśpionych agentach, " +"pokazując zamieszki w Bostonie itp. zawinęłam się pod pierzyną z puszką zupy" +" i zmieniłam kanał." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" +"Cóż. Sprawy się nieco rozwinęły. Przyszedł kwaśny deszcz, spalił jeden z " +"moich ciągników. Nie żebym pracował na polach od czasu... cóż to był " +" rok i robiłem nic wartego roboty. Były wybuchy i takie tam, i " +"śmigłowce przelatujące nad głowami. Byłem wystraszony, trzymałem zasłony " +"zasłonięte, stale zmieniałem kanały. W końcu któregoś dnia nie było już " +"kanałów do zmieniania. Tylko transmisje ostrzegawcze, zapętlone w kółko." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" +"To była pierwsza rzecz, która mną otrząsnęła. Nie miałem jakiś bliskich " +"przyjaciół, ale w mieście miałem kilku ludzi na których troszkę mi zależało." +" Wysłałem kilka wiadomości ale nie załapałem, że nie odpowiedzieli przez " +"wiele dni. Wsiadłem do mojego wozu i próbowałem dostać się do miasta. Daleko" +" nie ujechałem zanim nie natknąłem się na pełny karambol blokujący " +"drogę, i wtedy rzeczy zaczęły mi wskakiwać na właściwe miejsca. Nidy nie " +"dotarłem do miasta. Niestety doprowadziłem z powrotem na moją " +"farmę, więc musiałem stamtąd zwiewać. Może wrócę i ją oczyszczę, pewnego " +"dnia." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" +"Cóż, żyłem na obrzeżu małego miasteczka. Sklep na rogu, stacja paliw i w " +"zasadzie nic więcej. Słyszeliśmy że źle się dzieje w mieście, ale nie " +"widzieliśmy tego wiele dopóki wojsko nie weszło plując ogniem i próbując " +"rozłożyć się tu z obozem. Chcieli nas wszystkich zakorkować tu w miasteczku " +"jak w butelce, co nie było mi po drodze, więc mój pies i ja poszliśmy w " +"długą podczas gdy oni wąchali własne smrody." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 i ja wyśliznęliśmy się i wyruszyliśmy na wschód, na ranczo mojego " +"przyjaciela. Uroczy mały palant myślał, że po prostu idziemy na długi " +"spacer. Nie mogłem wziąć ciężarówki, bo wojskowi od razu by zwęszyli co się " +"święci. Udało się nam dojść do lasu, rozbiliśmy obóz pod wiatą. Spakowaliśmy" +" się i ruszyliśmy dalej. Wpierw szliśmy wzdłuż autostrady przez chwilę, ale " +"widzieliśmy zbyt wiele wojskowych ciężarówek i busów pełnych ewakuowanych " +"osób, i wtedy dowiedzieliśmy się o ." + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "Gdzie jest teraz Buck?" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Widzę do czego to zmierza. " + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Widzę do czego to zmierza. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" +"Dotarliśmy do rancza mojego kumpla, ale wojsko dotarło tam przed " +"nami. Było całkowicie zabite dechami a na zewnątrz była policyjna barykada. " +"Jedna z tych wieżyczek... postrzeliła Buck'a. Mnie też " +"niemal nie dorwała. Udało mi się dostać do szczeniaka, zabrać go stamtąd, " +"to... nie było łatwe, musiałem użyć drzwi radiowozu jak tarczy, musiałem " +"załatwić zombie-glinę najpierw. A potem, cóż, gdy wciąż płakałem Buck " +"powrócił. Musiałem ... . Ja... nie mogę o tym mówić. Sam wiesz." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Przykro mi z powodu Buck'a. " + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Przykro mi z powodu Buck'a. " #: lang/json/talk_topic_from_json.py msgid "" @@ -128233,16 +131206,27 @@ msgid "" "thing, but from her, it actually had me worried. I packed a bug-out bag " "just in case." msgstr "" +"Przed pracowałem w laboratorium. Nie patrz tak na mnie, nie " +"mam nic wspólnego z tym wszystkim... Badałem rekcje pomiędzy proteinami w " +"mięśniach gładkich myszy, używając NMR. Nic nawet na kilometr związanego z " +"zombie. W każdym razie byłem na zeszłorocznej konferencji Biologii " +"Eksperymentalnej w San Francisco, i stara znajoma mówiła mi o naprawdę " +"dziwacznych rzeczach, które słyszała że wychodzą z laboratoriów rządowych. " +"Prawdziwe sprawy cicho-sza. Normalnie nie dałbym wiary w takie gadanie, ale " +"słysząc to od niej, zacząłem się martwić. Spakowałem sobie torbę na wszelki " +"wypadek." #: lang/json/talk_topic_from_json.py msgid "What came of it?" -msgstr "" +msgstr "Co z tego wyszło?" #: 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 "" +"Jakbym ci znalazł właściwe rzeczy, to czy zdołałbyś nie wiem... zaaplikować " +"temu trochę nauki?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128256,10 +131240,19 @@ 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 "" +"Nadszedł rozkaz ewakuacji, więc się ewakuowałem, w miarę szybko. Przez to " +"byłem daleko przed najgorszym. Nasze centrum ewakuacji było bezużyteczne... " +"ja, kilku innych ewakuowanych, kilka puszek żarcia, i klika kocy " +"ratunkowych. Za mało by choć myśleć o czymkolwiek poważnym. Ewakuowani " +"podzielili się po połowie na obozy i zaczęły się walki wewnętrzne. Uciekłem " +"w las z kilkoma innymi. Udało nam się uciec, założyliśmy mały obóz. Chcieli " +"mnie zrobić ich przywódcą, myśląc ze wiem więcej niż wiedziałem, skoro " +"przybyłem przygotowany. Tak jak mówiłem, ja nie z tych naukowców, ale oni " +"tego nie rozumieli. Ja... zrobiłem co w mojej mocy." #: lang/json/talk_topic_from_json.py msgid "What happened with your leadership run?" -msgstr "" +msgstr "Co się stało pod twoim przywództwem?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128271,10 +131264,17 @@ 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 "" +"Myślałem, że nasza ucieczka, i pozostawienie centrum w rękach pozostałych " +"będzie wystarczające, ale nie było. Namierzyli nas w nocy, parę dni później." +" Oni... cóż... mi się udało, razem z jednym z ocalonych. Atakujący byli jak " +"zwierzęta. Próbowaliśmy podróżować razem przez jakiś czas. Winiłem siebie za" +" to co się stało, i nie mogłem tego przeboleć. Rozdzieliliśmy się w " +"przyjaznych warunkach nie tak dawno przed spotkaniem ciebie. Nie mogłem " +"patrzeć w twarz temu co postało po mojej porażce." #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear that. " -msgstr "" +msgstr "Przykro mi to słyszeć. " #: lang/json/talk_topic_from_json.py msgid "" @@ -128284,6 +131284,12 @@ 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 "" +"No więc, jeśli znajdziesz cokolwiek związanego z tym, co sprowadzać się " +"będzie do biochemii analitycznej, mógłbym spróbować rozszyfrować to i może " +"wytłumaczyć choć trochę. By zrobić więcej, choćby przeanalizować próbki " +"itp., potrzebowałbym własnego bezpiecznego laboratorium, ze sprzętem o jaki " +"niełatwo, i z siecią elektryczną, której można zaufać. To raczej daleko na " +"horyzoncie." #: lang/json/talk_topic_from_json.py msgid "" @@ -128295,6 +131301,13 @@ 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 "" +"Mam, to fakt, lukę w pamięci obejmującą jakieś trzy dni przed i po " +". Pracowałem w laboratorium - nic związanego z tym wokół, " +"kwestie fizyki. Myślę że byłem w pracy jak to się stało. Moje pierwsze jasne" +" wspomnienie to bieg przez podszycie parę mil od miasta. Byłem " +"zabandażowany, miałem torbę listonosza wyładowaną sprzętem, i mocno " +"oberwałem w bok głowy. Nie wiem co mi się stało, ale od jakiegoś czasu już " +"uciekałem." #: lang/json/talk_topic_from_json.py msgid "" @@ -128304,6 +131317,12 @@ 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 "" +"No więc, jeśli znajdziesz cokolwiek związanego z tym, co sprowadzać się " +"będzie do fizyki teoretycznej, mógłbym spróbować rozszyfrować to i może " +"wytłumaczyć choć trochę. By zrobić więcej, choćby zbudować modele " +"teoretyczne itp., potrzebowałbym własnego bezpiecznego laboratorium, ze " +"sprzętem o jaki niełatwo, i z siecią elektryczną, której można zaufać. To " +"raczej daleko na horyzoncie." #: lang/json/talk_topic_from_json.py msgid "" @@ -128315,10 +131334,16 @@ msgid "" "other thing I am that the other grunts ain't: alive. You can figure the " "rest out." msgstr "" +"Słuchaj, nie chciał bym się w to zbytnio wgłębiać. Byłem w rezerwie, OK? Nie" +" pisałem się na naładowaną chwałą i patosem obronę ojczyzny, chciał tylko " +"podbudować formę, zdobyć paru przyjaciół, i mieć fajny wpis w CV. Nigdy nie " +"myślałem że powołają mnie do czynnej służby by walczyć przeciwko " +"zombie. Może jestem dezerterem, może tchórzem, ale powiem ci tyle że jestem " +"tym czym nie są inni żołdacy - żywym człowiekiem. Reszty się domyśl." #: lang/json/talk_topic_from_json.py msgid "Fair enough, thanks. " -msgstr "" +msgstr "W porządku, dzięki. " #: lang/json/talk_topic_from_json.py msgid "" @@ -128329,10 +131354,15 @@ msgid "" "efforts'. Our orders barely made sense, our officers were as confused as we" " were." msgstr "" +"Byłem w wojsku. Po prostu nowy rekrut. Nawet nie zakończyłem podstawowego " +"szkolenia, gdy powołano mnie do frontowej służby jak gówno się rozlało. " +"Ledwo wiedziałem z której strony lufy wylatują kule, a tu pakują mnie do " +"ciężarówki jadącej do Newport do 'pomocy w zadaniu ewakuacji'. Rozkazy ledwo" +" trzymały się kupy, a oficerowie byli równie skołowani jak my." #: lang/json/talk_topic_from_json.py msgid "What happened in Newport?" -msgstr "" +msgstr "Co stało się w Newport?" #: lang/json/talk_topic_from_json.py msgid "" @@ -128345,6 +131375,89 @@ msgid "" " getting myself out, the others started getting back up. Long story short, " "I lived, they didn't, and I ran." msgstr "" +"Nigdy nie dotarliśmy do Newport. Na ciężarówkę nadepnęło coś gigantycznego. " +"Nawet tego nie widziałem, tylko tą czarno-zieloną kolczastą nogę " +"przebijającą sufit, przez LT. Słyszałem pisk opon, i unoszenie się wozu. " +"Zrzuciło nas z nogi jak psie gówno z podeszwy. Nie wiem jak przeżyłem. Ta " +"rzecz przeturlała się, wybijając większość z nas na miejscu. Musiałem " +"chwilowo stracić przytomność. Jak wróciłem do zmysłów i zacząłem się stamtąd" +" zbierać, pozostali zaczęli powstawać. Długo by mówić, ja żyję, oni nie, i " +"uciekłem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "Oh, to niezła historia. wypadł w dniu mojego ślubu." + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "Oh, przykro mi..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" +"Ta, patrząc wstecz to nie był dobry dobór terminu, huh? Ale przyznaję, " +"miałem pietra. W każdym razie chajtaliśmy się w kościele. Szczęściem dla " +"mnie spóźniłem się na ceremonię... Zgaduję że jedno ze świeższych ciał na " +"cmentarzu powstało i narobiło bałaganu na zgromadzeniu." + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "Co zrobiłeś potem?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "Wydajesz się być niezwykle spokojny w tych okolicznościach." + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" +"Po tym jak zobaczyłem co się wyprawia, zawróciłem i udałem się w przeciwnym " +"kierunku. Widziałem filmy o zombie. Zapakowałem nieco rzeczy z domu i udało " +"mi się wydostać z miasta zanim rzeczy stoczyły się na dno. Wtedy myślałem że" +" jestem tchórzem, ale teraz wiem ze gdybym został byłbym kolejnym cieknącym " +"trupem." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Cóż, mam taką dziwną nadzieję. Pewnie to głupota, ale widziałem narzeczoną " +"zwiewająca stamtąd z jej bratem - a moim świadkiem - w tym pickupie gdy " +"sprawy wymknęły się spod kontroli. Więc, zanim nie wpadnę na nich tak czy " +"inaczej, będę nadal wierzyć, że gdzieś tam są, i im się wiedzie. To więcej " +"niż na co większość z nasz może liczyć." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Cóż, mam taką dziwną nadzieję. Pewnie to głupota, ale widziałem narzeczonego" +" zwiewającego stamtąd z jego siostrą - a moim świadkiem - w tym pickupie gdy" +" sprawy wymknęły się spod kontroli. Więc, zanim nie wpadnę na nich tak czy " +"inaczej, będę nadal wierzyć, że gdzieś tam są, i im się wiedzie. To więcej " +"niż na co większość z nasz może liczyć." + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "O czym to mówiłeś wcześniej?" #: lang/json/talk_topic_from_json.py msgid "Heya, scav." @@ -129730,6 +132843,44 @@ msgstr "Uderzasz fazowo %s" msgid " phase-strikes %s" msgstr " uderza fazowo %s" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "Pchnij" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "Odpychasz %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr " odpycha %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "Zgrabnie podcinasz %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr " zgrabnie podcina %s" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "Nadziej" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "Brutalnie nadziewasz %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr " brutalnie nadziewa %s" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "przemieszczenie i kontra" @@ -131741,7 +134892,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "walnut tree" -msgstr "" +msgstr "orzech" #. ~ Description for walnut tree #: lang/json/terrain_from_json.py @@ -131750,6 +134901,9 @@ msgid "" "can see some unharvested walnuts. You could cut it down with the right " "tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Juglans\". Gdy przyjrzysz " +"się uważnie zobaczysz nie zebrane orzechy. Możesz je ściąć mając odpowiednie" +" narzędzia." #. ~ Description for walnut tree #: lang/json/terrain_from_json.py @@ -131757,10 +134911,12 @@ msgid "" "A massive tree belonging to the 'Juglans' genus. You could cut it down with" " the right tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Juglans\". Możesz je ściąć " +"mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "chestnut tree" -msgstr "" +msgstr "kasztan" #. ~ Description for chestnut tree #: lang/json/terrain_from_json.py @@ -131769,6 +134925,9 @@ msgid "" "can see some unharvested chestnuts. You could cut it down with the right " "tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Castanea\". Gdy przyjrzysz " +"się uważnie zobaczysz nie zebrane kasztany. Możesz je ściąć mając " +"odpowiednie narzędzia." #. ~ Description for chestnut tree #: lang/json/terrain_from_json.py @@ -131776,10 +134935,12 @@ msgid "" "A massive tree belonging to the 'Castanea' genus. You could cut it down " "with the right tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Castanea\". Możesz je ściąć " +"mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "beech tree" -msgstr "" +msgstr "buk" #. ~ Description for beech tree #: lang/json/terrain_from_json.py @@ -131788,6 +134949,9 @@ msgid "" "see some unharvested beech nuts. You could cut it down with the right " "tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Fagus\". Gdy przyjrzysz się " +"uważnie zobaczysz nie zebrane bukwie. Możesz je ściąć mając odpowiednie " +"narzędzia." #. ~ Description for beech tree #: lang/json/terrain_from_json.py @@ -131795,10 +134959,12 @@ msgid "" "A massive tree belonging to the 'Fagus' genus. You could cut it down with " "the right tools." msgstr "" +"Masywne rozłożyste drzewo należące do gatunku \"Fagus\". Możesz je ściąć " +"mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "hazelnut tree" -msgstr "" +msgstr "orzech laskowy" #. ~ Description for hazelnut tree #: lang/json/terrain_from_json.py @@ -131807,6 +134973,9 @@ msgid "" " see some unharvested hazelnuts. You could cut it down with the right " "tools." msgstr "" +"Przysadziste drzewo należące do rodzaju \"Corylus\". Gdy przyjrzysz się " +"uważnie zobaczysz nie zebrane orzechy laskowe. Możesz je ściąć mając " +"odpowiednie narzędzia." #. ~ Description for hazelnut tree #: lang/json/terrain_from_json.py @@ -131814,6 +134983,8 @@ msgid "" "A stubby tree belonging to the 'Corylus' genus. You could cut it down with " "the right tools." msgstr "" +"Przysadziste drzewo należące do rodzaju \"Corylus\". Możesz je ściąć mając " +"odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "oak tree" @@ -131827,6 +134998,10 @@ msgid "" "the squirrels haven't gotten yet. You could cut it down with the right " "tools." msgstr "" +"Masywne rozłożyste drzewo należące do rodzaju \"Quercus\" (dąb), typowo " +"rosnące na terenach Nowej Anglii. Jeśli spojrzysz uważnie, zauważysz " +"żołędzie, do których jeszcze nie dobrały się wiewiórki. Możesz je ściąć " +"mając odpowiednie narzędzia." #. ~ Description for oak tree #: lang/json/terrain_from_json.py @@ -131840,7 +135015,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "cottonwood tree" -msgstr "" +msgstr "topola amerykańska" #. ~ Description for cottonwood tree #: lang/json/terrain_from_json.py @@ -131848,10 +135023,12 @@ 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 "" +"Duże drzewo drzewo należące do rodzaju \"Populus\", typowo rosnące na " +"terenach Nowej Anglii. Możesz je ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "elm tree" -msgstr "" +msgstr "wiąz" #. ~ Description for elm tree #: lang/json/terrain_from_json.py @@ -131859,6 +135036,8 @@ 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 "" +"Duże drzewo drzewo należące do rodzaju \"Ulmus\", typowo rosnące na terenach" +" Nowej Anglii. Możesz je ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "dead tree" @@ -131942,7 +135121,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "coffee tree" -msgstr "" +msgstr "kawowiec" #. ~ Description for coffee tree #: lang/json/terrain_from_json.py @@ -131952,6 +135131,10 @@ msgid "" "branches more closely, you could probably find a few mature ones. You could" " also cut it down with the right tools." msgstr "" +"'Gymnocladus dioicus' czyli kawowiec z Kentucky, to drzewo produkujące w " +"okresie jesiennym nadające się do prażenia strąki kawy i nadające się do " +"zaparzania liście. Po dokładniejszym zbadaniu znalazłbyś pewnie kilka " +"dojrzałych. Możesz je też ściąć mając odpowiednie narzędzia." #. ~ Description for coffee tree #: lang/json/terrain_from_json.py @@ -131961,6 +135144,10 @@ msgid "" "ripe pods have been picked. You could also cut it down with the right " "tools." msgstr "" +"'Gymnocladus dioicus' czyli kawowiec z Kentucky, to drzewo produkujące w " +"okresie jesiennym nadające się do prażenia strąki kawy i nadające się do " +"zaparzania liście. Wygląda na to że wszystkie dojrzałe strąki zostały " +"zebrane. Możesz je też ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "cherry tree" @@ -132029,6 +135216,9 @@ msgid "" " you could probably find some mature apricots. You could also cut it down " "with the right tools." msgstr "" +"Szczepiony gatunek \"Prunus armeniaca\" rzadko spotykany w Nowej Anglii. " +"Latem owocuje morelami. Bo zbadaniu gałęzi możesz pewnie znaleźć kilka " +"dojrzalszych morel. Możesz je ściąć mając odpowiednie narzędzia." #. ~ Description for apricot tree #: lang/json/terrain_from_json.py @@ -132037,6 +135227,9 @@ 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 "" +"Szczepiony gatunek \"Prunus armeniaca\" rzadko spotykany w Nowej Anglii. " +"Latem owocuje morelami. Dojrzałe morele zostały już niestety zebrane. Możesz" +" je ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "plum tree" @@ -132050,6 +135243,9 @@ msgid "" "could probably find some ripe plums. You could also cut it down with the " "right tools." msgstr "" +"Jeden z licznych gatunków drzew \"Prunus\" rosnących w Nowej Anglii, " +"rodzących śliwki w lecie. Bo zbadaniu gałęzi możesz pewnie znaleźć kilka " +"dojrzalszych śliwek. Możesz je ściąć mając odpowiednie narzędzia." #. ~ Description for plum tree #: lang/json/terrain_from_json.py @@ -132058,10 +135254,13 @@ 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 "" +"Jeden z licznych gatunków drzew \"Prunus\" rosnących w Nowej Anglii, " +"rodzących śliwki w lecie. Dojrzałe śliwki zostały już niestety zebrane. " +"Możesz je ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "mulberry tree" -msgstr "" +msgstr "morwa" #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -132070,6 +135269,9 @@ msgid "" "as mulberries. In the summer many berries can be picked. You could also " "cut it down with the right tools." msgstr "" +"To drzewo należy do rodzaju \"Morus\", i rodzi owoce zwane powszechnie " +"jagodami morwy. W lecie można nazbierać sporo takich jagód. Możesz je też " +"ściąć mając odpowiednie narzędzia." #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -132078,10 +135280,13 @@ msgid "" "as mulberries. There doesn't appear to be any ripe mulberries now. You " "could also cut it down with the right tools." msgstr "" +"To drzewo należy do rodzaju \"Morus\", i rodzi owoce zwane powszechnie " +"jagodami morwy. Nie wygląda na to by obecnie były na nim jakiekolwiek " +"dojrzałe owoce. Możesz je też ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "elderberry tree" -msgstr "" +msgstr "dziki bez" #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -132090,6 +135295,9 @@ msgid "" "known as elderberries. In the summer many berries can be picked. You could" " also cut it down with the right tools." msgstr "" +"To drzewo należy do rodzaju \"Sambucus\", i rodzi owoce zwane powszechnie " +"jagodami dzikiego bzu. W lecie można nazbierać sporo takich jagód. Możesz je" +" też ściąć mając odpowiednie narzędzia." #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -132098,6 +135306,9 @@ 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 "" +"To drzewo należy do rodzaju \"Sambucus\", i rodzi owoce zwane powszechnie " +"jagodami dzikiego bzu. Nie wygląda na to by obecnie były na nim jakiekolwiek" +" dojrzałe owoce. Możesz je też ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "pine tree" @@ -132112,6 +135323,10 @@ msgid "" "and unharvested pinecones. Also, you could cut it down with the right " "tools." msgstr "" +"Strzeliste drzewo iglaste należące do rodzaju \"Pinus\", z różnymi gatunkami" +" w Nowej Anglii głównie 'P. strobus', 'P. resinosa' and 'P. rigida'. Bo " +"zbadaniu gałęzi możesz pewnie znaleźć kilka żywicznych sęków i nie zebranych" +" szyszek. Możesz je też ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "dead pine tree" @@ -132126,6 +135341,11 @@ 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 "" +"Strzeliste drzewo iglaste należące do rodzaju \"Pinus\", z różnymi gatunkami" +" w Nowej Anglii głównie 'P. strobus', 'P. resinosa' and 'P. rigida'. " +"Niektóre gałęzie zostały zerwane, a wiele szyszek jeszcze się nie " +"wykształciło. W zależności od sezonu może się ponownie nadawać do zbioru. " +"Możesz je też ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "birch tree" @@ -132140,6 +135360,11 @@ msgid "" "off some strips of bark if you examined the tree more closely. You could " "cut it down with the right tools." msgstr "" +"Wysokie drzewo liściaste z rodzaju \"Betula\", z charakterystyczną łuszczącą" +" się korą. Gatunki takie jak 'B. alleghaniensis', 'B. papyrifera', i 'B. " +"populifolia' są najczęstsze w rejonie Nowej Anglii. Mógłbyś zedrzeć nieco " +"kory jeśli obejrzysz drzewo dokładniej. Możesz też je ściąć mając " +"odpowiednie narzędzia." #. ~ Description for birch tree #: lang/json/terrain_from_json.py @@ -132150,6 +135375,10 @@ msgid "" "there isn't enough rhytidome to peel off yet. You could cut it down with " "the right tools." msgstr "" +"Wysokie drzewo liściaste z rodzaju \"Betula\", z charakterystyczną łuszczącą" +" się korą. Gatunki takie jak 'B. alleghaniensis', 'B. papyrifera', i 'B. " +"populifolia' są najczęstsze w rejonie Nowej Anglii. Wygląda na to ze nie ma " +"na tyle kory by ją zedrzeć. Możesz też je ściąć mając odpowiednie narzędzia." #: lang/json/terrain_from_json.py msgid "willow tree" @@ -132258,31 +135487,31 @@ msgstr "Mały krzak jeżyn, bez owoców. Uwaga na kolce!" #: lang/json/terrain_from_json.py msgid "huckleberry bush" -msgstr "" +msgstr "borówka amerykańska" #. ~ Description for huckleberry bush #: lang/json/terrain_from_json.py msgid "A small bush of huckleberries, often mistaken as blueberries." -msgstr "" +msgstr "Mały krzak borówki amerykańskiej mylonej czasem z jagodami." #. ~ Description for huckleberry bush #: lang/json/terrain_from_json.py msgid "A small huckleberry bush that's fruitless." -msgstr "" +msgstr "Mały krzak borówki amerykańskiej, bez owoców." #: lang/json/terrain_from_json.py msgid "raspberry bush" -msgstr "" +msgstr "malina" #. ~ Description for raspberry bush #: lang/json/terrain_from_json.py msgid "A small bush of delicious raspberries. Watch out for its thorns!" -msgstr "" +msgstr "Mały krzak smacznych malin. Uwaga na kolce!" #. ~ Description for raspberry bush #: lang/json/terrain_from_json.py msgid "A small raspberry bush that's fruitless. Watch out for its thorns!" -msgstr "" +msgstr "Mały krzak malin, bez owoców. Uwaga na kolce!" #: lang/json/terrain_from_json.py msgid "grape bush" @@ -132302,7 +135531,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "rose bush" -msgstr "" +msgstr "róża" #. ~ Description for rose bush #: lang/json/terrain_from_json.py @@ -132310,40 +135539,42 @@ msgid "" "A fat bush of beautiful red roses, if only you could get a date! Watch out " "for its thorns!" msgstr "" +"Okrągły krzew ślicznych czerwonych róż; świetnych na randkę gdybyś ją miał " +"mieć. Uwaga na kolce!" #. ~ 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 "" +msgstr "Okrągły krzew róż, obecnie bez kwiatów. Uwaga na kolce!" #: lang/json/terrain_from_json.py msgid "hydrangea bush" -msgstr "" +msgstr "hortensja" #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat, bush of fragrant blue hydrangeas." -msgstr "" +msgstr "Okrągły krzew pachnących niebieskich hortensji." #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat hydrangea bush that currently has no blooms." -msgstr "" +msgstr "Okrągły krzew hortensji, obecnie bez kwiatów." #: lang/json/terrain_from_json.py msgid "lilac bush" -msgstr "" +msgstr "bez" #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide, bush of bright pinkish purple lilacs." -msgstr "" +msgstr "Rozłożysty krzew bzu pełen różowofioletowych kwiatów." #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide lilac bush that currently has no blooms." -msgstr "" +msgstr "Rozłożysty krzew bzu, który obecnie nie kwitnie." #: lang/json/terrain_from_json.py msgid "tree trunk" @@ -133110,6 +136341,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 "" +"Prosta ściana z pordzewiałego metalu przyśrubowanego i przywiązanego drutami" +" do domowej roboty ramy. Bardzo klimatyczne w post-apokaliptycznych " +"slumsach. Ta tutaj nie jest wystarczająco wytrzymała by unieść dach, ale " +"można ją wzmocnić." #: lang/json/terrain_from_json.py msgid "junk metal wall" @@ -133121,6 +136356,9 @@ 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 "" +"Ściana z pordzewiałego metalu przyśrubowanego i przywiązanego drutami do " +"sztywnej ramy. Bardzo klimatyczne w post-apokaliptycznych slumsach. Może " +"utrzymać dach." #: lang/json/terrain_from_json.py msgid "junk metal floor" @@ -133133,6 +136371,9 @@ msgid "" "makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope " "you like the sound of rain on corrugated metal." msgstr "" +"Prosty dach i podłoga z pordzewiałego metalu przyśrubowanego i przywiązanego" +" drutami do domowej roboty ramy. Bardzo klimatyczne w post-apokaliptycznych " +"slumsach. Obyś lubił dźwięk deszczu padającego na blachę falistą." #: lang/json/terrain_from_json.py msgid "scorched earth" @@ -133382,6 +136623,26 @@ msgstr "szydełkujący" msgid "bullet pulling" msgstr "wyciąganie pocisków" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "analiza" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "koncentracja" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "separacja" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "dokładna destylacja" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "chromatografia" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "karimata" @@ -134301,6 +137562,18 @@ msgstr "unikalny_pusty" msgid "canoe" msgstr "kanadyjka" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "Amfibia" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "kajak" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "kajak wyścigowy" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "tratwa" @@ -135838,11 +139111,21 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." msgstr "" -"Bardzo jasne światło o szerokim kącie padania, które oświetla teren na " -"zewnątrz pojazdu gdy jest włączone." +"Bardzo jasne okrągłe światło, które oświetla teren na zewnątrz pojazdu gdy " +"jest włączone." + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." +msgstr "" +"Jasne światło, które oświetla półokrągły stożek na zewnątrz pojazdu gdy jest" +" włączone. Podczas instalacji możesz wybrać kierunek padania światła." #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -135860,6 +139143,22 @@ msgstr "" "włączone. Podczas instalacji możesz wybrać kierunek padania światła, zatem " "kilka świateł może oświetlać tył, boki i przód." +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "szerokokątny reflektor samochodowy" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" +"Jasne światło, które oświetla szeroki stożek na zewnątrz pojazdu gdy jest " +"włączone. Podczas instalacji możesz wybrać kierunek padania światła, zatem " +"kilka świateł może oświetlać tył, boki i przód." + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -136196,6 +139495,39 @@ msgstr "szerokie koło (sterowalne)" msgid "A wooden wheel." msgstr "Drewniane koło." +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +msgstr "drewniany kadłub łodzi" + +#. ~ 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 "Drewniany kadłub zapobiega dostaniu się wody do środka łodzi." + +#. ~ 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 "" +"Sztywny plastikowy kadłub zapobiega dostaniu się wody do środka łodzi." + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +msgstr "metalowy kadłub łodzi" + +#. ~ 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 "Metalowy kadłub zapobiega dostaniu się wody do środka łodzi." + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" +"Lekki, zaawansowany kadłub z włókien węglowych zapobiega dostaniu się wody " +"do środka łodzi." + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "wiosła ręczne" @@ -137950,6 +141282,14 @@ msgstr "To świetne narzędzie, ale nadal wolałbyś skalpel." msgid "You dissect the corpse with a trusty scalpel." msgstr "Przeprowadzasz sekcję zwłok swoim zaufanym skalpelem." +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" +"Przeprowadzasz sekcję zwłok swoim zaawansowanym systemem chirurgicznych " +"skalpeli." + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -138420,8 +141760,8 @@ msgid "Repeat once" msgstr "Powtórz raz" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Powtarzaj ile możesz" +msgid "Repeat until reinforced" +msgstr "Powtarzaj aż do wzmocnienia" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -138431,11 +141771,24 @@ msgstr "Powtarzaj aż do pełnej naprawy, ale nie wzmacniaj" msgid "Repeat until success/failure/level up" msgstr "Powtarzaj aż do sukcesu/porażki/poziomu w górę" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "Powrót do wyboru rzeczy" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "W %s skończyły się ładunki" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "Napraw co?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "Nie masz przedmiotów które da się naprawić używając %s." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Robiąc to niczego się już nie nauczysz." @@ -138443,13 +141796,18 @@ msgstr "Robiąc to niczego się już nie nauczysz." #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" msgstr "" -"%s\n" -"Szansa sukcesu: %.1f%%\n" -"Szansa porażki: %.1f%%" +"%s %s\n" +"Szansa sukcesu: %.1f%%\n" +"Szansa uszkodzenia: %.1f%%" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." +msgstr "Twój %s jest już całkowicie naprawiony." #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -138503,6 +141861,11 @@ msgstr "Kończysz czekać." msgid "%s finishes with you..." msgstr "%s kończy z tobą..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "%s kończy rozmawiać z tobą." + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "Przewracasz się na lewo i prawo..." @@ -138578,6 +141941,11 @@ msgstr "Kończysz kopanie %s." msgid "You finish filling up %s." msgstr "Kończysz zasypywanie %s." +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "Zabawa z twoim %s nieco podniosła cię na duchu." + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "Otwierasz swój zestaw i się golisz." @@ -138586,6 +141954,20 @@ msgstr "Otwierasz swój zestaw i się golisz." msgid "You give your hair a trim." msgstr "Przycinasz sobie włosy." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "Rozkładasz twój %s." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "Rozładowujesz twój %s." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "Zebrałeś plon ze wszystkich możliwych pól." + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Ryjesz tutaj w ziemi." @@ -138594,6 +141976,15 @@ msgstr "Ryjesz tutaj w ziemi." msgid "You tilled every tile you could." msgstr "Przekopałeś każdą grządkę, którą mogłeś." +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "Skończył ci się %s" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "Nawiozłeś każde możliwe pole." + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "Zasadziłeś wszystkie ziarna które mogłeś." @@ -138667,19 +142058,19 @@ msgstr "Niektóre przedmioty wypadają do %2$s w %1$s" #, c-format msgid "The %s is full, so something fell to the %s." msgid_plural "The %s is full, so some items fell to the %s." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%s jest pełen, więc coś wypadło na %s." +msgstr[1] "%s jest pełen, więc niektóre przedmioty wypadają na %s." +msgstr[2] "%s jest pełen, więc niektóre przedmioty wypadają na %s." +msgstr[3] "%s jest pełen, więc niektóre przedmioty wypadają na %s." #: src/activity_item_handling.cpp #, c-format msgid "The %s is full, so it fell to the %s." msgid_plural "The %s is full, so they fell to the %s." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%s jest pełen, więc wypada na %s." +msgstr[1] "%s jest pełen, więc wypadają na %s." +msgstr[2] "%s jest pełen, więc wypadają na %s." +msgstr[3] "%s jest pełen, więc wypadają na %s." #: src/activity_item_handling.cpp #, c-format @@ -138731,28 +142122,28 @@ msgstr[3] " wkłada %1$s do %2$s." #, c-format msgid "There's no room in your inventory for the %s, so you drop it." msgid_plural "There's no room in your inventory for the %s, so you drop them." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Nie masz miejsca w ekwipunku na %s, więc to upuszczasz." +msgstr[1] "Nie masz miejsca w ekwipunku na %s, więc je upuszczasz." +msgstr[2] "Nie masz miejsca w ekwipunku na %s, więc je upuszczasz." +msgstr[3] "Nie masz miejsca w ekwipunku na %s, więc je upuszczasz." #: src/activity_item_handling.cpp #, c-format msgid "The %s is too heavy to carry, so you drop it." msgid_plural "The %s is too heavy to carry, so you drop them." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%s jest zbyt ciężki by go nieść, więc go upuszczasz." +msgstr[1] "%s są zbyt ciężkie by je nieść, więc je upuszczasz." +msgstr[2] "%s są zbyt ciężkie by je nieść, więc je upuszczasz." +msgstr[3] "%s są zbyt ciężkie by je nieść, więc je upuszczasz." #: src/activity_item_handling.cpp #, c-format msgid "Your %1$s tumbles to the %2$s." msgid_plural "Your %1$s tumble to the %2$s." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Twój %1$s spada na %2$s." +msgstr[1] "Twoje %1$s spadają na %2$s." +msgstr[2] "Twoje %1$s spadają na %2$s." +msgstr[3] "Twoje %1$s spadają na %2$s." #: src/activity_item_handling.cpp #, c-format @@ -139455,9 +142846,17 @@ msgid_plural "" "Wearing multiple items %s on your %s is adding " "encumbrance there." msgstr[0] "" +"Noszenie wielu rzeczy %s na %s zwiększa skrępowanie" +" tej części ciała." msgstr[1] "" +"Noszenie wielu rzeczy %s na %s zwiększa skrępowanie" +" tej części ciała." msgstr[2] "" +"Noszenie wielu rzeczy %s na %s zwiększa skrępowanie" +" tej części ciała." msgstr[3] "" +"Noszenie wielu rzeczy %s na %s zwiększa skrępowanie" +" tej części ciała." #: src/armor_layers.cpp #, c-format @@ -139468,9 +142867,17 @@ msgid_plural "" "Wearing this outside items it would normally be beneath is adding " "encumbrance to your %s." msgstr[0] "" +"Noszenie rzeczy, które powinny być pod spodem na wierzchu innych, dodaje " +"skrępowanie do %s." msgstr[1] "" +"Noszenie rzeczy, które powinny być pod spodem na wierzchu innych, dodaje " +"skrępowanie do %s." msgstr[2] "" +"Noszenie rzeczy, które powinny być pod spodem na wierzchu innych, dodaje " +"skrępowanie do %s." msgstr[3] "" +"Noszenie rzeczy, które powinny być pod spodem na wierzchu innych, dodaje " +"skrępowanie do %s." #: src/armor_layers.cpp #, c-format @@ -139481,9 +142888,17 @@ msgid_plural "" "Wearing this outside your %s is adding encumbrance" " to your %s." msgstr[0] "" +"Noszenie tego na zewnątrz %s dodaje skrępowanie do" +" %s." msgstr[1] "" +"Noszenie tego na zewnątrz %s dodaje skrępowanie do" +" %s." msgstr[2] "" +"Noszenie tego na zewnątrz %s dodaje skrępowanie do" +" %s." msgstr[3] "" +"Noszenie tego na zewnątrz %s dodaje skrępowanie do" +" %s." #: src/armor_layers.cpp msgid "This is worn next to the skin." @@ -139854,6 +143269,10 @@ msgstr "oddycha" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "kurczy się i rośnie nieznacznie w regularnym rytmie, jakby oddychał" +#: src/artifact.cpp +msgid "dead" +msgstr "martwy" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "jest lodowato zimny w dotyku" @@ -140470,6 +143889,18 @@ msgid "" "M:copper matches items made purely of copper\n" "M:steel,iron multiple materials allowed (OR search)" msgstr "" +"* to dzika karta. Przykłady:\n" +"\n" +"drewniana strzała zgodność z pełną nazwą rzeczy\n" +"drewniana st* zgodność z zaczynającymi się od drewniana st\n" +"*rzała zgodność z kończącymi się na rzała\n" +"cię* dre* *rzała wiele * jest dopuszczalene\n" +"CIężka*dReWniaNA wielkość liter nieistotna\n" +"\n" +"Podnoszenie oparte na materiale przedmiotu:\n" +"m:kevlar. zgodność z rzeczami z kevlaru\n" +"M:miedź. zgodność z rzeczami wyłącznie z miedzi\n" +"M:stal,żelazo zezwala na wiele materiałów (LUB szukanie)" #: src/auto_pickup.cpp msgid "Pickup Rule:" @@ -141191,8 +144622,10 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Moc: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" +"Bioniczna Moc: %i/%i" #: src/bionics_ui.cpp msgid "" @@ -142725,12 +146158,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "PLIK USZKODZONY, NACIŚNIJ DOWOLNY KLAWISZ..." #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." -msgstr "" -"Maszyna wstrzykuje w twoje oko mieszaninę\n" -"zmielonej kości i LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "Maszyna sprawnie nastawia i otacza łubkami twoją złamaną %s." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -142981,6 +146411,17 @@ msgid "" " medical evaluation and security debriefing.\n" " " msgstr "" +"\n" +" Temat: Nota Bezpieczeństwa\n" +" Do: Personel SRCF\n" +" Od: Constantine Dvorak, Podsekretarz Bezpieczeństwa Atomowego\n" +" \n" +" Wszystkie naruszone placówki pozostaną w zamknięciu aż\n" +" do odwołania. Każdy kto widział lub wszedł w kontakt ze\n" +" stworzeniami ma się zameldować do biura spraw \n" +" wewnętrznych na pełną ewaluację medyczną\n" +" i odprawę bezpieczeństwa.\n" +" " #: src/computer.cpp msgid "" @@ -143006,6 +146447,27 @@ msgid "" " incompetencies will result in charges of Federal Corruption\n" " and potentially Treason.\n" msgstr "" +"\n" +"Temat: EPA: Raportować naruszenia izolacji 3873643\n" +"Do: Personel SRCF\n" +"Od: Robert Shane, Dyrektor EPA\n" +"\n" +" Wszystkie składnice i sarkofagi niebezpiecznych odpadów\n" +" muszą dostarczyć trzy próbki z każdego czynnego systemu \n" +" drenażowego i wysłać je do następujących miejsc:\n" +" \n" +" Laboratorium Bioterroryzmu CDC \n" +" Budynek 10\n" +" Bulwar Korporacyjny\n" +" Atlanta, GA 30329\n" +" \n" +" Laboratorium EPA Region 8 \n" +" 16194 W. 45th Aleja\n" +" Golden, Kolorado 80403\n" +" \n" +" Próbki muszą być dokładne, a każda próba zatuszowania\n" +" niekompetencji spotka się z zarzutami korupcji federalnej i \n" +" potencjalnie zdrady.\n" #: src/computer.cpp msgid "" @@ -143736,6 +147198,62 @@ msgstr "Ucztujesz na słodkim miodzie." msgid "You can't finish it all!" msgstr "Nie możesz dokończyć całości!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "Cienie są nawet bliżej niż wcześniej." + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "Masz złe przeczucia." + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "Silne uczucie strachu ogarnia cię." + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "Masz gęsią skórkę." + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "Idą po ciebie." + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "To był zły pomysł..." + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "Tym razem nawaliłeś na całego, czyż nie?" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "Musisz być czujny. Oni zawsze obserwują..." + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "to błąd to błąd to błąd to błąd to błąd" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "Tylko spokojnie, a przebrniesz przez to." + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "Stajesz się bardzo nerwowy." + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "Coś się rusza na granicy twojego wzroku." + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "Wiedzą co zrobiłeś..." + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "Czujesz większą paranoję niż zwykle." + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "Obżerasz się, przygotowując się do hibernacji." @@ -144100,6 +147618,8 @@ msgid "" "[E]: Describe, [F]ind, [R]eset, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite," " %s [?] keybindings" msgstr "" +"[E]: Opisz, [F]: Znajdź, [R]esetuj, [m]: Tryb, [s] pokaż/ukryj, [L} " +"Pokrewne, [*]Ulubione, %s [?] przypisane klawisze" #: src/crafting_gui.cpp msgid "[b]atch" @@ -144115,18 +147635,24 @@ msgid "" "[E]: Describe, [F]ind, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite, %s [?] " "keybindings" msgstr "" +"[E]: Opisz, [F]: Znajdź, [m]: Tryb, [s] pokaż/ukryj, [L] Pokrewne, [*] " +"Ulubione, %s [?] przypisane klawisze" #: src/crafting_gui.cpp msgid "" "[E]: Describe, [F]ind, [R]eset, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite," " [b]atch [?] keybindings" msgstr "" +"[E]: Opisz, [F]: Znajdź, [R]esetuj, [m]: Tryb, [s] pokaż/ukryj, [L} " +"Pokrewne, [*]Ulubione, [b] hurtowo [?] klawisze" #: src/crafting_gui.cpp msgid "" "[E]: Describe, [F]ind, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite, [b]atch " "[?] keybindings" msgstr "" +"[E]: Opisz, [F]: Znajdź, [m]: Tryb, [s] pokaż/ukryj, [L] Pokrewne, [*] " +"Ulubione, [b]: Hurtowo [?] przypisane klawisze" #: src/crafting_gui.cpp #, c-format @@ -144248,13 +147774,10 @@ msgstr "receptury zapamiętane lub nie" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"Domyślnie szukaj nazw rezultatów. Pewne jednoliterowe prefiksy mogą byc użyte z dwukropkiem (:) by szukać w inny sposób.\n" -"\n" -"Przykłady:\n" #: src/crafting_gui.cpp msgid "shirt" @@ -144545,7 +148068,7 @@ msgstr "Gdzie jest żądana mapa główna?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "Teleportujesz się do mapy świata (%d,%d,%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Ty" @@ -148176,6 +151699,17 @@ msgid "" "Time: 6 Hours, Repeated\n" "Positions: %d/2\n" msgstr "" +"Notatki:\n" +"Wyślij towarzysza by łowił w pułapki drobną zwierzynę.\n" +" \n" +"Używana umiejętność: pułapki\n" +"Trudność: N/A \n" +"Możliwości Traperskie:\n" +"> małe i drobne ciała zwierząt\n" +"Może wyprodukować mniej żywności niż pochłonie!\n" +"Ryzyko: Niskie\n" +"Czas: 6 Godzin, Powtarzalne\n" +"Stanowiska: %d/2\n" #: src/faction_camp.cpp msgid "Trap Small Game" @@ -148370,6 +151904,9 @@ msgid "" "Plow any spaces that have reverted to dirt or grass.\n" " \n" msgstr "" +"Notatki:\n" +"Zaoraj wszystkie pola które zmieniły się w ubitą ziemię lub trawę.\n" +" \n" #: src/faction_camp.cpp msgid "" @@ -148404,6 +151941,9 @@ msgid "" "Plant designated seeds in the spaces that have already been tilled.\n" " \n" msgstr "" +"Notatki:\n" +"Zasadź wyznaczone nasiona na uprzednio zaoranych polach.\n" +" \n" #: src/faction_camp.cpp msgid "" @@ -148439,6 +151979,9 @@ msgid "" "Harvest any plants that are ripe and bring the produce back.\n" " \n" msgstr "" +"Notatki:\n" +"Zbierz wszystkie dojrzałe plony i przynieś je z powrotem.\n" +" \n" #: src/faction_camp.cpp msgid "" @@ -150344,6 +153887,10 @@ msgstr "Pokaż wiadomości debug" msgid "Crash game (test crash handling)" msgstr "Zawieś grę (test postępowania z zawieszeniem gry)" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "Spawnuj Extra Lokację" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "Wyjdź do Głównego Menu" @@ -150694,22 +154241,25 @@ msgid "Underground" msgstr "Pod ziemią" #: src/game.cpp -msgid "Weather:" -msgstr "Pogoda:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "Temperatura:" +msgid "Weather :" +msgstr "Pogoda :" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Księżyc %s" +msgid "Temp :" +msgstr "Temperatura: " #: src/game.cpp msgid "Lighting:" msgstr "Światło:" +#: src/game.cpp +msgid "Deaf!" +msgstr "Głuchy!" + +#: src/game.cpp +msgid "Sound: " +msgstr "Dżwięk: " + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -151019,6 +154569,11 @@ msgstr "Upuść wszystkie rzeczy" msgid "Attach bag" msgstr "Przytwierdź torbę" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "Pobaw się z %s" + #: src/game.cpp msgid "Untie" msgstr "Odwiąż" @@ -151093,6 +154648,11 @@ msgstr "%1$s jest przeciążony. Nie możesz przemieścić twojego %2$s." msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "Nie ma na to miejsca w %2$s twojego %1$s, jest zbyt pokaźne!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "Poświęcić parę minut na zabawę z twoim %s?" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "Naprawdę zabić niewolnika zombie?" @@ -151881,63 +155441,6 @@ msgstr "Nie masz nic do rozładowania." msgid "You're not wielding anything." msgstr "Niczego nie trzymasz w dłoniach." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "Wkładasz %s do ekwipunku." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "Ten %s już teraz jest pusty!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "Płyn nie może być wylany w obecnym stanie!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "Rozładować co?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "Nie możesz rozładować %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "Nie możesz rozładować ładowalnego %s!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "Twój %s nie jest naładowany." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "Twój %s nie jest nabity." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "Rozkładasz twój %s." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "Rozładowujesz twój %s." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "Odzyskujesz %i niezużytego plutonu." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "Nie możesz usunąć częściowo zużytego plutonu!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -153465,10 +156968,6 @@ msgstr "Tak." msgid "Yes, and save game before sleeping." msgstr "Tak, i zapisz grę przed snem." -#: src/handle_action.cpp -msgid "No." -msgstr "Nie." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "Możesz chcieć to dezaktywować przed snem." @@ -153553,6 +157052,26 @@ msgstr "" "Sadź nasiona w pobliskiej Farma: strefa grządek. Grządka musi być ustawiona " "na konkretne nasiona roślin i musisz je mieć w ekwipunku." +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "Nawieź pola" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "Nawieź pola... nie masz żadnego nawozu" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "Nawieź pobliskie Farma: pola uprawne." + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "Zbierz plon z pól" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "Zbierz plon z pobliskiej: Farma: pola uprawne." + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "Potrzebujesz narzędzia do kopania." @@ -154323,10 +157842,23 @@ msgstr "Nasienie kwitnie dość gwałtownie..." msgid "The seed blossoms into a flower-looking fungus." msgstr "Nasienie zakwita w kwiatopodobny grzyb." +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "Pole nie jest rośliną" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "Pole jest już nawiezione" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "Ten %s już został nawieziony." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "Próba nawiezienia z użyciem %s, ale gracz nie ma żadnego." + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "Nawozisz %s używając %s." #: src/iexamine.cpp #, c-format @@ -154342,6 +157874,11 @@ msgstr "Nawieź %s" msgid "Use which fertilizer?" msgstr "Użyć którego nawozu?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "Ten %s już został nawieziony." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Ten piec już zawiera węgiel drzewny." @@ -156257,6 +159794,10 @@ msgstr "Modyfikator przeładowania:" msgid "Minimum strength required modifier: " msgstr "Modyfikator minimalnej potrzebnej siły:" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr " Dodaje lokacje z moda: " + #: src/item.cpp msgid "Used on: " msgstr "Używany na: " @@ -156265,6 +159806,10 @@ msgstr "Używany na: " msgid "Location: " msgstr "Lokacja: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr " niekompatybilny z lokacjami moda: " + #: src/item.cpp msgid "Covers: " msgstr "Zakrywa: " @@ -157183,6 +160728,11 @@ msgstr "nie może mieć chwytacza łusek" msgid "must be unloaded before installing this mod" msgstr "musi być rozładowany przed modyfikacją tego moda" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "nie może być zainstalowane na broni z \"%s\"" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -159896,12 +163446,7 @@ msgid "No music on device" msgstr "Brak muzyki na urządzeniu" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "Przepisy: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" +msgid "View recipes on E-ink screen" msgstr "Wyświetl recepturę na e-papierze" #: src/iuse.cpp @@ -159971,13 +163516,8 @@ msgid "You turned on music on your %s." msgstr "Włączyłeś muzykę na swoim %s." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "Wybierz przepis do wyświetlenia:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "Ustawiasz e-papier by wyświetlał przepis na %s." +msgid "List recipes:" +msgstr "Lista receptur:" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -160033,10 +163573,6 @@ msgstr "Wgraj zdjęcia na kartę pamięci" msgid "No photos in memory" msgstr "Brak zdjęć w pamięci" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "Zdecydowałeś się nie oślepiać siebie lampą błyskową." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "Nie ma tam nic nad wyraz ciekawego." @@ -160069,6 +163605,10 @@ msgstr "%s wszedł w kadr twojego zdjęcia." msgid "This photo is better than the previous one." msgstr "To zdjęcie jest lepsze od poprzedniego." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "Robisz sobie selfie." + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -161383,15 +164923,6 @@ msgstr "Nie widzisz na tyle wyraźnie, żeby to robić!" msgid "Your tool does not have enough charges to do that." msgstr "Twoje narzędzie nie posiada wystarczająco ładunków żeby to zrobić." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "Napraw co?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "Nie masz przedmiotów które da się naprawić używając %s." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -161676,12 +165207,6 @@ msgstr "Masz zainstalowaną lepszą wersję." msgid "Remove which modification?" msgstr "Usuń którą modyfikację?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Usuwasz %1$s ze swojego %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "Nie wygląda na zmodyfikowany." @@ -163244,6 +166769,10 @@ msgstr "Rozbijalny." msgid "Diggable. " msgstr "Koplany." +#: src/map.cpp +msgid "Plowable. " +msgstr "Orne. " + #: src/map.cpp msgid "Rough. " msgstr "Szorstki." @@ -165422,6 +168951,21 @@ msgstr "Ten mod wymaga wsparcia Lua" msgid "This mod requires Lua support" msgstr "Ten mod wymaga wsparcia Lua" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "%s wystrzeliwuje strzałkę, ale jej unikasz." + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s trafia cię wystrzeloną strzałką!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "%s wystrzeliwuje strzałkę, ale odbija się od twojej zbroi." + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -166051,11 +169595,6 @@ msgstr "Opierasz się %sgdy próbuje cię ciągnąć!" msgid " resist the %s as it tries to drag them!" msgstr " opiera się %s gdy próbuje go ciągnąć!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s trafia cię wystrzeloną strzałką!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "Czujesz że trucizna weszła do twojego ciała!" @@ -167136,10 +170675,42 @@ msgstr "Jest bardzo poważnie ranny." msgid "It is nearly dead!" msgstr "Jest niemal martwe!" +#: src/monster.cpp +msgid " Difficulty " +msgstr " Trudność " + +#: src/monster.cpp +msgid "Difficulty " +msgstr "Trudność " + +#: src/monster.cpp +msgid "Minimal threat." +msgstr " Minimalne zagrożenie." + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "Niezbyt groźny." + +#: src/monster.cpp +msgid "Dangerous." +msgstr "Niebezpieczny." + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "Bardzo niebezpieczny." + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "Ekstremalnie niebezpieczny." + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "Śmiertelnie niebezpieczny!" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "To jest %s. %s" +msgid "This is a %s. %s %s" +msgstr "TO jest %s. %s %s" #: src/monster.cpp #, c-format @@ -167961,12 +171532,12 @@ msgstr "punkty" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Naciśnij %s by zmienić)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Sortuj po:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" +" Sortuj przez: %1$s (Naciśnij " +"%2$s by zmienić)" #: src/newcharacter.cpp msgid "Multiple pools" @@ -168576,14 +172147,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "Dzierży %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Nosi:" -#: src/npc.cpp -msgid "Wielding: " -msgstr "Dzierży:" - #: src/npc.cpp msgid "Completely untrusting" msgstr "Zupełnie nieufny" @@ -169210,6 +172777,10 @@ msgstr "Przydała by mi się jeszcze pomoc w pewnej sprawie." msgid " If you are interested, I have another job for you." msgstr "Jak jesteś zainteresowany, to miałbym jeszcze robotę do zrobienia." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "Miło było robić interesy!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Dopiero mnie pytałeś o sprzęt. Zapytaj później." @@ -169599,17 +173170,17 @@ msgstr "Tak, wznówmy trening" msgid "%s ( cost $%d )" msgstr "%s (koszt $%d)" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (koszt $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "Okej, dziękuję." @@ -169786,14 +173357,14 @@ msgstr "Nie niszcz przeszkód." msgid "You can bash obstacles." msgstr "Możesz rozbijać przeszkody." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "Śpij jak się zmęczysz." - #: src/npctalk.cpp msgid "Stay awake." msgstr "Zachowaj czujność." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "Śpij jak się zmęczysz." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "Bądź cicho." @@ -169810,14 +173381,14 @@ msgstr "Nie ruszaj ciał." msgid "Smash zombie corpses." msgstr "Rozwalaj zwłoki zombie." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "Zamykaj za sobą drzwi." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "Zostawiaj drzwi otwarte." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "Zamykaj za sobą drzwi." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "Ustaw zasady podnoszenia rzeczy." @@ -169902,7 +173473,7 @@ msgstr "Nie ma tu obozu frakcji do odzyskania!" msgid "%s has abandoned the camp." msgstr "%s opuszcza obóz." -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "pięści" @@ -169971,6 +173542,23 @@ msgstr "%1$s daje ci %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "%1$s daje ci %2$d %3$s" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "Nie masz %1$s!" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "Dajesz %1$s %2$s" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "Dajesz %1$s %2$d %3$s" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "Nie ufam ci na tyle, żeby zjeść TO..." @@ -170123,6 +173711,16 @@ msgstr "%s zapewnia ci niezłe strzyżenie..." msgid "%s gives you a decent shave..." msgstr "%s przyzwoicie cię goli." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "To była miła pogawędka z %s..." + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "To była miła pogawędka z %s." + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -172348,13 +175946,14 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "Przykład: -pipe,-chunk,-steel" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "Szuka po [c] kategorii, [m] materiale, lub [q} jakości:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "" +"Szuka po [c] kategorii, [m] materiale, lub [d] rozbieralnych składnikach:" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "Przykład: c:żywność, m:żelazo, q:młotkujący" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "Przykład: c:żywność, m:żelazo, d:rura" #: src/output.cpp msgid "unknown" @@ -172698,6 +176297,10 @@ msgstr "Złap lub wypuść stworzenie." msgid "Load or unload a vehicle" msgstr "Załaduj lub rozładuj pojazd" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "Przeładuj siewnik nasionami" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -172860,6 +176463,11 @@ msgstr "By uniknąć rozlania zawartości, ustawiasz %1$s na %2$s." msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "By uniknąć rozlania zawartości, ustawia %1$s na %2$s." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "ty" + #: src/player.cpp msgid "your" msgstr "twój" @@ -173168,8 +176776,10 @@ msgstr "Łączna liczba implantów: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Moc: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" +"Bioniczna Moc: %d/%d" #: src/player.cpp msgid "Weapon:" @@ -173255,6 +176865,14 @@ msgstr "swój głośny okrzyk!" msgid "The sound of your voice is almost completely muffled!" msgstr "Dźwięk twojego głosu jest niemal całkowicie wygłuszony!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "niewyraźny głos" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "swój przytłumiony krzyk" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "Dźwięk twojego głosu jest mocno wygłuszony!" @@ -173930,10 +177548,6 @@ msgstr "Dlaczego mnie śledzisz?" msgid "This place is dangerous, you shouldn't be here." msgstr "To miejsce jest niebezpieczne, nie powinno cię tu być." -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "Co ty tu robisz?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "To nieprawda, zgadza się?" @@ -174229,11 +177843,6 @@ msgstr "Twoje ośrodki widzenia mają jakiś problem..." msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "Czujesz dziwne wrażenia sensoryczne w twoich detektorach radiacji." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "Twoja opaska radiacyjna zmienia kolor z %1$s na %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "" @@ -174389,6 +177998,11 @@ msgstr "Twoje drżące nogi plączą się i potykają." msgid "You fall over!" msgstr "Przewracasz się!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "Twoja opaska radiacyjna zmienia kolor z %1$s na %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -174861,6 +178475,53 @@ msgstr "Nie możesz umieścić tam przedmiotów!" msgid " can't place items here!" msgstr " nie może umieścić tam przedmiotów!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "Wkładasz %s do ekwipunku." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "Ten %s już teraz jest pusty!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "Płyn nie może być wylany w obecnym stanie!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "Rozładować co?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "Nie możesz rozładować %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "Nie możesz rozładować ładowalnego %s!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "Twój %s nie jest naładowany." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "Twój %s nie jest nabity." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "Odzyskujesz %i niezużytego plutonu." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "Nie możesz usunąć częściowo zużytego plutonu!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -174879,6 +178540,12 @@ msgstr[1] "Twój %s ma %d ładunków a potrzebuje %d." msgstr[2] "Twój %s ma %d ładunków a potrzebuje %d." msgstr[3] "Twój %s ma %d ładunków a potrzebuje %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Usuwasz %1$s ze swojego %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -175339,6 +179006,10 @@ msgstr "Czujesz że zadania w %s tego poziomu stają się trywialne." msgid "You resume your task." msgstr "Wracasz do pracy." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "Broń : pięści" + #: src/player.cpp msgid "Wield what?" msgstr "Trzymać co?" @@ -175377,6 +179048,14 @@ msgstr "Przestajesz ciągnąć rzeczy." msgid "Your body strains under the weight!" msgstr "Twoje ciało ugina się pod ciężarem!" +#: src/player.cpp +msgid "Wielding: " +msgstr "Dzierży:" + +#: src/player.cpp +msgid " Traits: " +msgstr " Cechy: " + #: src/player.cpp #, c-format msgid "You (%s)" @@ -175591,8 +179270,8 @@ msgstr "SKRĘPOWANIE I CIEPŁO" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "Moc bioniczna: %1$d" +msgid "Bionic Power: %1$d" +msgstr "Bioniczna Moc: %1$d" #: src/player_display.cpp msgid "EFFECTS" @@ -176135,15 +179814,6 @@ msgstr "Powalona atakiem astmy." msgid "You wheeze and gasp for air." msgstr "Świszczysz i starasz się łapać oddech." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "" -"Czujesz jakby twoje kości były z gumy gdy topią się i składają z powrotem." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Czujesz jakby twoje kości się kruszyły." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "Twoja głowa boli przez chwilę." @@ -176947,15 +180617,6 @@ msgstr "Zimno!%s" msgid "Freezing!%s" msgstr "Mróz!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "Głuchy!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Odgłos %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Spieczony" @@ -178255,6 +181916,21 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Przyspieszenie: %3d%s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" +"Bezp./Maks. Prędkość w wodzie: " +"%3d/%3d%s" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "Przyspieszenie w wodzie: %3d%s/t" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -178262,21 +181938,24 @@ msgstr "Masa: %5.0f%s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Objętość Ładunku: %s/%s%s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" +"Objętość Ładunku: %s / " +"%s %s" #: src/veh_interact.cpp msgid "Status:" msgstr "Status:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Najbardziej uszkodzona (nienaprawialna):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Najbardziej uszkodzona:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Najbardziej uszkodzona (nienaprawialna):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Wymaga napraw:" @@ -178306,6 +181985,11 @@ msgstr "Opór statyczny: %5d" msgid "Offroad: %4d%%" msgstr "Poza drogą: %4d%%" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "Ciąg: %4.2fm" + #: src/veh_interact.cpp msgid "Name: " msgstr "Nazwa:" @@ -178516,10 +182200,9 @@ msgid "Could not find base part in requirements for %s." msgstr "Nie można znaleźć bazowej części w wymogach dla %s." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "" -"Wybierz kierunek dla nowego reflektora. Naciśnij spację aby kontynuować." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "Wybierz kierunek dla nowego%s. Naciśnij spację aby kontynuować." #: src/veh_interact.cpp #, c-format @@ -178606,10 +182289,10 @@ msgstr "Naprawiasz %2$s w %1$s." msgid "Lost connection with the vehicle due to distance!" msgstr "Straciłeś kontakt z pojazdem z uwagi na odległość!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "BANG!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "głośne BANG! z %s" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -178823,13 +182506,13 @@ msgstr "nagromadzony" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s nie ma wystarczająco dużo kół aby się poruszać!" +msgid "The %s is too leaky!" +msgstr "%s zbytnio przecieka!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s zbytnio przecieka!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s nie ma wystarczająco dużo kół aby się poruszać!" #: src/vehicle_move.cpp #, c-format @@ -179053,6 +182736,14 @@ msgstr "Zasłoń wszystkie zasłony i zamknij wszystkie drzwi" msgid "headlights" msgstr "reflektory" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "szerokokątnego reflektora" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "kierunkowych świateł nad głową" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "światła nad głową" @@ -179311,18 +183002,23 @@ msgstr "Wygląda na to że w %1$s zabrakło %2$s." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s wydaje długi brzęczący dźwięk." +msgid "the %s bang as it starts" +msgstr "%s bang gdy startuje" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "%s wydający długie beep" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s wydaje pojedynczy dźwięk kliknięcia." +msgid "the %s clicking once" +msgstr "%s wydający pojedynczy klik" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s wydaje gwałtowne klikające dźwięki." +msgid "the %s rapidly clicking" +msgstr "%s wydający gwałtowne klikające dźwięki." #: src/vehicle_use.cpp #, c-format @@ -179331,8 +183027,8 @@ msgstr "%s szybko przycina się." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s wydaje okropne stukoczące dźwięki." +msgid "the %s clanking and grinding" +msgstr "%s stuka i łomocze" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -179352,6 +183048,11 @@ msgstr "BEEEP!" msgid "You honk the horn, but nothing happens." msgstr "Trąbisz klaksonem, ale nic się nie dzieje." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "Przenieść ile? [Masz %d] (0 by anulować)" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "prosta melodia dobywa się z głośników" diff --git a/lang/po/ru.po b/lang/po/ru.po index f480a67289482..64e6f5b059f3c 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -1,10 +1,8 @@ # Translators: # Артем Анисимов , 2018 -# ToKa Gaming , 2018 # Daniil Bolotov, 2018 # Алексей , 2018 # Disillusion Ds , 2018 -# Максим <2.6makc@gmail.com>, 2018 # Daniel , 2018 # Kio Ned , 2018 # Букин Иван , 2018 @@ -34,19 +32,22 @@ # Timofey Kostenko , 2018 # Violent Tormentor , 2018 # Alexey Mostovoy , 2018 -# Vlasov Vitaly , 2018 # Brett Dong , 2018 # Oleksii Filonenko , 2018 -# Антон Бурмистров <22.valiant@gmail.com>, 2018 -# Midas , 2018 +# Tymur Valiiev , 2019 +# Vlasov Vitaly , 2019 +# Victor_U , 2019 +# Максим <2.6makc@gmail.com>, 2019 +# Антон Бурмистров <22.valiant@gmail.com>, 2019 +# Midas , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Midas , 2018\n" +"Last-Translator: Midas , 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" @@ -1615,9 +1616,9 @@ msgid "" " in specifically engineered atomic scale configurations. A nanofabricator " "can assemble them into usable items." msgstr "" -"Стальные канистры содержащие углерод, титан, медь и другие элементы в " -"специально измеренных атомарных конфигурациях. Нанофабрикатор может собрать " -"их в полезные вещи." +"Стальные канистры, содержащие углерод, железо, титан, медь и другие элементы" +" в специально спроектированных атомных конфигурациях. Нанофабрикатор может " +"собрать их в полезные вещи." #: lang/json/AMMO_from_json.py msgid "wood ash" @@ -5979,10 +5980,10 @@ msgstr "Кираса от пластинчатого готического до #: lang/json/ARMOR_from_json.py msgid "nomad gear" msgid_plural "nomad gears" -msgstr[0] "одежда кочевника" -msgstr[1] "одежды кочевника" -msgstr[2] "одежд кочевника" -msgstr[3] "одежда кочевника" +msgstr[0] "костюм кочевника" +msgstr[1] "костюма кочевника" +msgstr[2] "костюмов кочевника" +msgstr[3] "костюм кочевника" #. ~ Description for nomad gear #: lang/json/ARMOR_from_json.py @@ -5993,6 +5994,25 @@ msgstr "" "Самодельный костюм, сделанный из докатаклизменной одежды. Предназначен для " "дальних походов. В нём уйма места для хранения вещей." +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "лёгкий костюм кочевника" +msgstr[1] "лёгких костюма кочевника" +msgstr[2] "лёгких костюмов кочевника" +msgstr[3] "лёгкий костюм кочевника" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" +"Лёгкий самодельный костюм из докатаклизменной одежды, предназначенный для " +"дальних летних походов. По сравнению с обычным костюмом кочевника в нём " +"меньше места для хранения и легче броня." + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -7269,6 +7289,23 @@ msgstr "" "Накидка из полиэтилена с капюшоном и двумя большими карманами. Защищает от " "дождя." +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "камлейка" +msgstr[1] "камлейки" +msgstr[2] "камлеек" +msgstr[3] "камлейки" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" +"Плотно сшитый плащ из обработанных и разрезанных кишок. Аборигены Арктики " +"ценят его за лёгкость и водонепроницаемость." + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -21661,41 +21698,41 @@ msgid "Spice" msgstr "Специя" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "рислинг" -msgstr[1] "рислинга" -msgstr[2] "рислинга" -msgstr[3] "рислинг" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "Рислинг" +msgstr[1] "Рислинга" +msgstr[2] "Рислингов" +msgstr[3] "Рислинг" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "" "Игристое белое вино, изготовленное из благороднейшего винограда в мире." #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" msgstr[0] "Шардоне" msgstr[1] "Шардоне" msgstr[2] "Шардоне" msgstr[3] "Шардоне" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "Заслуженно самое популярное вино Америки." #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" msgstr[0] "Каберне-совиньон" -msgstr[1] "Каберне-совиньон" -msgstr[2] "Каберне-совиньон" +msgstr[1] "Каберне-совиньона" +msgstr[2] "Каберне-совиньонов" msgstr[3] "Каберне-совиньон" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -21731,8 +21768,10 @@ msgstr[3] "виски" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "Сделано на Юге, южанами и для южан!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" +"Дистиллированный зерновой спирт, изготовленный на Юге, южанами и для южан!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -21744,8 +21783,12 @@ msgstr[3] "водка" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "В Советской России водка пьёт тебя!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" +"Напиток, состоящий только из спирта и воды. В Америке человек делает водку, " +"а в Советской России водка делает человека!" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -21757,8 +21800,12 @@ msgstr[3] "джин" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "Слабо пахнет ягодами бузины, но по сути самогон." +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" +"Алкогольный напиток с ароматом ягод можжевельника. Он слабо пахнет ягодами, " +"но в основном пьянит." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -21770,8 +21817,12 @@ msgstr[3] "ром" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "Выпив это, можно почувствовать себя пиратом. Или нет." +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" +"Дистиллированный алкогольный напиток из ферментированной патоки. Выпейте и " +"почувствуйте себя пиратом. Или нет." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -21783,8 +21834,13 @@ msgstr[3] "текила" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "Не ешь червя! Погоди, в этой бутылке нет червей." +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 "" +"Дистиллированный алкогольный напиток, изготовленный из сочных растений с колючими листьями. \n" +"— Не ешь червя! \n" +"— Подожди, в этой бутылке нет червя." #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -21902,10 +21958,11 @@ msgstr[3] "«Лонг-Айленд айс ти»" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." msgstr "" -"Коктейль из невероятно крепких ликёров, со вкусом, непохожим ни на один из " -"них." +"Смесь удивительно ароматных ликёров, не похожая на вкус ни на один из них. " +"Не содержит чая, но добавка колы придаёт чайный цвет." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -21913,8 +21970,10 @@ msgstr "коктейль «отвёртка»" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "Подпольный напиток — мечта механика-алкоголика." +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "Смесь апельсинового сока и водки. Это напиток выбор пьяницы-механика." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -21954,10 +22013,12 @@ msgstr[3] "пиво" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." msgstr "" -"Лучше всего подавать холодным, в стеклянных бокалах, с лаймом… Вам об этом " -"остаётся только мечтать." +"Алкогольный напиток, полученный из зерна и ароматизированный хмелем. Лучше " +"всего подавать охлаждённым в стакане с кусочком лайма - но вам не настолько " +"повезло." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -22032,12 +22093,13 @@ msgstr[3] "самогон" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." msgstr "" -"Только сильнейший, чистейший, старый добрый знаменитый самогон. С гарантией " -"заставит вас забыть обо всём этом катаклизме, или вы получаете своё зрение " -"обратно." +"Только крепчайший, чистейший, старый добрый самогон, перегнанный из кукурузы" +" и сахара. С гарантией заставит вас забыть обо всём этом катаклизме, или вы " +"получаете своё зрение обратно." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -22050,11 +22112,11 @@ msgstr[3] "европейский пильзнер" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." msgstr "" -"Пилснер, пильзенское пиво, импортируемое из Европы. Лучше всего подавать в " -"стакане и холодным, но вам не так везёт." +"Лагер, вид пива, импортируемый из Европы. Лучше всего подавать в стакане и " +"холодным, но вам не так везёт." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -22113,7 +22175,7 @@ msgstr[3] "бельгийский эль" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" "Вкусный и питательный эль, сваренный бельгийскими монахами. Лучше всего " @@ -22200,11 +22262,12 @@ msgstr "калимочо" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." +"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 "" -"Не такой уж и плохой, как некоторые могли бы себе представить, этот напиток " -"очень популярен среди молодых и/или бедных людей в некоторых странах." +"Смесь равных частей вина и колы. Не такой уж и плохой, как можно подумать, " +"этот напиток очень популярен среди молодых и/или бедных людей в некоторых " +"странах." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -22662,8 +22725,10 @@ msgstr[3] "мясные обрезки" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "Не то, чтоб очень, но на крайняк сгодится." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "Немного сьедобного мяса. Не то чтобы очень, но на крайняк сгодится." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -22675,8 +22740,16 @@ msgstr[3] "отходов от разделки" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "Фу." +msgid "" +"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." +msgstr "" +"Фу. Это месиво из грязи, экскрементов, соединительной ткани и всякого хлама," +" типа волос и когтей, - то, что осталось после процесса разделки. Даже " +"думать не стоит о том, чтобы съесть это, лучше как-нибудь избавиться от " +"этого, чтобы не привлекать вредителей." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -22684,8 +22757,12 @@ msgstr "приготовленное мясо" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "Только что приготовленное мясо. Очень сытное." +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" +"Кусок свежеприготовленного мяса. Он сытный и полезный, но без приправ не " +"очень вкусен." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -22702,11 +22779,13 @@ msgstr "сырые потроха" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Сырые внутренние органы и требуха. На вид неаппетитно, но в них полно важных" -" витаминов." +"Сырые внутренности, они же потроха. Они полны витаминов, но большинство " +"людей считает их слишком противными, если только они не были тщательно " +"подготовлены перед готовкой." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -22719,10 +22798,13 @@ msgstr[3] "приготовленные потроха" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." msgstr "" -"Свежеприготовленные внутренние органы. На вид неаппетитно, но в них полно " -"важных витаминов." +"Свежеприготовленные внутренности. Они полны витаминов, но большинство людей " +"считает их слишком противными, если только они не были тщательно " +"подготовлены перед готовкой." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -22735,11 +22817,13 @@ msgstr[3] "маринованные потроха" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." msgstr "" -"Свежеприготовленные внутренности, сохранённые в рассоле. Содержит " -"необходимые витамины. На вкус лучше, чем на запах." +"Внутренности, маринованные в рассоле. Они полны витаминов, и хотя на вид они" +" напоминают лабораторные экспонаты, на самом деле на вкус они вполне " +"приличные." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -22752,8 +22836,8 @@ msgstr[3] "консервированные потроха" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." msgstr "" "Свежеприготовленные внутренности, сохранённые в жестяной банке. На вид " "неаппетитно, но в них полно необходимых витаминов." @@ -22831,8 +22915,12 @@ msgstr "копчёное мясо" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "Вкусное мясо, закопчённое для длительного хранения." +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "" +"Вкусное мясо, которое хорошо прокоптилось, чтобы храниться в течение долгого" +" времени. Его можно ещё раз закоптить, чтобы полностью высушить." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -22844,10 +22932,12 @@ msgstr[3] "копчёная рыба" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." msgstr "" "Вкусная рыба, которая хорошо прокоптилась, чтобы храниться в течение долгого" -" времени." +" времени. Её можно ещё раз закоптить, чтобы полностью высушить." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -22856,31 +22946,49 @@ msgstr "копчёный лох" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." msgstr "" "Сильно подкопчённая часть человеческого тела. Долго хранится и недурна на " -"вкус, если вам нравится подобная еда." +"вкус, если, конечно, вам нравится подобная еда." #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "сырое легкое" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "кусок сырого лёгкого" +msgstr[1] "куска сырого лёгкого" +msgstr[2] "кусков сырого лёгкого" +msgstr[3] "кусок сырого лёгкого" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "Легкое животного. Оно все пористое." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"Кусок лёгкого от животного. Он губчатый и розовый, очень быстро портится. " +"Если его правильно приготовить, то может получиться деликатес, но если " +"неправильно - то получится резиновый кусок безвкусной соединительной ткани." #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "приготовленное легкое" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "кусок приготовленного лёгкого" +msgstr[1] "куска приготовленного лёгкого" +msgstr[2] "кусков приготовленного лёгкого" +msgstr[3] "кусок приготовленного лёгкого" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" -"После готовки это легкое не стало более аппетитным, но все паразиты " -"однозначно вымерли." +"Резиновая серая масса безвкусной соединительной ткани. Даже в приготовленном" +" виде оно не выглядит аппетитнее, но, по крайней мере, паразитов в нём " +"больше нет." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -22888,8 +22996,15 @@ msgstr "сырая печень" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "Печень животного." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"Печень животного. Хотя многим не нравится текстура, это одна из самых " +"богатых на витамины частей тела животного. Она очень вкусна, если делать из " +"неё сосиски, хотя если её готовить саму по себе, то выглядит не очень " +"аппетитно." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -22897,8 +23012,14 @@ msgstr "приготовленная печень" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "Битком набита витаминами группы В!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "" +"Кладезь витамина B! Приготовленная печёнка сама по себе неплоха, в " +"зависимости от того, нравится ли вам текстура, но вообще из неё можно было " +"приготовить и что-то более модное." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -22923,8 +23044,13 @@ msgstr[3] "приготовленные мозги" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "Наконец вы можете подражать своим любимым зомби!" +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 "" +"Наконец-то вы можете изобразить зомби, которых вы так любите! Впрочем, " +"приготовить мозги так, чтобы их можно было есть без отвращения, не так-то " +"просто." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -22932,8 +23058,12 @@ msgstr "сырая почка" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "Почка животного." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "" +"Почка животного. Приготовить её - испытание само по себе, если только вы не " +"хотите, чтобы ваша кухня вся пропахла мочой." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -22950,8 +23080,12 @@ msgstr "сырая поджелудочная железа" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "Тимус, или поджелудочная железа животного." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "" +"Тимус, или поджелудочная железа животного. Если её правильно приготовить - " +"деликатес." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -23045,12 +23179,12 @@ msgstr "заражённая кость" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" "Сгнившая и ломкая кость какого-то сверхъестественного существа. Её можно " -"использовать для создания каких-нибудь вещей, например древесного угля. Её " -"можно съесть, но это отравит вас." +"использовать для создания каких-нибудь вещей, например древесного угля или " +"клея. Её можно съесть, но это отравит вас." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -23415,8 +23549,14 @@ msgstr[3] "кофе" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "Кофе. Утренний ритуал доапокалиптического мира." +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" +"Утренний ритуал пре-апокалиптического мира, созданный из кофейных вишен в " +"результате сложного процесса удаления, обжарки, измельчения и варки семян. " +"Кофе значительно богаче кофеином, чем его конкурирующий чай." #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -23451,11 +23591,11 @@ msgstr[3] "сгущённое молоко" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" -"Пища телят, приготовленная для взрослых людей. Сгущённое молоко подсластит " -"любую еду." +"Коровье молоко, частично обезвоженное для значительного увеличения срока " +"хранения и подслащенное." #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -23525,8 +23665,12 @@ msgstr "энергетик" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "Популярен среди тех, кто вынужден работать до поздней ночи." +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" +"Безалкогольный напиток с большим содержанием кофеина. Энергетики популярны " +"среди тех, кто вынужден работать до поздней ночи." #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -23660,9 +23804,11 @@ msgstr "кофе с молоком" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." msgstr "" -"Кофе с молоком стало официальным утренним напитком во множестве стран." +"Смесь кофейного сиропа и молока. Официальный государственный напиток Род " +"Айленда с 1993 года." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -23670,10 +23816,8 @@ msgstr "чай с молоком" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "" -"Чай с молоком обычно употребляют по утрам. Распространён во многих странах." +msgid "Hot tea with cold milk." +msgstr "Горячий чай с холодным молоком." #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -23788,8 +23932,12 @@ msgstr "чай" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "Чай, напиток каждого джентльмена." +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" +"Напиток джентльменов, созданный путём заваривания в горячей воде листьев " +"растения камелия китайская." #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -23847,8 +23995,8 @@ msgstr "томатный соус" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "Томатный соус, ням, ням." +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "Слегка приправленный соус из приготовленных помидоров." #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -23873,8 +24021,10 @@ msgstr[3] "майонез" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "Старый добрый майонез, особенно хорош в сэндвичах." +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "Вязкая смесь яиц, масла и соли, обычно ею смачивают бутерброды." #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -23882,8 +24032,8 @@ msgstr "кетчуп" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "Старый добрый кетчуп, особенно хорош для хот-догов." +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "Густая томатная паста с солью и укусом." #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -23895,8 +24045,12 @@ msgstr[3] "горчица" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "Старая добрая горчица, особенно хороша на гамбургере." +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" +"Приправа, приготовленная из семян горчичного растения (/Brassica/ or " +"/Sinapis/), уксуса, соли и специй." #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -23947,8 +24101,12 @@ msgstr[3] "уксус" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "Отвратительно терпкий белый уксус." +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" +"Поразительно кислый белый уксус. Вот что получится, если ферментировать " +"алкоголь слишком долго." #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -23974,8 +24132,12 @@ msgstr[3] "патока" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "Экстремально сладкий сироп со слегка горьковатым привкусом." +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 "" +"Чрезвычайно сладкий липкий сироп, получаемый вывариванием сока сахарного " +"тростника или сахарной свеклы. У него горьковатое послевкусие." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -24564,8 +24726,8 @@ msgstr "" msgid "irradiated huckleberry" msgid_plural "irradiated huckleberries" msgstr[0] "облучённая люссакия" -msgstr[1] "облучённые люссакии" -msgstr[2] "облучённых люссакии" +msgstr[1] "облучённая люссакия" +msgstr[2] "облучённая люссакия" msgstr[3] "облучённая люссакия" #. ~ Description for irradiated huckleberry @@ -25401,8 +25563,12 @@ msgstr[3] "кленовый сироп" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "Сладкий и вкусный Вермонтский кленовый сироп." +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" +"После вываривания кленовый сок превращается в сладкий, вкусный кленовый " +"сироп." #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -25726,13 +25892,14 @@ msgstr "" "вкуснее и сытнее, но и портится быстро." #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" -msgstr "жареная курица" +msgid "deep-fried chicken" +msgstr "курятина во фритюре" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "Немного жаренной во фритюре курицы. Настолько плохо, что хорошо." +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "" +"Куриное мясо, приготовляемое погружением в масло. Жирное и восхитительное." #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -25918,8 +26085,8 @@ msgstr "сырая колбаса" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "Здоровая сырая колбаса, которую можно закоптить." +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "Здоровая сырая колбаса, которую можно закоптить или приготовить." #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -25930,6 +26097,15 @@ msgstr "колбаса" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "Колбаса, закопчённая для длительного хранения." +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "приготовленная колбаса" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "Здоровая приготовленная колбаса." + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "копчита вурст" @@ -25956,6 +26132,23 @@ msgstr[3] "сладкая колбаса" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "Вкусная сладкая колбаса. Лучше съесть её, пока она свежая." +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "братвурст" +msgstr[1] "братвурста" +msgstr[2] "братвурстов" +msgstr[3] "братвурст" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" +"Немецкая колбаса из мелко порубленного зажаренного или запечённого мяса. " +"Лучше всего есть с пылу с жару." + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "королевская отбивная" @@ -26150,8 +26343,12 @@ msgstr "мясной обед" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "Восхитительный мясной обед. Можно съесть холодным." +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" +"Мясо, которое было приготовлено, сохранено и нарезано тонкими ломтиками для " +"удобного приготовления бутерброда. Можно есть холодным." #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -26160,11 +26357,12 @@ msgstr "болонская колбаса" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." msgstr "" -"Предварительно нарезанный мясной обед. И его имя точно не Оскар. Можно есть " -"холодным." +"Формально известная как колбаса Болонья, это хорошо измельченное консервированное мясо, которое поставляется в виде круглых ломтиков. Ее имя не Оскар. \n" +"Вы можете съесть это холодным." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -26729,11 +26927,12 @@ msgstr "человеческая болонская колбаса" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." +"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 "" -"Предварительно нарезанный мясной обед «из непослушных детей». Его имя вполне" -" могло быть Оскар. Можно есть холодным." +"Консервированная и нарезанная человеческая плоть. \n" +"Её имя, возможно, было Оскар. \n" +"Её можно есть холодной, ведь вы хладнокровный людоед." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -26992,8 +27191,39 @@ msgstr "сырая копчита вурст" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "Здоровая сырая колбаса из человечины, которую можно закоптить." +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" +"Здоровая сырая колбаса из человечины, которую можно закоптить или " +"приготовить." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "приготовленная копчита вурст" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" +"Здоровая приготовленная колбаса из человечины. Приготовлено по-человечески." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "человекобратвурст" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" +"Немецкая колбаса из мелко порубленного зажаренного или запечённого " +"человеческого мяса. Лучше всего есть с пылу с жару. Кстати говоря, её можно " +"делать и не только из немцев." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -28105,6 +28335,25 @@ msgstr "" "усиливает естественное сопротивление организма инфекции. Одна доза действует" " 12 часов." +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "препарат от изжоги" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "Вы принимаете препарат от изжоги." + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" +"Кремово-розовый сироп от изжоги, смягчающий расстроенные желудки и " +"подавляющий рвотные позывы; откручивающаяся крышечка также служит " +"дозировочной ложкой." + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -29846,79 +30095,79 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "Очень кислый цитрус. Можно съесть, если и вправду хочется." #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "черника" -msgstr[1] "черники" -msgstr[2] "черник" -msgstr[3] "черника" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "горсть черники" +msgstr[1] "горсть черники" +msgstr[2] "горсть черники" +msgstr[3] "горсть черники" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Она голубого цвета, но это не значит, что она в печали." #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "земляника" -msgstr[1] "земляники" -msgstr[2] "земляник" -msgstr[3] "земляника" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "горсть клубники" +msgstr[1] "горсть клубники" +msgstr[2] "горсть клубники" +msgstr[3] "горсть клубники" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "Сладкая сочная ягода, часто встречается на диких полях." #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "клюква" -msgstr[1] "клюквы" -msgstr[2] "клюкв" -msgstr[3] "клюква" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "горсть клюквы" +msgstr[1] "горсть клюквы" +msgstr[2] "горсть клюквы" +msgstr[3] "горсть клюквы" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "Кислые красные ягоды. Полезны для здоровья." #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "малина" -msgstr[1] "малины" -msgstr[2] "малин" -msgstr[3] "малина" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "горсть малины" +msgstr[1] "горсть малины" +msgstr[2] "горсть малины" +msgstr[3] "горсть малины" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "Сладкая красная ягода." #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "люссакия" -msgstr[1] "люссакии" -msgstr[2] "люссакии" -msgstr[3] "люссакия" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "горсть люссакия" +msgstr[1] "горсть люссакии" +msgstr[2] "горсть люссакии" +msgstr[3] "горсть люссакии" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "Люссакию часто путают с черникой." #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "шелковица" -msgstr[1] "шелковицы" -msgstr[2] "шелковиц" -msgstr[3] "шелковица" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "горсть шелковицы" +msgstr[1] "горсть шелковицы" +msgstr[2] "горсть шелковицы" +msgstr[3] "горсть шелковицы" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -29929,14 +30178,14 @@ msgstr "" "мире." #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "бузина" -msgstr[1] "бузины" -msgstr[2] "бузин" -msgstr[3] "бузина" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "горсть бузины" +msgstr[1] "горсть бузины" +msgstr[2] "горсть бузины" +msgstr[3] "горсть бузины" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" @@ -29944,14 +30193,14 @@ msgstr "" " приготовлены." #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "шиповник" -msgstr[1] "шиповника" -msgstr[2] "шиповников" -msgstr[3] "шиповник" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "горсть шиповника" +msgstr[1] "горсть шиповника" +msgstr[2] "горсть шиповника" +msgstr[3] "горсть шиповника" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "Плод опылённого розового цветка шиповника." @@ -29988,14 +30237,14 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "Цитрус, вкус которого варьируется от кислого до полусладкого." #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "вишня" -msgstr[1] "вишни" -msgstr[2] "вишен" -msgstr[3] "вишня" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "горсть вишни" +msgstr[1] "горсть вишни" +msgstr[2] "горсть вишни" +msgstr[3] "горсть вишни" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "Красный сладкий плод, растущий на деревьях." @@ -30011,14 +30260,14 @@ msgid "" msgstr "Несколько крупных фиолетовых слив. Полезные и хорошо усваиваемые." #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "виноград" -msgstr[1] "винограда" -msgstr[2] "винограда" -msgstr[3] "виноград" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "горсть винограда" +msgstr[1] "горсть винограда" +msgstr[2] "горсть винограда" +msgstr[3] "горсть винограда" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "Гроздь сочного винограда." @@ -30073,14 +30322,14 @@ msgid "A large and very sweet fruit." msgstr "Большой и очень сладкий фрукт." #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "ежевика" -msgstr[1] "ежевики" -msgstr[2] "ежевики" -msgstr[3] "ежевика" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "горсть ежевики" +msgstr[1] "горсть ежевики" +msgstr[2] "горсть ежевики" +msgstr[3] "горсть ежевики" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "Тёмная родственница малины." @@ -30125,10 +30374,14 @@ msgstr "" "восхитительная зелёная мякоть." #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "абрикос" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "горсть абрикосов" +msgstr[1] "горсть абрикосов" +msgstr[2] "горсть абрикосов" +msgstr[3] "горсть абрикосов" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "Гладкокожий фрукт, похожий на персик." @@ -30193,8 +30446,8 @@ msgstr "капуста" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "Плотный кочан хрустящей белокочанной капусты." +msgid "Crisp white cabbage." +msgstr "Хрустящая белая капуста." #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -30299,8 +30552,8 @@ msgstr "огурец" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "Родом из семейства Тыквенные. Не вкусный, но очень сочный." +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "Родом из семейства Тыквенные. Не слишком вкусный, но очень сочный." #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -30825,6 +31078,10 @@ msgstr[3] "семена ежевики" msgid "Some blackberry seeds." msgstr "Несколько семян ежевики." +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "ежевика" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -30838,6 +31095,10 @@ msgstr[3] "семена черники" msgid "Some blueberry seeds." msgstr "Несколько семян черники." +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "черника" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -30851,6 +31112,10 @@ msgstr[3] "семена клюквы" msgid "Some cranberry seeds." msgstr "Несколько семян клюквы." +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "клюква" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -30864,6 +31129,10 @@ msgstr[3] "семена люссакии" msgid "Some huckleberry seeds." msgstr "Несколько семян люссакии." +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "люссакия" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -30877,6 +31146,10 @@ msgstr[3] "семена шелковицы" msgid "Some mulberry seeds." msgstr "Несколько семян шелковицы." +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "шелковица" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -30890,6 +31163,10 @@ msgstr[3] "семена бузины" msgid "Some elderberry seeds." msgstr "Несколько семян бузины." +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "бузина" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -30903,6 +31180,10 @@ msgstr[3] "семена малины" msgid "Some raspberry seeds." msgstr "Несколько семян малины." +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "малина" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -30916,6 +31197,10 @@ msgstr[3] "семена земляники" msgid "Some strawberry seeds." msgstr "Несколько семян земляники." +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "клубника" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -30929,6 +31214,10 @@ msgstr[3] "семена винограда" msgid "Some grape seeds." msgstr "Несколько семян винограда." +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "виноград" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -32697,6 +32986,16 @@ msgstr "«особое» пирожное" msgid "This is definitely not how grandma used to bake them." msgstr "Это, безусловно, не так, как бабушка пекла." +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" +"Вкусное шоколадное пирожное, почти такое же вкусное, как бабушкина выпечка." + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "волокнистый стебель" @@ -34470,6 +34769,23 @@ msgstr[3] "бочка токсичных отходов" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "Жёлтая бочка для хранения опасных токсичных веществ." +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "Садовый горшок" +msgstr[1] "Садовых горшков" +msgstr[2] "Садовых горшков" +msgstr[3] "Садовые горшки" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" +"Это специальный горшок для выращивания растений. Поддерживает растения в " +"комфортных для них условиях для получения максимальной урожайности." + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -37804,6 +38120,40 @@ msgstr "" "устройствах типа холодильников. Герметично запечатан, чтобы не допустить " "испарения - его нельзя открыть без соединения с подходящим клапаном." +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "пластина из твёрдой стали" +msgstr[1] "пластины из твёрдой стали" +msgstr[2] "пластин из твёрдой стали" +msgstr[3] "пластина из твёрдой стали" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" +"Пластина из очень прочной стали, специально разработана для использования в " +"пуленепробиваемых жилетах." + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "стальная пластина" +msgstr[1] "стальные пластины" +msgstr[2] "стальных пластин" +msgstr[3] "стальная пластина" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" +"Стальная пластина, специально разработана для использования в " +"пуленепробиваемых жилетах." + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -39077,9 +39427,8 @@ msgstr[3] "камень в носке" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "Камень внутри завязанного носка. Настоящее оружие безысходности." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "Пара носков с вложенным камнем. Настоящее оружие отчаяния." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -41046,6 +41395,23 @@ msgstr "" "Автомобильные фары в прочном корпусе с решёткой, защищающей от повреждений " "без снижения эффективности." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "бронированные широкоугольные фары" +msgstr[1] "бронированные широкоугольные фары" +msgstr[2] "бронированных широкоугольных фар" +msgstr[3] "бронированные широкоугольные фары" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" +"Автомобильные фары с широким углом освещения в прочном корпусе с решёткой, " +"защищающей от повреждений без снижения эффективности." + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -41274,10 +41640,10 @@ msgstr "Несколько скреплённых вместе досок для #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel plating" msgid_plural "steel platings" -msgstr[0] "стальная пластина" -msgstr[1] "стальных пластины" -msgstr[2] "стальных пластин" -msgstr[3] "стальная пластина" +msgstr[0] "стальная броня" +msgstr[1] "стальной брони" +msgstr[2] "стальной брони" +msgstr[3] "стальная броня" #. ~ Description for steel plating #: lang/json/GENERIC_from_json.py @@ -41287,10 +41653,10 @@ msgstr "Часть сделанной из стали брони." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "superalloy plating" msgid_plural "superalloy platings" -msgstr[0] "сверхпрочная пластина" -msgstr[1] "сверхпрочных пластины" -msgstr[2] "сверхпрочных пластин" -msgstr[3] "сверхпрочная пластина" +msgstr[0] "броня из суперсплава" +msgstr[1] "брони из суперсплава" +msgstr[2] "брони из суперсплава" +msgstr[3] "броня из суперсплава" #. ~ Description for superalloy plating #: lang/json/GENERIC_from_json.py @@ -41316,10 +41682,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "spiked plating" msgid_plural "spiked platings" -msgstr[0] "шипованная пластина" -msgstr[1] "шипованных пластины" -msgstr[2] "шипованных пластин" -msgstr[3] "шипованная пластина" +msgstr[0] "шипованная броня" +msgstr[1] "шипованной брони" +msgstr[2] "шипованной брони" +msgstr[3] "шипованная броня" #. ~ Description for spiked plating #: lang/json/GENERIC_from_json.py @@ -41330,10 +41696,10 @@ msgstr "Часть сделанной из стали брони. Покрыта #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "hard plating" msgid_plural "hard platings" -msgstr[0] "твёрдая пластина" -msgstr[1] "твёрдых пластины" -msgstr[2] "твёрдых пластин" -msgstr[3] "твёрдая пластина" +msgstr[0] "твёрдая броня" +msgstr[1] "твёрдой брони" +msgstr[2] "твёрдой брони" +msgstr[3] "твёрдая броня" #. ~ Description for hard plating #: lang/json/GENERIC_from_json.py @@ -41533,6 +41899,23 @@ msgid "A large and heavy light designed to illuminate wide areas." msgstr "" "Большой и тяжёлый прожектор, предназначенный для освещения больших площадей." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "направленный прожектор" +msgstr[1] "направленных прожектора" +msgstr[2] "направленных прожекторов" +msgstr[3] "направленный прожектор" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" +"Большой и тяжёлый прожектор, предназначенный для освещения больших площадей " +"конусом света." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -41816,6 +42199,19 @@ msgstr[3] "фара" msgid "A vehicle headlight to light up the way." msgstr "Автомобильная фара для освещения дороги." +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "широкоугольные фары" +msgstr[1] "широкоугольные фары" +msgstr[2] "широкоугольных фар" +msgstr[3] "широкоугольные фары" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "Широкоугольная автомобильная фара для освещения дороги." + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -42326,6 +42722,19 @@ msgstr[3] "«Вы и цзуй-цюань»" msgid "A complete guide to Zui Quan." msgstr "Подробное руководство по цзуй-цюань." +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "Путь Копья" +msgstr[1] "Путь Копья" +msgstr[2] "Путь Копья" +msgstr[3] "Путь Копья" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "Полное руководство по Сёдзюцу." + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -44709,6 +45118,62 @@ msgstr[3] "сломанный новый аниматронный кролик" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "Сломанный аниматронный кролик. Хромой и безжизненный." +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "деревянный лодочный корпус" +msgstr[1] "деревянных лодочных корпуса" +msgstr[2] "деревянных лодочных корпусов" +msgstr[3] "деревянные лодочные корпуса" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" +"Деревянный борт. Придаёт лодке плавучесть. Устанавливайте детали корпуса на " +"транспортное средство, пока оно не начнёт держаться на воде. Потом " +"прикрепите вёсла или мотор, чтобы лодка могла плавать." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "пластиковый лодочный корпус" +msgstr[1] "пластиковых лодочных корпуса" +msgstr[2] "пластиковых лодочных корпусов" +msgstr[3] "пластиковые лодочные корпуса" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Борт из жёсткого пластика. Придаёт лодке плавучесть. Устанавливайте детали " +"корпуса на транспортное средство, пока оно не начнёт держаться на воде. " +"Потом прикрепите вёсла или мотор, чтобы лодка могла плавать." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "карбоновый лодочный корпус" +msgstr[1] "карбоновых лодочных корпуса" +msgstr[2] "карбоновых лодочных корпусов" +msgstr[3] "карбоновые лодочные корпуса" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" +"Борт из углеродного волокна. Придаёт лодке плавучесть. Устанавливайте детали" +" корпуса на транспортное средство, пока оно не начнёт держаться на воде. " +"Потом прикрепите вёсла или мотор, чтобы лодка могла плавать." + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -44722,6 +45187,32 @@ msgstr[3] "вёсла" msgid "Oars for a boat." msgstr "Вёсла для лодки." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "надувная секция" +msgstr[1] "надувных секции" +msgstr[2] "надувных секций" +msgstr[3] "надувная секция" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "Надувная секция лодки." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "подушка безопасности" +msgstr[1] "подушки безопасности" +msgstr[2] "подушек безопасности" +msgstr[3] "подушка безопасности" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "Подушка безопасности." + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -44852,6 +45343,457 @@ msgstr[1] "сцепки патронной ленты" msgstr[2] "сцепок патронной ленты" msgstr[3] "сцепка патронной ленты" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "Садовый горшок (растет томат)" +msgstr[1] "Садовых горшков (растет томат)" +msgstr[2] "Садовых горшков (растет томат)" +msgstr[3] "Садовый горшок (растут томаты)" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "Помидоры готовы к сбору!" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "Это быстро растет." + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущими томатами. \n" +"Когда они созреют, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "Садовый горшок (спелые томаты)" +msgstr[1] "Садовых горшков (спелые томаты)" +msgstr[2] "Садовых горшков (спелые томаты)" +msgstr[3] "Садовые горшки (спелые томаты)" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовые для сбора томаты. \n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "Садовый горшок (растет пшеница)" +msgstr[1] "Садовых горшков (растет пшеница)" +msgstr[2] "Садовых горшков (растет пшеница)" +msgstr[3] "Садовый горшок (растет пшеница)" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "Пшеница готова к уборке." + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "Пшеница растет быстро." + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущей пшеницей. \n" +"Когда она созреет, вам нужно активировать горшок, чтобы подготовить урожай к сбору." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "Садовый горшок (урожай пшеницы)" +msgstr[1] "Садовых горшков (урожай пшеницы)" +msgstr[2] "Садовых горшков (урожай пшеницы)" +msgstr[3] "Садовый горшок (урожай пшеницы)" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" +"Это садовый горшок содержащий урожай пшеницы.\n" +"Разберите для сбора." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "Садовый горшок (растет хмель)" +msgstr[1] "Садовых горшков (растет хмель)" +msgstr[2] "Садовых горшков (растет хмель)" +msgstr[3] "Садовый горшок (растет хмель)" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "Хмель готов к уборке!" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущим хмелем. \n" +"Когда он созреет, вам нужно активировать горшок, чтобы подготовить урожай к сбору." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "Садовый горшок (созревший хмель)" +msgstr[1] "Садовых горшков (созревший хмель)" +msgstr[2] "Садовых горшков (созревший хмель)" +msgstr[3] "Садовый горшок (созревший хмель)" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовый для сбора хмель.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "Садовый горшок (растет гречиха)" +msgstr[1] "Садовых горшков (растет гречиха)" +msgstr[2] "Садовых горшков (растет гречиха)" +msgstr[3] "Садовый горшок (растет гречиха)" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущей гречихой. \n" +"Когда она созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "Садовый горшок (созревшая гречиха)" +msgstr[1] "Садовых горшков (созревшая гречиха)" +msgstr[2] "Садовых горшков (созревшая гречиха)" +msgstr[3] "Садовый горшок (созревшая гречиха)" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" +"Это садовый горшок содержащий готовую для сбора гречиху.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "Садовый горшок (растущая брокколи)" +msgstr[1] "Садовых горшков (растущая брокколи)" +msgstr[2] "Садовых горшков (растущая брокколи)" +msgstr[3] "Садовый горшок (растущая брокколи)" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущей брокколи. \n" +"Когда она созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "Садовый горшок (спелая брокколи)" +msgstr[1] "Садовых горшков (спелая брокколи)" +msgstr[2] "Садовых горшков (спелая брокколи)" +msgstr[3] "Садовый горшок (спелая брокколи)" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" +"Это садовый горшок содержащий готовую для сбора брокколи.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "Садовый горшок (растущий овес)" +msgstr[1] "Садовых горшков (растущий овес)" +msgstr[2] "Садовых горшков (растущий овес)" +msgstr[3] "Садовый горшок (растущий овес)" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущим овсом. \n" +"Когда он созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "Садовый горшок (созревший овес)" +msgstr[1] "Садовых горшков (созревший овес)" +msgstr[2] "Садовых горшков (созревший овес)" +msgstr[3] "Садовый горшок (созревший овес)" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовые для сбора овес.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "Садовый горшок (растет ячмень)" +msgstr[1] "Садовых горшков (растет ячмень)" +msgstr[2] "Садовых горшков (растет ячмень)" +msgstr[3] "Садовый горшок (растет ячмень)" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущим ячменем. \n" +"Когда он созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "Садовый горшок (созревший ячмень)" +msgstr[1] "Садовых горшков (созревший ячмень)" +msgstr[2] "Садовых горшков (созревший ячмень)" +msgstr[3] "Садовый горшок (созревший ячмень)" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовый для сбора ячмень.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "Садовый горшок (растет морковь)" +msgstr[1] "Садовых горшков (растет морковь)" +msgstr[2] "Садовых горшков (растет морковь)" +msgstr[3] "Садовый горшок (растет морковь)" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущей морковью. \n" +"Когда она созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "Садовый горшок (созревшая морковь)" +msgstr[1] "Садовых горшков (созревшая морковь)" +msgstr[2] "Садовых горшков (созревшая морковь)" +msgstr[3] "Садовый горшок (созревшая морковь)" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовую для сбора морковь.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "Садовый горшок (растет хлопок)" +msgstr[1] "Садовых горшков (растет хлопок)" +msgstr[2] "Садовых горшков (растет хлопок)" +msgstr[3] "Садовый горшок (растет хлопок)" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущим хлопком. \n" +"Когда он созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "Садовый горшок (созревший хлопок)" +msgstr[1] "Садовых горшков (созревший хлопок)" +msgstr[2] "Садовых горшков (созревший хлопок)" +msgstr[3] "Садовый горшок (созревший хлопок)" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовый для сбора хлопок.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "Садовый горшок (растет капуста)" +msgstr[1] "Садовых горшков (растет капуста)" +msgstr[2] "Садовых горшков (растет капуста)" +msgstr[3] "Садовый горшок (растет капуста)" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущей капустой. \n" +"Когда она созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "Садовый горшок (созревшая капуста)" +msgstr[1] "Садовых горшков (созревшая капуста)" +msgstr[2] "Садовых горшков (созревшая капуста)" +msgstr[3] "Садовый горшок (созревшая капуста)" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" +"Это садовый горшок содержащий готовую для сбора капусту.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "Садовый горшок (растут огурцы)" +msgstr[1] "Садовых горшков (растут огурцы)" +msgstr[2] "Садовых горшков (растут огурцы)" +msgstr[3] "Садовый горшок (растут огурцы)" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущими огурцами. \n" +"Когда они созреют, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "Садовый горшок (созревшие огурцы)" +msgstr[1] "Садовых горшков (созревшие огурцы)" +msgstr[2] "Садовых горшков (созревшие огурцы)" +msgstr[3] "Садовый горшок (созревшие огурцы)" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" +"Это садовый горшок содержащий готовые для сбора огурцы.\n" +"Разберите для сбора урожая." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "Садовый горшок (растет чеснок)" +msgstr[1] "Садовых горшков (растет чеснок)" +msgstr[2] "Садовых горшков (растет чеснок)" +msgstr[3] "Садовый горшок (растет чеснок)" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" +"Это садовый горшок с растущим чесноком. \n" +"Когда он созреет, вам нужно активировать горшок, чтобы подготовить урожай к сборке." + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "Садовый горшок (созревший чеснок)" +msgstr[1] "Садовых горшков (созревший чеснок)" +msgstr[2] "Садовых горшков (созревший чеснок)" +msgstr[3] "Садовый горшок (созревший чеснок)" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" +"Это садовый горшок содержащий готовый для сбора чеснок.\n" +"Разберите для сбора урожая." + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -48577,7 +49519,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "antimateriel rifle magazine" -msgstr "магазин противотанкового ружья" +msgstr "магазин крупнокалиберной винтовки" #. ~ Description for antimateriel rifle magazine #: lang/json/MAGAZINE_from_json.py @@ -48585,7 +49527,7 @@ msgid "" "A 10-round magazine which holds heavy rifle ammo for use with an " "antimateriel rifle" msgstr "" -"Магазин на 10 патронов для использования с тяжёлой противотанковой " +"Магазин на 10 патронов для использования с тяжёлой крупнокалиберной " "винтовкой." #: lang/json/MAGAZINE_from_json.py @@ -48934,6 +49876,15 @@ msgstr "" "может вызывать проблемы при использовании совместно с другими оружейными " "модами." +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "Горшок для выращивания" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "Позволяет выращивать семена в садовом горшке." + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "Ручная установка бионик" @@ -50908,6 +51859,10 @@ msgstr "" "вздувшееся тело. Он неуклюже передвигается, но атакует с помощью больших " "запасов кислоты." +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "Коррозийный зомби выплёвывает сгусток кислоты!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "зомби-ползун" @@ -53355,7 +54310,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "antimateriel turret" -msgstr "противотанковая турель" +msgstr "крупнокалиберная турель" #. ~ Description for antimateriel turret #: lang/json/MONSTER_from_json.py @@ -56110,11 +57065,18 @@ msgstr[1] "фетровых шляпы" msgstr[2] "фетровых шляп" msgstr[3] "фетровая шляпа" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "Поправить" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "Вы надеваете вашу шляпу." +#, no-python-format +msgid "You tip your %s." +msgstr "Вы поправили %s." #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -56491,7 +57453,7 @@ msgstr[3] "ребризер" #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "The %s's filter is used up." -msgstr "Используется фильтр %s." +msgstr "Иссяк ресурс фильтра %s." #. ~ Description for rebreather mask #: lang/json/TOOL_ARMOR_from_json.py @@ -57869,6 +58831,14 @@ msgstr[1] "наковальни-валуна" msgstr[2] "наковален-валунов" msgstr[3] "наковальня-валун" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "бионическая зажигалка" +msgstr[1] "бионических зажигалки" +msgstr[2] "бионических зажигалок" +msgstr[3] "бионические зажигалки" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -59499,46 +60469,6 @@ msgstr "" "Это небольшой металлический бак для хранения угля с присоединённым " "запальником. Вы можете использовать её для приготовления пищи." -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "набор химика" -msgstr[1] "набора химика" -msgstr[2] "наборов химика" -msgstr[3] "набор химика" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"Коробка с химическими принадлежностями. Содержит в себе стеклянные колбы, " -"резиновые шланги, металлическую проволоку, электроплитку и защитные очки. " -"Необходима для создания предметов с использованием химических реакций, если " -"у вас появится такое желание." - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "базовый набор химика" -msgstr[1] "базовых набора химика" -msgstr[2] "базовых наборов химика" -msgstr[3] "базовый набор химика" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "" -"Базовый набор химика, включающий в себя стеклянные колбы, резиновые шланги и" -" защитные очки. Необходима для создания предметов с использованием " -"химических реакций, если у вас появится такое желание, но вам потребуется " -"источник огня." - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -65821,6 +66751,211 @@ msgstr "" "выключать бортовые приборы. Некоторыми автомобилями можно управлять " "дистанционно." +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "набор химика" +msgstr[1] "набора химика" +msgstr[2] "наборов химика" +msgstr[3] "набор химика" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"Коробка с химическими принадлежностями. Содержит в себе стеклянные колбы, " +"резиновые шланги, металлическую проволоку, электроплитку и защитные очки. " +"Необходима для создания предметов с использованием химических реакций, если " +"у вас появится такое желание." + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "базовый набор химика" +msgstr[1] "базовых набора химика" +msgstr[2] "базовых наборов химика" +msgstr[3] "базовый набор химика" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "" +"Базовый набор химика, включающий в себя стеклянные колбы, резиновые шланги и" +" защитные очки. Необходима для создания предметов с использованием " +"химических реакций, если у вас появится такое желание, но вам потребуется " +"источник огня." + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "набор для базового лабораторного анализа" +msgstr[1] "набора для базового лабораторного анализа" +msgstr[2] "наборов для базового лабораторного анализа" +msgstr[3] "наборы для базового лабораторного анализа" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" +"В этом увесистом наборе содержатся основные инструменты, необходимые для " +"занятий настоящей химией, а именно: маленькие весы, спектрофотометр, прибор " +"для определения температуры плавления, pH-метр и бумага для тонкослойной " +"хроматографии. С таким набором вы можете быть уверены, что получили именно " +"тот химикат, который задумали." + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "маленькие весы" +msgstr[1] "маленьких весов" +msgstr[2] "маленьких весов" +msgstr[3] "маленькие весы" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" +"Простые весы с подвижными стальными гирьками на рейках для точного измерения" +" массы образца." + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "спектрофотометр" +msgstr[1] "спектрофотометра" +msgstr[2] "спектрофотометров" +msgstr[3] "спектрофотометры" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" +"Широко распространённый прибор для химического анализа. Он измеряет " +"поглощение света жидким образцом в особой трубочке-кювете." + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "набор кювет для спектрометрии" +msgstr[1] "набора кювет для спектрометрии" +msgstr[2] "наборов кювет для спектрометрии" +msgstr[3] "наборы кювет для спектрометрии" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" +"Маленькая коробочка с точно откалиброванными квадратными пластиковыми " +"трубочками для лабораторного спектрометра." + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "рН-метр" +msgstr[1] "рН-метра" +msgstr[2] "рН-метров" +msgstr[3] "рН-метры" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" +"По сути - просто пара стеклянных зондов с вольтметром. Если погрузить один " +"зонд в подготовленный калибровочный раствор, а второй в исследуемый образец," +" можно рассчитать кислотность." + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "прибор для определения температуры плавления" +msgstr[1] "прибора для определения температуры плавления" +msgstr[2] "приборов для определения температуры плавления" +msgstr[3] "приборы для определения температуры плавления" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" +"Фактически это электроплитка с прикреплённой металлической коробочкой. В " +"коробочке есть смотровое окошко и слот для капиллярной трубочки с " +"кристаллизованным образцом. С помощью этого прибора вы сможете точно " +"измерить температуру плавления кристалла. Очень полезно для определения, что" +" это за вещество и насколько оно чистое." + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "фотодатчик" +msgstr[1] "фотодатчика" +msgstr[2] "фотодатчиков" +msgstr[3] "фотодатчики" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" +"Фотодиод с микрочипом для превращения входящего света в электрическую " +"энергию для количественного измерения." + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "стеклянная призма" +msgstr[1] "стеклянных призмы" +msgstr[2] "стеклянных призм" +msgstr[3] "стеклянные призмы" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" +"Призма из высококачественного прозрачного стекла для разделения и " +"перенаправления света." + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "маленькая стеклянная трубочка" +msgstr[1] "маленьких стеклянных трубочки" +msgstr[2] "маленьких стеклянных трубочек" +msgstr[3] "маленькие стеклянные трубочки" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "Маленькая стеклянная трубочка. Что вы ещё хотите про неё узнать?" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -66096,10 +67231,10 @@ msgid "" "bronze. One of the four major weapons in folklore, alongside the jian " "sword, qiang spear, and gun staff." msgstr "" -"Древнекитайский меч, состоящий из изогнутого клинка и чашеобразной гарды. " -"Сохранившийся с времён династии Шан, этот сделан из бронзы. Один из четырёх " -"основных традиционных видов оружия, наряду с мечом цзянь, копьём цян и " -"посохом гунь." +"Древнекитайский меч, состоящий из изогнутого клинка и чашеобразной гарды, " +"использовавшийся со времён династии Шан. Этот экземпляр изготовлен из " +"бронзы. Один из четырёх основных традиционных видов оружия, наряду с мечом " +"цзянь, копьём цян и посохом гунь." #: lang/json/TOOL_from_json.py msgid "bronze anvil" @@ -67427,6 +68562,17 @@ msgstr[1] "неактивных военных робота" msgstr[2] "неактивных военных роботов" msgstr[3] "неактивный военный робот" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" +"Военный робот без питания, оснащенный встроенным огнестрельным оружием 7.62 " +"и электрическим оружием. Активируйте этот предмет с боеприпасами в вашем " +"инвентаре, чтобы загрузить и развернуть робота." + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -68390,51 +69536,6 @@ msgstr "" "Деревянное тележное колесо ручной работы с металлическими обручами для " "прочности." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "надувная секция" -msgstr[1] "надувных секции" -msgstr[2] "надувных секций" -msgstr[3] "надувная секция" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "Надувная секция лодки." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "подушка безопасности" -msgstr[1] "подушки безопасности" -msgstr[2] "подушек безопасности" -msgstr[3] "подушка безопасности" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "Подушка безопасности." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "борт лодки" -msgstr[1] "борта лодки" -msgstr[2] "бортов лодки" -msgstr[3] "борт лодки" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" -"Деревянный борт, сохраняет лодку на плаву. Чтобы превратить транспорт в " -"лодку, поместите борта так, как вы бы устанавливали колёса на автомобиле. " -"Потом прикрепите вёсла или мотор, чтобы заставить лодку двигаться." - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "желейный трак" @@ -68660,6 +69761,10 @@ msgstr "Прекратить взаимодействие с транспорт msgid "Stop training?" msgstr "Прекратить тренировку?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr " Прекратить общение?" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "Прекратить использование аптечки?" @@ -68716,6 +69821,14 @@ msgstr "Прекратить обработку участка фермы?" msgid "Stop planting seeds?" msgstr "Прекратить посадку семян?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "Прекратить собирать урожай?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "Прекратить удобрять участки?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "Прекратить взаимодействие с инвентарём?" @@ -68820,10 +69933,18 @@ msgstr "Прекратить бриться?" msgid "Stop cutting your hair?" msgstr "Прекратить стричься?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "Перестать играть со своим питомцем?" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "Прекратить попытки заснуть?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "Прекратить разгрузку?" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Нитро-Экспресс" @@ -72026,6 +73147,18 @@ msgstr "" "Тэг ИИ, если предлагается тренироваться с NPC. Если видите надпись — это " "сбой." +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "Попросил пообщаться" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" +"ИИ тег: недавно попросил НПС пообщаться. Это ошибка, если он у вас есть." + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "Спросили информацию" @@ -73396,22 +74529,6 @@ msgstr "Вам скучно." msgid "The ceiling collapses on you!" msgstr "На вас обрушился потолок!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "Лечение стволовыми клетками" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "" -"Лечение набирает силу, и ваши внутренности странным образом перемещаются." - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "В ваш глаз ввели раствор перемолотых костей и эмали." - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "Принятое противосудорожное" @@ -73983,6 +75100,15 @@ msgstr "панацея" msgid "You feel incredible! You could take on the world!" msgstr "Вы чувствуете себя невероятно! Вы можете покорить мир!" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "Успокоенный желудок" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "Вы приняли средство от изжоги." + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "Разряд" @@ -74008,9 +75134,8 @@ msgstr "В Истории Отказано" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" "Тэг ИИ, когда вы уже спросили НПС о деталях его истории выживания, и тот " "пока что не хочет вам рассказывать. Если вы видите это у себя - это баг." @@ -81490,10 +82615,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "antimateriel rifle" msgid_plural "antimateriel rifles" -msgstr[0] "противотанковое ружьё" -msgstr[1] "противотанковых ружья" -msgstr[2] "противотанковых ружей" -msgstr[3] "противотанковое ружьё" +msgstr[0] "крупнокалиберная винтовка" +msgstr[1] "крупнокалиберные винтовки" +msgstr[2] "крупнокалиберных винтовок" +msgstr[3] "крупнокалиберная винтовка" #: lang/json/gun_from_json.py msgid "" @@ -83649,6 +84774,51 @@ msgstr "" "Точновзвешенный спусковой крючок, который немного улучшает точность " "огнестрельного оружия." +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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 "AR-15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" +"Изначально созданная для Colt SP-1, эта «репродукция» предназначена для " +"превращения AR-15 в полностью автоматическую винтовку. После внесения " +"необходимых изменений и установки модификации полуавтоматический режим " +"отключается и включается полный автоматический режим. Надежность и точность " +"сильно страдают из-за сомнительного мастерства и отсутствия необработанных " +"деталей SP-1." + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -83837,6 +85007,20 @@ msgstr "" "Дополнительный прицел, смещённый на 45°. Используется, когда оптический " "прицел или другая модификация ограничивают использование основного прицела." +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "планка для смещённого прицела" +msgstr[1] "планки для смещённого прицела" +msgstr[2] "планок для смещённого прицела" +msgstr[3] "планка для смещённого прицела" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" +"Дополнительная планка, установленная под углом в 45°, для установки " +"вспомогательных прицелов." + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -87628,15 +88812,13 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" -"Если центр тяжести вашего автомобиля находится между всеми бортами лодки и у" -" вас нет колёс, автомобиль сможет плавать и двигаться по воде, при условии, " -"что он имеет включённый двигатель или мотор с достаточной мощностью для " -"движения автомобиля." +"Каждая деталь лодочного корпуса уменьшает осадку транспортного средства и " +"увеличивает подъём борта над водой. Если осадка меньше подъёма борта, ваш " +"транспорт будет плавать в воде." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -88395,7 +89577,7 @@ msgstr "Разделать" msgid "Chat with NPC" msgstr "Поговорить с персонажем" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "Осмотреться" @@ -89006,6 +90188,14 @@ msgstr "Переключить морозильник" msgid "Toggle headlights" msgstr "Переключить фары" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "Переключить широкоугольные фары" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "Переключить направленную мигалку" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "Переключить мигалку" @@ -89420,14 +90610,14 @@ msgid "Analyze blood" msgstr "Анализ крови" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "Мистер Стволовая Клетка" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "Лечение стволовыми клетками" +msgid "Bonesetting Treatment" +msgstr "Обезболивающее Лечение" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -89595,6 +90785,15 @@ msgstr ", и были здесь!" msgid "it works." msgstr "работает." +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" +"Название морга с наспех приписанным текстом: 'Если ваши любимые не останутся" +" мёртвыми, я ни при чем'." + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -90055,12 +91254,12 @@ msgstr "Осторожно: идут работы" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Private Property: No Trespassing" -msgstr "" +msgstr "Частная собственность: проход запрещён" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Discount Tires" -msgstr "" +msgstr "Шины со скидкой" #: lang/json/martial_art_from_json.py msgid "No style" @@ -90876,6 +92075,39 @@ msgstr "" "+Сила дробящая броня, +Ловкость кислотная броня, +Интеллект электрическая " "броня, +Восприятие огненная броня." +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "Содзюцу" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" +"Содзюцу, или \"Путь копья\" - японское боевое искусство сражения с копьём. " +"Содзюцу делает упор на сохранении дистанции с противником для получения " +"преимущества над ним." + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "Бонус к блоку длинными видами оружия, если стоять на одном месте" + +#: lang/json/martial_art_from_json.py +msgid "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 "Увеличенный урон во время движения, но без дополнительного блока" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "Средневековый бой на мечах" @@ -94615,6 +95847,10 @@ msgstr "Понравилось: %s" msgid "Enjoyed a hot meal" msgstr "Горячая еда" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "Наслаждение беседой" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "Музыка" @@ -94825,6 +96061,10 @@ msgstr "Свежевыбрит" msgid "Barfed" msgstr "Стошнило" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "Игра с питомцем" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "Разожжённый огонь" @@ -96026,6 +97266,21 @@ msgstr "" "Хотя вы по-прежнему страдаете от негативных последствий болевых ощущений, " "они также доставляют вам непередаваемое удовольствие." +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "Психоз от стимуляторов" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" +"У вас необычные отношения со стимуляторами (такими как кофе или амфетамины)." +" Вы можете принять их гораздо больше без риска передозировки, но при большом" +" их количестве у вас начинаются галлюцинации." + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -96180,10 +97435,10 @@ msgstr "Бой холодным оружием" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." msgstr "" "Вы практиковались бою с оружием. Вы начинаете с одним из стилей: Эскрима, " -"фехтование, Пенчак Силат или Нитэн Ити-рю." +"фехтование, Пенчак Силат, Нитэн Ити-рю или Содзюцу." #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -96921,6 +98176,19 @@ msgstr "" "вы гораздо медленнее лечитесь. Эффект складывается с чертой «Стеклянная " "челюсть»." +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "Генетическая Катастрофа" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" +"Катаклизм изменил вашу ДНК настолько сильно, что вы будете мутировать чаще " +"обычного, а любые мутации будут отрицательными." + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "Грубая кожа" @@ -101459,6 +102727,24 @@ msgstr "Новые опции стали доступны!" msgid "Has Level 2 Construction Built" msgstr "Имеет 2 Уровень Строительства Конструкций" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "Стартовый НПС" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "Пометка для стартовых НПС" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "Статический НПС" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "Пометка для статических НПС" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "Отладочное зрение" @@ -101847,7 +103133,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Software Engineering Training" -msgstr "" +msgstr "Знание Программной Инженерии" #. ~ Description for Software Engineering Training #: lang/json/mutation_from_json.py @@ -101855,10 +103141,12 @@ msgid "" "This survivor has some formal training in software engineering, but not much" " experience." msgstr "" +"Этот выживший кое-что знает о программной инженерии, но у него немного " +"опыта." #: lang/json/mutation_from_json.py msgid "Software Engineering Expert" -msgstr "" +msgstr "Эксперт в Программной Инженерии" #. ~ Description for Software Engineering Expert #: lang/json/mutation_from_json.py @@ -101866,10 +103154,12 @@ msgid "" "This survivor has extensive experience in software engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" +"У этого выжившего обширный опыт в программной инженерии, он кандидат " +"технических наук или очень опытный работник, или его эквивалент." #: lang/json/mutation_from_json.py msgid "Structural Engineering Training" -msgstr "" +msgstr "Знание Инженерного Проектирования" #. ~ Description for Structural Engineering Training #: lang/json/mutation_from_json.py @@ -101877,10 +103167,12 @@ msgid "" "This survivor has some formal training in structural engineering, but not " "much experience." msgstr "" +"Этот выживший кое-что знает об инженерном проектировании, но у него немного " +"опыта." #: lang/json/mutation_from_json.py msgid "Structural Engineering Expert" -msgstr "" +msgstr "Эксперт в Инженерном Проектировании" #. ~ Description for Structural Engineering Expert #: lang/json/mutation_from_json.py @@ -101888,6 +103180,8 @@ msgid "" "This survivor has extensive experience in structural engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" +"У этого выжившего обширный опыт в инженерном проектировании, он кандидат " +"технических наук или очень опытный работник, или его эквивалент." #: lang/json/mutation_from_json.py msgid "Entomology Training" @@ -102241,6 +103535,10 @@ msgstr "Апис" msgid "I'm bugged - I shouldn't talk to you." msgstr "Я забагована - я не должна разговаривать с тобой." +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "Нищий" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -102602,6 +103900,30 @@ msgstr "Бандит" msgid "Psycho" msgstr "Психо" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "нищий" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "Рина Сандху" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "Дино Дэйв" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "Луо Мейчжень" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "Брэндон Гардер" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "Юсуке Тэйлор" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "Рейдер" @@ -103777,8 +105099,36 @@ msgid "trailhead" msgstr "начало тропинки" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "заброшенный автомобильный проезд" +msgid "veterinarian clinic" +msgstr "ветеринарная клиника" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "музей" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "морг" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "прачечная-автомат" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "ювелирная" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "2-х этажный мотель" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "Большое офисное здание" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "магазин бытовых товаров" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -103804,6 +105154,10 @@ msgstr "кегельбан" msgid "boxing gym" msgstr "боксёрский зал" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "тренажёрный зал" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "додзё" @@ -103817,37 +105171,13 @@ msgid "gardening supply" msgstr "сельскохозяйственный" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "тренажёрный зал" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "магазин бытовых товаров" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "ювелирная" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "прачечная-автомат" +msgid "abandoned drive-through" +msgstr "заброшенный автомобильный проезд" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "безымянный" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "морг" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "музей" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "ветеринарная клиника" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "разорённая пиццерия" @@ -104085,14 +105415,6 @@ msgstr "школа" msgid "projects" msgstr "дома для бедных" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "2-х этажный мотель" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "Большое офисное здание" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "гараж механика" @@ -104209,6 +105531,42 @@ msgstr "шиномонтаж" msgid "regional dump" msgstr "областная свалка" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "Бродяга" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Обстоятельства сложились таким образом, что у вас нет ни дома, ни семьи, ни " +"друзей. Но мир, каким вы его знали, ушёл в прошлое, и ваша привычка " +"полагаться во всём только на себя, возможно, очень пригодится вам в этом " +"новом мире." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "Бродяга" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" +"Обстоятельства сложились таким образом, что у вас нет ни дома, ни семьи, ни " +"друзей. Но мир, каким вы его знали, ушёл в прошлое, и ваша привычка " +"полагаться во всём только на себя, возможно, очень пригодится вам в этом " +"новом мире." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -104970,7 +106328,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hobo" -msgstr "Бродяга" +msgstr "Бомж" #. ~ Profession (male Hobo) description #: lang/json/professions_from_json.py @@ -104989,7 +106347,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hobo" -msgstr "Бродяга" +msgstr "Бомж" #. ~ Profession (female Hobo) description #: lang/json/professions_from_json.py @@ -109267,6 +110625,132 @@ msgstr "" "перепрофилирование коммерческих роботов, но ты никогда не думала, что от " "этого может зависеть твоё выживание." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "Инженер-Робототехник" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Вы были инженером низкого уровня в производстве робототехники. Руководство " +"все время повторяло, что ставить огнеметы на мэнхаки было «ненужно» и " +"«слишком опасно», но теперь вас ничто не остановит." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "Инженер-Робототехник" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" +"Вы были инженером низкого уровня в производстве робототехники. Руководство " +"все время повторяло, что ставить огнеметы на мэнхаки было «ненужно» и " +"«слишком опасно», но теперь вас ничто не остановит." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "Чудо Робототехник" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Вы строили роботов с тех пор, как могли держать паяльник, и вы не намерены " +"позволить концу света помешать этому продолжаться." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "Чудо Робототехник" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" +"Вы строили роботов с тех пор, как могли держать паяльник, и вы не намерены " +"позволить концу света помешать этому продолжаться." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "Спасённый Роботом" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Во время беспорядков военный робот появился из ниоткуда, чтобы спасти вас. " +"Может быть, он думает, что вы кто-то важный, кто знает." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "Спасённая Роботом" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" +"Во время беспорядков военный робот появился из ниоткуда, чтобы спасти вас. " +"Может быть, он думает, что вы кто-то важный, кто знает." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "Робо-охотник" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Вы заплатили местному хакеру за изготовление роботизированной охотничьей " +"собаки. Она почти такая же, как настоящая, но ей не нравится быть домашней " +"зверушкой." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "Робо-охотница" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" +"Вы заплатили местному хакеру за изготовление роботизированной охотничьей " +"собаки. Она почти такая же, как настоящая, но ей не нравится быть домашней " +"зверушкой." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -111964,13 +113448,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Bunker Evacuee" -msgstr "Эвакуированный в Бункер" +msgstr "Эвакуированный в бункер" #. ~ Name for scenario 'Bunker Evacuee' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Bunker Evacuee" -msgstr "Эвакуированная в Бункер" +msgstr "Эвакуированная в бункер" #. ~ Description for scenario 'Bunker Evacuee' for a male character. #: lang/json/scenario_from_json.py @@ -112548,7 +114032,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "Пожары распространяются легко, особенно при избытке топлива." #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "" "Даже без электричества духовки могут быть полезны в качестве места, где " "можно разжечь огонь." @@ -112578,24 +114062,26 @@ msgstr "" "Холодная пища хранится дольше. Найдите холодный подвал или постройте погреб." #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" -"Вы мертвы? Это часть игрового опыта. Попробуйте снова с тем, что вы узнали." +"Вы погибли? Воспринимайте это как часть игрового опыта. Попробуйте сыграть " +"ещё раз с тем, что вы узнали." #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "" -"Замороженная пища? Положите её рядом с огнём или разогрейте в кастрюле." +"Замороженная пища? Положите её рядом с огнём или разогрейте в сковороде или " +"кастрюле." #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." -msgstr "В подземной пещере или подвале всегда холодно, но никогда не морозно." +msgid "Underground spaces like basements or caves stay cool year-round." +msgstr "" +"В подземной пещере или подвале сохраняется прохладная температура круглый " +"год" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" "Боитесь диких зверей? Кричите, пока они не уйдут. Но остерегайтесь того, что" @@ -112606,7 +114092,7 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "Дикие животные не дружат с зомби. Можете пользоваться этим." #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." +msgid "A door is not the only way in or out of most places." msgstr "Дверь — не единственный путь внутрь. Или наружу, если это важно." #: lang/json/snippet_from_json.py @@ -112626,20 +114112,21 @@ msgstr "" "делают." #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." -msgstr "Опасное место не всегда означает хорошую добычу. Думайте головой." +msgid "Just because a place is dangerous doesn't mean it's worth looting." +msgstr "" +"Один только факт того, что место опасное, не означает того, что в нём можно " +"найти хорошую добычу." #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." -msgstr "Войти - не проблема. Подумайте о выходе, не дайте себя окружить." +msgid "If you're breaking in, be sure you also know how to get back out." +msgstr "Если вы куда-то вламываетесь, всегда держите в уме путь наружу." #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" -"Чаще всего есть более одного способа добиться желаемого. Примените " -"творческий подход, мыслите шире." +"Часто есть более одного способа добиться желаемого. Примените творческий " +"подход, мыслите шире." #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." @@ -112675,17 +114162,18 @@ msgstr "Не каждый может выжить в машине, летяще #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"Вы же не хотите, чтобы в вашей гнилой еде завелись огромные тараканы? " -"Выбросьте её уже." +"Сгнившая пища привлекает падальщиков, так что либо заранее уничтожайте " +"сгнившее, либо устраивайте засадную охоту." #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" -"Препараты могут помочь выжить в критической ситуации, но остерегайтесь " -"передозировки и привыкания." +"Разные лекарства и наркотики могут дать быстрый прирост характеристик, но " +"остерегайтесь зависимостей или передозировок." #: lang/json/snippet_from_json.py msgid "" @@ -112696,11 +114184,10 @@ msgstr "" " содержать то, что вам нужно." #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -"Раны залечиваются со временем. Своевременная перевязка и дезинфекция может " -"значительно ускорить процесс." +"Раны заживают со временем. Своевременная перевязка и дезинфекция ускоряют " +"этот процесс." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -112729,19 +114216,15 @@ msgstr "" "узнаете как." #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" -msgstr "" -"Сырая пища и вода из сомнительных источников не может быть здоровой? Не так " -"ли?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" +msgstr "Сырая пища и вода из сомнительных источников не может быть здоровой." #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "" -"Зачем тратить целый день на ходьбу до ближайшего города, когда вы можете " -"обзавестись машиной?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "Зачем ходить, когда можно ездить на машине. Или танке." #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "Еда, оставшаяся со времён до катаклизма, не вечна. Имейте это в виду." #: lang/json/snippet_from_json.py @@ -112803,7 +114286,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" "Большинство лекарств действует не мгновенно, поэтому не глотайте сразу целую" @@ -112849,12 +114332,10 @@ msgstr "" "окружающего барахла." #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." +msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -"Срок хранения продуктов неизвестен. Условия хранения продуктов имеют большое" -" значение, особенно температура." +"Сроки хранения продуктов зависят от окружающей температура. Чем холодней, " +"тем луче." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -112882,7 +114363,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" "Сломанная конечность сбила с ритма? В больнице могут найтись " @@ -112905,12 +114386,10 @@ msgstr "" "бумаги больше нигде нет." #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" -"Сложный ландшафт трудно пройти. Используй как преимущество — замедли " -"скорость передвижения противника." +"Местность, замедляющая ваше передвижение, также будет замедлять и ваших " +"врагов." #: lang/json/snippet_from_json.py msgid "" @@ -112929,11 +114408,12 @@ msgstr "" "добавить массу впечатлений от игры. Отыгрывайте роль!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." -msgstr "Спас выжившего — заработал друга. Обычно это так и работает..." +msgid "A survivor saved is a friend earned. Most of the time..." +msgstr "Спас выжившего — заработал друга. В большинстве случаев..." #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" "Учитесь играть? Начните с изучения комбинаций клавиш. Они не сложные, " "поверьте." @@ -112942,6 +114422,82 @@ msgstr "" msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "Ожидайте неожиданного, даже если это — испанская инквизиция." +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" +"Вы можете метать предметы во время выглядывания из-за угла. Идеально " +"подходит для уничтожения турелей." + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" +"Торговым автоматам никто не сказал, что миру пришёл конец. Так что не " +"выбрасывайте кредитки!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" +"В этих супер-секретных подземных лабораториях наверняка есть что-то очень " +"классное, как думаете?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" +"Разместите воронку поверх канистры или бочки, чтобы собирать дождевую воду." + +#: 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 "" +"Количество зомби в городах огромно, но всё же конечно. Вы даже можете " +"избавиться (со временем) от них всех." + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" +"Вы стащили всё, что не прибито гвоздями? Вернитесь и захватите гвозди!" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "Вы можете создать свои собственные правила безопасного режима." + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "Даже самый лучший огнестрел в мире бесполезен без патронов." + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "" +"Большинство зомби будут пытаться идти прямо через машины, а не вокруг них. " +"Помните об этом, когда будете убегать." + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" +"Сломали ногу? Пока она заживает, вы можете с пользой провести время за " +"чтением книг." + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "В некоторых трупах при их вскрытии можно найти бионику." + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" +"Не будьте слишком алчными. Мертвецы всё равно не смогут воспользоваться всем" +" своим лутом." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -118968,6 +120524,73 @@ msgstr "Вода... Здесь поблизости есть оазис?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "Ты знаешь, что недостаток воды убивает быстрее, чем недостаток сна?" +#: 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 "" +"Да-да, конечно, не могу не заметить, что у тебя есть пиво! Давай откупорим " +"бутылочку и поболтаем, , как дела?" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" +"О, конечно, как насчёт одной из бутылочек пива, что я у тебя видел? Впрочем," +" как твои дела?" + +#: 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 "" +"Ага, поделись пивком, я видел, у тебя с собой несколько штук, и мы поболтаем" +" о чём угодно! Шучу-шучу, как жизнь?" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "Эй, конечно, , мне всё равно нужно передохнуть, как сам-то?" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "Ага, лады, , как поживаешь?" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "Без вопросов, давай потрындим! Ты как, всё нормально?" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "Чего ж нет-то? Как твои дела?" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "У меня всё норм, чё как?" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "Могу уделить пару минут, как сам-то?" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "Не вопрос, , у тебя всё хорошо?" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "Хорошо, тебе хочется выговориться и камень с души снять?" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "Всегда рад хорошенько поболтать! Но что случилось, всё нормально?" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "Что ж, , нам надо узнать друг друга получше, как держишься?" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "Я определённо не против. Как себя чувствуешь?" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "мать твою" @@ -119398,7 +121021,7 @@ msgstr "приятель" #: lang/json/snippet_from_json.py msgid "nomad" -msgstr "бродяга" +msgstr "кочевник" #: lang/json/snippet_from_json.py msgid "partner" @@ -119432,7 +121055,7 @@ msgstr "приятель" msgid "fella" msgstr "пацан" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "ты" @@ -120510,6 +122133,18 @@ msgstr "Я посмотрю, как ты сдохнешь!" msgid "You're going to pay for that, !" msgstr "Ты за это заплатишь, !" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "А ну-ка потише там!" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "Ты слышал, кто-то говорил?" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "Кто это сказал?" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "Звучит плохо." @@ -120526,6 +122161,10 @@ msgstr "Ты это слышал?" msgid "What's that noise?" msgstr "Что за шум?" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "Там что-то есть?" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "Я слышал, как что-то двигалось - похоже на" @@ -120535,16 +122174,16 @@ msgid "What's that sound? I heard" msgstr "Что за звук? Я слышал" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" -msgstr "Кто там? Я слышал" +msgid "What's there? I heard" +msgstr "Что там такое? Я слышал" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" msgstr "Ты это слышал? Звучало как" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" -msgstr "Кто издаёт этот звук? Я слышу" +msgid "What is making that sound? I can hear the" +msgstr "Что это там шумит? Я слышу" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." @@ -120679,6 +122318,10 @@ msgstr "ходячий труп" msgid " " msgstr " " +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "нежить" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "живые мертвецы" @@ -120691,10 +122334,6 @@ msgstr "зомби" msgid "Z's" msgstr "Зеды" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "мёртвый" - #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -123862,2802 +125501,1157 @@ msgid "Clothing Store" msgstr "Магазин Одежды" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"Я вообще, , без понятия. Я, , не знаю, что происходит. Я " -"просто делаю что могу, чтоб выжить. Миру конец, я бродил и пытался не " -"помереть, пока не встретил тебя." +msgid "That sure is a shiny badge you got there!" +msgstr "Точно, у вас тут блестящий жетон!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "Ага." +msgid "Heh, you look important." +msgstr "Ха, у вас такой важный вид." #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" -"Ещё до того, как наступил ? Да какая разница? Мы в новом " -"мире, и да, он довольно . Мы через это прошли, так что давай не " -"будем копаться в прошлом. Надо пробовать жить с тем немногим, что у нас " -"осталось." +msgid "I'm actually new." +msgstr "Вообще-то я новичок." #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "Я понимаю." +msgid "What are you doing here?" +msgstr "Что ты здесь делаешь?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" -"Честно... Я даже не помню. Я смутно помню свою жизнь ещё до того, как мир " -"изменился, но про сам ? Всё как в тумане. Я не знаю, как " -"мне удалось выжить, или вообще как всё произошло. Со мной, наверно, " -"произошло что-то плохое. Или я очень сильно ударился головой. Или всё сразу." -" Похоже, всё сразу." +msgid "Heard anything about the outside world?" +msgstr "Слышно что-нибудь из внешнего мира?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" -"Моя история. Гм. Ничего особенного. Я знал людей, но они вознеслись к " -"Господу. Я не понимаю, почему Он не забрал и меня, но в своё время всё " -"прояснится, наверное." +msgid "Is there any way I can join your group?" +msgstr "Могу ли я присоединиться к вашей организации?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "Ты в религиозном смысле, или...?" +msgid "What's with your ears?" +msgstr "Что с вашими ушами?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "Я могу чем-то помочь?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "Ладно, пока." #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" -"Разумеется. Всё же и так понятно, нет? Та... та катастрофа, это было " -"Вознесение. Я всё ещё здесь, и я всё еще не понимаю, почему. Я буду хранить " -"Иисуса в своём сердце в грядущих временах Великой Скорби. Когда времена " -"пройдут, я уверен, Он пригласит меня в Рай. Или... или что-то такое. Всё " -"идёт не так, как я ожидал, но таково пророчество для тебя." - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "А что, если ты ошибаешься?" +"Значит, нас таких двое. Ну, типа. Не думаю, впрочем, что тут открыто. " +"Чертовски забито; там внизу почти целая толпа. Видишь вон того торговца? Его" +" и спрашивай." #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "Что ты будешь делать?" +msgid "Sucks..." +msgstr "Отстой..." #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" -"Чего? Как ты можешь заявлять такое? Я не верю, что ты смотришь на всё это и " -"думаешь, что это не конец света. Мёртвые воскресли, врата самого Ада " -"распахнулись, Звери Сатаны бродят по Земле, а Праведные вознеслись в Царство" -" Божье. Какие ещё доказательства тебе нужны?" +"Ну, вообще тут внизу есть парень, у которого есть рабочая пневматическая " +"пушка. Она стреляет металлом как... как пушка, только без грохота. Чертовски" +" выгодная штука. Далее, арматура может пригодиться тем, кто изготавливает " +"самодельное оружие. Ну и напоследок можно упомянуть строительство " +"укреплений. Мало кто из монстров сможет сломать забор или тем более стену, " +"построенные с использованием арматуры." #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "Что ты будешь делать?" +msgid "Well, then..." +msgstr "Ну ладно..." #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"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 "" -"Я буду хранить веру, и молиться, и сражать приспешников Ада везде, где " -"увижу. Это всё, что мы с тобой можем, не так ли? Возможно, мы и есть " -"кроткие, что Землю унаследуют. Хотя наши шансы мне не нравятся." +"Ничего хорошего. Как-то мне встретился парень, у которого была любительская " +"радиостанция, но потом он пропал, и с ним пропала и та штука. Капут." #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" -"То же, что и раньше. Я отвернулся от Господа и теперь расплачиваюсь. " -"Вознесение прошло, а я остался. Так что теперь я буду бродить по Аду на " -"Земле. Хотелось бы мне с большим рвением посещать воскресную школу." +msgid "Nothing optimistic?" +msgstr "Совсем ничего хорошего?" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" -"Ладно, это прозвучит дико, но я, типа, я знал, что произойдёт. Ну, типа, " -"прежде чем всё случилось. Не веришь - спроси мою духовную наставницу, только" -" она, типа, скорее всего уже мертва. Я рассказал ей про свои сны за неделю " -"до конца света. Серьёзно!" +"Большинство лагерей МЧС опустошены. В городах кишат зомби, в лесах - " +"пылающие глаза и животные-мутанты. Везде творится какая-то безумная херня, и" +" каждый, у кого есть радио, описывает просто жуткие вещи." #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "О чём были твои сны?" +msgid "I feel bad for asking." +msgstr "Извините, что обращаюсь к вам." #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" -"Итак, первый сон мне снился три недели каждую ночь. Мне снилось, что я бежал" -" через лес, отбиваясь палкой от гигантских пауков. На самом деле! Каждую " -"ночь." - -#: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "Ну, тут ничего необычного нет." - -#: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "Ого, ничего себе, поверить не могу, что тебе снился ." +"Не знаю. В смысле, если сумеете оказаться полезным. Но сейчас это всё так " +"туманно. Всё зависит от того, кого спрашивать. Торговец, например, точно не " +"хочет меня здесь видеть, когда я не занимаюсь торговлей, но... многих людей " +"это устраивает." #: lang/json/talk_topic_from_json.py msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." msgstr "" -"Ладно, это всё равно, типа, только начало. В общем, за неделю до катаклизма " -"после очередного сна с пауками я встал поссать и вернулся в кровать, потому " -"что я слегка перепугался, понятно? А потом мне приснился другой сон, типа, " -"моя начальница умерла и снова ожила! А спустя несколько дней на работу " -"пришел её муж, у него случился инфаркт, и я слышал на следующий день, что он" -" вернулся из мёртвых! Всё как в моём сне, только с другим человеком!" - -#: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "Это странновато." +"Держу пари, ты так же добился своего. Молчи об этом, некоторые здесь смотрят" +" свысока на таких, как мы." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and I heard the next " -"day that he'd come back from the dead! Just like in my dream, only it was a" -" different person!" +msgid "Ssh. Some people in here hate... mutations. This was an accident." msgstr "" -"АГА?! И это ещё не всё! В общем, за неделю до катаклизма после очередного " -"сна с пауками я встал поссать и вернулся в кровать, потому что я слегка " -"перепугался, понятно? А потом мне приснился другой сон, типа, моя начальница" -" умерла и снова ожила! А спустя несколько дней на работу пришел её муж, у " -"него случился инфаркт, и я слышал на следующий день, что он вернулся из " -"мёртвых! Всё как в моём сне, только с другим человеком!" +"Шшш. Некоторые люди здесь ненавидят... мутации. Был тут один инцидент." #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" -"АГА?! В любом случае, мне всё ещё снятся необычные сны, но больше не про " -"будущее. Типа, после конца света мне часто снятся кошмары. Типа, каждую пару" -" ночей мне снятся чёрные звёзды вокруг Земли, и на миг все они одновременно " -"смотрят на Землю, как миллиард крошечных чёрных глаз. А потом они моргают и " -"отворачиваются, и потом в моём сне Земля становится точно такой же чёрной " -"звездой, и я остаюсь один, один-одинёшенек, и мне очень страшно. Это самый " -"худший сон. Есть и другие." +msgid "Sorry to ask" +msgstr "Извините за вопрос" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "Расскажи ещё про свои странные сны." +msgid "You're disgusting." +msgstr "Вы отвратительны." #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" -"Хорошо, иногда мне снится, что я зомби. Я просто этого не осознаю. Я просто " -"делаю привычные вещи и вижу зомби обычными людьми, а обычных людей вижу " -"зомби. Когда я просыпаюсь, я понимаю, что всё не по-настоящему, потому что " -"если бы всё было правдой, было бы куда больше обычных людей. Потому что они " -"на самом деле были бы зомби. И вообще все сейчас зомби." - -#: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "Наверное, нам всем сейчас такое снится." +"Сжигаю здания и сплавляю материалы Свободным Торговцам. Не шучу. Видел как-" +"нибудь кучу пережжённого хлама вместо пригорода или тонну балок на продажу? " +"Скорее всего, моя работа. Денег вроде неплохо получаю. Могу сбагрить парочку" +" Молотовых, если надо." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" -"Ага, наверно. Иногда мне снится, будто я, типа, всего лишь пылинка, плывущая" -" в огромной равнодушной галактике. После такого я жалею, что моего продавца " -"травки, Грязного Дэна, сожрал гигантский чудовищный краб." +msgid "I'll buy." +msgstr "Я куплю." #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "Бедняга Грязный Дэн. " +msgid "Who needs rebar?" +msgstr "Кому это нужна арматура?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "Спасибо, что рассказал. " +msgid "As if you're one to talk. Screw You." +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 "" -"Я сумел добраться до одного из этих, , эвакуационных убежищ, но там " -"было ещё хуже. Ушёл оттуда, и с тех пор я в бегах." +msgid "Screw You!" +msgstr "Иди нахрен!" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "Как ты выжил в бегах?" +msgid "Another survivor! We should travel together." +msgstr "Ещё один выживший! Нам нужно двигаться вместе." #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" -"Я долго копался в лесу в поисках ревеня и овощей, пока не набрался храбрости" -" и не начал отстреливать этих мёртвых тварей. Наверное, я был в отчаянии." +msgid "What are you doing?" +msgstr "Чем занимаешься?" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" -"Со мной было то же, что с большинством остальных, кто не умер сразу во время" -" бунтов. Я отправился в этот центр, , эвакуации, смертельную " -"ловушку. Я на самом деле даже немного там жил с тремя другими. Один чувак " -"- думаю, он насмотрелся фильмов - он, типа, за всем этим стоял, потому что " -"он вроде как по-настоящему знал, что происходит. Спойлер: он, , был " -"ни при чём." +msgid "Care to trade?" +msgstr "Поторгуем?" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "Что стало с твоей группой?" +msgid "&Put away weapon." +msgstr "&Убрать оружие." #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" -"Всё накрылось, когда наш бесстрашный лидер решил пристрелить одну выжившую, " -"которую укусили. Её муж был как бы очень сильно против, да и я был не в " -"восторге, на тот момент он уже успел натворить херни. Ну, он решил взять " -"дело в свои руки и застрелил укушенную. Тогда её муж решил, что на добро " -"надо отвечать добром, и убил придурка. А потом она воскресла, и я убил её " -"снова и разбил труп нашего бывшего лидера. К сожалению, она успела пиздец " -"как искусать своего мужа, пока тот никак не мог собрать яйца в кулак и " -"защищаться. Не то чтоб я его, блядь, виню. Мы выбрались оттуда вдвоём, но " -"мужик перенёс слишком много, он уже был явно не в себе... Укус нагноился, но" -" его добил ещё один . И я остался один." +msgid "&Drop weapon." +msgstr "&Бросить оружие." #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "Как ты думаешь, что произошло? Видел ли ты кого-нибудь?" +msgid "Don't worry, I'm not going to hurt you" +msgstr "Не волнуйся, я не причиню тебе вреда!" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"Во мне нет ничего особенного, я не знаю, почему я вообще выжил. Меня " -"эвакуировали вместе с горсткой остальных, но мы опоздали вернуться в лагерь " -"МЧС. На нас напали мертвецы... Я единственный, кто выжил тогда. Я никогда не" -" оглядывался назад." +msgid "Drop your weapon!" +msgstr "Бросай оружие!" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" -"Меня везли вместе с остальными выжившими в центр беженцев, пока самый " -"огромный зомби на свете не разнёс автобус. Он был занят остальными " -"пассажирами, так что я сделал то, что сделал бы каждый, и съебался нахер " -"оттуда." +msgid "Get out of here or I'll kill you." +msgstr "Прочь с дороги, или я убью тебя." #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" -"На моё эвакуационное убежище напали пчёлы, ну те самые, которые размером с " -"собаку. Я убил нескольких доской, но довольно быстро понял, что либо валю " -"оттуда подальше, либо меня заколют, как свинью. Остальное уже другая " -"история." +msgid "Hey there, ." +msgstr "Привет, ." -#: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "Гигантские пчёлы? Расскажи подробнее." +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "Пока." #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "Но пчёлы обычно неагрессивны..." +msgid "Hello there." +msgstr "Привет." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" -"Ага, я уверен, ты их видел, они повсюду. Типа как что-то из старого " -"фантастического фильма. Некоторых в эвакуационном центре ужалили, без шуток." -" Я не задержался, чтоб посмотреть на результат. Мне не стыдно признать, что " -"я бежал как, , ссыкло." +msgid "Okay, no sudden movements..." +msgstr "Ладно, не делай резких движений…" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "Но пчёлы обычно неагрессивны... Может, то были осы?" +msgid "Keep your distance!" +msgstr "Не подходи ближе!" #: 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 "" -"Ну, извини меня, пожалуйста, что я не остановился и, , не расспросил " -"жуков-убийц, как именно их зовут." +msgid "Calm down. I'm not going to hurt you." +msgstr "Успокойся. Я не причиню тебе зла." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "Прости. Можешь рассказать мне ещё?" +msgid "Screw you, no." +msgstr "Иди на хрен, нет." #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "Точно. Прости." +msgid "&Put hands up." +msgstr "&Поднять руки." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" -"Что ж, я сидел дома, когда по сотовому передали тревогу и велели идти в " -"эвакуационное убежище. Ну я и пришёл в убежище. А потом в убежище набилось " -"слишком много народу, люди ждали автобусов до центра беженцев, но автобусы " -"не приезжали. Ты, верно, уже всё знаешь. Всё переросло в панику и драку. Я " -"не стал задерживаться и смотреть, что будет дальше. Я захватил все " -"инструменты из шкафчиков, что смог, и направился в леса. Я вернулся " -"несколько дней спустя, но убежище было совершенно пусто. Без понятия, что " -"стало с теми людьми." +msgid "*drops his weapon." +msgstr "*бросает своё оружие." #: 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 "" -"Это сложно. Думаю, если вкратце - меня эвакуировали в лагерь МЧС во имя моей" -" так называемой безопасности, но я, к счастью, сбежал." +msgid "*drops_her_weapon." +msgstr "*бросает_своё_оружие." #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "Расскажи мне про лагерь МЧС." +msgid "Now get out of here" +msgstr "А теперь убирайся." #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "Как ты выбрался?" +msgid "Now get out of here, before I kill you." +msgstr "Теперь убирайся отсюда, пока я тебя не убил." #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" -"Это было ужасно. Нас привезли туда на школьном автобусе, около тридцати " -"человек. Ты, наверно, уже понял загвоздку. У нескольких чуваков были раны, и" -" какой-то мудак, насмотревшийся говёных фильмов, начал убеждать остальных, " -"что все 'укушенные' скоро 'обратятся'. Ёбаный придурок, правда? Меня кусали " -"дюжину раз, и в худшем случае у меня была просто мерзкая инфекция." +msgid "Okay, I'm going." +msgstr "Ладно, я иду." #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "Что случилось потом?" +msgid "About that job..." +msgstr "По поводу работы…" #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" -"Люди уже паниковали, а из-за того парня воцарилось безумие. За транспортом " -"присматривал вооружённый парень, ну он изображал из себя копа, но на самом " -"деле он был просто ребёнок, которому дали ружьё. Он попытался " -"успокоить народ, и у него даже немного получилось, хотя группа 'убить " -"заражённых' была, , на взводе и точно полна решимости, когда у " -"бабушки с порезом на руке пошла пена изо рта. Они снова принялись за своё, " -"когда мы добрались до лагеря. Ничем хорошим для них это не кончилось. " -"Несколько тяжеловооружённых солдат утащили их прочь, и больше я их не видел." +msgid "About one of those jobs..." +msgstr "По поводу одного из этих заданий…" #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" -"В том месте был настоящий хаос. Я выдержал только несколько часов. Там был " -"большой экскаватор, копавший огромную яму в загороженной секции, куда нас не" -" подпускали. Ну, мне удалось прокрасться поближе, и я видел, как в яму " -"сбрасывали трупы кучу за кучей, а потом заваливали землёй, даже хотя трупы " -"оживали и пытались выбраться. К счастью, следующим утром на нас напал какой-" -"то гигантский кошмар, такого я больше никогда не видел. Пока охрана с ним " -"разбиралась, я захватил припасы, стыренные ночью, и дал по съёбам оттуда. " -"Несколько остальных пытались свалить вместе со мной, но, насколько я знаю, " -"мне единственному повезло." +msgid "What's the matter?" +msgstr "Что случилось?" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" -"Это история для следующего раза. Мне правда не хочется думать об этом." +msgid "I don't care." +msgstr "Мне всё равно." #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "Прости. Расскажи мне про лагерь МЧС." +msgid "I see." +msgstr "Понятно." -#: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Извини, что спрашиваю. " +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "Ну, ладно." #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "Извини, что спрашиваю. " +msgid "Never mind, I'm not interested." +msgstr "Неважно, мне не интересно." -#: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" -"Я опоздал на эвакуацию, когда всё пошло по пизде. Застрял в городе на " -"несколько дней, выжил, потому что прятался в подвалах, питаясь печеньем " -"девочек-скаутом и запивая тёплым корневым пивом. Наконец у меня получилось " -"улизнуть так, чтобы меня не слопали . Несколько дней я укрывался в " -"заброшенном торговом центре, но мне была нужна еда, так что я отправился в " -"леса искать пропитание. Получалось не очень-то хорошо, так что я типа рад, " -"что мы встретились." +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "Ничего особенного." #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" -"Я лежал дома и болел гриппом, когда мир скатился в дерьмо, а потом, когда я " -"окреп достаточно, чтобы добежать до магазина за продуктами... Ну, с тех пор " -"я и в бегах." +msgid "I'll do it!" +msgstr "Я это сделаю!" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "Давай же, не томи." +msgid "Not interested." +msgstr "Не интересует." #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" -"Ладно, хорошо, я как бы выпал из жизни в те первые несколько дней. Я знаю, " -"что тогда были бури, но я валялся с сумасшедшими лихорадочными снами и всё " -"такое. Честно, наверное, мне следовало пойти в больницу, только тогда б я " -"был уже мёртв. Я без понятия, что было сном, а что - настоящим концом света." -" Я помню, как пошёл к холодильнику чего-нибудь попить и заметил, что свет не" -" горит, а вода тёплая. Вроде это было перед тем, как лихорадка упала. Меня " -"ещё пошатывало, когда у меня кончился куриный суп, так что я не сразу " -"сообразил, насколько тёмный и мёртвый был мой дом, когда я вышел наружу." +msgid "Not a problem." +msgstr "Нет проблем." #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "Что случилось, когда ты вышел?" +msgid "Got any advice?" +msgstr "Что-нибудь посоветуешь?" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" -"Ты, наверное, помнишь, на что были похожи города. Полагаю, это был день " -"четвёртый. Когда я ступил наружу, я осознал, что происходит, или хотя бы " -"осознал, что я без понятия, что происходит. Я видел толпу бунтовщиков, " -"ломающих машину, а потом заметил, что один из них разбивает женскую голову. " -"Я отменил свой поход за продуктами, убежал обратно в квартиру, прежде чем " -"меня заметили, и укрывался там так долго, как мог. Всё стало сравнительно " -"тихо, когда мёртвых стало больше, чем живых. Итак, я начал собирать всё " -"возможное от соседей, при необходимости убивая их повторно. В конце концов " -" проникли в мой дом, и мне пришлось выбраться и свалить на старом " -"мотоцикле." +msgid "Can you share some equipment?" +msgstr "Можешь поделиться каким-нибудь снаряжением?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Спасибо, что поделился рассказом. " +msgid "I'll be back soon!" +msgstr "Я скоро вернусь!" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "Спасибо, что поделился рассказом. " +msgid "Sounds good, thanks." +msgstr "Хорошо, спасибо." #: 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 "" -"Ничего особенного, пока не настал . Когда мертвецы воскресли," -" я подготовился и пошёл их упокаивать. " +msgid "Sounds good. Bye!" +msgstr "Хорошо. Пока!" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "Как всё прошло?" +msgid "I'm sorry." +msgstr "Прости." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Круто. " +msgid "Whatever. Bye." +msgstr "Неважно. Пока." #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "Круто. " +msgid "Well, um, sorry." +msgstr "Ну… эмм… прости." #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" -"Едва не погиб. Один - лёгкая добыча, но десять уже много, а сотня -" -" смертельная ловушка. Я зашёл слишком далеко и еле-еле ускользнул одним " -"куском. Ненадолго укрылся в старом мотеле, зализывая раны и подумывая, что " -"мне делать дальше. И вот тогда я понял." +msgid "I'm sorry. I did what I could." +msgstr "Прости, я сделал всё, что мог." #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "Что понял?" +msgid "Sure, here you go!" +msgstr "Конечно, бери!" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Забей. " +msgid "Thank you." +msgstr "Спасибо." #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "Забей. " +msgid "Thanks, bye." +msgstr "Спасибо, пока." #: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" -"Что вот оно. Вот оно, ради чего я создан. Я никогда не чувствовал себя так, " -"как тогда на улице, разбивая тварям головы и молясь, хоть бы получилось " -"выжить. Я чувствовал себя живым. Важным. Так что после того, как я собрал " -"себя по кусочкам, я осмелел и снова приступил. Наверно, уже убил тысячу " -"зедов, и мне до сих пор не надоело." +msgid "Well, I guess it's just us." +msgstr "Что ж, похоже только ты да я." #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Здорово, что ты нашёл своё призвание. " +msgid "At least we've got shelter." +msgstr "По крайней мере у нас есть убежище." #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "Здорово, что ты нашёл своё призвание. " +msgid "What should we do now?" +msgstr "Что нам теперь делать?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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 "" -"О, ну ты знаешь. Бла-бла-бла, была работа и жизнь, все умерли. Плак-плак. Я " -"буду честен с тобой: мне правда так больше нравится. Каждый день бороться за" -" выживание? Я никогда не ощущал себя таким живым. Я убил сотни этих мудаков." -" Рано или поздно один из них меня прикончит, но я умру с осознанием, что " -"сделал что-то действительно важное." +msgid "Any tips?" +msgstr "Есть какие-нибудь советы?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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 "" -"Ладно, видишь ли, я вообще не из этих краёв. Я ехал с юга навестить сына, " -"когда всё это случилось. Я отдыхал в мотеле, когда прибыл военный конвой и " -"велел нам эвакуироваться в убежище МЧС." +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "Что я могу для тебя сделать?" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "Расскажи про своего сына." +msgid "Want to travel with me?" +msgstr "Хочешь пойти со мной?" -#: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "Итак, ты отправился в один из лагерей МЧС?" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "Давай обменяемся предметами." #: lang/json/talk_topic_from_json.py -msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" -"Он живет в северной части Канады в глуши со своей чокнутой женой и моими " -"тремя внуками. Он инженер-эколог в какой-то там нефтегазовой компании. Она " -"слегка двинутая на всю башку. Впрочем, я люблю их обоих и всё ещё надеюсь, " -"что они пережили ебучее дерьмо в своём захолустье. Полагаю, они считают меня" -" мёртвым, так что будут держаться подальше от этой сраной дыры - самое " -"лучшее решение." +msgid "I can't leave the shelter without equipment." +msgstr "Я не могу покинуть убежище без экипировки." #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "О чём ты там говорил?" +msgid "Relax and chat with me for a while..." +msgstr "Расслабься и поболтай со мной немного..." #: lang/json/talk_topic_from_json.py -msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" -"Господи, нет. Ещё какой-то ебучий сосунок в форме на вырост будет указывать," -" что мне, сука, делать. Мой Хаммер был загружен под завязку и готов к " -"бездорожью, у меня было дофига топлива и столько оружия, сколько " -"пограничники разрешили бы перевезти. Без понятия, от чего мне предполагалось" -" бежать, но я бежать, сука, не собирался." +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "Куда ты поехал потом?" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" -"Сначала я продолжил ехать на север, но встретил огромный военный блокпост. У" -" них даже были те большущие ходячие роботы, типа как по ящику. Я собрался " -"выйти и посмотреть, что происходит, но прежде они открыли огонь! Я мог бы " -"умереть, но у меня всё ещё отличная реакция. Я сдал назад и укатил оттуда. " -"Однако по моему Хаммеру неслабо попали, и я лишь потом выяснил, что бензин " -"вытекал по всему шоссе. Проехал ещё несколько миль и застрял в жопе мира " -"посреди нигде. Я остановился и скитаюсь тут. Пожалуй, я всё ещё иду на " -"север, только делаю огромный крюк, что скажешь?" +"Ох, эта летняя жара меня доконает, давай быстренько передохнём, , " +"как сам-то?" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Вот это история. " +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "" +"Ладно, пусть это поможет мне не замёрзнуть при такой погоде. Как дела?" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "Вот это история." +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "Ну, мне не совсем хорошо... а у тебя там всё нормально?" #: lang/json/talk_topic_from_json.py msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." +"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 "" -"Ооо да. Я был готов к этому. Несколько лет всё к этому шло. У меня был " -"приготовлен целый бункер сразу за городом. Поэтому мне сказочно повезло: я " -"был далеко от города на рабочей конференции, когда Китай начал войну, и миру" -" пришёл конец." +"Сейчас у нас есть минутка, я просто размышлял, уже прошёл месяц или типа " +"того с тех пор... с тех пор, как всё случилось, как ты справляешься со всем " +"этим?" #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "Что случилось с тобой?" +msgid "Oh you know, not bad, not bad..." +msgstr "О, ну типа неплохо, неплохо..." #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "Что насчёт бункера?" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "Я не знаю. Искать припасы и других выживших, полагаю." #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" -"Наша конференция была в домике у озера. Мы все получили экстренные сообщения" -" на телефоны, но лишь я один прочёл между строк и понял правду: " -"полномасштабный биотерроризм. Я не собирался ждать и выяснять, кто из моих " -"коллег был спящим агентом. Хотя ставлю полсотни баксов на Ли. Короче, я " -"угнал пикап координатора и поехал прямо к своему убежищу." +msgid "Maybe we should start boarding up this place." +msgstr "Возможно, нам стоит начать баррикадировать это место." #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "Удалось добраться туда?" +msgid "" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." +msgstr "" +"Я думаю, что хорошо бы добыть машину в исправном состоянии и с топливом, " +"если придётся быстро отсюда исчезнуть." #: lang/json/talk_topic_from_json.py msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." +"We could look for one of those farms out here. They can provide plenty of " +"food and aren't close to the cities." msgstr "" -"Нет, я едва проехал пару миль. Я врезался в некое адское китайское " -"биооружие, безумный визжащий , сделанный из рук и ног и голов " -"всевозможных существ, в том числе людей. Полагаю, я убил его, но уж точно " -"убил пикап. Я выпустил в тварь пару пуль для верности, схватил свой вещмешок" -" и убежал. Надеюсь, больше никогда не увижу ничего подобного." +"Мы могли бы наведаться на одну из этих ферм. Там можно обеспечить себя едой," +" и они на безопасном расстоянии от городов." #: 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." +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." msgstr "" -"Я всё ещё не смог до него добраться. Каждый раз, когда я пытаюсь, мне мешают" -" . Кто знает, когда-нибудь, наверное." +"Наверное, стоит держаться от городов подальше, даже если там полно полезных " +"вещей." #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "Можешь рассказать ту историю ещё раз?" +msgid "Hmm, okay." +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 "" -"О, блин. Я думал, я был готов. Я всё распланировал. Упакованные сумки. " -"Заряженные пушки. Карты маршрутов побега. Бункер на заднем дворе." +msgid "Not until I get some antibiotics..." +msgstr "Не раньше, чем я получу антибиотики…" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "Похоже, ничего не вышло." +msgid "You asked me recently; ask again later." +msgstr "Ты об этом уже спрашивал; спроси снова попозже." #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "Эй, мне хотелось бы взглянуть на те карты." +msgid "Why should I travel with you?" +msgstr "И почему я должен пойти с тобой?" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" -"Зависит от точки зрения. Я же живой, верно? Когда сам Ад снизошёл с небес, а" -" монстры напали на города, я схватил своё добро и укрылся в бункере. У меня " -"были камеры на поверхности, я видел всё, что там творилось. Я видел " -"передвижения тех тварей. Мне ещё снятся кошмары от того, как двигались их " -"тела, вроде как мир разрушен, чтобы они просто могли быть. Мне больше ничего" -" не оставалось. Я видел, как они рвут на куски копов и военных, видел, как " -"мертвецы воскресают и нападают на живых. Я видел, как милая бабушка отрывает" -" голову соседской собаке. Я видел, как труп солдата дёргается и вырастает в " -"какого-то огромного электрического монстра. Я всё это видел." +msgid "Understood. I'll get those antibiotics." +msgstr "Понятно. Я достану антибиотики." #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "Почему ты вышел из бункера?" +msgid "Right, right, I'll ask later." +msgstr "Да, точно. Я спрошу позже." #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" -"Честно? Я хотел умереть. После всего увиденного я слегка поехал головой. Я " -"думал, что всему настал конец, так что, рассудил я, нет никакого смысла " -"бороться. Мне казалось, я не протяну и минуты на поверхности, но я не мог " -"просто так наложить на себя руки. Я вылез наружу, я хотел, чтобы " -"меня прикончили, но что же? Инстинкт самосохранения - занятная штука, и я " -"убил зомби поблизости от бункера. Полагаю, мне был нужен адреналин. С тех " -"пор на нём я и держусь." +msgid "I can keep you safe." +msgstr "Со мной ты будешь в безопасности." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Спасибо, что рассказал. " +msgid "You can keep me safe." +msgstr "С тобой я буду в безопасности." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "Спасибо, что рассказал. " +msgid "We're friends, aren't we?" +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 "" -"Ага, это можно. Я бы мог поделиться ими за, скажем, $1000. Прямо с твоего " -"банковского счёта, без кредиток." +msgid "I'll kill you if you don't." +msgstr "Я убью тебя если ты не сделаешь этого." #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "[$2000] По рукам." +msgid "You got it, I'm with you!" +msgstr "Точно, я с тобой!" #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "Эта карта нам обоим принесёт пользу." +msgid "Awesome!" +msgstr "Шикарно!" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "Как насчет, , выложить её просто так и не злить меня, ?" +msgid "Okay, let's go!" +msgstr "Ладно, пошли!" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "Прости за смену темы. Что ты там говорил?" +msgid "Yeah... I don't think so." +msgstr "Да?.. Я так не думаю." #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "Отлично. Держи." +msgid "You're really leaving?" +msgstr "Ты действительно уходишь?" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "Спасибо! О чём ты там раньше говорил?" +msgid "Yeah, I'm sure. Bye." +msgstr "Да, я уверен. Пока." #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "Зря стараешься. Нужны карты - так плати." +msgid "Nah, I'm just kidding." +msgstr "Не, я просто пошутил." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "В чём дело?" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "Хорошо. О чём ты там говорил?" +msgid "How much further?" +msgstr "Далеко ещё?" #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" -"Я вообще даже не сразу узнал про . Я был за городом, вдали от" -" самого худшего. Моя машина сломалась на шоссе, я несколько часов прождал " -"эвакуатор. Наконец я решил прилечь в кустах на обочине. И правильно сделал, " -"потому что внезапно примчавшийся грузовик - мёртвый водитель, понимаешь ли -" -" размазал мою машину по асфальту. Мне жалко тех ублюдков, что остались в " -"городах, когда началось." +msgid "I'd like to lead for a while." +msgstr "Я бы хотел стать лидером на какое-то время." #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "Как ты там выжил?" +msgid "Step aside. I'm leader now." +msgstr "В сторону. Теперь я лидер." -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "Что ты видел в первые дни?" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "Пошли." #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" -"Ха, я сам не до конца понял. В первые дни за городом стопудово пришлось " -"нелегко. Я попал под один из тех адских ливней, он сжигал мою кожу. Я сумел " -"укрыться под машиной и лежал на своей палатке. Сраная палатка вся " -"расползлась, но лучше уж она, чем я. Впрочем, мне ещё повезло, это было " -"самое худшее из случившегося со мной. Я не встретил никого из адских " -"монстров, как я слышал, нападавших на города, так что мне чертовски повезло." +msgid "Alright. You can lead now." +msgstr "Хорошо. Веди нас." #: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" -"Кроме кислотного ливня я видел людей, бегущих из городов. Я старался " -"держаться подальше от дорог, но мне и не хотелось заблудиться в лесу, так " -"что я шёл по краю. Я видел машины, автобусы, грузовики - все полны " -"беженцами. Многие проезжали мимо, но ещё больше застряли без бензина и " -"прочего. Некоторые были настолько забиты людьми и вещами, что народ висел " -"снаружи. Остановиться значило умереть, потому что мертвецы бродили вдоль " -"дорог и выискивали выживших." +msgid "Good. Something else..." +msgstr "Хорошо. Что-нибудь ещё…" #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" -"Я был на рыбалке со своей подругой, когда всё случилось. Я точно не уверен, " -"как выстраиваются дни... первым звоночком Армагеддона на нас налетел какой-" -"то ядовитый ветер с чем-то вроде кислотного тумана, разъедавшего глаза и " -"кожу. Мы не знали, что делать, поэтому спрятались и передохнули. А пока мы " -"отдыхали, повсюду улеглась странная пыль." +msgid "Alright, let's go." +msgstr "Да, пошли." #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "Что было после кислотного тумана?" +msgid "Okay, okay." +msgstr "Ладно, ладно." #: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" -"К утру всё вокруг озера покрылось розоватой плесенью, кругом шатались " -"ходячие грибы и выплёвывали в воздух облака пыли. Мы не были в курсе, что " -"происходит, но оба не горели желанием остаться и узнать. Мы сложили своё " -"барахло, сели в лодку и поплыли вверх по течению." +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "Ни единого шанса, я сматываю удочки!" #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "Что стало с твоей подругой?" +msgid "Fine." +msgstr "Хорошо." #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" -"Ей стало плохо спустя несколько часов после того, как мы покинули озеро. Её " -"рвало, она жаловалась на боли в суставах. Я причалил возле маленького " -"знакомого магазинчика на берегу реки в надежде, что у них есть чем помочь, " -"или они хотя бы знают, что происходит." +msgid "I'm on watch." +msgstr "Я на страже." + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "Нужно, чтобы ты пошёл со мной." #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "Полагаю, они не знали." +msgid "See you around." +msgstr "Увидимся." #: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" -"На самом деле в магазинчике никого не было. Подруга была в отчаянии, так что" -" я вломился внутрь. От радио на прилавке я узнал про хаос в городах. Я нашел" -" болеутоляющие и противорвотные таблетки для своей подруги, но когда я " -"вернулся к лодке... для неё было слишком поздно." +msgid "I really don't feel comfortable doing so..." +msgstr "Мне действительно это неудобно ..." #: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "Она умерла?" +msgid "I'll give you some space." +msgstr "Я дам вам некоторое пространство." #: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" -"Если бы. Смерть была бы милосердием. Она зашлась в страшном задыхающемся " -"вопле, и её тело развалилось на куски. Грибы прорывались из каждой части её " -"тела. Я... я сбежал. Сейчас мне бы хотелось прекратить её мучения, но " -"возвращаться обратно - чистое самоубийство. " +msgid "I'd prefer to keep that to myself." +msgstr "Я бы предпочёл, держать это при себе." #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "Это ужасно. " +msgid "I understand..." +msgstr "Я понимаю..." #: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "Это ужасно. " +msgid "Okay, here you go." +msgstr "Ладно, держи." #: 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 "" -"Моя жена выжила вместе со мной, но её сожрали эти чудовищные, , " -"растения за несколько дней до встречи с тобой. Не лучший год для меня." +msgid "Thank you!" +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 "" -"Мой муж выжил вместе со мной, но его сожрали эти чудовищные, , " -"растения за несколько дней до встречи с тобой. Не лучший год для меня." +msgid "Thanks! But can I have some more?" +msgstr "Спасибо! А могу ли я получить ещё?" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "Мне очень жаль." +msgid "Thanks, see you later!" +msgstr "Спасибо, позже увидимся!" #: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "Расскажи мне про эти растения." +msgid "Okay, okay, sorry." +msgstr "Ладно, ладно, извини." #: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" -"Вот так оно и бывает, знаешь? Это конец света. Я правда не хочу больше об " -"этом говорить. И честно, я никогда раньше в старом мире не чувствовал, что " -"кому-то нужен. Странно, но я на самом деле вижу для себя какое-то " -"предназначение. Ты хоть понимаешь, о чём я?" +msgid "Seriously, give me more stuff!" +msgstr "Я не шучу, дай мне что-нибудь!" #: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -msgstr "Нет, какая-то ерунда." +msgid "Okay, fine, bye." +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 "" -"Ага, понимаю. Иногда мне кажется, что моя жизнь началась вскоре после " -"катаклизма." +msgid "Alright, let's begin." +msgstr "Хорошо, приступим." #: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" -"Мне кажется, те из нас, кто выжил настолько долго, должны были выжить ради " -"чего-то. Не в смысле типа религии, просто... мы выжившие." +msgid "Sounds good." +msgstr "Хорошо." #: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" -"Хаха, да, я знаю, почему ты так думаешь. Не хочу сказать, что это хороший " -"апокалипсис. Просто имею в виду, я хотя бы знаю, что я делаю каждый день. Я " -"бы всё ещё убил сотню зомби ради интернета и ночи просмотра дерьмовых " -"фильмов вместе с... прости. Давай сменим тему." +msgid "Okay. Lead the way." +msgstr "Ладно. Веди меня." #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" -"Да, тебе они уже встречались? Похожи на ходячий цветок с большущим," -" , жалом посередине. Бродят стаями. Они ненавидят зомби, и мы " -"пользовались ими как прикрытием для уничтожения орды мертвецов. К сожалению," -" как выяснилось, растения куда лучшие следопыты, чем . Они вели " -"себя почти разумно... Мне едва удалось выжить, и только потому, что они " -"были, ммм, заняты." +msgid "No, we'll be okay here." +msgstr "Нет, мы здесь будем в порядке." #: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "Мне жаль, что тебе пришлось кого-то потерять." +msgid "On second thought, never mind." +msgstr "Если ещё раз подумать, то неважно." #: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" -"Просто ещё один рассказ про любовь и смерть. Не то, о чем мне " -"нравится говорить." +msgid "Hello marshal." +msgstr "Здравствуйте, маршал." #: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -msgstr "Наверное, станет легче, когда выговоришься." +msgid "What is this place?" +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 "Смирись. Если нам придётся работать вместе, мне нужно узнать о тебе." +msgid "Can I join you guys?" +msgstr "Могу ли я присоединиться к вам, ребята?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "Забудь. Прости за эту тему." +msgid "Anything I can do for you?" +msgstr "Что-то, что я могу сделать?" #: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "Я ценю сантименты, но не думаю, что станет. Забей." +msgid "See you later." +msgstr "Увидимся позже." #: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "Хорошо." +msgid "This is a refugee center that we've made into a sort of trading hub." +msgstr "Это лагерь беженцев, мы сделали его чем-то вроде центра торговли." #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "Да . Тебя или нас это вообще не должно касаться." +msgid "So are you with the government or something?" +msgstr "Так ты из правительства или вроде того?" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "Отлично, прекрасно. У меня была жена. Я потерял её." +msgid "What do you trade?" +msgstr "Чем торгуешь?" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "Отлично, прекрасно. У меня был муж. Я потеряла его." +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 "" +"Ха-ха-ха, нет. Хотя где-то здесь есть силы Старой Гвардии, если у вас есть " +"какие-то вопросы, касающиеся того, чем представлено нынешнее правительство." #: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "Что случилось?" +msgid "Oh, okay. I'll go look for him" +msgstr "Ну ладно. Я пойду поищу его" #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." +"Anything valuable really. If you really want to know, go ask one of the " +"actual traders. I'm just protection." msgstr "" -"Она была дома, когда упали бомбы, а мир превратился в преисподнюю. Я был на " -"работе. Я пытался добраться до нашего дома, но город превратился в поле боя." -" Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " -"пытались остановить их, но с тем же успехом убивали людей перекрёстным " -"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" -" речь не шла о моей жене, я бы просто убежал, но я сделал что смог и " -"проскочил. Я на самом деле, , выжил." +"Ничего ценного на самом деле. Если вы действительно хотите узнать, спросите " +"одного из торговцев. Я просто охранник." #: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"Он был дома, когда упали бомбы, а мир превратился в преисподнюю. Я была на " -"работе. Я пыталась добраться до нашего дома, но город превратился в поле " -"боя. Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " -"пытались остановить их, но с тем же успехом убивали людей перекрёстным " -"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" -" речь не шла о моём муже, я бы просто убежала, но я сделала что смогла и " -"проскочила. Я на самом деле, , выжила." +msgid "I'll go talk to them later." +msgstr "Я пойду и поговорю с ним попозже." #: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "Тебе пришлось насмотреться всякой херни." +msgid "Will do, thanks!" +msgstr "Так и сделаю, спасибо!" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Nope." +msgstr "He-a." #: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "Дома точно всё было плохо." +msgid "That's pretty blunt!" +msgstr "Это довольно глупо!" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" -"Да уж, точно пришлось. Мне понадобилось два дня, чтобы пересечь город " -"пешком, с ночёвками на помойках и в подобных местах. Ночью получалось " -"двигаться быстрее, и мне сразу пришлось избегать военных. На них шли " -" как притянутые магнитом, и военные обычно стояли в местах " -"скопления монстров. В некоторых частях города было довольно спокойно. В паре" -" мест людей эвакуировали или убрали, и обычно туда не заходили. " -"Чуть позже другие выжившие принялись занимать такие кварталы, так что мне " -"предстояло покинуть их и пробежать сквозь выжженный центр города - все равно" -" мой путь домой лежал через него. На тот момент сражения начали затухать, " -"так что мне нужно было просто не привлекать внимания зомби и прочих тварей." +msgid "Death is pretty blunt." +msgstr "Смерть, если называть вещи своими именами." #: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." +msgid "So no negotiating? No, 'If you do this quest then we'll let you in?'" msgstr "" -"Первым предупреждением было то, что мой маршрут домой шёл от уцелевших " -"частей города к выжженным. Становилось только хуже. Сразу за моим домом " -"стоял полицейская баррикада с полностью бесполезной парой автоматических " -"турелей, бесцельно наблюдающими за бродячими зомби. Это было ещё до того, " -"как кто-то переключил их в режим стрельбы по кому угодно. Тогда они стреляли" -" только по пересекающим запретную зону. Славные времена, всегда можно " -"положиться, что бюрократия сумеет всё проебать самым впечатляющим способом. " -"В общем, сам дом наполовину обрушился, в него врезался фургон спецназа. " -"Наверно, можно было догадаться, что я увижу внутри, но мне пришлось пройти " -"через многое, и не хотелось поворачивать назад." +"Так что, договориться не получится? Вариант \"Выполни этот квест, и мы " +"впустим тебя\" не прокатит?" #: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "По пути туда наверняка пришлось насмотреться всякой херни." +msgid "I don't like your attitude." +msgstr "Мне не нравится ваше отношение." #: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "У тебя получилось проникнуть в дом?" +msgid "Well alright then." +msgstr "Ну что же, ладно." #: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"Да, получилось. Я потратил несколько часов, чтобы найти вход. А хочешь " -"знать, в чём самый пиздец? Типа, вот самый-самый? Моя жена была ещё жива. " -"Она всё это время была в подвале, придавленная куском обвалившегося пола. И " -"она потеряла много крови, она бредила, когда я её нашёл. Я не смог её " -"вытащить, так что я кормил и поил её и просто сидел рядом и держал её за " -"руку, пока она не умерла. А потом... что ж, потом я сделал то, что сейчас " -"обычно приходится делать с мёртвыми. После этого я собрал несколько " -"последних кусочков моей жизни и стараюсь никогда не оглядываться назад." +msgid "Then leave, you have two feet." +msgstr "Тогда уходите, у вас всего две ноги." #: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"Да, получилось. Я потратила несколько часов, чтобы найти вход. А хочешь " -"знать, в чём самый пиздец? Типа, вот самый-самый? Мой муж был ещё жив. Он " -"всё это время был в подвале, придавленный куском обвалившегося пола. И он " -"потерял много крови, он бредил, когда я его нашла. Я не смогла его вытащить," -" так что я кормила и поила его и просто сидела рядом и держала его за руку, " -"пока он не умер. А потом... что ж, потом я сделала то, что сейчас обычно " -"приходится делать с мёртвыми. После этого я собрала несколько последних " -"кусочков моей жизни и стараюсь никогда не оглядываться назад." +msgid "I think I'd rather rearrange your face instead!" +msgstr "Пожалуй, я лучше подправлю тебе лицо!" #: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"Я жил один на старой семейной ферме вдали от города. Моя жена умерла чуть " -"более месяца до того, как всё началось... рак. Я потерял её такой молодой, " -"но теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно " -"просидел какое-то время взаперти. Когда по новостям заговорили про китайское" -" биооружие и спящих агентов и показали бунты в Бостоне и всё такое, я " -"устроился поудобнее с банкой супа и переключил канал." +msgid "I will." +msgstr "Я сделаю это." #: lang/json/talk_topic_from_json.py msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." +"Uh, not really. Go talk to a merchant if you have anything to sell. " +"Otherwise the Old Guard liaison might have something, if you can find him." msgstr "" -"Я жила одна на старой семейной ферме вдали от города. Мой муж умер чуть " -"более месяца до того, как всё началось... рак. Я потеряла его таким молодым," -" но теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно" -" просидела какое-то время взаперти. Когда по новостям заговорили про " -"китайское биооружие и спящих агентов и показали бунты в Бостоне и всё такое," -" я устроилась поудобнее с банкой супа и переключила канал." +"Эм, вообще-то нет. Если у тебя есть что продать, иди к торговцу. Ещё можешь " +"поговорить со связным Старой Гвардии, если найдёшь его." #: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "Что было дальше?" +msgid "Alright then." +msgstr "Ладно." #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" -"Что ж, всё понемногу нарастало. Пошёл кислотный дождь, он сжёг один из моих " -"тракторов. Не то чтоб мне приходилось работать в поле со времён... да, " -"прошёл целый, , год, а ничего полезного так и не сделано. Потом " -"начались взрывы и всё такое, и вертолёты кругом. Мне стало страшно, я сидел " -"с задёрнутыми шторами и переключал каналы. И вот однажды переключать стало " -"нечего. Просто чрезвычайные сообщения, снова и снова." +msgid "Old Guard huh, I'll go talk to him!" +msgstr "Хм, Старая Гвардия, я поговорю с ним!" #: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" -"Это стало первым, что меня по-настоящему потрясло. У меня на самом деле " -"никогда не было очень близких друзей, но в городе остались важные для меня " -"люди. Я послал несколько сообщений, но так и не сообразил, что за несколько " -"дней ответ так и не пришёл. Я сел в грузовик и поехал в город, но очень " -"скоро мне попался и авария поперёк шоссе, наполненная такими же. И " -"вот тогда всё наконец начало вставать на свои места. К сожалению, за мной на" -" ферму пробрались , и мне пришлось свалить оттуда. Когда-нибудь " -"нужно будет добраться туда и очистить её." +msgid "Who are the Old Guard?" +msgstr "Кто такие Старая Гвардия?" #: lang/json/talk_topic_from_json.py msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." +"That's just our nickname for them. They're what's left of the federal " +"government. Don't know how legitimate they are but they are named after " +"some military unit that once protected the president. Their liaison is " +"usually hanging around here somewhere." msgstr "" -"Что ж, я жил на окраине маленького городка. Магазинчик, бензоколонка и едва " -"ли что-то ещё. Мы слышали о какой-то херне в городе, но сами ничего не " -"видели, пока не прибыли военные и не начали разбивать тут лагерь. Они хотели" -" запереть нас всех в городке, но мне такое пришлось не по душе. Поэтому мы с" -" моим псом Баком убежали, пока военные щёлкали еблом." +"Это просто прозвище, которое мы дали им. Они - всё, что осталось от " +"федерального правительства. Не знаю, насколько они легитимны, но они " +"утверждают, что они когда-то входили в подразделение, защищавшее президента." +" Их связного обычно можно найти где-то здесь поблизости." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever, I had another question." +msgstr "Однако, у меня есть ещё вопрос." + +#: lang/json/talk_topic_from_json.py +msgid "Okay, I'll go look for him then." +msgstr "Ладно, я тогда пойду его искать." #: lang/json/talk_topic_from_json.py msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 ." +"Stay safe out there. Hate to have to kill you after you've already died." msgstr "" -"Мы с Баком ускользнули и отправились на Восток к ранчо моего дружбана. Милый" -" маленький пёсик думал, что мы просто идём на очень длинную прогулку. Я не " -"мог взять грузовик, иначе военные мигом бросились бы в погоню. Мы добрались " -"до леса, немного отдохнули и пошли снова. Сначала мы немного шли вдоль " -"шоссе, но видели слишком много военных грузовиков и автобусов с беженцами, и" -" вот тогда нам встретились ." +"Держись подальше от этого места. Ненавижу, когда приходится убивать ещё раз " +"после того, как ты уже умер." #: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "Где сейчас Бак?" +msgid "Hello." +msgstr "Привет." #: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Догадываюсь, к чему всё идёт. " +msgid "I am actually new." +msgstr "Вообще-то я новичок." #: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "Догадываюсь, к чему всё идёт. " +msgid "Are there any rules I should follow while inside?" +msgstr "" +"Есть какие-нибудь правила, которые я должен соблюдать, пока нахожусь внутри?" #: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" -"Мы дошли до ранчо моего приятеля, но федералы, , появились там " -"раньше. Всё было заколочено и перекрыто полицейской баррикадой. Одна из " -"этих, , турелей... , подстрелила Бака. Едва не убила и меня " -"тоже. Я сумел забрать своего щеночка... забрать его оттуда, это... это было " -"нелегко, пришлось прикрываться дверью полицейской машины как щитом и сперва " -"убить зомби-копа. А потом, ну, пока я рыдал, Бак вернулся. Мне пришлось... " -". Я... я не могу сказать. Ты знаешь." +msgid "So who is everyone around here?" +msgstr "Так кто все эти люди?" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Мне жаль Бака. " +msgid "Lets trade!" +msgstr "Поторгуем!" #: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "Мне жаль Бака. " +msgid "Is there anything I can do to help?" +msgstr "Я могу чем-то помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! I will be on my way." +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 "Конечно. Просто не доставляй беспокойства и всё будет нормально." #: lang/json/talk_topic_from_json.py msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." +"Well mostly no. Just don't go around robbing others and starting fights and" +" you will be all set. Also, don't go into the basement. Outsiders are not " +"allowed in there." msgstr "" -"Ну хорошо, моя история чертовски интересная, так что устройся поудобнее. Всё" -" случилось примерно пять лет назад, когда я ушёл на пенсию со своей работы " -"на лесопилке. Времена тяжёлые, но мы справились." +"Ну, в целом - нет. Просто не пытайся ограбить других и не начинай драк, и " +"все будет в порядке. Ещё не спускайся в подвал - чужакам туда вход запрещён." #: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "Ясно, продолжай, пожалуйста." +msgid "Ok, thanks." +msgstr "Хорошо, спасибо." #: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "Если подумать, давай поговорим о чём-то ещё." +msgid "So uhhh, why not?" +msgstr "Нуу уффф, почему бы нет?" #: lang/json/talk_topic_from_json.py msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." +"In short, we had a problem when a sick refugee died and turned into a " +"zombie. We had to expel the refugees and most of our surviving group now " +"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 "" -"У меня тогда был мой старый грузовичок, синенький. Мы называли его 'старый " -"крикун'. Как-то раз я и Марти Гампс - или, как я его звал, Старина Гэ - " -"ехали летом на нашем крикуне на гору Гринвуд искать светлячков." - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "Светлячки. Понятно." +"Вкратце, у нас есть проблема с больным беженцем, который умер и превратился " +"в зомби. Нам пришлось изгнать всех беженцев, а большая часть из нашей группы" +" выживших теперь находится в подвале, чтобы не допустить повторения " +"подобного. Если только ты не докажешь свою пользу, я не вижу исключений из " +"этого правила." #: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "При чём тут это вообще?" +msgid "" +"Most are scavengers like you. They now make a living by looting the cities " +"in search for anything useful: food, weapons, tools, gasoline. In exchange " +"for their findings we offer them a temporary place to rest and the services " +"of our shop. I bet some of them would be willing to organize resource runs " +"with you if you ask." +msgstr "" +"Большая часть — добытчики, как и ты. Они выживают, шарясь в городах в " +"поисках чего-нибудь полезного: еды, оружия, инструментов, бензина. В обмен " +"на их находки мы предоставляем им временное место для сна и услуги нашего " +"магазина. Уверен, некоторые из них были бы не прочь организовать походы за " +"ресурсами вместе с тобой, если ты кому-нибудь это предложишь." #: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "Мне надо идти." +msgid "Thanks for the heads-up." +msgstr "Благодарю за бдительность." #: lang/json/talk_topic_from_json.py msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"his trusty 18 gauge lyin' on his lap. That were his dog's name, only we all" -" just called him 18 gauge for short." +"You are asking the wrong person, should look for our merchant by the main " +"entrance. Perhaps one of the scavengers is also interested." msgstr "" -"Старина Гэ - это мой давнишний дружище Марти Гампс - сидел на пассажирском " -"сиденье со своим верным 18-м калибром на коленях. Такое было имя у его " -"собаки, мы все просто звали его 18-м калибром для краткости." +"Это не по моей части. Поищи нашего торговца около главного входа. Возможно, " +"кто-нибудь из добытчиков также будет заинтересован." #: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "18-й калибр, собака. Понятно." +msgid "Keep to yourself and you won't find any problems." +msgstr "Следи за собой, и у тебя не будет проблем." #: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "Мне кажется, я вижу, как приближаются зомби. Давай закругляться." +msgid "What do you do around here?" +msgstr "Что ты здесь делаешь?" #: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "Заткнись, старый пердун." +msgid "Got tips for avoiding trouble?" +msgstr "Есть рекомендации по предотвращению проблемы?" #: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" -"Прикуси язык, я уже перехожу к делу, чёрт тебя подери. Как я и говорил, " -"Старина Гэ - это мой давнишний дружище Марти Гампс - сидел на пассажирском " -"сиденье со своим верным 18-м калибром на коленях. Такое было имя у его " -"собаки, мы все просто звали его 18-м калибром для краткости." +msgid "Have you seen anyone who might be hiding something?" +msgstr "Видел кого-нибудь, кто мог что-нибудь скрывать?" + +#: lang/json/talk_topic_from_json.py +msgid "Bye..." +msgstr "Пока..." #: lang/json/talk_topic_from_json.py msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there were some o' them " -"damn kids rummagin' around in it. Rusty G brought his 18 gauge, and lucky " -"thing cuz o' what we saw." +"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 "" -"Когда-то на верхушке горы Гринвуд стояла станция лесничих, это было ещё до " -"того, как ты родился. В том году станция сгорела, говорили, что из-за " -"молнии, но мы все знаем, её спалили детишки во время вечеринки. Мы со " -"Стариной Гэ вышли из старого крикуна и отправились посмотреть. В выгоревшей " -"развалине будто были привидения, мы скумекали, что там наверняка рылись " -"проклятые детишки. Старина Гэ притащил свой 18-й калибр, и правильно сделал," -" учитывая, что мы увидали." +"Я здесь не так давно, но я внимательно слежу за тем, кто приходит и уходит. " +"Иногда трудно предугадать, кто вызовет неприятности." #: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "Что ты увидел?" +msgid "Keep your head down and stay out of my way." +msgstr "Преклони голову и уйди с дороги" #: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "Нам правда, правда надо идти." +msgid "OK..." +msgstr "Хорошо..." #: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "Твою же ж мать, ЗАТКНИСЬ!" +msgid "Like what?" +msgstr "Какого типа?" #: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" -"Терпение! Я почти закончил. Когда-то на верхушке горы Гринвуд стояла станция" -" лесничих, это было ещё до того, как ты родился. В том году станция сгорела," -" говорили, что из-за молнии, но мы все знаем, её спалили детишки во время " -"вечеринки. Мы со Стариной Гэ вышли из старого крикуна и отправились " -"посмотреть. В выгоревшей развалине будто были привидения, мы скумекали, что " -"там наверняка рылись проклятые детишки. Старина Гэ притащил свой 18-й " -"калибр, и правильно сделал, учитывая, что мы увидали." +msgid "I'm not sure..." +msgstr "Я не уверен..." #: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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." +msgid "Like they could be working for someone else?" +msgstr "Ну, типа как будто они работают на кого-то ещё." + +#: lang/json/talk_topic_from_json.py +msgid "You're new here, who the hell put you up to this crap?" msgstr "" -"Растреклятый лось! Он жил в заброшенной станции! Он едва не поднял на рога " -"Старину Гэ, но тот пальнул из 18-го калибра и пробил большую дыру в шкуре. " -"18-й калибр попытался убежать, но мы нашли и вернули его. Лось рухнул, как " -"мешок картошки, но очень здоровенный мешок картошки, если ты понимаешь, о " -"чём я." +"Ты здесь новенький, кто, чёрт возьми, ты такой, чтобы задавать такие " +"вопросы?" #: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "Я понимаю, о чём ты." +msgid "Get bent, traitor!" +msgstr "Отвали, предатель!" #: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "Ты ещё не закончил? Ну серьёзно!" +msgid "Got something to hide?" +msgstr "Есть что скрывать?" #: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "Во имя всего святого, ПОЖАЛУЙСТА, заткнись, мать твою!" +msgid "Sorry, I didn't mean to offend you..." +msgstr "Извини, я не хотел тебя обидеть ..." #: lang/json/talk_topic_from_json.py msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"flyin. Decided to camp out there to see it all through, but it didn't ever " -"end, now, did it? So here I am." +"If you don't get on with your business I'm going to have to ask you to leave" +" and not come back." msgstr "" -"В конце концов, если вкратце, я ехал на гору Гринвуд ещё разок проверить ту " -"старую станцию лесничих, когда услыхал вертолёты и падающие бомбы. Решил " -"подождать там и посмотреть, чем всё кончится, но оно так и не кончилось, " -"ага? Так что вот я здесь." +"Если вы не займетесь своим бизнесом, мне придется попросить вас уйти и не " +"возвращаться." #: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "Спасибо за рассказ!" +msgid "Sorry." +msgstr "Прости." #: lang/json/talk_topic_from_json.py -msgid "." -msgstr "." +msgid "That's it, you're dead!" +msgstr "Точняк, ты труп!" #: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "Точно, у вас тут блестящий жетон!" +msgid "I didn't mean it!" +msgstr "Я не это имел в виду!" #: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Ха, у вас такой важный вид." +msgid "You must really have a death wish!" +msgstr "Ты, походу, бессмертным себя возомнил?" #: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "Вообще-то я новичок." +msgid "" +"We don't put-up with garbage like you, finish your business and get the hell" +" out." +msgstr "" +"Мы не потерпим здесь такую мразь, как ты. Заканчивай свои дела и убирайся." #: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "Что ты здесь делаешь?" +msgid "I thought I smelled a pig. I jest... please don't arrest me." +msgstr "Кажется я учуял свинью. Шучу... пожалуйста, не арестовывайте меня." #: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "Слышно что-нибудь из внешнего мира?" +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Эй, кажется вы здесь недавно. Могу я вам помочь?" #: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "Могу ли я присоединиться к вашей организации?" +msgid "You... smelled me?" +msgstr "Ты... чуешь меня?" #: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "Что с вашими ушами?" +msgid "Got anything for sale?" +msgstr "Есть что на продажу?" #: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "Я могу чем-то помочь?" +msgid "Got any survival advice?" +msgstr "Не могли ли бы вы дать совет по выживанию?" #: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "Ладно, пока." +msgid "Goodbye." +msgstr "Прощай." #: lang/json/talk_topic_from_json.py msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." +"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 "" -"Значит, нас таких двое. Ну, типа. Не думаю, впрочем, что тут открыто. " -"Чертовски забито; там внизу почти целая толпа. Видишь вон того торговца? Его" -" и спрашивай." +"Не поймите меня неправильно, но проведя столько времени в этой глуши, я " +"обнаружил, что мой нюх стал быстрее зрения." #: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "Отстой..." +msgid "O..kay..?" +msgstr "Хорошо...? " #: lang/json/talk_topic_from_json.py msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." +"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 "" -"Ну, вообще тут внизу есть парень, у которого есть рабочая пневматическая " -"пушка. Она стреляет металлом как... как пушка, только без грохота. Чертовски" -" выгодная штука. Далее, арматура может пригодиться тем, кто изготавливает " -"самодельное оружие. Ну и напоследок можно упомянуть строительство " -"укреплений. Мало кто из монстров сможет сломать забор или тем более стену, " -"построенные с использованием арматуры." +"Я торгую едой в обмен на ночлег и другие припасы. И под едой я подразумеваю " +"не чёрствые чипсы и выдохшуюся колу." #: lang/json/talk_topic_from_json.py -msgid "Well, then..." -msgstr "Ну ладно..." +msgid "Interesting." +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 "" -"Ничего хорошего. Как-то мне встретился парень, у которого была любительская " -"радиостанция, но потом он пропал, и с ним пропала и та штука. Капут." +msgid "Oh, so you hunt?" +msgstr "О, так вы охотитесь?" #: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "Совсем ничего хорошего?" +msgid "Not really, just trying to lead my life." +msgstr "Пожалуй нет, просто пытаюсь жить своей жизнью." #: lang/json/talk_topic_from_json.py msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." +"Yep. Whatever game I spot, I bag and sell the meat and other parts here. " +"Got the occasional fish and basket full of wild fruit, but nothing comes " +"close to a freshly-cooked moose steak for supper!" msgstr "" -"Большинство лагерей МЧС опустошены. В городах кишат зомби, в лесах - " -"пылающие глаза и животные-мутанты. Везде творится какая-то безумная херня, и" -" каждый, у кого есть радио, описывает просто жуткие вещи." +"Ну да. Как бы то ни было, у меня найдётся мясо и всё, что после него " +"остаётся. Иногда бывает рыба или корзина диких фруктов, но ничто не " +"сравнится со свежеприготовленным стейком из лося на ужин." #: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "Извините, что обращаюсь к вам." +msgid "Great, now my mouth is watering..." +msgstr "Отлично, теперь у меня слюнки текут..." #: lang/json/talk_topic_from_json.py msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." +"Sure, just bagged a fresh batch of meat. You may want to grill it up before" +" it gets too, uh... 'tender'." msgstr "" -"Не знаю. В смысле, если сумеете оказаться полезным. Но сейчас это всё так " -"туманно. Всё зависит от того, кого спрашивать. Торговец, например, точно не " -"хочет меня здесь видеть, когда я не занимаюсь торговлей, но... многих людей " -"это устраивает." +"Конечно, просто свежая порция мяса. Может ты захочешь его поджарить, пока " +"оно не стало слишком, ммм... \"мягким\"." #: lang/json/talk_topic_from_json.py msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." +"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 "" -"Держу пари, ты так же добился своего. Молчи об этом, некоторые здесь смотрят" -" свысока на таких, как мы." +"Накорми человека рыбой, и он будет сыт на весь день. Накорми человека пулей," +" и он будет сыт до конца своих дней." #: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "" -"Шшш. Некоторые люди здесь ненавидят... мутации. Был тут один инцидент." +msgid "Spot your prey before something nastier spots you." +msgstr "Выследи свою жертву, пока что-то более скверное не выследило тебя." #: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "Извините за вопрос" +msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." +msgstr "Я слышал, что пумы иногда прыгают. Может быть, это просто миф." #: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "Вы отвратительны." +msgid "" +"The Jabberwock is real, don't listen to what anybody else says. If you see " +"it, RUN." +msgstr "Никого не слушай, бармаглот существует. Если увидишь его — БЕГИ." #: lang/json/talk_topic_from_json.py msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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." +"Zombie animal meat isn't good for eating, but sometimes you, might find " +"usable fur on 'em." msgstr "" -"Сжигаю здания и сплавляю материалы Свободным Торговцам. Не шучу. Видел как-" -"нибудь кучу пережжённого хлама вместо пригорода или тонну балок на продажу? " -"Скорее всего, моя работа. Денег вроде неплохо получаю. Могу сбагрить парочку" -" Молотовых, если надо." +"Мясо зомби-животных не годится в пищу, но иногда у них есть шерсть, которую " +"можно использовать для чего-нибудь." #: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "Я куплю." +msgid "" +"A steady diet of cooked meat and clean water will keep you alive forever, " +"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 "" +"Варёное мясо и свежая вода - верная диета, чтобы долго оставаться на ногах. " +"Но вкусовые рецепторы и кишки могут начать возмущаться. Просто ешьте немного" +" фруктов вдобавок к основной пище." #: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "Кому это нужна арматура?" +msgid "Smoke crack to get more shit done." +msgstr "Кури крэк, чтобы еще больше разгребать \"всего этого дерьма\"." #: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "Да что с тобой говорить. Пошёл ты." +msgid "Watch your back out there." +msgstr "Береги свою задницу там." #: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Иди нахрен!" +msgid "Welcome marshal..." +msgstr "Добро пожаловать, маршал..." #: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "Ещё один выживший! Нам нужно двигаться вместе." +msgid "Welcome..." +msgstr "Добро пожаловать..." #: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "Чем занимаешься?" +msgid "I'm actually new..." +msgstr "Вообще-то я здесь новенький..." #: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "Поторгуем?" +msgid "Can I do anything for the center?" +msgstr "Что я могу сделать для центра?" #: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&Убрать оружие." +msgid "Let's trade then." +msgstr "Что ж, поторгуем тогда." #: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&Бросить оружие." +msgid "I figured you might be looking for some help..." +msgstr "Я подумал, что вам может понадобиться помощь..." #: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "Не волнуйся, я не причиню тебе вреда!" +msgid "" +"Before you say anything else, we're full. Few days ago we had an outbreak " +"due to lett'n in too many new refugees. We do desperately need supplies and" +" are willing to trade what we can for it. Pay top dollar for jerky if you " +"have any." +msgstr "" +"Прежде чем вы что-нибудь скажете - свободных мест нет. Пару дней назад у нас" +" произошла вспышка из-за того, что мы пустили к себе слишком много беженцев." +" Нам очень нужны припасы, и мы готовы менять на них всё, что мы можем " +"выделить. Мы очень хорошо заплатим за вяленое мясо, если вы захотите его " +"продать." #: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "Бросай оружие!" +msgid "No rest for the weary..." +msgstr "Нет отдыха усталому путнику..." #: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "Прочь с дороги, или я убью тебя." +msgid "" +"To be honest, we started out with six buses full of office workers and " +"soccer moms... after the refugee outbreak a day or two ago the more " +"courageous ones in our party ended up dead. The only thing we want now is " +"to run enough trade through here to keep us alive. Don't care who your " +"goods come from or how you got them, just don't bring trouble." +msgstr "" +"Откровенно говоря, в начале нас было шесть автобусов, заполненных офисными " +"работниками и мамами игроков в футбол... после вспышки среди беженцев день " +"или два назад наиболее храбрые из нашей группы были уже мертвы. " +"Единственное, чего мы хотим - чтобы торговля здесь была достаточно активной," +" чтобы мы могли выжить. Нам не важно, у кого или откуда берутся товары, " +"просто не создавайте неприятностей." #: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "Привет, ." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "Пока." - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "Привет." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "Ладно, не делай резких движений…" - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "Не подходи ближе!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "Успокойся. Я не причиню тебе зла." - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "Иди на хрен, нет." - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&Поднять руки." - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*бросает своё оружие." - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*бросает_своё_оружие." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "А теперь убирайся." - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "Теперь убирайся отсюда, пока я тебя не убил." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "Ладно, я иду." - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "По поводу работы…" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "По поводу одного из этих заданий…" - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "Что случилось?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "Мне всё равно." - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "Понятно." - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "Ну, ладно." - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "Неважно, мне не интересно." - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "Ничего особенного." - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "Я это сделаю!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "Не интересует." - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "Нет проблем." - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "Что-нибудь посоветуешь?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "Можешь поделиться каким-нибудь снаряжением?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "Я скоро вернусь!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "Хорошо, спасибо." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "Хорошо. Пока!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "Прости." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "Неважно. Пока." - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "Ну… эмм… прости." - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "Прости, я сделал всё, что мог." - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "Конечно, бери!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "Спасибо." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "Спасибо, пока." - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "Что ж, похоже только ты да я." - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "По крайней мере у нас есть убежище." - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "Что нам теперь делать?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "Есть какие-нибудь советы?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "Что я могу для тебя сделать?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "Хочешь пойти со мной?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "Давай обменяемся предметами." - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "Я не могу покинуть убежище без экипировки." - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "Я не знаю. Искать припасы и других выживших, полагаю." - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -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 "" -"Я думаю, что хорошо бы добыть машину в исправном состоянии и с топливом, " -"если придётся быстро отсюда исчезнуть." - -#: 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 "" -"Мы могли бы наведаться на одну из этих ферм. Там можно обеспечить себя едой," -" и они на безопасном расстоянии от городов." - -#: 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 "" -"Наверное, стоит держаться от городов подальше, даже если там полно полезных " -"вещей." - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "Хмм, ладно." - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Не раньше, чем я получу антибиотики…" - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "Ты об этом уже спрашивал; спроси снова попозже." - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "И почему я должен пойти с тобой?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "Понятно. Я достану антибиотики." - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "Да, точно. Я спрошу позже." - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "Со мной ты будешь в безопасности." - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "С тобой я буду в безопасности." - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "Мы же друзья, разве нет?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "Я убью тебя если ты не сделаешь этого." - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "Точно, я с тобой!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "Шикарно!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "Ладно, пошли!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "Да?.. Я так не думаю." - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "Ты действительно уходишь?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "Да, я уверен. Пока." - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "Не, я просто пошутил." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "В чём дело?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "Далеко ещё?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "Я бы хотел стать лидером на какое-то время." - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "В сторону. Теперь я лидер." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "Пошли." - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "Хорошо. Веди нас." - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "Хорошо. Что-нибудь ещё…" - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "Да, пошли." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "Ладно, ладно." - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "Ни единого шанса, я сматываю удочки!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "Хорошо." - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "Я на страже." - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "Нужно, чтобы ты пошёл со мной." - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "Увидимся." - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "Мне действительно это неудобно ..." - -#: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." -msgstr "Я дам вам некоторое пространство." - -#: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "Я бы предпочёл, держать это при себе." - -#: lang/json/talk_topic_from_json.py -msgid "I understand..." -msgstr "Я понимаю..." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "Ладно, держи." - -#: lang/json/talk_topic_from_json.py -msgid "Thank you!" -msgstr "Спасибо!" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" -msgstr "Спасибо! А могу ли я получить ещё?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" -msgstr "Спасибо, позже увидимся!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." -msgstr "Ладно, ладно, извини." - -#: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" -msgstr "Я не шучу, дай мне что-нибудь!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." -msgstr "Ладно, хорошо, пока." - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "Хорошо, приступим." - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good." -msgstr "Хорошо." - -#: lang/json/talk_topic_from_json.py -msgid "Okay. Lead the way." -msgstr "Ладно. Веди меня." - -#: lang/json/talk_topic_from_json.py -msgid "No, we'll be okay here." -msgstr "Нет, мы здесь будем в порядке." - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, never mind." -msgstr "Если ещё раз подумать, то неважно." - -#: lang/json/talk_topic_from_json.py -msgid "Hello marshal." -msgstr "Здравствуйте, маршал." - -#: lang/json/talk_topic_from_json.py -msgid "What is this place?" -msgstr "Что это за место?" - -#: lang/json/talk_topic_from_json.py -msgid "Can I join you guys?" -msgstr "Могу ли я присоединиться к вам, ребята?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can do for you?" -msgstr "Что-то, что я могу сделать?" - -#: lang/json/talk_topic_from_json.py -msgid "See you later." -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 "Это лагерь беженцев, мы сделали его чем-то вроде центра торговли." - -#: lang/json/talk_topic_from_json.py -msgid "So are you with the government or something?" -msgstr "Так ты из правительства или вроде того?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you trade?" -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 "" -"Ха-ха-ха, нет. Хотя где-то здесь есть силы Старой Гвардии, если у вас есть " -"какие-то вопросы, касающиеся того, чем представлено нынешнее правительство." - -#: lang/json/talk_topic_from_json.py -msgid "Oh, okay. I'll go look for him" -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 "" -"Ничего ценного на самом деле. Если вы действительно хотите узнать, спросите " -"одного из торговцев. Я просто охранник." - -#: lang/json/talk_topic_from_json.py -msgid "I'll go talk to them later." -msgstr "Я пойду и поговорю с ним попозже." - -#: lang/json/talk_topic_from_json.py -msgid "Will do, thanks!" -msgstr "Так и сделаю, спасибо!" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Nope." -msgstr "He-a." - -#: lang/json/talk_topic_from_json.py -msgid "That's pretty blunt!" -msgstr "Это довольно глупо!" - -#: lang/json/talk_topic_from_json.py -msgid "Death is pretty blunt." -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 "" -"Так что, договориться не получится? Вариант \"Выполни этот квест, и мы " -"впустим тебя\" не прокатит?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't like your attitude." -msgstr "Мне не нравится ваше отношение." - -#: lang/json/talk_topic_from_json.py -msgid "Well alright then." -msgstr "Ну что же, ладно." - -#: lang/json/talk_topic_from_json.py -msgid "Then leave, you have two feet." -msgstr "Тогда уходите, у вас всего две ноги." - -#: lang/json/talk_topic_from_json.py -msgid "I think I'd rather rearrange your face instead!" -msgstr "Пожалуй, я лучше подправлю тебе лицо!" - -#: lang/json/talk_topic_from_json.py -msgid "I will." -msgstr "Я сделаю это." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Uh, not really. Go talk to a merchant if you have anything to sell. " -"Otherwise the Old Guard liaison might have something, if you can find him." -msgstr "" -"Эм, вообще-то нет. Если у тебя есть что продать, иди к торговцу. Ещё можешь " -"поговорить со связным Старой Гвардии, если найдёшь его." - -#: lang/json/talk_topic_from_json.py -msgid "Alright then." -msgstr "Ладно." - -#: lang/json/talk_topic_from_json.py -msgid "Old Guard huh, I'll go talk to him!" -msgstr "Хм, Старая Гвардия, я поговорю с ним!" - -#: lang/json/talk_topic_from_json.py -msgid "Who are the Old Guard?" -msgstr "Кто такие Старая Гвардия?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's just our nickname for them. They're what's left of the federal " -"government. Don't know how legitimate they are but they are named after " -"some military unit that once protected the president. Their liaison is " -"usually hanging around here somewhere." -msgstr "" -"Это просто прозвище, которое мы дали им. Они - всё, что осталось от " -"федерального правительства. Не знаю, насколько они легитимны, но они " -"утверждают, что они когда-то входили в подразделение, защищавшее президента." -" Их связного обычно можно найти где-то здесь поблизости." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever, I had another question." -msgstr "Однако, у меня есть ещё вопрос." - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'll go look for him then." -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 "" -"Держись подальше от этого места. Ненавижу, когда приходится убивать ещё раз " -"после того, как ты уже умер." - -#: lang/json/talk_topic_from_json.py -msgid "Hello." -msgstr "Привет." - -#: lang/json/talk_topic_from_json.py -msgid "I am actually new." -msgstr "Вообще-то я новичок." - -#: lang/json/talk_topic_from_json.py -msgid "Are there any rules I should follow while inside?" -msgstr "" -"Есть какие-нибудь правила, которые я должен соблюдать, пока нахожусь внутри?" - -#: lang/json/talk_topic_from_json.py -msgid "So who is everyone around here?" -msgstr "Так кто все эти люди?" - -#: lang/json/talk_topic_from_json.py -msgid "Lets trade!" -msgstr "Поторгуем!" - -#: lang/json/talk_topic_from_json.py -msgid "Is there anything I can do to help?" -msgstr "Я могу чем-то помочь?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! I will be on my way." -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 "Конечно. Просто не доставляй беспокойства и всё будет нормально." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well mostly no. Just don't go around robbing others and starting fights and" -" you will be all set. Also, don't go into the basement. Outsiders are not " -"allowed in there." -msgstr "" -"Ну, в целом - нет. Просто не пытайся ограбить других и не начинай драк, и " -"все будет в порядке. Ещё не спускайся в подвал - чужакам туда вход запрещён." - -#: lang/json/talk_topic_from_json.py -msgid "Ok, thanks." -msgstr "Хорошо, спасибо." - -#: lang/json/talk_topic_from_json.py -msgid "So uhhh, why not?" -msgstr "Нуу уффф, почему бы нет?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"In short, we had a problem when a sick refugee died and turned into a " -"zombie. We had to expel the refugees and most of our surviving group now " -"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 "" -"Вкратце, у нас есть проблема с больным беженцем, который умер и превратился " -"в зомби. Нам пришлось изгнать всех беженцев, а большая часть из нашей группы" -" выживших теперь находится в подвале, чтобы не допустить повторения " -"подобного. Если только ты не докажешь свою пользу, я не вижу исключений из " -"этого правила." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most are scavengers like you. They now make a living by looting the cities " -"in search for anything useful: food, weapons, tools, gasoline. In exchange " -"for their findings we offer them a temporary place to rest and the services " -"of our shop. I bet some of them would be willing to organize resource runs " -"with you if you ask." -msgstr "" -"Большая часть — добытчики, как и ты. Они выживают, шарясь в городах в " -"поисках чего-нибудь полезного: еды, оружия, инструментов, бензина. В обмен " -"на их находки мы предоставляем им временное место для сна и услуги нашего " -"магазина. Уверен, некоторые из них были бы не прочь организовать походы за " -"ресурсами вместе с тобой, если ты кому-нибудь это предложишь." - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the 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 "" -"Это не по моей части. Поищи нашего торговца около главного входа. Возможно, " -"кто-нибудь из добытчиков также будет заинтересован." - -#: lang/json/talk_topic_from_json.py -msgid "Keep to yourself and you won't find any problems." -msgstr "Следи за собой, и у тебя не будет проблем." - -#: lang/json/talk_topic_from_json.py -msgid "What do you do around here?" -msgstr "Что ты здесь делаешь?" - -#: lang/json/talk_topic_from_json.py -msgid "Got tips for avoiding trouble?" -msgstr "Есть рекомендации по предотвращению проблемы?" - -#: lang/json/talk_topic_from_json.py -msgid "Have you seen anyone who might be hiding something?" -msgstr "Видел кого-нибудь, кто мог что-нибудь скрывать?" - -#: lang/json/talk_topic_from_json.py -msgid "Bye..." -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 "" -"Я здесь не так давно, но я внимательно слежу за тем, кто приходит и уходит. " -"Иногда трудно предугадать, кто вызовет неприятности." - -#: lang/json/talk_topic_from_json.py -msgid "Keep your head down and stay out of my way." -msgstr "Преклони голову и уйди с дороги" - -#: lang/json/talk_topic_from_json.py -msgid "OK..." -msgstr "Хорошо..." - -#: lang/json/talk_topic_from_json.py -msgid "Like what?" -msgstr "Какого типа?" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not sure..." -msgstr "Я не уверен..." - -#: lang/json/talk_topic_from_json.py -msgid "Like they could be working for someone else?" -msgstr "Ну, типа как будто они работают на кого-то ещё." - -#: lang/json/talk_topic_from_json.py -msgid "You're new here, who the hell put you up to this crap?" -msgstr "" -"Ты здесь новенький, кто, чёрт возьми, ты такой, чтобы задавать такие " -"вопросы?" - -#: lang/json/talk_topic_from_json.py -msgid "Get bent, traitor!" -msgstr "Отвали, предатель!" - -#: lang/json/talk_topic_from_json.py -msgid "Got something to hide?" -msgstr "Есть что скрывать?" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry, I didn't mean to offend you..." -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 "" -"Если вы не займетесь своим бизнесом, мне придется попросить вас уйти и не " -"возвращаться." - -#: lang/json/talk_topic_from_json.py -msgid "Sorry." -msgstr "Прости." - -#: lang/json/talk_topic_from_json.py -msgid "That's it, you're dead!" -msgstr "Точняк, ты труп!" - -#: lang/json/talk_topic_from_json.py -msgid "I didn't mean it!" -msgstr "Я не это имел в виду!" - -#: lang/json/talk_topic_from_json.py -msgid "You must really have a death wish!" -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 "" -"Мы не потерпим здесь такую мразь, как ты. Заканчивай свои дела и убирайся." - -#: lang/json/talk_topic_from_json.py -msgid "I thought I smelled a pig. I jest... please don't arrest me." -msgstr "Кажется я учуял свинью. Шучу... пожалуйста, не арестовывайте меня." - -#: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Эй, кажется вы здесь недавно. Могу я вам помочь?" - -#: lang/json/talk_topic_from_json.py -msgid "You... smelled me?" -msgstr "Ты... чуешь меня?" - -#: lang/json/talk_topic_from_json.py -msgid "Got anything for sale?" -msgstr "Есть что на продажу?" - -#: lang/json/talk_topic_from_json.py -msgid "Got any survival advice?" -msgstr "Не могли ли бы вы дать совет по выживанию?" - -#: lang/json/talk_topic_from_json.py -msgid "Goodbye." -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 "" -"Не поймите меня неправильно, но проведя столько времени в этой глуши, я " -"обнаружил, что мой нюх стал быстрее зрения." - -#: lang/json/talk_topic_from_json.py -msgid "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 "" -"Я торгую едой в обмен на ночлег и другие припасы. И под едой я подразумеваю " -"не чёрствые чипсы и выдохшуюся колу." - -#: lang/json/talk_topic_from_json.py -msgid "Interesting." -msgstr "Интересно." - -#: lang/json/talk_topic_from_json.py -msgid "Oh, so you hunt?" -msgstr "О, так вы охотитесь?" - -#: lang/json/talk_topic_from_json.py -msgid "Not really, just trying to lead my life." -msgstr "Пожалуй нет, просто пытаюсь жить своей жизнью." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yep. Whatever game I spot, I bag and sell the meat and other parts here. " -"Got the occasional fish and basket full of wild fruit, but nothing comes " -"close to a freshly-cooked moose steak for supper!" -msgstr "" -"Ну да. Как бы то ни было, у меня найдётся мясо и всё, что после него " -"остаётся. Иногда бывает рыба или корзина диких фруктов, но ничто не " -"сравнится со свежеприготовленным стейком из лося на ужин." - -#: lang/json/talk_topic_from_json.py -msgid "Great, now my mouth is watering..." -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 "" -"Конечно, просто свежая порция мяса. Может ты захочешь его поджарить, пока " -"оно не стало слишком, ммм... \"мягким\"." - -#: 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 "" -"Накорми человека рыбой, и он будет сыт на весь день. Накорми человека пулей," -" и он будет сыт до конца своих дней." - -#: lang/json/talk_topic_from_json.py -msgid "Spot your prey before something nastier spots you." -msgstr "Выследи свою жертву, пока что-то более скверное не выследило тебя." - -#: lang/json/talk_topic_from_json.py -msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." -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 "Никого не слушай, бармаглот существует. Если увидишь его — БЕГИ." - -#: 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 "" -"Мясо зомби-животных не годится в пищу, но иногда у них есть шерсть, которую " -"можно использовать для чего-нибудь." - -#: lang/json/talk_topic_from_json.py -msgid "" -"A steady diet of cooked meat and clean water will keep you alive forever, " -"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 "" -"Варёное мясо и свежая вода - верная диета, чтобы долго оставаться на ногах. " -"Но вкусовые рецепторы и кишки могут начать возмущаться. Просто ешьте немного" -" фруктов вдобавок к основной пище." - -#: lang/json/talk_topic_from_json.py -msgid "Smoke crack to get more shit done." -msgstr "Кури крэк, чтобы еще больше разгребать \"всего этого дерьма\"." - -#: lang/json/talk_topic_from_json.py -msgid "Watch your back out there." -msgstr "Береги свою задницу там." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Добро пожаловать, маршал..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Добро пожаловать..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "Вообще-то я здесь новенький..." - -#: lang/json/talk_topic_from_json.py -msgid "Can I do anything for the center?" -msgstr "Что я могу сделать для центра?" - -#: lang/json/talk_topic_from_json.py -msgid "Let's trade then." -msgstr "Что ж, поторгуем тогда." - -#: lang/json/talk_topic_from_json.py -msgid "I figured you might be looking for some help..." -msgstr "Я подумал, что вам может понадобиться помощь..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." -msgstr "" -"Прежде чем вы что-нибудь скажете - свободных мест нет. Пару дней назад у нас" -" произошла вспышка из-за того, что мы пустили к себе слишком много беженцев." -" Нам очень нужны припасы, и мы готовы менять на них всё, что мы можем " -"выделить. Мы очень хорошо заплатим за вяленое мясо, если вы захотите его " -"продать." - -#: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "Нет отдыха усталому путнику..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." -msgstr "" -"Откровенно говоря, в начале нас было шесть автобусов, заполненных офисными " -"работниками и мамами игроков в футбол... после вспышки среди беженцев день " -"или два назад наиболее храбрые из нашей группы были уже мертвы. " -"Единственное, чего мы хотим - чтобы торговля здесь была достаточно активной," -" чтобы мы могли выжить. Нам не важно, у кого или откуда берутся товары, " -"просто не создавайте неприятностей." - -#: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Здесь так же хреново, если не хуже." +msgid "It's just as bad out here, if not worse." +msgstr "Здесь так же хреново, если не хуже." #: lang/json/talk_topic_from_json.py msgid "" @@ -127417,168 +127411,485 @@ msgstr "" "оставшихся в этом мире." #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "Могу я помочь вам, маршал?" +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "" +"Пожалуйста, помоги мне. Мне надо поесть. Разве ты не их шериф? Ты мне не " +"поможешь?" #: lang/json/talk_topic_from_json.py -msgid "Morning sir, how can I help you?" -msgstr "Доброе утро, сэр, чем я могу вам помочь?" +msgid "Please, help me. I need food." +msgstr "Пожалуйста, помоги мне. Мне нужна еда." #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Доброе утро, мэм, чем я могу вам помочь?" +msgid "Get away from me." +msgstr "Уйди от меня." #: lang/json/talk_topic_from_json.py msgid "" -"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " -"from you." +"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 "" -"[ЗАДАНИЕ] Торговец из Центра беженцев отправил меня, чтобы я взял у тебя " -"проект." - -#: lang/json/talk_topic_from_json.py -msgid "I heard you were setting up an outpost out here." -msgstr "Я слышал, вы основали здесь аванпост." +"Они меня не пускают. Говорят, места нет, всё занято. Мне позволили пожить " +"тут, пока я прибираюсь и не развожу суету, но мне так хочется есть." #: lang/json/talk_topic_from_json.py -msgid "What's your job here?" -msgstr "Кем ты работаешь здесь?" +msgid "Why don't you go somewhere else?" +msgstr "Почему ты не ушёл куда-нибудь ещё?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was starting to wonder if they were really interested in the project or " -"were just trying to get rid of me." -msgstr "" -"Я уже начал задумываться, действительно ли они заинтересованы в проекте, или" -" же хотели просто избавиться от меня." +msgid "Why don't you scavenge your own food?" +msgstr "Почему бы тебе самому не поискать себе еду?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ya, that representative from the Old Guard asked the two of us to come out " -"here and begin fortifying this place as a refugee camp. I'm not sure how " -"fast he expects the two of us to get setup but we were assured additional " -"men were coming out here to assist us. " -msgstr "" -"Ага, этот представитель Старой Гвардии попросил нас двоих добраться сюда и " -"начать укреплять это место в качестве лагеря беженцев. Я не знаю, какой " -"скорости он ожидает от нас двоих в этом деле, но нас убедили, что сюда " -"прибудут дополнительные люди нам в помощь." +msgid "What did you do before the cataclysm?" +msgstr "Кем ты был до катаклизма?" #: lang/json/talk_topic_from_json.py -msgid "How many refugees are you expecting?" -msgstr "Сколько беженцев вы ожидаете?" +msgid "I'm sorry, I can't help you." +msgstr "Прости, не могу помочь." #: lang/json/talk_topic_from_json.py msgid "" -"Could easily be hundreds as far as I know. They chose this ranch because of" -" its rather remote location, decent fence, and huge cleared field. With as " -"much land as we have fenced off we could build a village if we had the " -"materials. We would have tried to secure a small town or something but the " -"lack of good farmland and number of undead makes it more practical for us to" -" build from scratch. The refugee center I came from is constantly facing " -"starvation and undead assaults." +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" msgstr "" -"Насколько я знаю, их запросто может быть несколько сотен. Они выбрали это " -"ранчо из-за удалённости, приличной ограды и огромного очищенного поля. С " -"таким количеством огороженной земли мы бы могли построить деревню, если бы у" -" нас были материалы. Мы могли бы попытаться зачистить небольшой городок, но " -"из-за недостатка хорошей земли под посадку и толп нежити мы посчитали более " -"практичным начать всё с нуля. Центр беженцев, откуда я пришёл, постоянно " -"сталкивается с голодом и нашествиями нежити." +"Где? Я не могу драться с теми монстрами. Я ужасный слабак, у меня нет " +"никаких полезных навыков, меня страшно пугают и насилие. Как я " +"должен найти безопасное местечко?" #: lang/json/talk_topic_from_json.py -msgid "Hopefully moving out here was worth it..." -msgstr "Надеюсь, приезд сюда стоил того." +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" +"Вон там, снаружи? Это самоубийство! Люди уходят и не возвращаются, причём " +"люди, способные за себя постоять... не то что я. Спасибо, я уж лучше попытаю" +" счастья и буду побираться за объедки в ожидании, что кто-то в центре помрёт" +" и освободит мне место." #: lang/json/talk_topic_from_json.py msgid "" -"I'm the engineer in charge of turning this place into a working camp. This " -"is going to be an uphill battle, we used most of our initial supplies " -"getting here and boarding up the windows. I've got a huge list of tasks " -"that need to get done so if you could help us keep supplied I'd appreciate " -"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." +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." msgstr "" -"Я здесь главный инженер, пытаюсь превратить это место в рабочий лагерь. Это " -"будет трудное дело, так как мы использовали большую часть материалов, с " -"которыми прибыли сюда, на укрепление окон. У меня есть огромный список " -"задач, которые нужно выполнить, так что если бы ты обеспечивал нас " -"припасами, мы были бы тебе благодарны. Если у тебя есть материалы, то ты " -"можешь загнать сюда свой транспорт и выгрузить их, а уж мы рассортируем их." +"Я преподавал математику в старших классах. Хорошая была работа, я любил её. " +"Что забавно, не слишком востребованная после конца света. Хочу сказать, " +"когда-нибудь людям снова понадобятся учителя, но прямо сейчас им нужны " +"просто еда, убежище и одежда." #: lang/json/talk_topic_from_json.py -msgid "I'll keep that in mind." -msgstr "Буду иметь в виду." +msgid "Have I told you about cardboard, friend? Do you have any?" +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 "" -"Мой партнёр руководит укреплением этого места, так что лучше спросить у " -"него, что нужно сделать." +msgid "Cardboard?" +msgstr "Картон?" #: lang/json/talk_topic_from_json.py -msgid "I'll talk to him then..." -msgstr "Я поговорю с ним после..." +msgid "Why are you sitting out here?" +msgstr "Зачем ты тут сидишь?" #: lang/json/talk_topic_from_json.py -msgid "Howdy." -msgstr "Привет." +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "Ты что, правда носишь костюм динозавра?" #: lang/json/talk_topic_from_json.py msgid "" -"I was among one of the first groups of immigrants sent here to fortify the " -"outpost. I might have exaggerated my construction skills to get the hell " -"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." +"I'm building a house out of cardboard. The sandman doesn't want me to, but " +"I told him to go fuck himself." msgstr "" -"Я был в одной из первых групп поселенцев, посланных сюда, чтобы укрепить " -"форпост. Я, возможно, преувеличил свои строительные навыки, чтобы свалить " -"нахрен из центра беженцев. Если вы не торговец, то там не так много работы, " -"а еда действительно в дефиците." +"Я строю картонный дом. Песочный человек против, но я послал его нахуй." #: lang/json/talk_topic_from_json.py -msgid "You need something?" -msgstr "Тебе что-нибудь нужно?" +msgid "Why cardboard?" +msgstr "Почему картонный?" #: lang/json/talk_topic_from_json.py -msgid "I'd like to hire your services." -msgstr "Я бы хотел воспользоваться твоими услугами." +msgid "I think I have to get going..." +msgstr "Наверное, мне пора..." #: lang/json/talk_topic_from_json.py msgid "" -"I'm one of the migrants that got diverted to this outpost when I arrived at " -"the refugee center. They said I was big enough to swing an ax so my " -"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." +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." msgstr "" -"Я — один из мигрантов, которые были направлены к этому аванпосту, когда я " -"прибыл в центр беженцев. Они сказали, что я достаточно крепкий, чтобы " -"размахивать топором, так что я стал лесорубом... ничего не скажешь по этому " -"поводу. Если я захочу поесть, я буду рубить деревья с этого момента и до " -"пришествия конца света." +"Нынче тут полным-полно картона, и он отпугивает зомби. Пока что картон меня " +"оберегал. Сердцевина зомби испускает бета-лучи, они не могут пробить картон." +" Из-за отражения лучей картон остаётся невредимым." #: lang/json/talk_topic_from_json.py -msgid "Oh." -msgstr "О." +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 "" +"Эти трусы меня боятся. Они не пускают меня на свою базу. Я хочу построить " +"свой собственный дом и не пущу их к себе." #: lang/json/talk_topic_from_json.py -msgid "Come back later, I need to take care of a few things first." -msgstr "Возвращайтесь позже, мне нужно позаботиться о паре вещей сначала. " +msgid "Building a house?" +msgstr "Ты строишь дом?" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "Нет." #: lang/json/talk_topic_from_json.py -msgid "" -"The rate is a bit steep but I still have my quotas that I need to fulfill. " -"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 "" -"Норма сверх меры, но у меня всё ещё есть свои нормы выработки, которые я " -"должен выполнить. Брёвна будут сложены в гараже у входа в лагерь. Мне " -"потребуется немного времени, прежде чем я смогу поставить другую партию." +msgid "What was that about cardboard?" +msgstr "Так что там с картоном?" #: lang/json/talk_topic_from_json.py -msgid "[$2000, 1d] 10 logs" +msgid "Don't bother with these assholes." +msgstr "Забей на тех мудаков." + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "Как дела?" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "Ладно... пока-пока." + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "У них 'слишком много людей'. Нихера не хотят делиться." + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "Почему тогда ты тут живёшь?" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "Я пойду, пожалуй." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" +"Это самое безопасное место даже без их помощи. Пока я держу порядок и не " +"вызываю проблем с чистотой, они не против, если я потусуюсь в холле. Очень " +"мило и щедро с их стороны позволять сидеть и медленно умирать от голода." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Эй, что думаешь про то, что выживает сильнейший?" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "Почему ты спрашиваешь?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "Прости, неинтересно." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" +"Потому что я никак не сильнейший, поэтому я буду сидеть тут, пока не помру с" +" голоду. Поможешь несчастному больному бедолаге?" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "Что с тобой?" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "Они не пускают тебя, потому что ты болен?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "Как ты вообще сюда добрался, если так болен?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "Почему ты тут живёшь, если они тебя не пускают?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" +"Да что угодно! Астма, диабет, артрит. С диабетом всё было не так плохо, пока" +" я, ну, не перестал регулярно питаться. Ладно, я предполагаю, что всё было " +"не так плохо. Не то чтоб я мог делать как-его-там, ну, этот анализ крови, " +"которым доктора меня доставали каждые несколько месяцев." + +#: lang/json/talk_topic_from_json.py +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 "" +"Им нужно кормить кучу голодных людей, способных поднять собственный вес. У " +"меня веса много, и я слишком слаб, чтоб его поднять, так что я здесь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" +"Пришёл вместе с кучкой людей какое-то время назад. Их впустили, они были " +"молодые и подтянутые. На самом деле они были одними из последних, кого " +"впустили. А я им не подошёл." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" +"Милосердие. У меня есть укрытие, свет и тепло, а охранники помогут, если " +"появятся зомби. Тут не так плохо. Если б я был сам по себе, у меня бы ничего" +" этого не было, и мне всё ещё пришлось бы искать еду... короче, я был бы в " +"могиле. Или, вероятно, вернулся бы из могилы." + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "Привет, дружище." + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "Что ты здесь делаешь?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "Не могу не заметить, ты покрыт мехом." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" +"Я тут живу. Я слишком мутант, чтобы влиться в клуб крутых ребят, но " +"недостаточно мутант, чтоб пристрелить меня на месте." + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "Почему ты тут живёшь?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "Похоже, ты можешь постоять за себя. Не хочешь ли отправиться со мной?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" +"Тут безопаснее, чем искать свой собственный дом. Когда нужно, я вылезаю и " +"собираю еду. Пока мы поддерживаем порядок и помогаем при нападении зомби, " +"они позволяют нам тут жить, типа как дополнительная защита. Впрочем, им не " +"нравится, когда я приношу еду остальным беднягам... Думаю, они хотят " +"медленно заморить нас голодом, и даже если я не могу накормить всех досыта, " +"я приношу достаточно еды, чтоб народ держался. Я подозреваю, когда-нибудь " +"меня вышвырнут вон." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" +"Мерзко, правда? Ощущается, как волосня на лобке. Начало расти повсюду вскоре" +" после катаклизма. Без понятия, в чём причина. Я не осуждаю, что все это " +"ненавидят, я и сам ненавижу." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" +"Ну что ж, это вроде милое предложение, и я ценю, что ты видишь не только мои" +" лобковые волосы по всему телу. Но прости. Я вроде чувствую ответственность " +"за эту маленькую стайку бедолаг. Я не думаю, что могу уйти, пока только я " +"один о них забочусь." + +#: lang/json/talk_topic_from_json.py +msgid "Can I help you, marshal?" +msgstr "Могу я помочь вам, маршал?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning sir, how can I help you?" +msgstr "Доброе утро, сэр, чем я могу вам помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning ma'am, how can I help you?" +msgstr "Доброе утро, мэм, чем я могу вам помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " +"from you." +msgstr "" +"[ЗАДАНИЕ] Торговец из Центра беженцев отправил меня, чтобы я взял у тебя " +"проект." + +#: lang/json/talk_topic_from_json.py +msgid "I heard you were setting up an outpost out here." +msgstr "Я слышал, вы основали здесь аванпост." + +#: lang/json/talk_topic_from_json.py +msgid "What's your job here?" +msgstr "Кем ты работаешь здесь?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was starting to wonder if they were really interested in the project or " +"were just trying to get rid of me." +msgstr "" +"Я уже начал задумываться, действительно ли они заинтересованы в проекте, или" +" же хотели просто избавиться от меня." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ya, that representative from the Old Guard asked the two of us to come out " +"here and begin fortifying this place as a refugee camp. I'm not sure how " +"fast he expects the two of us to get setup but we were assured additional " +"men were coming out here to assist us. " +msgstr "" +"Ага, этот представитель Старой Гвардии попросил нас двоих добраться сюда и " +"начать укреплять это место в качестве лагеря беженцев. Я не знаю, какой " +"скорости он ожидает от нас двоих в этом деле, но нас убедили, что сюда " +"прибудут дополнительные люди нам в помощь." + +#: lang/json/talk_topic_from_json.py +msgid "How many refugees are you expecting?" +msgstr "Сколько беженцев вы ожидаете?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Could easily be hundreds as far as I know. They chose this ranch because of" +" its rather remote location, decent fence, and huge cleared field. With as " +"much land as we have fenced off we could build a village if we had the " +"materials. We would have tried to secure a small town or something but the " +"lack of good farmland and number of undead makes it more practical for us to" +" build from scratch. The refugee center I came from is constantly facing " +"starvation and undead assaults." +msgstr "" +"Насколько я знаю, их запросто может быть несколько сотен. Они выбрали это " +"ранчо из-за удалённости, приличной ограды и огромного очищенного поля. С " +"таким количеством огороженной земли мы бы могли построить деревню, если бы у" +" нас были материалы. Мы могли бы попытаться зачистить небольшой городок, но " +"из-за недостатка хорошей земли под посадку и толп нежити мы посчитали более " +"практичным начать всё с нуля. Центр беженцев, откуда я пришёл, постоянно " +"сталкивается с голодом и нашествиями нежити." + +#: lang/json/talk_topic_from_json.py +msgid "Hopefully moving out here was worth it..." +msgstr "Надеюсь, приезд сюда стоил того." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm the engineer in charge of turning this place into a working camp. This " +"is going to be an uphill battle, we used most of our initial supplies " +"getting here and boarding up the windows. I've got a huge list of tasks " +"that need to get done so if you could help us keep supplied I'd appreciate " +"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 "" +"Я здесь главный инженер, пытаюсь превратить это место в рабочий лагерь. Это " +"будет трудное дело, так как мы использовали большую часть материалов, с " +"которыми прибыли сюда, на укрепление окон. У меня есть огромный список " +"задач, которые нужно выполнить, так что если бы ты обеспечивал нас " +"припасами, мы были бы тебе благодарны. Если у тебя есть материалы, то ты " +"можешь загнать сюда свой транспорт и выгрузить их, а уж мы рассортируем их." + +#: lang/json/talk_topic_from_json.py +msgid "I'll keep that in mind." +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 "" +"Мой партнёр руководит укреплением этого места, так что лучше спросить у " +"него, что нужно сделать." + +#: lang/json/talk_topic_from_json.py +msgid "I'll talk to him then..." +msgstr "Я поговорю с ним после..." + +#: lang/json/talk_topic_from_json.py +msgid "Howdy." +msgstr "Привет." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was among one of the first groups of immigrants sent here to fortify the " +"outpost. I might have exaggerated my construction skills to get the hell " +"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 "" +"Я был в одной из первых групп поселенцев, посланных сюда, чтобы укрепить " +"форпост. Я, возможно, преувеличил свои строительные навыки, чтобы свалить " +"нахрен из центра беженцев. Если вы не торговец, то там не так много работы, " +"а еда действительно в дефиците." + +#: lang/json/talk_topic_from_json.py +msgid "You need something?" +msgstr "Тебе что-нибудь нужно?" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire your services." +msgstr "Я бы хотел воспользоваться твоими услугами." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm one of the migrants that got diverted to this outpost when I arrived at " +"the refugee center. They said I was big enough to swing an ax so my " +"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 "" +"Я — один из мигрантов, которые были направлены к этому аванпосту, когда я " +"прибыл в центр беженцев. Они сказали, что я достаточно крепкий, чтобы " +"размахивать топором, так что я стал лесорубом... ничего не скажешь по этому " +"поводу. Если я захочу поесть, я буду рубить деревья с этого момента и до " +"пришествия конца света." + +#: lang/json/talk_topic_from_json.py +msgid "Oh." +msgstr "О." + +#: lang/json/talk_topic_from_json.py +msgid "Come back later, I need to take care of a few things first." +msgstr "Возвращайтесь позже, мне нужно позаботиться о паре вещей сначала. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"The rate is a bit steep but I still have my quotas that I need to fulfill. " +"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 "" +"Норма сверх меры, но у меня всё ещё есть свои нормы выработки, которые я " +"должен выполнить. Брёвна будут сложены в гараже у входа в лагерь. Мне " +"потребуется немного времени, прежде чем я смогу поставить другую партию." + +#: lang/json/talk_topic_from_json.py +msgid "[$2000, 1d] 10 logs" msgstr "[$2000, 1 день] 10 брёвен" #: lang/json/talk_topic_from_json.py @@ -127721,6 +128032,10 @@ msgstr "" "Я не знаю, что вы можете сделать. Я всё испробовал. Просто дайте мне " "время..." +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "Хорошо." + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -128160,11 +128475,19 @@ msgstr "Это тестовый ответ одежды." #: lang/json/talk_topic_from_json.py msgid "This is a npc trait test response." -msgstr "Это характерный для npc тестовый ответ." +msgstr "Это тестовый ответ трейтов НПС." #: lang/json/talk_topic_from_json.py msgid "This is a npc short trait test response." -msgstr "Это характерный тестовый ответ для npc с тонкой натурой." +msgstr "Это ответ краткого теста трейтов НПС." + +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "Это тестовый ответ флагов трейтов." + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "Это тестовый ответ флагов трейтов НПС." #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." @@ -128210,6 +128533,66 @@ msgstr "Это тестовый ответ npc allies 1." msgid "This an error! npc allies 2 test response." msgstr "Это ошибка! Тестовый ответ npc allies 2." +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "Это тестовый ответ весны." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "Это тестовый ответ 30 дней после катаклизма." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "Это тестовый ответ лета." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "Это тестовый ответ 120 дней после катаклизма." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "Это тестовый ответ осени." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "Это тестовый ответ 210 дней после катаклизма." + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "Это тестовый ответ зимы." + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "Это тестовый ответ 300 дней после катаклизма." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "Это тестовый ответ дня." + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "Это тестовый ответ ночи." + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "Это тестовый ответ or trait." @@ -128254,6 +128637,30 @@ msgstr "Это тестовый ответ u_spend_cash" msgid "This is a multi-effect response" msgstr "Это тестовый ответ нескольких эффектов" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -128277,6 +128684,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "Так ты эвакуировался?" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -128303,6 +128718,188 @@ msgstr "" "всё равно их забрали? Я слышал, что такое бывало. Я не знаю, узнаю ли я " "вообще когда-нибудь." +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" +"Ну хорошо, моя история чертовски интересная, так что устройся поудобнее. Всё" +" случилось примерно пять лет назад, когда я ушёл на пенсию со своей работы " +"на лесопилке. Времена тяжёлые, но мы справились." + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "Ясно, продолжай, пожалуйста." + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "Если подумать, давай поговорим о чём-то ещё." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" +"У меня тогда был мой старый грузовичок, синенький. Мы называли его 'старый " +"крикун'. Как-то раз я и Марти Гампс - или, как я его звал, Старина Гэ - " +"ехали летом на нашем крикуне на гору Гринвуд искать светлячков." + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "Светлячки. Понятно." + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "При чём тут это вообще?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "Мне надо идти." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" +"Старина Гэ - это мой давнишний дружище Марти Гампс - сидел на пассажирском " +"сиденье со своим верным 18-м калибром на коленях. Такое было имя у его " +"собаки, мы все просто звали его 18-м калибром для краткости." + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "18-й калибр, собака. Понятно." + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "Мне кажется, я вижу, как приближаются зомби. Давай закругляться." + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "Заткнись, старый пердун." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +"Прикуси язык, я уже перехожу к делу, чёрт тебя подери. Как я и говорил, " +"Старина Гэ - это мой давнишний дружище Марти Гампс - сидел на пассажирском " +"сиденье со своим верным 18-м калибром на коленях. Такое было имя у его " +"собаки, мы все просто звали его 18-м калибром для краткости." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" +"Когда-то на верхушке горы Гринвуд стояла станция лесничих, это было ещё до " +"того, как ты родился. В том году станция сгорела, говорили, что из-за " +"молнии, но мы все знаем, её спалили детишки во время вечеринки. Мы со " +"Стариной Гэ вышли из старого крикуна и отправились посмотреть. В выгоревшей " +"развалине будто были привидения, мы скумекали, что там наверняка рылись " +"проклятые детишки. Старина Гэ притащил свой 18-й калибр, и правильно сделал," +" учитывая, что мы увидали." + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "Что ты увидел?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "Нам правда, правда надо идти." + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "Твою же ж мать, ЗАТКНИСЬ!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" +"Терпение! Я почти закончил. Когда-то на верхушке горы Гринвуд стояла станция" +" лесничих, это было ещё до того, как ты родился. В том году станция сгорела," +" говорили, что из-за молнии, но мы все знаем, её спалили детишки во время " +"вечеринки. Мы со Стариной Гэ вышли из старого крикуна и отправились " +"посмотреть. В выгоревшей развалине будто были привидения, мы скумекали, что " +"там наверняка рылись проклятые детишки. Старина Гэ притащил свой 18-й " +"калибр, и правильно сделал, учитывая, что мы увидали." + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" +"Растреклятый лось! Он жил в заброшенной станции! Он едва не поднял на рога " +"Старину Гэ, но тот пальнул из 18-го калибра и пробил большую дыру в шкуре. " +"18-й калибр попытался убежать, но мы нашли и вернули его. Лось рухнул, как " +"мешок картошки, но очень здоровенный мешок картошки, если ты понимаешь, о " +"чём я." + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "Я понимаю, о чём ты." + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "Ты ещё не закончил? Ну серьёзно!" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "Во имя всего святого, ПОЖАЛУЙСТА, заткнись, мать твою!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" +"В конце концов, если вкратце, я ехал на гору Гринвуд ещё разок проверить ту " +"старую станцию лесничих, когда услыхал вертолёты и падающие бомбы. Решил " +"подождать там и посмотреть, чем всё кончится, но оно так и не кончилось, " +"ага? Так что вот я здесь." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "Спасибо за рассказ!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"Я вообще, , без понятия. Я, , не знаю, что происходит. Я " +"просто делаю что могу, чтоб выжить. Миру конец, я бродил и пытался не " +"помереть, пока не встретил тебя." + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "Ага." + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -128322,6 +128919,10 @@ msgstr "" "помощниками были одни против целого бунтующего города. А вот затем наступил " "полный пиздец." +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "Что случилось?" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -128362,690 +128963,2321 @@ msgstr "" "выбраться." #: lang/json/talk_topic_from_json.py -msgid "But you did get out." -msgstr "Но тебе удалось выбраться." +msgid "But you did get out." +msgstr "Но тебе удалось выбраться." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." +msgstr "" +"Да, в какой-то момент. Несколько часов стояла тишина. Меня мучила жажда, я " +"был ранен и перепуган. От полной паники меня удерживала, наверно, только моя" +" подготовка. Я решил вылезти и посмотреть, насколько плохи мои раны. Это " +"было просто. Боковина фургона была разорвана, и я, как оказалось, " +"лежал просто под кучкой мелких обломков, а а остатки фургона висели вокруг " +"меня. Меня даже не очень-то задело. Я схватил столько снаряжения, сколько " +"смог, и выскользнул. Стояла ночь. Я слышал отзвуки сражения в глубине " +"города, так что пошёл в другую сторону. Я одолел несколько кварталов, и тут " +"мне встретились ... Я убежал от них. Я бежал, и бежал, и бежал ещё " +"дальше. И вот теперь я здесь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." +msgstr "" +"Я прост сидел в тюрячке. Они забрали меня предыдущей ночью за сраное " +"нарушение условий досрочного освобождения. Мудачьё. Я сидел в камере, когда " +"копы все вдруг заорали про чрезвычайное положение, приоделись и оставили " +"меня, со мной был только этот как охранник. Я застрял там на два " +"ебучих дня без еды и с каплей воды. Потом вломился охрененно громадный зомби" +" и принялся лупить робота. Я не знал, что вообще творится за херня, но в " +"драке они разломали дверь моей камеры, и я сумел улизнуть." + +#: lang/json/talk_topic_from_json.py +msgid "Lucky you. How did you get away?" +msgstr "Везунчик. Как ты выбрался?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." +msgstr "" +"Снаружи на улицах был, , полный хаос, чувак. Но я привык к хаосу. Ты " +"не проживёшь столько, сколько я, если не научишься держаться подальше от " +"драки, в которой не сможешь победить. Самой большой проблемой были даже не " +"зомби и не чудовища, вот ей-богу. Проблемой были сраные полицейские роботы. " +"Они знали про мой побег, и пытались арестовать меня." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." +msgstr "" +"Мне повезло, когда случился . Я бомжевал в складе на " +"краю города. Он был реально , и почти всех пацанов только что " +"арестовали в большой облаве с наркотой, но я ускользнул. Я боялся, они " +"подумают, что я их сдал и придут за мной, но эй, теперь я спокоен." + +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "Ого, вот это тебе повезло. Как ты узнал про ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" +"Я просто сидел на складе. У меня был интернет. Я смотрел те дикие онлайн-" +"трансляции по ютубу и чуть не обосрался от страха. В целом всё было довольно" +" норм, я стянул немного консервов и всякого говна и неплохо так пожил в том " +"складе. В конце концов, я рассчитывал обосноваться там подольше и обдумать, " +"как перетереть всё со своими пацанами." + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "Но что-то тебя оттуда выгнало." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" +"Агась. . Небольшая толпа, и вёл их здоровенный стрёмный ублюдок, " +"чёрный как смола и с красными горящими глазами, ей-богу. Без понятия, чего " +"они ко мне припёрлись, но они видели, как я поссал снаружи, вот и всё. Я " +"выстрелил в них несколько раз, но тот страшный мудила помахал руками и " +"воскресил мертвяков, так что я убежал. Когда я собрал мысли в кучу, то " +"понял, что оно и к лучшему, у меня всё равно кончались припасы. С тех пор я " +"питался тем, что удастся найти, пока не встретил тебя." + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "Расскажешь что-нибудь про зомби-главаря?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" +"Ну, в общем, если вокруг него собрались его дружки и он может их воскресить," +" то он, наверное, жуткий говнюк. Если б я встретил его один на один, то смог" +" бы убить его, наверное. А ещё при побеге я наткнулся на зомби в сторонке и " +"просто в говно расхерачил его палкой до того, как появились остальные. " +"Главарь пробовал его воскресить, но не вышло." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" +"Ладно, это прозвучит дико, но я, типа, я знал, что произойдёт. Ну, типа, " +"прежде чем всё случилось. Не веришь - спроси мою духовную наставницу, только" +" она, типа, скорее всего уже мертва. Я рассказал ей про свои сны за неделю " +"до конца света. Серьёзно!" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "О чём были твои сны?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" +"Итак, первый сон мне снился три недели каждую ночь. Мне снилось, что я бежал" +" через лес, отбиваясь палкой от гигантских пауков. На самом деле! Каждую " +"ночь." + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "Ну, тут ничего необычного нет." + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "Ого, ничего себе, поверить не могу, что тебе снился ." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" +"Ладно, это всё равно, типа, только начало. В общем, за неделю до катаклизма " +"после очередного сна с пауками я встал поссать и вернулся в кровать, потому " +"что я слегка перепугался, понятно? А потом мне приснился другой сон, типа, " +"моя начальница умерла и снова ожила! А спустя несколько дней на работу " +"пришел её муж, у него случился инфаркт, и я слышал на следующий день, что он" +" вернулся из мёртвых! Всё как в моём сне, только с другим человеком!" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "Это странновато." + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" +"АГА?! И это ещё не всё! В общем, за неделю до катаклизма после очередного " +"сна с пауками я встал поссать и вернулся в кровать, потому что я слегка " +"перепугался, понятно? А потом мне приснился другой сон, типа, моя начальница" +" умерла и снова ожила! А спустя несколько дней на работу пришел её муж, у " +"него случился инфаркт, и я слышал на следующий день, что он вернулся из " +"мёртвых! Всё как в моём сне, только с другим человеком!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" +"АГА?! В любом случае, мне всё ещё снятся необычные сны, но больше не про " +"будущее. Типа, после конца света мне часто снятся кошмары. Типа, каждую пару" +" ночей мне снятся чёрные звёзды вокруг Земли, и на миг все они одновременно " +"смотрят на Землю, как миллиард крошечных чёрных глаз. А потом они моргают и " +"отворачиваются, и потом в моём сне Земля становится точно такой же чёрной " +"звездой, и я остаюсь один, один-одинёшенек, и мне очень страшно. Это самый " +"худший сон. Есть и другие." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "Расскажи ещё про свои странные сны." + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"Хорошо, иногда мне снится, что я зомби. Я просто этого не осознаю. Я просто " +"делаю привычные вещи и вижу зомби обычными людьми, а обычных людей вижу " +"зомби. Когда я просыпаюсь, я понимаю, что всё не по-настоящему, потому что " +"если бы всё было правдой, было бы куда больше обычных людей. Потому что они " +"на самом деле были бы зомби. И вообще все сейчас зомби." + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "Наверное, нам всем сейчас такое снится." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" +"Ага, наверно. Иногда мне снится, будто я, типа, всего лишь пылинка, плывущая" +" в огромной равнодушной галактике. После такого я жалею, что моего продавца " +"травки, Грязного Дэна, сожрал гигантский чудовищный краб." + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "Бедняга Грязный Дэн. " + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" +"Я сумел добраться до одного из этих, , эвакуационных убежищ, но там " +"было ещё хуже. Ушёл оттуда, и с тех пор я в бегах." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "Как ты выжил в бегах?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" +"Я долго копался в лесу в поисках ревеня и овощей, пока не набрался храбрости" +" и не начал отстреливать этих мёртвых тварей. Наверное, я был в отчаянии." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" +"Со мной было то же, что с большинством остальных, кто не умер сразу во время" +" бунтов. Я отправился в этот центр, , эвакуации, смертельную " +"ловушку. Я на самом деле даже немного там жил с тремя другими. Один чувак " +"- думаю, он насмотрелся фильмов - он, типа, за всем этим стоял, потому что " +"он вроде как по-настоящему знал, что происходит. Спойлер: он, , был " +"ни при чём." + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "Что стало с твоей группой?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" +"Всё накрылось, когда наш бесстрашный лидер решил пристрелить одну выжившую, " +"которую укусили. Её муж был как бы очень сильно против, да и я был не в " +"восторге, на тот момент он уже успел натворить херни. Ну, он решил взять " +"дело в свои руки и застрелил укушенную. Тогда её муж решил, что на добро " +"надо отвечать добром, и убил придурка. А потом она воскресла, и я убил её " +"снова и разбил труп нашего бывшего лидера. К сожалению, она успела пиздец " +"как искусать своего мужа, пока тот никак не мог собрать яйца в кулак и " +"защищаться. Не то чтоб я его, блядь, виню. Мы выбрались оттуда вдвоём, но " +"мужик перенёс слишком много, он уже был явно не в себе... Укус нагноился, но" +" его добил ещё один . И я остался один." + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "Как ты думаешь, что произошло? Видел ли ты кого-нибудь?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"Во мне нет ничего особенного, я не знаю, почему я вообще выжил. Меня " +"эвакуировали вместе с горсткой остальных, но мы опоздали вернуться в лагерь " +"МЧС. На нас напали мертвецы... Я единственный, кто выжил тогда. Я никогда не" +" оглядывался назад." + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" +"Меня везли вместе с остальными выжившими в центр беженцев, пока самый " +"огромный зомби на свете не разнёс автобус. Он был занят остальными " +"пассажирами, так что я сделал то, что сделал бы каждый, и съебался нахер " +"оттуда." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" +"На моё эвакуационное убежище напали пчёлы, ну те самые, которые размером с " +"собаку. Я убил нескольких доской, но довольно быстро понял, что либо валю " +"оттуда подальше, либо меня заколют, как свинью. Остальное уже другая " +"история." + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "Гигантские пчёлы? Расскажи подробнее." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "Но пчёлы обычно неагрессивны..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" +"Ага, я уверен, ты их видел, они повсюду. Типа как что-то из старого " +"фантастического фильма. Некоторых в эвакуационном центре ужалили, без шуток." +" Я не задержался, чтоб посмотреть на результат. Мне не стыдно признать, что " +"я бежал как, , ссыкло." + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "Но пчёлы обычно неагрессивны... Может, то были осы?" + +#: 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 "" +"Ну, извини меня, пожалуйста, что я не остановился и, , не расспросил " +"жуков-убийц, как именно их зовут." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "Прости. Можешь рассказать мне ещё?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "Точно. Прости." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" +"Что ж, я сидел дома, когда по сотовому передали тревогу и велели идти в " +"эвакуационное убежище. Ну я и пришёл в убежище. А потом в убежище набилось " +"слишком много народу, люди ждали автобусов до центра беженцев, но автобусы " +"не приезжали. Ты, верно, уже всё знаешь. Всё переросло в панику и драку. Я " +"не стал задерживаться и смотреть, что будет дальше. Я захватил все " +"инструменты из шкафчиков, что смог, и направился в леса. Я вернулся " +"несколько дней спустя, но убежище было совершенно пусто. Без понятия, что " +"стало с теми людьми." + +#: 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 "" +"Это сложно. Думаю, если вкратце - меня эвакуировали в лагерь МЧС во имя моей" +" так называемой безопасности, но я, к счастью, сбежал." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "Расскажи мне про лагерь МЧС." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "Как ты выбрался?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" +"Это было ужасно. Нас привезли туда на школьном автобусе, около тридцати " +"человек. Ты, наверно, уже понял загвоздку. У нескольких чуваков были раны, и" +" какой-то мудак, насмотревшийся говёных фильмов, начал убеждать остальных, " +"что все 'укушенные' скоро 'обратятся'. Ёбаный придурок, правда? Меня кусали " +"дюжину раз, и в худшем случае у меня была просто мерзкая инфекция." + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "Что случилось потом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" +"Люди уже паниковали, а из-за того парня воцарилось безумие. За транспортом " +"присматривал вооружённый парень, ну он изображал из себя копа, но на самом " +"деле он был просто ребёнок, которому дали ружьё. Он попытался " +"успокоить народ, и у него даже немного получилось, хотя группа 'убить " +"заражённых' была, , на взводе и точно полна решимости, когда у " +"бабушки с порезом на руке пошла пена изо рта. Они снова принялись за своё, " +"когда мы добрались до лагеря. Ничем хорошим для них это не кончилось. " +"Несколько тяжеловооружённых солдат утащили их прочь, и больше я их не видел." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" +"В том месте был настоящий хаос. Я выдержал только несколько часов. Там был " +"большой экскаватор, копавший огромную яму в загороженной секции, куда нас не" +" подпускали. Ну, мне удалось прокрасться поближе, и я видел, как в яму " +"сбрасывали трупы кучу за кучей, а потом заваливали землёй, даже хотя трупы " +"оживали и пытались выбраться. К счастью, следующим утром на нас напал какой-" +"то гигантский кошмар, такого я больше никогда не видел. Пока охрана с ним " +"разбиралась, я захватил припасы, стыренные ночью, и дал по съёбам оттуда. " +"Несколько остальных пытались свалить вместе со мной, но, насколько я знаю, " +"мне единственному повезло." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "" +"Это история для следующего раза. Мне правда не хочется думать об этом." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "Прости. Расскажи мне про лагерь МЧС." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Извини, что спрашиваю. " + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "Извини, что спрашиваю. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." +msgstr "" +"Я не местный... Ты уже, наверно, понял по акценту, я из Великобритании. Я " +"кандидат наук из Дартмута. Я проделал полдороги к конференции в " +"Массачусетском Технологическом Институте, когда мне помешал." +" Я отдыхал в маленьком полном клопов мотеле на обочине дороги. Когда я пошёл" +" за завтраком - чем бы он ни был - чёртов жирный хозяин сидел на своей " +"стойке в той же грязной одежде, что и прошлой ночью. Я думал, он просто спал" +" там, но когда он посмотрел на меня... ну, ты знаешь, как выглядят глаза " +"зомби. Он бросился на меня, и я не думая среагировал. Разбил ему голову " +"планшетом." + +#: 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 "" +"Ничего особенного, пока не настал . Когда мертвецы воскресли," +" я подготовился и пошёл их упокаивать. " + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "Как всё прошло?" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Круто. " + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "Круто. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" +"Едва не погиб. Один - лёгкая добыча, но десять уже много, а сотня -" +" смертельная ловушка. Я зашёл слишком далеко и еле-еле ускользнул одним " +"куском. Ненадолго укрылся в старом мотеле, зализывая раны и подумывая, что " +"мне делать дальше. И вот тогда я понял." + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "Что понял?" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "Забей. " + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "Забей. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" +"Что вот оно. Вот оно, ради чего я создан. Я никогда не чувствовал себя так, " +"как тогда на улице, разбивая тварям головы и молясь, хоть бы получилось " +"выжить. Я чувствовал себя живым. Важным. Так что после того, как я собрал " +"себя по кусочкам, я осмелел и снова приступил. Наверно, уже убил тысячу " +"зедов, и мне до сих пор не надоело." + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "Здорово, что ты нашёл своё призвание. " + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "Здорово, что ты нашёл своё призвание. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" +"О, ну ты знаешь. Бла-бла-бла, была работа и жизнь, все умерли. Плак-плак. Я " +"буду честен с тобой: мне правда так больше нравится. Каждый день бороться за" +" выживание? Я никогда не ощущал себя таким живым. Я убил сотни этих мудаков." +" Рано или поздно один из них меня прикончит, но я умру с осознанием, что " +"сделал что-то действительно важное." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" +"Ладно, видишь ли, я вообще не из этих краёв. Я ехал с юга навестить сына, " +"когда всё это случилось. Я отдыхал в мотеле, когда прибыл военный конвой и " +"велел нам эвакуироваться в убежище МЧС." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "Расскажи про своего сына." + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "Итак, ты отправился в один из лагерей МЧС?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" +"Он живет в северной части Канады в глуши со своей чокнутой женой и моими " +"тремя внуками. Он инженер-эколог в какой-то там нефтегазовой компании. Она " +"слегка двинутая на всю башку. Впрочем, я люблю их обоих и всё ещё надеюсь, " +"что они пережили ебучее дерьмо в своём захолустье. Полагаю, они считают меня" +" мёртвым, так что будут держаться подальше от этой сраной дыры - самое " +"лучшее решение." + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "О чём ты там говорил?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" +"Господи, нет. Ещё какой-то ебучий сосунок в форме на вырост будет указывать," +" что мне, сука, делать. Мой Хаммер был загружен под завязку и готов к " +"бездорожью, у меня было дофига топлива и столько оружия, сколько " +"пограничники разрешили бы перевезти. Без понятия, от чего мне предполагалось" +" бежать, но я бежать, сука, не собирался." + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "Куда ты поехал потом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" +"Сначала я продолжил ехать на север, но встретил огромный военный блокпост. У" +" них даже были те большущие ходячие роботы, типа как по ящику. Я собрался " +"выйти и посмотреть, что происходит, но прежде они открыли огонь! Я мог бы " +"умереть, но у меня всё ещё отличная реакция. Я сдал назад и укатил оттуда. " +"Однако по моему Хаммеру неслабо попали, и я лишь потом выяснил, что бензин " +"вытекал по всему шоссе. Проехал ещё несколько миль и застрял в жопе мира " +"посреди нигде. Я остановился и скитаюсь тут. Пожалуй, я всё ещё иду на " +"север, только делаю огромный крюк, что скажешь?" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Вот это история. " + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "Вот это история." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was at school. I'm a senior. We'd heard about riots... It started with " +"a kid showing videos of one of the big riots in Providence. You've probably" +" seen it, the one where the woman turns to the camera and you can see her " +"whole lower lip has been ripped off, and is just flapping there? It got so " +"bad, they went over the PA system to tell us about Chinese drugs in the " +"water supply. Right... Does anyone buy that explanation?" +msgstr "" +"Я был в школе. Я старшеклассник. Мы слышали про бунты... Всё началось, когда" +" ребёнок показал видео большого бунта в Провиденсе. Наверно, ты видел, то " +"самое, где женщина поворачивается в камеру, и видно, что её нижняя губа вся " +"оторвана и болтается? Всё было очень плохо, они заявили нам через " +"громкоговорители про китайские наркотики в водопроводе. Ага, щас... Кто-" +"нибудь на это купился?" + +#: lang/json/talk_topic_from_json.py +msgid "Where did things go from there?" +msgstr "Что стало потом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess it got worse, because the faculty decided to put us in lockdown. " +"For hours. And then the school buses showed up to evacuate us. Eventually," +" they ran out of buses. I was one of the lucky few who didn't have a bus to" +" 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 "" +"Наверно, всё стало хуже, потому что преподаватели решили нас запереть. На " +"несколько часов. А потом приехали школьные автобусы, чтоб нас эвакуировать. " +"В конце концов у них кончились автобусы. Я был одним из нескольких " +"везунчиков, кому автобуса не хватило. Солдаты были не старше меня... " +"Непохоже, будто они знали, что происходит. Я жил всего в нескольких " +"кварталах. Я прокрался и сбежал." + +#: lang/json/talk_topic_from_json.py +msgid "Did you get home?" +msgstr "Удалось добраться домой?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. On the way there, I met some for real. They chased me, but" +" I did pretty well in track. I lost them... But I couldn't get home, there" +" were just too many. I wound up running more. Stole a bike and ran more " +"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 "" +"Мда. На пути мне попались , серьёзно. Они погнались за мной, но из " +"меня неплохой бегун. Я оторвался от них... Но не добрался до дома, их было " +"слишком много. Я украл велосипед и снова помчался прочь. Теперь я куда лучше" +" умею их убивать, но я пока не вернулся домой. Наверно, я боюсь того, что " +"найду там." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I saw it all pretty early, before it all really started. I worked at the " +"hospital. It started with a jump in the number of code whites - that's an " +"aggressive patient. Wasn't my training so I didn't hear about it until " +"later... but rumors started flying about hyperaggressive delirious patients" +" that coded and seemed to die, then started attacking staff, and wouldn't " +"respond to anything we hit them with. Then a friend of mine was killed by " +"one of them, and I realized it wasn't just a few weird reports. I called in" +" sick the next day." +msgstr "" +"Я видел всё с самого начала, прежде, чем оно даже началось. Я работал в " +"больнице. Сперва пошёл сплошной \"белый код\" - это означает агрессивных " +"пациентов. Такое не входило в мою подготовку, поэтому услышал об этом только" +" потом... появились слухи про гиперагрессивных сумасшедших пациентов, " +"казавшихся умершими, они напали на персонал и не обращали внимания, когда их" +" пытались ударить. Потом один из них убил моего друга, и я понял, что тут не" +" просто пара стрёмных случаев. На следующий день я взял больничный." + +#: lang/json/talk_topic_from_json.py +msgid "What happened on your sick day?" +msgstr "Что произошло в тот день, когда ты был на больничном?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, . I lived a fair distance out of town, and I already " +"knew something was seriously wrong, but I hadn't admitted to myself what I " +"was really seeing quite yet. When I saw the military convoys pouring into " +"the city, I put the pieces together. At first I thought it was just my " +"hospital. Still, I packed up my bags, locked the doors and windows, and " +"waited for the evacuation call." +msgstr "" +"Ну, в общем, . Я живу довольно далеко от города, и я уже " +"понимал, что-то шло очень не так. но пока не до конца осознал, что на самом " +"деле видел. Когда я заметил военные конвои, въезжающие в город, я сложил всё" +" воедино. Сначала я решил, что всё это просто из-за моей больницы. Однако я " +"собрал сумки, запер двери и окна и стал ждать начала эвакуации." + +#: lang/json/talk_topic_from_json.py +msgid "Did you get evacuated?" +msgstr "Тебя эвакуировали?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No. The call came too late. I'd already seen the clouds on the horizon. " +"Mushroom clouds, and also those insane hell-clouds. I've heard that " +"horrible things came out of them. I decided it was safer in my locked up " +"house." +msgstr "" +"Нет. Звонок пришёл слишком поздно. Я уже видел облака на горизонте. " +"Грибовидные облака, а ещё те дикие адские облака. Я слышал, из них вылезают " +"те ужасные твари. Я решил, что в запертом доме будет безопаснее." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "Мне очень жаль." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The military. They showed up and commandeered my land for some kind of " +"forward base, demanding I evacuate to a FEMA camp. I didn't even try to " +"argue... I had my dad's old hunting rifle, they had high tech weapons. I " +"heard one of them joking about the FEMA camp being Auschwitz, though. I " +"gave their evac driver the slip and decided to make for my sister's place up" +" north. In theory I guess I'm still going that way, although honestly I'm " +"just busy not dying." +msgstr "" +"Военные. Они появились и заявили, что на моей земле будет какая-то передовая" +" база, и потребовали, чтоб я эвакуировался в лагерь МЧС. Я даже не стал " +"спорить... У меня было старое отцовское охотничье ружьё, у них " +"высокотехнологичное оружие. Хотя один из них штутил, что лагерь МЧС - это " +"как Аушвиц. Я улизнул от их водителя и решил направиться к моей сестре на " +"север. Теоретически, наверно, я до сих пор к ней иду, хотя по правде я " +"просто пытаюсь не умереть." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was at work at the hospital, when it all went down. It's a bit of a blur." +" For a while there were weird reports, stuff that sounded unbelievable " +"about patients getting back up after dying, but mostly things were business " +"as usual. Then, towards the end, stuff just skyrocketed. We thought it was" +" a Chinese attack, and that's what we were being told. People coming in " +"crazed, covered in wounds from bullets and bites. About halfway through my " +"shift I... well, I broke. I'd seen such horrible injuries, and then I... " +", I can't even talk about it." +msgstr "" +"Я работал в больнице, когда всё началось. Немного как в тумане. Какое-то " +"время шли жуткие доклады, невероятная дичь про пациентов, воскресавших после" +" смерти, но в целом дела шли своим чередом. Потом, ближе к концу, обстановка" +" резко накалилась. Мы думали, Китай напал на нас, и именно так нам и " +"сообщали. К нам поступали обезумевшие люди, покрытые ранами от пуль и " +"укусов. Примерно на половине своей смены я... в общем, я не выдержал. Я " +"видел такие кошмарные раны, и я... , я даже не могу об этом " +"говорить." + +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "Смирись. Если нам придётся работать вместе, мне нужно узнать о тебе." + +#: lang/json/talk_topic_from_json.py +msgid "No. I can't. Just, no." +msgstr "Нет. Не могу. Просто нет." + +#: lang/json/talk_topic_from_json.py +msgid "" +"A young mother. I know she was a mother, because I delivered her baby. " +"Sweet girl, she... she had a good sense of humor. She came in, spitting " +"that black goo, fighting the orderlies, dead from a bullet wound through the" +" chest. That's when I ... I don't know if I woke up, finally, or if I " +"finally went crazy. Either way, I broke. I broke a lot earlier than my " +"colleagues, and that's the only reason I lived. I skipped out, went to a " +"dead corner of the hospital I used to hide in when I was a resident. An old" +" stairwell leading to a closed-off unit the maintenance staff were using to " +"store old equipment. I hid there for hours, while I listened to the world " +"crumbling outside and inside." +msgstr "" +"Молодая мамочка. Я знаю, она была матерью, потому что я принимал роды у её " +"ребёнка. Милая девчонка... с хорошим чувством юмора. Она ввалилась, " +"сплёвывая ту чёрную слизь и борясь с санитарами, и она была мертва от " +"пулевой раны в грудной клетке. Вот тогда я... я не знаю, проснулся ли я " +"наконец, или я окончательно поехал головой. В любом случае, я не выдержал. Я" +" не выдержал куда раньше моих коллег, и я выжил по этой единственной " +"причине. Я убежал и нашёл укромный уголок больницы, где я прятался еще " +"будучи ординатором. Старый лестничный пролёт к запертой комнате, куда обычно" +" скидывали старое оборудование. Я прятался там несколько часов и слушал, как" +" рушится мир внутри и снаружи." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of there?" +msgstr "Как тебе удалось выбраться оттуда?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Somehow, I don't know how, I managed to fall asleep in there. I think it " +"might have started with me hyperventilating and passing out. When I woke up" +" it was night, I was starving and parched, and... and the screaming had " +"died down. At first I tried to go out the way I came in, but I peaked out " +"the window and saw one of the nurses stumbling around, spitting that black " +"shit up. Her name was Becky. She wasn't Becky anymore. So, I went back up" +" and somehow made it into the storage area. From there, the roof. I drank " +"water from some nasty old puddle and I camped out there for a while, " +"watching the city around me burn." +msgstr "" +"Каким-то образом, не знаю как, я умудрился там уснуть. Возможно, я слишком " +"часто и глубоко дышал и отключился. Я проснулся уже ночью, мне хотелось есть" +" и пить, и... и крики утихли. Сначала я хотел вернуться тем же путём, что " +"пришёл, но выглянул из окна и заметил одну из медсестёр, она шаталась и " +"плевалась тем чёрным дерьмом. Её звали Бекки. Она больше не была Бекки. " +"Поэтому я вернулся и как-то пробрался на склад. Оттуда - на крышу. Я попил " +"воды из мерзкой застойной лужи и некоторое время провёл там, наблюдая, как " +"горит город вокруг меня." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I still didn't have any food. Eventually I had to climb down the side" +" of the building... so I did, as quietly as I could. It was night, and I " +"have pretty good nightvision. Apparently the zombies don't, because I was " +"able to slip right past them and steal a bicycle that was just laying on the" +" side of the road. I'd kind of scouted out my route from above... I'm not " +"from a big city, the hospital was the tallest building around. I avoided " +"the major military blockades, and headed out of town towards a friend's old " +"cabin. I had to fight off a couple of the , but I managed to avoid" +" any big fuss, by some miracle. I never made it to the cabin, but that's " +"not important now." +msgstr "" +"Ну, у меня всё ещё не было никакой еды. Рано или поздно мне нужно было " +"слезть по стене здания... что я и сделал, так тихо, как мог. Была ночь, а я " +"хорошо вижу в темноте. А вот зомби видят не очень, потому что мне удалось " +"проскочить между ними и украсть велосипед, просто валявшийся на обочине. " +"Сверху я типа присмотрел себе маршрут... Я из маленького города, больница " +"была самым высоким зданием. Я обошёл крупные военные блокпосты и направился " +"прочь из города к старому домику моего друга. Мне попались , и " +"пришлось драться, но я смог чудом избежать больших проблем. Я так и не " +"добрался до домика, но это уже не важно." + +#: lang/json/talk_topic_from_json.py +msgid "What did you see, up there on the roof?" +msgstr "Что ты видел с крыши?" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Спасибо, что поделился рассказом. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"My hospital was the tallest building in town, so I saw quite a bit. The " +"military set up blockades on the roads coming in and out of the town, and " +"there was quite a lightshow going on out there when I started up. I think " +"it was mostly automated turrets and robots, I didn't hear much shouting. I " +"saw a few cars and trucks try to run the barricade and get blown to high " +"hell. There were swarms of in the streets, travelling in packs " +"towards sounds and noises. I watched them rip a few running cars to shreds," +" including the people inside who were trying to get away. You know. The " +"usual stuff. I was pretty numb by that point." +msgstr "" +"Моя больница была самым высоким зданием в городе, так что кое-что я увидел. " +"Военные установили блокпосты на городских въездах и выездах, и там поначалу " +"вспыхивал настоящий фейерверк. Наверно, по большей части автоматические " +"турели и роботы, я криков особо и не слышал. Я видел, как машины и грузовики" +" пытались прорвать баррикаду, и их нахрен взрывали. На улицах полчищами " +"бродили , направляясь толпой на звук и шум. Я смотрел, как они " +"рвали машины на куски вместе с людьми, пытавшимися спастись. Ты знаешь. " +"Обычные дела. На тот момент мне было уже безразлично." + +#: lang/json/talk_topic_from_json.py +msgid "How did you get down?" +msgstr "Как ты спустился?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was called in to work at the hospital. I don't usually work there, I'm a " +"community doctor. I don't really love emergency medicine at the best of " +"times, and when your patient keeps trying to rip your face off, well, it " +"takes the last bit of fun out of it. You might think I'm a coward, but I " +"slipped out early on, and I've got no regrets. There was nothing I could " +"have done except die like everyone else. I couldn't get out of the " +"building, the military had blockaded us in... so I went to the most secure," +" quiet damned place in the building." +msgstr "" +"Меня вызвали в больницу. Вообще я обычно там не работаю, я врач в клинике. " +"Даже в лучшие времена мне никогда не нравилась экстренная медицина, а когда " +"пациент пытается оторвать тебе лицо, ну, становится совсем невесело. Можешь " +"считать меня трусом, но я сбежал довольно рано и ни о чём не жалею. Я бы " +"ничем не смог помочь, разве что умереть, как остальные. Я не мог выбраться " +"из больницы, военные заперли нас... так что я пошёл в самое безопасное, " +"тихое проклятое место во всём здании." + +#: lang/json/talk_topic_from_json.py +msgid "Where was that?" +msgstr "Что за место?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The morgue. Seems like a dumb place to go at the start of a zombie " +"apocalypse, right? Thing is, nobody had made it to the morgue in quite a " +"while, the bodies were reanimating too quickly and the staff were just too " +"busy. I was shaking and puking and I could see the world was ending... I " +"bundled myself up, grabbed a few snacks from the pathologist's desk, and " +"crawled into one of those drawers to contemplate the end of the world. " +"After breaking the handle to make sure it couldn't lock behind me, of " +"course. It was safe and quiet in there. Not just my cubby, the " +"whole morgue. At first it was because nobody was enough to come down" +" there except me. Later, it was because nobody was left." +msgstr "" +"Морг. Кажется, будто идти туда в начале зомби-апокалипсиса - дурацкая идея, " +"верно? Суть в том, что какое-то время никого не привозили в морг, тела " +"оживали слишком быстро, а персонал был слишком занят. Меня трясло и рвало, я" +" видел конец света... Я собрался с мыслями, захватил кое-какую еду со " +"столика патологоанатома и залез в один из тех ящиков, чтобы обдумать " +"апокалипсис. Сперва, разумеется, я сломал ручку, чтобы дверца не " +"захлопнулась за мной. Внутри было безопасно и тихо. Не просто в моём " +"ящике, в целом морге. Так было сперва потому, что никому в голову, кроме " +"меня, не пришёл такой настолько план. Позже потому, что никого не " +"осталось." + +#: lang/json/talk_topic_from_json.py +msgid "Clearly you escaped at some point." +msgstr "Очевидно, в какой-то момент ты сбежал." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The door was good heavy steel with no window, and there was a staff room " +"with a fully stocked fridge, so when it became clear that nothing was going " +"to get any better on its own, I set up shop. I stayed down there for a " +"couple days. I could hear explosions and screaming for the first while, " +"then just guns and explosions, and then it got quiet. Eventually, " +"I ran out of snacks, so I worked up the nerve to climb out a window and " +"check out the city by night. I used that place as a base for a little " +"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 "" +"В морге была прекрасная тяжёлая стальная дверь без окошка, а в комнате " +"персонала стоял набитый холодильник. Мне стало ясно, что лучше уже не будет," +" и обосновался там. Я жил там несколько дней. Сперва я слышал взрывы и " +"вопли, потом выстрелы и взрывы, а потом стало тихо. В конце концов " +"у меня кончилась еда, так что я набрался смелости и ночью выбрался из окна " +"посмотреть на город. Морг служил мне базой какое-то время, но возле больницы" +" было слишком опасно, так что я ушёл искать злачное место. И вот я здесь." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "Спасибо, что рассказал. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live way out of town. I hear the small towns lasted a bit longer than the" +" big cities. Doesn't matter to me, I was out on my end-of-winter hunting " +"trip, I'd been out of town for a week already. First clue I had things were" +" going wrong was when I saw a mushroom cloud out near an old abandoned " +"military base, way out in the middle of nowhere. I didn't think much about " +"that. Then I was attacked by a demon." +msgstr "" +"Я живу далеко от города. Я слышал, мелкие городишки продержались дольше " +"крупных городов. Так-то мне всё было равно, я уже неделю находился в " +"охотничьей поездке. Первым знаком, что что-то не так, было грибовидное " +"облако неподалеку от старой заброшенной военной базы глубоко в глуши. Потом " +"на меня напал демон." + +#: lang/json/talk_topic_from_json.py +msgid "A demon?" +msgstr "Демон?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it was like a ... like a soft shelled crab, with tentacle mouths, and" +" it kept talking in different voices. I saw it before it saw me, and I " +"capped it with my Remington. That just pissed it off, but I got another " +"couple shots off while it charged me. Third or fourth shot took it down. I" +" figured out shit had hit the fan, somehow. Headed to my cabin and camped " +"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 "" +"Ага, что-то типа... типа краба без панциря со ртами на щупальцах, и оно " +"говорило разными голосами. Я увидел его раньше, чем оно меня, и я пальнул в " +"него из Ремингтона. Оно лишь разозлилось, но я успел выстрелить ещё пару " +"раз, пока оно на меня бежало. После третьего или четвёртого выстрела оно " +"сдохло. Я понял, что случилась какая-то херня. Я отправился в свой охотничий" +" домик и прожил там какое-то время, но мне пришлось убежать, когда пришли " +" и всё разнесли. Вскоре я встретил тебя." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My brother and I were out on a hunting trip. We saw helicopters overhead..." +" big, military ones, loaded up with crazy high-end military stuff like you " +"only see on TV. Laser cannons even. They were heading in the direction of " +"our parent's ranch. Something about it really shook us up, and we started " +"heading back that way... we weren't that far off when we saw this huge, " +"floating eyeball appear out of nowhere. Ha. Hard to believe we're " +"in a time where I don't feel like I need to convince you I'm telling the " +"truth." +msgstr "" +"Мы с моим братом ехали на охоту. Мы видели вертолёты в небе... большущие " +"армейские вертолёты с дико крутыми военными штуковинами, типа которые только" +" по ящику увидишь. Видел даже лазерные пушки. Они летели в сторону ранчо " +"нашего отца. Почему-то нас это потрясло, и мы направились обратно... мы " +"проехали всего ничего, когда увидели, как прямо, , из ниоткуда " +"появился огромный парящий в воздухе глаз. Ха. Трудно поверить, что сейчас " +"мне не нужно убеждать тебя, что я говорю правду." + +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "Что было дальше?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We watched the eyeball just blast one of the Apache choppers with some kind " +"of ray. The chopper fired back, but it went down. It was coming right for " +"us... I veered, got out of the way, but a chunk of the chopper smacked into" +" 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 "" +"Мы видели, как глаз просто взорвал один из 'Апачей' каким-то лучом. Вертолёт" +" пытался отстреливаться, но пошёл вниз. Он падал прямо на нас... я резко " +"свернул в сторону, но кусок вертолёта врезался в кузов, и наш грузовик " +"кувыркнулся с дороги. От удара я сразу вырубился. Мой брат... ему не так " +"повезло." + +#: lang/json/talk_topic_from_json.py +msgid "Oh, no." +msgstr "О нет." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah... the... the accident got him, but when I came to he was already " +"coming back. Thank god for seatbelts, right? He was screeching and " +"flapping around, hanging upside down. I thought he was just hurt at first, " +"but he just kept coming at me while I tried to talk to him. His arm was " +"badly hurt already and instead of unbuckling himself he started... he was " +"ripping it right off pulling against the seatbelt. That, and the crazy shit" +" with the chopper, was when I realized just how fucked up things had got. I" +" grabbed my hunting knife and ran, but my brother got out and started " +"crawling after me." +msgstr "" +"Да... авария... он погиб в аварии, но когда я пришёл в себя, он уже " +"вернулся. Господи, спасибо тебе за ремни безопасности. Он визжал и болтался," +" вися вниз головой. Сначала я думал, ему просто больно, но он пытался меня " +"ударить каждый раз, когда я хотел поговорить с ним. Его рука была сломана, и" +" вместо того, чтобы отстегнуть ремень, он... он просто оторвал её, " +"продираясь сквозь ремень. Вот тогда, тогда и после сраного вертолёта, я " +"понял, какой же произошёл пиздец. Я схватил охотничий нож и полез наружу, но" +" мой брат выбрался и пополз ко мне." + +#: lang/json/talk_topic_from_json.py +msgid "Did you keep running?" +msgstr "Ты бежал?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I ran for a little bit, but then I saw soldier zombies crawling out of that " +"chopper. They had the same look about them as my brother did, and it was " +"them on one side and him on the other. I'm no genius but I've seen a few " +"movies: I figured out what was happening. I didn't want to take on kevlar " +"armor with my knife, so I turned back and faced the other zombie. I " +"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 "" +"Я немного пробежал, но потом я увидел зомби-солдат, вылезающих из обломков " +"вертолёта. Они выглядели так же, как мой брат, и они были с одной стороны от" +" меня, а брат с другой. Я ни разу не гений, но я видел пару фильмов: я " +"понял, что происходит. Мне не улыбалось пытаться проткнуть кевларовую броню " +"ножом, так что я повернулся к другому зомби. Я не мог оставить брата... вот " +"так. Так что я сделал, что должен был, и, наверно, мне придётся жить с этим " +"до конца своих дней." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me your story. " +msgstr "Спасибо, что рассказал свою историю. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"For me, this started a couple days before . I'm a " +"biochemist. I did my postdoc work with a brilliant colleague, Pat Dionne. " +"I hadn't talked to Pat in ages... Word has it, the government got wind of " +"our thesis, found out Pat did most of the heavy lifting, and that was the " +"last we talked for years. So, I was a bit surprised to see an e-mail from " +"Pat.Dionne@FreeMailNow.co.ru... Even more surprised when it was a series of" +" nostalgic references to a D&D game we played years earlier." +msgstr "" +"Для меня всё началось несколько дней до того, как настал . Я " +"биохимик. Я писал статью вместе с блестящей коллегой, Пэт Дионн. Я не " +"говорил с Пэт целую вечность... Я слышал, правительство узнало про нашу " +"диссертацию, узнало, что Пэт сделала всю тяжёлую работу, и тогда мы " +"встречались последний раз за несколько лет. Так что я немного удивился, " +"когда получил письмо от Pat.Dionne@FreeMailNow.co.ru... Даже ещё больше " +"удивился, когда прочёл в письме ностальгические отсылки к игре D&D, в " +"которую мы играли намного раньше." + +#: lang/json/talk_topic_from_json.py +msgid "I don't see where this is going." +msgstr "Я не понимаю, к чему это." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, the references weren't quite right. Pat referred to things that we'd " +"never played. The situations were close, but not right, and when I put it " +"all together, it told a story. A story about a scholar whose kids were " +"being held captive by a corrupt government, forced to research dark magic " +"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 "" +"Что ж, отсылки были не совсем верные. Пэт говорила про вещи, которые мы " +"никогда не играли. Ситуации были похожими, но не точными, а когда я сложил " +"всё вместе, получилась история. История об учёном, которого продажное " +"правительство держало в заложниках и заставляло исследовать тёмную магию для" +" них. А самое главное: предупреждение, что чёрная магия сбежала, " +"предупреждение, что всем героям нужно покинуть королевство, пока оно не " +"пало." + +#: lang/json/talk_topic_from_json.py +msgid "Okay..." +msgstr "Хорошо..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen, I know it's incredibly cheesy. That's D&D for you. Anyway, " +"something about the tone really got to me. I knew it was important. I " +"wasted a little time waffling, then decided to use my outstanding vacation " +"time and skip town for a while. I packed for the end of the world. Turns " +"out, I packed the right stuff." +msgstr "" +"Слушай, я знаю, всё страшно нелепо. В любом случае, что-то в её тоне " +"серьёзно меня забеспокоило. Я знал, что это было важно. Я не стал трепаться " +"и решил покинуть город на время моего замечательного отпуска. Я приготовился" +" к концу света. И похоже, я приготовил всё правильно." + +#: lang/json/talk_topic_from_json.py +msgid "Was there anything else of use in that email?" +msgstr "Было ли что-то ещё в том письме?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There was, yeah, but it was cryptic. If I had a copy of Pat's notes, I " +"could probably decipher it, but I'm sure those burned up in ." +" They bombed those labs, you know." +msgstr "" +"Было, да, но зашифровано. Если бы у меня была копия записей Пэт, я бы сумел " +"их расшифровать, но я уверен, сжёг их. На те лаборатории " +"сбросили бомбы, знаешь ли." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" +"Я опоздал на эвакуацию, когда всё пошло по пизде. Застрял в городе на " +"несколько дней, выжил, потому что прятался в подвалах, питаясь печеньем " +"девочек-скаутом и запивая тёплым корневым пивом. Наконец у меня получилось " +"улизнуть так, чтобы меня не слопали . Несколько дней я укрывался в " +"заброшенном торговом центре, но мне была нужна еда, так что я отправился в " +"леса искать пропитание. Получалось не очень-то хорошо, так что я типа рад, " +"что мы встретились." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" +"Я лежал дома и болел гриппом, когда мир скатился в дерьмо, а потом, когда я " +"окреп достаточно, чтобы добежать до магазина за продуктами... Ну, с тех пор " +"я и в бегах." + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "Давай же, не томи." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" +"Ладно, хорошо, я как бы выпал из жизни в те первые несколько дней. Я знаю, " +"что тогда были бури, но я валялся с сумасшедшими лихорадочными снами и всё " +"такое. Честно, наверное, мне следовало пойти в больницу, только тогда б я " +"был уже мёртв. Я без понятия, что было сном, а что - настоящим концом света." +" Я помню, как пошёл к холодильнику чего-нибудь попить и заметил, что свет не" +" горит, а вода тёплая. Вроде это было перед тем, как лихорадка упала. Меня " +"ещё пошатывало, когда у меня кончился куриный суп, так что я не сразу " +"сообразил, насколько тёмный и мёртвый был мой дом, когда я вышел наружу." + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "Что случилось, когда ты вышел?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" +"Ты, наверное, помнишь, на что были похожи города. Полагаю, это был день " +"четвёртый. Когда я ступил наружу, я осознал, что происходит, или хотя бы " +"осознал, что я без понятия, что происходит. Я видел толпу бунтовщиков, " +"ломающих машину, а потом заметил, что один из них разбивает женскую голову. " +"Я отменил свой поход за продуктами, убежал обратно в квартиру, прежде чем " +"меня заметили, и укрывался там так долго, как мог. Всё стало сравнительно " +"тихо, когда мёртвых стало больше, чем живых. Итак, я начал собирать всё " +"возможное от соседей, при необходимости убивая их повторно. В конце концов " +" проникли в мой дом, и мне пришлось выбраться и свалить на старом " +"мотоцикле." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "Спасибо, что поделился рассказом. " + +#: 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 "" +"Моя жена выжила вместе со мной, но её сожрали эти чудовищные, , " +"растения за несколько дней до встречи с тобой. Не лучший год для меня." + +#: 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 "" +"Мой муж выжил вместе со мной, но его сожрали эти чудовищные, , " +"растения за несколько дней до встречи с тобой. Не лучший год для меня." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "Расскажи мне про эти растения." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" +"Вот так оно и бывает, знаешь? Это конец света. Я правда не хочу больше об " +"этом говорить. И честно, я никогда раньше в старом мире не чувствовал, что " +"кому-то нужен. Странно, но я на самом деле вижу для себя какое-то " +"предназначение. Ты хоть понимаешь, о чём я?" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" +"Ага, понимаю. Иногда мне кажется, что моя жизнь началась вскоре после " +"катаклизма." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" +"Мне кажется, те из нас, кто выжил настолько долго, должны были выжить ради " +"чего-то. Не в смысле типа религии, просто... мы выжившие." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" +"Хаха, да, я знаю, почему ты так думаешь. Не хочу сказать, что это хороший " +"апокалипсис. Просто имею в виду, я хотя бы знаю, что я делаю каждый день. Я " +"бы всё ещё убил сотню зомби ради интернета и ночи просмотра дерьмовых " +"фильмов вместе с... прости. Давай сменим тему." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" +"Да, тебе они уже встречались? Похожи на ходячий цветок с большущим," +" , жалом посередине. Бродят стаями. Они ненавидят зомби, и мы " +"пользовались ими как прикрытием для уничтожения орды мертвецов. К сожалению," +" как выяснилось, растения куда лучшие следопыты, чем . Они вели " +"себя почти разумно... Мне едва удалось выжить, и только потому, что они " +"были, ммм, заняты." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "Мне жаль, что тебе пришлось кого-то потерять." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" +"Просто ещё один рассказ про любовь и смерть. Не то, о чем мне " +"нравится говорить." + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "Забудь. Прости за эту тему." + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "Я ценю сантименты, но не думаю, что станет. Забей." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "Да . Тебя или нас это вообще не должно касаться." + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "Отлично, прекрасно. У меня была жена. Я потерял её." + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "Отлично, прекрасно. У меня был муж. Я потеряла его." + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Она была дома, когда упали бомбы, а мир превратился в преисподнюю. Я был на " +"работе. Я пытался добраться до нашего дома, но город превратился в поле боя." +" Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " +"пытались остановить их, но с тем же успехом убивали людей перекрёстным " +"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" +" речь не шла о моей жене, я бы просто убежал, но я сделал что смог и " +"проскочил. Я на самом деле, , выжил." + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Он был дома, когда упали бомбы, а мир превратился в преисподнюю. Я была на " +"работе. Я пыталась добраться до нашего дома, но город превратился в поле " +"боя. Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " +"пытались остановить их, но с тем же успехом убивали людей перекрёстным " +"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" +" речь не шла о моём муже, я бы просто убежала, но я сделала что смогла и " +"проскочила. Я на самом деле, , выжила." + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "Тебе пришлось насмотреться всякой херни." + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "Дома точно всё было плохо." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" +"Да уж, точно пришлось. Мне понадобилось два дня, чтобы пересечь город " +"пешком, с ночёвками на помойках и в подобных местах. Ночью получалось " +"двигаться быстрее, и мне сразу пришлось избегать военных. На них шли " +" как притянутые магнитом, и военные обычно стояли в местах " +"скопления монстров. В некоторых частях города было довольно спокойно. В паре" +" мест людей эвакуировали или убрали, и обычно туда не заходили. " +"Чуть позже другие выжившие принялись занимать такие кварталы, так что мне " +"предстояло покинуть их и пробежать сквозь выжженный центр города - все равно" +" мой путь домой лежал через него. На тот момент сражения начали затухать, " +"так что мне нужно было просто не привлекать внимания зомби и прочих тварей." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" +"Первым предупреждением было то, что мой маршрут домой шёл от уцелевших " +"частей города к выжженным. Становилось только хуже. Сразу за моим домом " +"стоял полицейская баррикада с полностью бесполезной парой автоматических " +"турелей, бесцельно наблюдающими за бродячими зомби. Это было ещё до того, " +"как кто-то переключил их в режим стрельбы по кому угодно. Тогда они стреляли" +" только по пересекающим запретную зону. Славные времена, всегда можно " +"положиться, что бюрократия сумеет всё проебать самым впечатляющим способом. " +"В общем, сам дом наполовину обрушился, в него врезался фургон спецназа. " +"Наверно, можно было догадаться, что я увижу внутри, но мне пришлось пройти " +"через многое, и не хотелось поворачивать назад." + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "По пути туда наверняка пришлось насмотреться всякой херни." + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "У тебя получилось проникнуть в дом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"Да, получилось. Я потратил несколько часов, чтобы найти вход. А хочешь " +"знать, в чём самый пиздец? Типа, вот самый-самый? Моя жена была ещё жива. " +"Она всё это время была в подвале, придавленная куском обвалившегося пола. И " +"она потеряла много крови, она бредила, когда я её нашёл. Я не смог её " +"вытащить, так что я кормил и поил её и просто сидел рядом и держал её за " +"руку, пока она не умерла. А потом... что ж, потом я сделал то, что сейчас " +"обычно приходится делать с мёртвыми. После этого я собрал несколько " +"последних кусочков моей жизни и стараюсь никогда не оглядываться назад." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"Да, получилось. Я потратила несколько часов, чтобы найти вход. А хочешь " +"знать, в чём самый пиздец? Типа, вот самый-самый? Мой муж был ещё жив. Он " +"всё это время был в подвале, придавленный куском обвалившегося пола. И он " +"потерял много крови, он бредил, когда я его нашла. Я не смогла его вытащить," +" так что я кормила и поила его и просто сидела рядом и держала его за руку, " +"пока он не умер. А потом... что ж, потом я сделала то, что сейчас обычно " +"приходится делать с мёртвыми. После этого я собрала несколько последних " +"кусочков моей жизни и стараюсь никогда не оглядываться назад." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was at school for . Funny thing, actually: I was gearing " +"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 "" +"Я был в школе, когда начался . На самом деле забавно: я " +"приготовился поиграть с друзьями в РПГ про зомби на выходных. Ха, не думал, " +"что она станет ролёвкой вживую! Ладно... Не, это вообще не забавно." + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive school?" +msgstr "Как тебе удалось выжить в школе?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I may be a huge nerd, but I'm not an idiot. Plus I'm genre " +"savvy. We'd already heard about people coming back from the dead, actually " +"that's why I was doing the RPG. When the cops came to put the school on " +"lockdown I managed to slip out the back. I live a long way out of town, but" +" there was no way I was going to take a bus home, so I walked. Two hours. " +"Heard a lot of sirens, and I even saw jets overhead. It was getting late " +"when I got back, but my mom and dad weren't back from work yet. I stayed " +"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 "" +"Ну я знатный, , задрот, но я не придурок. А вдобавок я кое в чём " +"секу. Мы уже слышали про людей, возвращавшихся из мёртвых, на самом деле из-" +"за этого я затеял РПГ. Когда копы пришли запереть школу, я убежал с чёрного " +"хода. Я живу довольно далеко от города, но я никак не смог бы сесть на " +"автобус домой, поэтому пошёл пешком. Два часа. Слышал много сирен и даже " +"видел истребители в небе. Когда я вернулся, уже стемнело, но мама с папой " +"ещё не пришли с работы. Я остался дома в надежде, что они появятся. Я " +"посылал сообщения, но без ответа. Через несколько дней, ну... Новости " +"становились хуже и хуже, а потом вообще прекратились." + +#: lang/json/talk_topic_from_json.py +msgid "What about your parents?" +msgstr "Что с твоими родителями?" + +#: lang/json/talk_topic_from_json.py +msgid "What got you out of there?" +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 "" +"Я не тупой. Я знал, что их нет. Кто знает, где они... Может, в убежище, " +"может, в лагере МЧС. Большинство погибло." + +#: lang/json/talk_topic_from_json.py +msgid "What got you out of the house?" +msgstr "Почему ты покинул дом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually the zombies came. I figured they would. Before the net cut out," +" there were plenty of videos online making it clear enough what was going " +"on. I'd picked out some good gear and loaded my bag up with supplies... " +"When they started knocking at the door, I slipped out the back and took to " +"the street. And here I am." +msgstr "" +"В конце концов пришли зомби. Я понял, что они придут. Пока интернет ещё " +"работал, было полно онлайн-видео, по которым стало ясно, что происходит. Я " +"набрал кое-какое снаряжение и набил сумку припасами... Когда они застучали в" +" дверь, я выбежал через заднюю дверь и пошел к улицам. И вот я здесь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"Ещё до того, как наступил ? Да какая разница? Мы в новом " +"мире, и да, он довольно . Мы через это прошли, так что давай не " +"будем копаться в прошлом. Надо пробовать жить с тем немногим, что у нас " +"осталось." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "Я понимаю." #: lang/json/talk_topic_from_json.py msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" -"Да, в какой-то момент. Несколько часов стояла тишина. Меня мучила жажда, я " -"был ранен и перепуган. От полной паники меня удерживала, наверно, только моя" -" подготовка. Я решил вылезти и посмотреть, насколько плохи мои раны. Это " -"было просто. Боковина фургона была разорвана, и я, как оказалось, " -"лежал просто под кучкой мелких обломков, а а остатки фургона висели вокруг " -"меня. Меня даже не очень-то задело. Я схватил столько снаряжения, сколько " -"смог, и выскользнул. Стояла ночь. Я слышал отзвуки сражения в глубине " -"города, так что пошёл в другую сторону. Я одолел несколько кварталов, и тут " -"мне встретились ... Я убежал от них. Я бежал, и бежал, и бежал ещё " -"дальше. И вот теперь я здесь." +"Честно... Я даже не помню. Я смутно помню свою жизнь ещё до того, как мир " +"изменился, но про сам ? Всё как в тумане. Я не знаю, как " +"мне удалось выжить, или вообще как всё произошло. Со мной, наверно, " +"произошло что-то плохое. Или я очень сильно ударился головой. Или всё сразу." +" Похоже, всё сразу." #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" -"Я прост сидел в тюрячке. Они забрали меня предыдущей ночью за сраное " -"нарушение условий досрочного освобождения. Мудачьё. Я сидел в камере, когда " -"копы все вдруг заорали про чрезвычайное положение, приоделись и оставили " -"меня, со мной был только этот как охранник. Я застрял там на два " -"ебучих дня без еды и с каплей воды. Потом вломился охрененно громадный зомби" -" и принялся лупить робота. Я не знал, что вообще творится за херня, но в " -"драке они разломали дверь моей камеры, и я сумел улизнуть." +"Прозвучит безумно, но я проснулся в лесу чёрт знает где окоченевшим до " +"полусмерти примерно за неделю до встречи с тобой. Я был одет, у меня " +"раскалывалась голова, и я вообще ничего не помнил. Ну, я что-то знаю. Я могу" +" говорить, что-то умею и понимаю... но я не помню, откуда всё это взялось. В" +" моём кармане лежали водительские права, и только благодаря им я хотя бы " +"знаю, как меня зовут." #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" -msgstr "Везунчик. Как ты выбрался?" +msgid "What do you think happened?" +msgstr "Как ты думаешь, что случилось?" #: lang/json/talk_topic_from_json.py -msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." -msgstr "" -"Снаружи на улицах был, , полный хаос, чувак. Но я привык к хаосу. Ты " -"не проживёшь столько, сколько я, если не научишься держаться подальше от " -"драки, в которой не сможешь победить. Самой большой проблемой были даже не " -"зомби и не чудовища, вот ей-богу. Проблемой были сраные полицейские роботы. " -"Они знали про мой побег, и пытались арестовать меня." +msgid "That does sound a little crazy..." +msgstr "Звучит слегка безумно..." #: lang/json/talk_topic_from_json.py msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." msgstr "" -"Мне повезло, когда случился . Я бомжевал в складе на " -"краю города. Он был реально , и почти всех пацанов только что " -"арестовали в большой облаве с наркотой, но я ускользнул. Я боялся, они " -"подумают, что я их сдал, и придут за мной, но эй, теперь я спокоен." +"Кое-какие догадки у меня имелись. Например, мерзкая головная боль держалась " +"несколько дней, но ни порезов, ни ушибов. А деревья вокруг меня были покрыты" +" странным узором из подпалин. Что бы ни случилось со мной, похоже, это была " +"какая-то жуткая хрень." + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "Пытаешься ли ты вернуть память?" #: lang/json/talk_topic_from_json.py msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" -"Я не местный... Ты уже, наверно, понял по акценту, я из Великобритании. Я " -"кандидат наук из Дартмута. Я проделал полдороги к конференции в " -"Массачусетском Технологическом Институте, когда мне помешал." -" Я отдыхал в маленьком полном клопов мотеле на обочине дороги. Когда я пошёл" -" за завтраком - чем бы он ни был - чёртов жирный хозяин сидел на своей " -"стойке в той же грязной одежде, что и прошлой ночью. Я думал, он просто спал" -" там, но когда он посмотрел на меня... ну, ты знаешь, как выглядят глаза " -"зомби. Он бросился на меня, и я не думая среагировал. Разбил ему голову " -"планшетом." +"Ну, потерять память - это охереть как стрёмно, но вот честно: может, оно и к" +" лучшему? Учитывая, что сейчас творится, я зуб даю, мои воспоминания вовсе " +"не счастливые. Кроме водительских прав, в бумажнике были детские " +"фотографии... не то чтоб они меня как-то тронули. Я нигде не вижу никаких " +"детей. Может, потерять рассудок - это милосердие. Чёрт, может, это какой-то " +"психический срыв, и мой мозг сам всё натворил. Вот правда, я бы лучше " +"сосредоточился на выживании и не беспокоился об этом." #: lang/json/talk_topic_from_json.py msgid "" -"I was at school. I'm a senior. We'd heard about riots... It started with " -"a kid showing videos of one of the big riots in Providence. You've probably" -" seen it, the one where the woman turns to the camera and you can see her " -"whole lower lip has been ripped off, and is just flapping there? It got so " -"bad, they went over the PA system to tell us about Chinese drugs in the " -"water supply. Right... Does anyone buy that explanation?" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." msgstr "" -"Я был в школе. Я старшеклассник. Мы слышали про бунты... Всё началось, когда" -" ребёнок показал видео большого бунта в Провиденсе. Наверно, ты видел, то " -"самое, где женщина поворачивается в камеру, и видно, что её нижняя губа вся " -"оторвана и болтается? Всё было очень плохо, они заявили нам через " -"громкоговорители про китайские наркотики в водопроводе. Ага, щас... Кто-" -"нибудь на это купился?" +"Знаю, безумно. Похоже на ложную амнезию из мультиков про Багза Банни. Как я " +"могу знать что-то, но не помнить, почему я это знаю? Вот я помню Багза " +"Банни, но вообще не помню ни единого раза, чтоб я сидел и смотрел мультики " +"про него." #: lang/json/talk_topic_from_json.py -msgid "Where did things go from there?" -msgstr "Что стало потом?" +msgid "What were you saying before?" +msgstr "О чём ты там говорил?" #: lang/json/talk_topic_from_json.py msgid "" -"I guess it got worse, because the faculty decided to put us in lockdown. " -"For hours. And then the school buses showed up to evacuate us. Eventually," -" they ran out of buses. I was one of the lucky few who didn't have a bus to" -" 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." +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" -"Наверно, всё стало хуже, потому что преподаватели решили нас запереть. На " -"несколько часов. А потом приехали школьные автобусы, чтоб нас эвакуировать. " -"В конце концов у них кончились автобусы. Я был одним из нескольких " -"везунчиков, кому автобуса не хватило. Солдаты были не старше меня... " -"Непохоже, будто они знали, что происходит. Я жил всего в нескольких " -"кварталах. Я прокрался и сбежал." +"Кем я был, того больше нет. Всё дотла сжёг . Понятно? " +"Теперешний я появился два дня спустя. Я убегал от сраного здоровенного " +"зомби, убегал так, будто всегда бежал. А потом я нашёл стальную бейсбольную " +"биту, она просто валялась на земле. Я воспринял это как знак и размочалил " +"слизистого ублюдка в кашу... и вот тогда я стал собой. Я всё ещё убегаю, " +"потому что кто ж не бежит, но сейчас я твёрдо стою на ногах." #: lang/json/talk_topic_from_json.py -msgid "Did you get home?" -msgstr "Удалось добраться домой?" +msgid "What happened to you after that?" +msgstr "Что случилось с тобой потом?" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "Не совсем нормально вот так бросать своё прошлое..." #: lang/json/talk_topic_from_json.py msgid "" -"Yeah. On the way there, I met some for real. They chased me, but" -" I did pretty well in track. I lost them... But I couldn't get home, there" -" were just too many. I wound up running more. Stole a bike and ran more " -"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." +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" -"Мда. На пути мне попались , серьёзно. Они погнались за мной, но из " -"меня неплохой бегун. Я оторвался от них... Но не добрался до дома, их было " -"слишком много. Я украл велосипед и снова помчался прочь. Теперь я куда лучше" -" умею их убивать, но я пока не вернулся домой. Наверно, я боюсь того, что " -"найду там." +"Я жил дальше. Я убегал, когда приходилось, и дрался, когда мог, как все " +"остальные. Я начал узнавать, кто я теперь. Биту я потерял в бою с каким-то " +"диким зомби, стреляющим молниями. Он пропустил через неё ток, так что я " +"выронил её и вооружился лежащей рядом доской, но в конце концов мне пришлось" +" убежать и оставить верную биту. В тот день я едва не помер." #: lang/json/talk_topic_from_json.py msgid "" -"I saw it all pretty early, before it all really started. I worked at the " -"hospital. It started with a jump in the number of code whites - that's an " -"aggressive patient. Wasn't my training so I didn't hear about it until " -"later... but rumors started flying about hyperaggressive delirious patients" -" that coded and seemed to die, then started attacking staff, and wouldn't " -"respond to anything we hit them with. Then a friend of mine was killed by " -"one of them, and I realized it wasn't just a few weird reports. I called in" -" sick the next day." +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." msgstr "" -"Я видел всё с самого начала, прежде, чем оно даже началось. Я работал в " -"больнице. Сперва пошёл сплошной \"белый код\" - это означает агрессивных " -"пациентов. Такое не входило в мою подготовку, поэтому услышал об этом только" -" потом... появились слухи про гиперагрессивных сумасшедших пациентов, " -"казавшихся умершими, они напали на персонал и не обращали внимания, когда их" -" пытались ударить. Потом один из них убил моего друга, и я понял, что тут не" -" просто пара стрёмных случаев. На следующий день я взял больничный." +"Слушай. Я чётко выразился, и если ты продолжишь докапываться, я разозлюсь. " +"Тот, кем я был, умер. Мёртв. Меня не ебёт твоё 'нормально', не спрашивай " +"больше, ." #: lang/json/talk_topic_from_json.py -msgid "What happened on your sick day?" -msgstr "Что произошло в тот день, когда ты был на больничном?" +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 "" +"Давай не трогать эту тему, лады? Мне просто больно думать об этом. Я потерял" +" стольких людей... да и ты тоже, я уверен. Давай вернёмся к здесь и сейчас." + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "Я понимаю. " + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "Разумно. " #: lang/json/talk_topic_from_json.py msgid "" -"Well, . I lived a fair distance out of town, and I already " -"knew something was seriously wrong, but I hadn't admitted to myself what I " -"was really seeing quite yet. When I saw the military convoys pouring into " -"the city, I put the pieces together. At first I thought it was just my " -"hospital. Still, I packed up my bags, locked the doors and windows, and " -"waited for the evacuation call." +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" -"Ну, в общем, . Я живу довольно далеко от города, и я уже " -"понимал, что-то шло очень не так. но пока не до конца осознал, что на самом " -"деле видел. Когда я заметил военные конвои, въезжающие в город, я сложил всё" -" воедино. Сначала я решил, что всё это просто из-за моей больницы. Однако я " -"собрал сумки, запер двери и окна и стал ждать начала эвакуации." +"Я вообще даже не сразу узнал про . Я был за городом, вдали от" +" самого худшего. Моя машина сломалась на шоссе, я несколько часов прождал " +"эвакуатор. Наконец я решил прилечь в кустах на обочине. И правильно сделал, " +"потому что внезапно примчавшийся грузовик - мёртвый водитель, понимаешь ли -" +" размазал мою машину по асфальту. Мне жалко тех ублюдков, что остались в " +"городах, когда началось." #: lang/json/talk_topic_from_json.py -msgid "Did you get evacuated?" -msgstr "Тебя эвакуировали?" +msgid "How did you survive outside?" +msgstr "Как ты там выжил?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "Что ты видел в первые дни?" #: lang/json/talk_topic_from_json.py msgid "" -"No. The call came too late. I'd already seen the clouds on the horizon. " -"Mushroom clouds, and also those insane hell-clouds. I've heard that " -"horrible things came out of them. I decided it was safer in my locked up " -"house." +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" -"Нет. Звонок пришёл слишком поздно. Я уже видел облака на горизонте. " -"Грибовидные облака, а ещё те дикие адские облака. Я слышал, из них вылезают " -"те ужасные твари. Я решил, что в запертом доме будет безопаснее." +"Ха, я сам не до конца понял. В первые дни за городом стопудово пришлось " +"нелегко. Я попал под один из тех адских ливней, он сжигал мою кожу. Я сумел " +"укрыться под машиной и лежал на своей палатке. Сраная палатка вся " +"расползлась, но лучше уж она, чем я. Впрочем, мне ещё повезло, это было " +"самое худшее из случившегося со мной. Я не встретил никого из адских " +"монстров, как я слышал, нападавших на города, так что мне чертовски повезло." #: lang/json/talk_topic_from_json.py msgid "" -"The military. They showed up and commandeered my land for some kind of " -"forward base, demanding I evacuate to a FEMA camp. I didn't even try to " -"argue... I had my dad's old hunting rifle, they had high tech weapons. I " -"heard one of them joking about the FEMA camp being Auschwitz, though. I " -"gave their evac driver the slip and decided to make for my sister's place up" -" north. In theory I guess I'm still going that way, although honestly I'm " -"just busy not dying." +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." msgstr "" -"Военные. Они появились и заявили, что на моей земле будет какая-то передовая" -" база, и потребовали, чтоб я эвакуировался в лагерь МЧС. Я даже не стал " -"спорить... У меня было старое отцовское охотничье ружьё, у них " -"высокотехнологичное оружие. Хотя один из них штутил, что лагерь МЧС - это " -"как Аушвиц. Я улизнул от их водителя и решил направиться к моей сестре на " -"север. Теоретически, наверно, я до сих пор к ней иду, хотя по правде я " -"просто пытаюсь не умереть." +"Кроме кислотного ливня я видел людей, бегущих из городов. Я старался " +"держаться подальше от дорог, но мне и не хотелось заблудиться в лесу, так " +"что я шёл по краю. Я видел машины, автобусы, грузовики - все полны " +"беженцами. Многие проезжали мимо, но ещё больше застряли без бензина и " +"прочего. Некоторые были настолько забиты людьми и вещами, что народ висел " +"снаружи. Остановиться значило умереть, потому что мертвецы бродили вдоль " +"дорог и выискивали выживших." #: lang/json/talk_topic_from_json.py msgid "" -"I was at work at the hospital, when it all went down. It's a bit of a blur." -" For a while there were weird reports, stuff that sounded unbelievable " -"about patients getting back up after dying, but mostly things were business " -"as usual. Then, towards the end, stuff just skyrocketed. We thought it was" -" a Chinese attack, and that's what we were being told. People coming in " -"crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I... well, I broke. I'd seen such horrible injuries, and then I... " -", I can't even talk about it." +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." msgstr "" -"Я работал в больнице, когда всё началось. Немного как в тумане. Какое-то " -"время шли жуткие доклады, невероятная дичь про пациентов, воскресавших после" -" смерти, но в целом дела шли своим чередом. Потом, ближе к концу, обстановка" -" резко накалилась. Мы думали, Китай напал на нас, и именно так нам и " -"сообщали. К нам поступали обезумевшие люди, покрытые ранами от пуль и " -"укусов. Примерно на половине своей смены я... в общем, я не выдержал. Я " -"видел такие кошмарные раны, и я... , я даже не могу об этом " -"говорить." +"Я был на рыбалке со своей подругой, когда всё случилось. Я точно не уверен, " +"как выстраиваются дни... первым звоночком Армагеддона на нас налетел какой-" +"то ядовитый ветер с чем-то вроде кислотного тумана, разъедавшего глаза и " +"кожу. Мы не знали, что делать, поэтому спрятались и передохнули. А пока мы " +"отдыхали, повсюду улеглась странная пыль." #: lang/json/talk_topic_from_json.py -msgid "No. I can't. Just, no." -msgstr "Нет. Не могу. Просто нет." +msgid "What happened after the acid mist?" +msgstr "Что было после кислотного тумана?" #: lang/json/talk_topic_from_json.py msgid "" -"A young mother. I know she was a mother, because I delivered her baby. " -"Sweet girl, she... she had a good sense of humor. She came in, spitting " -"that black goo, fighting the orderlies, dead from a bullet wound through the" -" chest. That's when I ... I don't know if I woke up, finally, or if I " -"finally went crazy. Either way, I broke. I broke a lot earlier than my " -"colleagues, and that's the only reason I lived. I skipped out, went to a " -"dead corner of the hospital I used to hide in when I was a resident. An old" -" stairwell leading to a closed-off unit the maintenance staff were using to " -"store old equipment. I hid there for hours, while I listened to the world " -"crumbling outside and inside." +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." msgstr "" -"Молодая мамочка. Я знаю, она была матерью, потому что я принимал роды у её " -"ребёнка. Милая девчонка... с хорошим чувством юмора. Она ввалилась, " -"сплёвывая ту чёрную слизь и борясь с санитарами, и она была мертва от " -"пулевой раны в грудной клетке. Вот тогда я... я не знаю, проснулся ли я " -"наконец, или я окончательно поехал головой. В любом случае, я не выдержал. Я" -" не выдержал куда раньше моих коллег, и я выжил по этой единственной " -"причине. Я убежал и нашёл укромный уголок больницы, где я прятался еще " -"будучи ординатором. Старый лестничный пролёт к запертой комнате, куда обычно" -" скидывали старое оборудование. Я прятался там несколько часов и слушал, как" -" рушится мир внутри и снаружи." +"К утру всё вокруг озера покрылось розоватой плесенью, кругом шатались " +"ходячие грибы и выплёвывали в воздух облака пыли. Мы не были в курсе, что " +"происходит, но оба не горели желанием остаться и узнать. Мы сложили своё " +"барахло, сели в лодку и поплыли вверх по течению." #: lang/json/talk_topic_from_json.py -msgid "How did you get out of there?" -msgstr "Как тебе удалось выбраться оттуда?" +msgid "What happened to your friend?" +msgstr "Что стало с твоей подругой?" #: lang/json/talk_topic_from_json.py msgid "" -"Somehow, I don't know how, I managed to fall asleep in there. I think it " -"might have started with me hyperventilating and passing out. When I woke up" -" it was night, I was starving and parched, and... and the screaming had " -"died down. At first I tried to go out the way I came in, but I peaked out " -"the window and saw one of the nurses stumbling around, spitting that black " -"shit up. Her name was Becky. She wasn't Becky anymore. So, I went back up" -" and somehow made it into the storage area. From there, the roof. I drank " -"water from some nasty old puddle and I camped out there for a while, " -"watching the city around me burn." +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." msgstr "" -"Каким-то образом, не знаю как, я умудрился там уснуть. Возможно, я слишком " -"часто и глубоко дышал и отключился. Я проснулся уже ночью, мне хотелось есть" -" и пить, и... и крики утихли. Сначала я хотел вернуться тем же путём, что " -"пришёл, но выглянул из окна и заметил одну из медсестёр, она шаталась и " -"плевалась тем чёрным дерьмом. Её звали Бекки. Она больше не была Бекки. " -"Поэтому я вернулся и как-то пробрался на склад. Оттуда - на крышу. Я попил " -"воды из мерзкой застойной лужи и некоторое время провёл там, наблюдая, как " -"горит город вокруг меня." +"Ей стало плохо спустя несколько часов после того, как мы покинули озеро. Её " +"рвало, она жаловалась на боли в суставах. Я причалил возле маленького " +"знакомого магазинчика на берегу реки в надежде, что у них есть чем помочь, " +"или они хотя бы знают, что происходит." + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "Полагаю, они не знали." #: lang/json/talk_topic_from_json.py msgid "" -"Well, I still didn't have any food. Eventually I had to climb down the side" -" of the building... so I did, as quietly as I could. It was night, and I " -"have pretty good nightvision. Apparently the zombies don't, because I was " -"able to slip right past them and steal a bicycle that was just laying on the" -" side of the road. I'd kind of scouted out my route from above... I'm not " -"from a big city, the hospital was the tallest building around. I avoided " -"the major military blockades, and headed out of town towards a friend's old " -"cabin. I had to fight off a couple of the , but I managed to avoid" -" any big fuss, by some miracle. I never made it to the cabin, but that's " -"not important now." +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." msgstr "" -"Ну, у меня всё ещё не было никакой еды. Рано или поздно мне нужно было " -"слезть по стене здания... что я и сделал, так тихо, как мог. Была ночь, а я " -"хорошо вижу в темноте. А вот зомби видят не очень, потому что мне удалось " -"проскочить между ними и украсть велосипед, просто валявшийся на обочине. " -"Сверху я типа присмотрел себе маршрут... Я из маленького города, больница " -"была самым высоким зданием. Я обошёл крупные военные блокпосты и направился " -"прочь из города к старому домику моего друга. Мне попались , и " -"пришлось драться, но я смог чудом избежать больших проблем. Я так и не " -"добрался до домика, но это уже не важно." +"На самом деле в магазинчике никого не было. Подруга была в отчаянии, так что" +" я вломился внутрь. От радио на прилавке я узнал про хаос в городах. Я нашел" +" болеутоляющие и противорвотные таблетки для своей подруги, но когда я " +"вернулся к лодке... для неё было слишком поздно." #: lang/json/talk_topic_from_json.py -msgid "What did you see, up there on the roof?" -msgstr "Что ты видел с крыши?" +msgid "She was dead?" +msgstr "Она умерла?" #: lang/json/talk_topic_from_json.py msgid "" -"My hospital was the tallest building in town, so I saw quite a bit. The " -"military set up blockades on the roads coming in and out of the town, and " -"there was quite a lightshow going on out there when I started up. I think " -"it was mostly automated turrets and robots, I didn't hear much shouting. I " -"saw a few cars and trucks try to run the barricade and get blown to high " -"hell. There were swarms of in the streets, travelling in packs " -"towards sounds and noises. I watched them rip a few running cars to shreds," -" including the people inside who were trying to get away. You know. The " -"usual stuff. I was pretty numb by that point." +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" -"Моя больница была самым высоким зданием в городе, так что кое-что я увидел. " -"Военные установили блокпосты на городских въездах и выездах, и там поначалу " -"вспыхивал настоящий фейерверк. Наверно, по большей части автоматические " -"турели и роботы, я криков особо и не слышал. Я видел, как машины и грузовики" -" пытались прорвать баррикаду, и их нахрен взрывали. На улицах полчищами " -"бродили , направляясь толпой на звук и шум. Я смотрел, как они " -"рвали машины на куски вместе с людьми, пытавшимися спастись. Ты знаешь. " -"Обычные дела. На тот момент мне было уже безразлично." +"Если бы. Смерть была бы милосердием. Она зашлась в страшном задыхающемся " +"вопле, и её тело развалилось на куски. Грибы прорывались из каждой части её " +"тела. Я... я сбежал. Сейчас мне бы хотелось прекратить её мучения, но " +"возвращаться обратно - чистое самоубийство. " #: lang/json/talk_topic_from_json.py -msgid "How did you get down?" -msgstr "Как ты спустился?" +msgid "That's awful. " +msgstr "Это ужасно. " + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "Это ужасно. " #: lang/json/talk_topic_from_json.py msgid "" -"I was called in to work at the hospital. I don't usually work there, I'm a " -"community doctor. I don't really love emergency medicine at the best of " -"times, and when your patient keeps trying to rip your face off, well, it " -"takes the last bit of fun out of it. You might think I'm a coward, but I " -"slipped out early on, and I've got no regrets. There was nothing I could " -"have done except die like everyone else. I couldn't get out of the " -"building, the military had blockaded us in... so I went to the most secure," -" quiet damned place in the building." +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." msgstr "" -"Меня вызвали в больницу. Вообще я обычно там не работаю, я врач в клинике. " -"Даже в лучшие времена мне никогда не нравилась экстренная медицина, а когда " -"пациент пытается оторвать тебе лицо, ну, становится совсем невесело. Можешь " -"считать меня трусом, но я сбежал довольно рано и ни о чём не жалею. Я бы " -"ничем не смог помочь, разве что умереть, как остальные. Я не мог выбраться " -"из больницы, военные заперли нас... так что я пошёл в самое безопасное, " -"тихое проклятое место во всём здании." +"Ооо да. Я был готов к этому. Несколько лет всё к этому шло. У меня был " +"приготовлен целый бункер сразу за городом. Поэтому мне сказочно повезло: я " +"был далеко от города на рабочей конференции, когда Китай начал войну, и миру" +" пришёл конец." #: lang/json/talk_topic_from_json.py -msgid "Where was that?" -msgstr "Что за место?" +msgid "What happened to you?" +msgstr "Что случилось с тобой?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "Что насчёт бункера?" #: lang/json/talk_topic_from_json.py msgid "" -"The morgue. Seems like a dumb place to go at the start of a zombie " -"apocalypse, right? Thing is, nobody had made it to the morgue in quite a " -"while, the bodies were reanimating too quickly and the staff were just too " -"busy. I was shaking and puking and I could see the world was ending... I " -"bundled myself up, grabbed a few snacks from the pathologist's desk, and " -"crawled into one of those drawers to contemplate the end of the world. " -"After breaking the handle to make sure it couldn't lock behind me, of " -"course. It was safe and quiet in there. Not just my cubby, the " -"whole morgue. At first it was because nobody was enough to come down" -" there except me. Later, it was because nobody was left." +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." msgstr "" -"Морг. Кажется, будто идти туда в начале зомби-апокалипсиса - дурацкая идея, " -"верно? Суть в том, что какое-то время никого не привозили в морг, тела " -"оживали слишком быстро, а персонал был слишком занят. Меня трясло и рвало, я" -" видел конец света... Я собрался с мыслями, захватил кое-какую еду со " -"столика патологоанатома и залез в один из тех ящиков, чтобы обдумать " -"апокалипсис. Сперва, разумеется, я сломал ручку, чтобы дверца не " -"захлопнулась за мной. Внутри было безопасно и тихо. Не просто в моём " -"ящике, в целом морге. Так было сперва потому, что никому в голову, кроме " -"меня, не пришёл такой настолько план. Позже потому, что никого не " -"осталось." +"Наша конференция была в домике у озера. Мы все получили экстренные сообщения" +" на телефоны, но лишь я один прочёл между строк и понял правду: " +"полномасштабный биотерроризм. Я не собирался ждать и выяснять, кто из моих " +"коллег был спящим агентом. Хотя ставлю полсотни баксов на Ли. Короче, я " +"угнал пикап координатора и поехал прямо к своему убежищу." #: lang/json/talk_topic_from_json.py -msgid "Clearly you escaped at some point." -msgstr "Очевидно, в какой-то момент ты сбежал." +msgid "Did you get there?" +msgstr "Удалось добраться туда?" #: lang/json/talk_topic_from_json.py msgid "" -"The door was good heavy steel with no window, and there was a staff room " -"with a fully stocked fridge, so when it became clear that nothing was going " -"to get any better on its own, I set up shop. I stayed down there for a " -"couple days. I could hear explosions and screaming for the first while, " -"then just guns and explosions, and then it got quiet. Eventually, " -"I ran out of snacks, so I worked up the nerve to climb out a window and " -"check out the city by night. I used that place as a base for a little " -"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." +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." msgstr "" -"В морге была прекрасная тяжёлая стальная дверь без окошка, а в комнате " -"персонала стоял набитый холодильник. Мне стало ясно, что лучше уже не будет," -" и обосновался там. Я жил там несколько дней. Сперва я слышал взрывы и " -"вопли, потом выстрелы и взрывы, а потом стало тихо. В конце концов " -"у меня кончилась еда, так что я набрался смелости и ночью выбрался из окна " -"посмотреть на город. Морг служил мне базой какое-то время, но возле больницы" -" было слишком опасно, так что я ушёл искать злачное место. И вот я здесь." +"Нет, я едва проехал пару миль. Я врезался в некое адское китайское " +"биооружие, безумный визжащий , сделанный из рук и ног и голов " +"всевозможных существ, в том числе людей. Полагаю, я убил его, но уж точно " +"убил пикап. Я выпустил в тварь пару пуль для верности, схватил свой вещмешок" +" и убежал. Надеюсь, больше никогда не увижу ничего подобного." #: lang/json/talk_topic_from_json.py msgid "" -"I live way out of town. I hear the small towns lasted a bit longer than the" -" big cities. Doesn't matter to me, I was out on my end-of-winter hunting " -"trip, I'd been out of town for a week already. First clue I had things were" -" going wrong was when I saw a mushroom cloud out near an old abandoned " -"military base, way out in the middle of nowhere. I didn't think much about " -"that. Then I was attacked by a demon." +"I still haven't made it there. Every time I've tried I've been headed off " +"by the . Who knows, maybe someday." msgstr "" -"Я живу далеко от города. Я слышал, мелкие городишки продержались дольше " -"крупных городов. Так-то мне всё было равно, я уже неделю находился в " -"охотничьей поездке. Первым знаком, что что-то не так, было грибовидное " -"облако неподалеку от старой заброшенной военной базы глубоко в глуши. Потом " -"на меня напал демон." +"Я всё ещё не смог до него добраться. Каждый раз, когда я пытаюсь, мне мешают" +" . Кто знает, когда-нибудь, наверное." #: lang/json/talk_topic_from_json.py -msgid "A demon?" -msgstr "Демон?" +msgid "Could you tell me that story again?" +msgstr "Можешь рассказать ту историю ещё раз?" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, it was like a ... like a soft shelled crab, with tentacle mouths, and" -" it kept talking in different voices. I saw it before it saw me, and I " -"capped it with my Remington. That just pissed it off, but I got another " -"couple shots off while it charged me. Third or fourth shot took it down. I" -" figured out shit had hit the fan, somehow. Headed to my cabin and camped " -"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." +"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 "" -"Ага, что-то типа... типа краба без панциря со ртами на щупальцах, и оно " -"говорило разными голосами. Я увидел его раньше, чем оно меня, и я пальнул в " -"него из Ремингтона. Оно лишь разозлилось, но я успел выстрелить ещё пару " -"раз, пока оно на меня бежало. После третьего или четвёртого выстрела оно " -"сдохло. Я понял, что случилась какая-то херня. Я отправился в свой охотничий" -" домик и прожил там какое-то время, но мне пришлось убежать, когда пришли " -" и всё разнесли. Вскоре я встретил тебя." +"О, блин. Я думал, я был готов. Я всё распланировал. Упакованные сумки. " +"Заряженные пушки. Карты маршрутов побега. Бункер на заднем дворе." #: lang/json/talk_topic_from_json.py -msgid "" -"My brother and I were out on a hunting trip. We saw helicopters overhead..." -" big, military ones, loaded up with crazy high-end military stuff like you " -"only see on TV. Laser cannons even. They were heading in the direction of " -"our parent's ranch. Something about it really shook us up, and we started " -"heading back that way... we weren't that far off when we saw this huge, " -"floating eyeball appear out of nowhere. Ha. Hard to believe we're " -"in a time where I don't feel like I need to convince you I'm telling the " -"truth." -msgstr "" -"Мы с моим братом ехали на охоту. Мы видели вертолёты в небе... большущие " -"армейские вертолёты с дико крутыми военными штуковинами, типа которые только" -" по ящику увидишь. Видел даже лазерные пушки. Они летели в сторону ранчо " -"нашего отца. Почему-то нас это потрясло, и мы направились обратно... мы " -"проехали всего ничего, когда увидели, как прямо, , из ниоткуда " -"появился огромный парящий в воздухе глаз. Ха. Трудно поверить, что сейчас " -"мне не нужно убеждать тебя, что я говорю правду." +msgid "Sounds like it didn't work out." +msgstr "Похоже, ничего не вышло." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "Эй, мне хотелось бы взглянуть на те карты." #: lang/json/talk_topic_from_json.py msgid "" -"We watched the eyeball just blast one of the Apache choppers with some kind " -"of ray. The chopper fired back, but it went down. It was coming right for " -"us... I veered, got out of the way, but a chunk of the chopper smacked into" -" 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." +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" -"Мы видели, как глаз просто взорвал один из 'Апачей' каким-то лучом. Вертолёт" -" пытался отстреливаться, но пошёл вниз. Он падал прямо на нас... я резко " -"свернул в сторону, но кусок вертолёта врезался в кузов, и наш грузовик " -"кувыркнулся с дороги. От удара я сразу вырубился. Мой брат... ему не так " -"повезло." +"Зависит от точки зрения. Я же живой, верно? Когда сам Ад снизошёл с небес, а" +" монстры напали на города, я схватил своё добро и укрылся в бункере. У меня " +"были камеры на поверхности, я видел всё, что там творилось. Я видел " +"передвижения тех тварей. Мне ещё снятся кошмары от того, как двигались их " +"тела, вроде как мир разрушен, чтобы они просто могли быть. Мне больше ничего" +" не оставалось. Я видел, как они рвут на куски копов и военных, видел, как " +"мертвецы воскресают и нападают на живых. Я видел, как милая бабушка отрывает" +" голову соседской собаке. Я видел, как труп солдата дёргается и вырастает в " +"какого-то огромного электрического монстра. Я всё это видел." #: lang/json/talk_topic_from_json.py -msgid "Oh, no." -msgstr "О нет." +msgid "Why did you leave your bunker?" +msgstr "Почему ты вышел из бункера?" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah... the... the accident got him, but when I came to he was already " -"coming back. Thank god for seatbelts, right? He was screeching and " -"flapping around, hanging upside down. I thought he was just hurt at first, " -"but he just kept coming at me while I tried to talk to him. His arm was " -"badly hurt already and instead of unbuckling himself he started... he was " -"ripping it right off pulling against the seatbelt. That, and the crazy shit" -" with the chopper, was when I realized just how fucked up things had got. I" -" grabbed my hunting knife and ran, but my brother got out and started " -"crawling after me." +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" -"Да... авария... он погиб в аварии, но когда я пришёл в себя, он уже " -"вернулся. Господи, спасибо тебе за ремни безопасности. Он визжал и болтался," -" вися вниз головой. Сначала я думал, ему просто больно, но он пытался меня " -"ударить каждый раз, когда я хотел поговорить с ним. Его рука была сломана, и" -" вместо того, чтобы отстегнуть ремень, он... он просто оторвал её, " -"продираясь сквозь ремень. Вот тогда, тогда и после сраного вертолёта, я " -"понял, какой же произошёл пиздец. Я схватил охотничий нож и полез наружу, но" -" мой брат выбрался и пополз ко мне." +"Честно? Я хотел умереть. После всего увиденного я слегка поехал головой. Я " +"думал, что всему настал конец, так что, рассудил я, нет никакого смысла " +"бороться. Мне казалось, я не протяну и минуты на поверхности, но я не мог " +"просто так наложить на себя руки. Я вылез наружу, я хотел, чтобы " +"меня прикончили, но что же? Инстинкт самосохранения - занятная штука, и я " +"убил зомби поблизости от бункера. Полагаю, мне был нужен адреналин. С тех " +"пор на нём я и держусь." #: lang/json/talk_topic_from_json.py -msgid "Did you keep running?" -msgstr "Ты бежал?" +msgid "Thanks for telling me that. " +msgstr "Спасибо, что рассказал. " #: lang/json/talk_topic_from_json.py msgid "" -"I ran for a little bit, but then I saw soldier zombies crawling out of that " -"chopper. They had the same look about them as my brother did, and it was " -"them on one side and him on the other. I'm no genius but I've seen a few " -"movies: I figured out what was happening. I didn't want to take on kevlar " -"armor with my knife, so I turned back and faced the other zombie. I " -"couldn't let my brother stay... like that. So I did what I had to, and I " -"guess I'll live with that forever." +"Yeah, I do. I'd be willing to part with them for, say, $1000. Straight " +"from your ATM account, no cash cards." msgstr "" -"Я немного пробежал, но потом я увидел зомби-солдат, вылезающих из обломков " -"вертолёта. Они выглядели так же, как мой брат, и они были с одной стороны от" -" меня, а брат с другой. Я ни разу не гений, но я видел пару фильмов: я " -"понял, что происходит. Мне не улыбалось пытаться проткнуть кевларовую броню " -"ножом, так что я повернулся к другому зомби. Я не мог оставить брата... вот " -"так. Так что я сделал, что должен был, и, наверно, мне придётся жить с этим " -"до конца своих дней." +"Ага, это можно. Я бы мог поделиться ими за, скажем, $1000. Прямо с твоего " +"банковского счёта, без кредиток." #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me your story. " -msgstr "Спасибо, что рассказал свою историю. " +msgid "[$2000] You have a deal." +msgstr "[$2000] По рукам." #: lang/json/talk_topic_from_json.py -msgid "" -"For me, this started a couple days before . I'm a " -"biochemist. I did my postdoc work with a brilliant colleague, Pat Dionne. " -"I hadn't talked to Pat in ages... Word has it, the government got wind of " -"our thesis, found out Pat did most of the heavy lifting, and that was the " -"last we talked for years. So, I was a bit surprised to see an e-mail from " -"Pat.Dionne@FreeMailNow.co.ru... Even more surprised when it was a series of" -" nostalgic references to a D&D game we played years earlier." +msgid "Whatever's in that map benefits both of us." +msgstr "Эта карта нам обоим принесёт пользу." + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "Как насчет, , выложить её просто так и не злить меня, ?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "Прости за смену темы. Что ты там говорил?" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "Отлично. Держи." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "Спасибо! О чём ты там раньше говорил?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "Зря стараешься. Нужны карты - так плати." + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "Хорошо. О чём ты там говорил?" + +#: lang/json/talk_topic_from_json.py +msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" -"Для меня всё началось несколько дней до того, как настал . Я " -"биохимик. Я писал статью вместе с блестящей коллегой, Пэт Дионн. Я не " -"говорил с Пэт целую вечность... Я слышал, правительство узнало про нашу " -"диссертацию, узнало, что Пэт сделала всю тяжёлую работу, и тогда мы " -"встречались последний раз за несколько лет. Так что я немного удивился, " -"когда получил письмо от Pat.Dionne@FreeMailNow.co.ru... Даже ещё больше " -"удивился, когда прочёл в письме ностальгические отсылки к игре D&D, в " -"которую мы играли намного раньше." +"Когда случился , я сидел в тюрьме, но сбежал. Та ещё история." #: lang/json/talk_topic_from_json.py -msgid "I don't see where this is going." -msgstr "Я не понимаю, к чему это." +msgid "So tell me this 'hell of a story'" +msgstr "Так расскажи её мне." + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "За что тебя посадили?" #: lang/json/talk_topic_from_json.py msgid "" -"Well, the references weren't quite right. Pat referred to things that we'd " -"never played. The situations were close, but not right, and when I put it " -"all together, it told a story. A story about a scholar whose kids were " -"being held captive by a corrupt government, forced to research dark magic " -"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." +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." msgstr "" -"Что ж, отсылки были не совсем верные. Пэт говорила про вещи, которые мы " -"никогда не играли. Ситуации были похожими, но не точными, а когда я сложил " -"всё вместе, получилась история. История об учёном, которого продажное " -"правительство держало в заложниках и заставляло исследовать тёмную магию для" -" них. А самое главное: предупреждение, что чёрная магия сбежала, " -"предупреждение, что всем героям нужно покинуть королевство, пока оно не " -"пало." +"Это само по себе история, дружище. У меня была одна из крупнейших плантаций " +"конопли на Восточном побережье. Хаха, я много мог бы тебе рассказать... но " +"не буду. Всё это позади." #: lang/json/talk_topic_from_json.py -msgid "Okay..." -msgstr "Хорошо..." +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" +"Это вроде... это кое-что. Вначале меня взяли на слабо, а под конец я делал " +"биологическое оружие. Оно не применялось, но что ж, всё зашло слишком " +"далеко." #: lang/json/talk_topic_from_json.py msgid "" -"Listen, I know it's incredibly cheesy. That's D&D for you. Anyway, " -"something about the tone really got to me. I knew it was important. I " -"wasted a little time waffling, then decided to use my outstanding vacation " -"time and skip town for a while. I packed for the end of the world. Turns " -"out, I packed the right stuff." +"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 "" -"Слушай, я знаю, всё страшно нелепо. В любом случае, что-то в её тоне " -"серьёзно меня забеспокоило. Я знал, что это было важно. Я не стал трепаться " -"и решил покинуть город на время моего замечательного отпуска. Я приготовился" -" к концу света. И похоже, я приготовил всё правильно." +"Уклонение от налогов. Я работал бухгалтером и помогал боссу по-умному " +"ворочать охрененными деньгами. Как выяснилось, недостаточно по-умному..." #: lang/json/talk_topic_from_json.py -msgid "Was there anything else of use in that email?" -msgstr "Было ли что-то ещё в том письме?" +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" +"Звучит намного круче, чем есть на самом деле: обладание нелицензированным " +"ядерным ускорителем." #: lang/json/talk_topic_from_json.py msgid "" -"There was, yeah, but it was cryptic. If I had a copy of Pat's notes, I " -"could probably decipher it, but I'm sure those burned up in ." -" They bombed those labs, you know." +"I got a little bit into black market organ trading. It sounds worse than it" +" was... but it was pretty bad." msgstr "" -"Было, да, но зашифровано. Если бы у меня была копия записей Пэт, я бы сумел " -"их расшифровать, но я уверен, сжёг их. На те лаборатории " -"сбросили бомбы, знаешь ли." +"Я немножко крутился на чёрном рынке торговли органами. Звучит хуже, чем " +"было... хотя и было очень плохо." + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "Много статей за хранение. Я реально сидел на мете." #: lang/json/talk_topic_from_json.py msgid "" -"I was at school for . Funny thing, actually: I was gearing " -"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." +"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 "" -"Я был в школе, когда начался . На самом деле забавно: я " -"приготовился поиграть с друзьями в РПГ про зомби на выходных. Ха, не думал, " -"что она станет ролёвкой вживую! Ладно... Не, это вообще не забавно." +"Нападения. Я правда не хочу пояснять, просто намекну, что тебе не хотелось " +"бы разговаривать со мной во время фильма, лады?" #: lang/json/talk_topic_from_json.py -msgid "How did you survive school?" -msgstr "Как тебе удалось выжить в школе?" +msgid "" +"You know, I don't really want to say anymore. It's all behind me, and I'd " +"like to keep it that way." +msgstr "" +"Знаешь, я правда не хочу больше говорить. Всё уже позади, и мне б типа " +"хотелось, чтоб оно там и оставалось." #: lang/json/talk_topic_from_json.py msgid "" -"Well, I may be a huge nerd, but I'm not an idiot. Plus I'm genre " -"savvy. We'd already heard about people coming back from the dead, actually " -"that's why I was doing the RPG. When the cops came to put the school on " -"lockdown I managed to slip out the back. I live a long way out of town, but" -" there was no way I was going to take a bus home, so I walked. Two hours. " -"Heard a lot of sirens, and I even saw jets overhead. It was getting late " -"when I got back, but my mom and dad weren't back from work yet. I stayed " -"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." +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" -"Ну я знатный, , задрот, но я не придурок. А вдобавок я кое в чём " -"секу. Мы уже слышали про людей, возвращавшихся из мёртвых, на самом деле из-" -"за этого я затеял РПГ. Когда копы пришли запереть школу, я убежал с чёрного " -"хода. Я живу довольно далеко от города, но я никак не смог бы сесть на " -"автобус домой, поэтому пошёл пешком. Два часа. Слышал много сирен и даже " -"видел истребители в небе. Когда я вернулся, уже стемнело, но мама с папой " -"ещё не пришли с работы. Я остался дома в надежде, что они появятся. Я " -"посылал сообщения, но без ответа. Через несколько дней, ну... Новости " -"становились хуже и хуже, а потом вообще прекратились." +"Хорошо, что ж, я оказался не в том месте не в то время. Была большая драка, " +"я стоял недостаточно далеко, и меня и кучку остальных запихнули в одиночку, " +"а несколько других отправились в лазарет. Кое-кто выглядел очень скверно, " +"мне сейчас даже любопытно, не из них ли появились наши первые ." #: lang/json/talk_topic_from_json.py -msgid "What about your parents?" -msgstr "Что с твоими родителями?" +msgid "How did you get out of lockup?" +msgstr "Как ты выбрался из камеры?" #: lang/json/talk_topic_from_json.py -msgid "What got you out of there?" -msgstr "Почему ты ушёл оттуда?" +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" +"Я слышал выстрелы даже из камеры в подвале. Не было особо много криков или " +"типа того. Тогда я начал соображать, что что-то не так. Перестали приносить " +"еду. Вырубился свет. Я сидел внизу часы, может, дни, когда меня наконец " +"ослепил свет сквозь решётку. Охранник. Он выпустил меня и рассказал, что " +"происходит. Мне хотелось думать, что он спятил, но что-то в его глазах... Я " +"поверил ему." + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +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." +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" -"Я не тупой. Я знал, что их нет. Кто знает, где они... Может, в убежище, " -"может, в лагере МЧС. Большинство погибло." +"Мы выпустили остальных из камер. Мы застряли в участке, сторожевые роботы " +"взбесились и не выпускали никого наружу, а все остальные, кроме нашего " +"охранника, теперь стали . Несколько дней мы разбивали зомби и " +"пытались придумать, как проскочить мимо роботов. Еда быстро кончилась. " +"Наконец мы выбрали самый худший и единственный план, что у нас был: мы " +"притащили шкафчики в вестибюль, прикрылись ими как щитами и толкали вперёд, " +"пока не подобрались достаточно близко, чтоб разбить сенсоры роботов своим " +"оружием." #: lang/json/talk_topic_from_json.py -msgid "What got you out of the house?" -msgstr "Почему ты покинул дом?" +msgid "Did that actually work?" +msgstr "Сработал ли план?" #: lang/json/talk_topic_from_json.py msgid "" -"Eventually the zombies came. I figured they would. Before the net cut out," -" there were plenty of videos online making it clear enough what was going " -"on. I'd picked out some good gear and loaded my bag up with supplies... " -"When they started knocking at the door, I slipped out the back and took to " -"the street. And here I am." +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" -"В конце концов пришли зомби. Я понял, что они придут. Пока интернет ещё " -"работал, было полно онлайн-видео, по которым стало ясно, что происходит. Я " -"набрал кое-какое снаряжение и набил сумку припасами... Когда они застучали в" -" дверь, я выбежал через заднюю дверь и пошел к улицам. И вот я здесь." +"Вот честно, сработало лучше, чем я ожидал. Мы думали, роботы расстреляют " +"шкафчики, но наверное, они перепутали нас со своими родственниками. Нас было" +" шестеро, их четверо, и четверо наших смогли выбраться." #: lang/json/talk_topic_from_json.py -msgid "I was in jail for , but I escaped. Hell of a story." +msgid "What happened to the others that made it?" +msgstr "Что стало с остальными выжившими?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" -"Когда случился , я сидел в тюрьме, но сбежал. Та ещё история." +"Охранник ушёл сам. Он нам не доверял, и я его не виню. Остальные двое хотели" +" сколотить банду. Мне пришлось не по душе, так что мы расстались по-" +"хорошему. Я пересекался с охранником ещё пару раз. Думал, что он может " +"согласиться путешествовать вместе, но не знаю. Не думаю, что он бы принял " +"предложение, я всегда буду преступником в его глазах. Если хочешь " +"попробовать, я скажу, где в последний раз его видел незадолго до встречи с " +"тобой. У него всё было неплохо, он всё ещё может быть там же." #: lang/json/talk_topic_from_json.py msgid "" @@ -129089,6 +131321,220 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "Круто. Что ты там говорил?" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" +"Моя история. Гм. Ничего особенного. Я знал людей, но они вознеслись к " +"Господу. Я не понимаю, почему Он не забрал и меня, но в своё время всё " +"прояснится, наверное." + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "Ты в религиозном смысле, или...?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" +"Разумеется. Всё же и так понятно, нет? Та... та катастрофа, это было " +"Вознесение. Я всё ещё здесь, и я всё еще не понимаю, почему. Я буду хранить " +"Иисуса в своём сердце в грядущих временах Великой Скорби. Когда времена " +"пройдут, я уверен, Он пригласит меня в Рай. Или... или что-то такое. Всё " +"идёт не так, как я ожидал, но таково пророчество для тебя." + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "А что, если ты ошибаешься?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "Что ты будешь делать?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" +"Чего? Как ты можешь заявлять такое? Я не верю, что ты смотришь на всё это и " +"думаешь, что это не конец света. Мёртвые воскресли, врата самого Ада " +"распахнулись, Звери Сатаны бродят по Земле, а Праведные вознеслись в Царство" +" Божье. Какие ещё доказательства тебе нужны?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "Что ты будешь делать?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"Я буду хранить веру, и молиться, и сражать приспешников Ада везде, где " +"увижу. Это всё, что мы с тобой можем, не так ли? Возможно, мы и есть " +"кроткие, что Землю унаследуют. Хотя наши шансы мне не нравятся." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" +"То же, что и раньше. Я отвернулся от Господа и теперь расплачиваюсь. " +"Вознесение прошло, а я остался. Так что теперь я буду бродить по Аду на " +"Земле. Хотелось бы мне с большим рвением посещать воскресную школу." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"Я жил один на старой семейной ферме вдали от города. Моя жена умерла чуть " +"более месяца до того, как всё началось... рак. Я потерял её такой молодой, " +"но теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно " +"просидел какое-то время взаперти. Когда по новостям заговорили про китайское" +" биооружие и спящих агентов и показали бунты в Бостоне и всё такое, я " +"устроился поудобнее с банкой супа и переключил канал." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"Я жила одна на старой семейной ферме вдали от города. Мой муж умер чуть " +"более месяца до того, как всё началось... рак. Я потеряла его таким молодым," +" но теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно" +" просидела какое-то время взаперти. Когда по новостям заговорили про " +"китайское биооружие и спящих агентов и показали бунты в Бостоне и всё такое," +" я устроилась поудобнее с банкой супа и переключила канал." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" +"Что ж, всё понемногу нарастало. Пошёл кислотный дождь, он сжёг один из моих " +"тракторов. Не то чтоб мне приходилось работать в поле со времён... да, " +"прошёл целый, , год, а ничего полезного так и не сделано. Потом " +"начались взрывы и всё такое, и вертолёты кругом. Мне стало страшно, я сидел " +"с задёрнутыми шторами и переключал каналы. И вот однажды переключать стало " +"нечего. Просто чрезвычайные сообщения, снова и снова." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" +"Это стало первым, что меня по-настоящему потрясло. У меня на самом деле " +"никогда не было очень близких друзей, но в городе остались важные для меня " +"люди. Я послал несколько сообщений, но так и не сообразил, что за несколько " +"дней ответ так и не пришёл. Я сел в грузовик и поехал в город, но очень " +"скоро мне попался и авария поперёк шоссе, наполненная такими же. И " +"вот тогда всё наконец начало вставать на свои места. К сожалению, за мной на" +" ферму пробрались , и мне пришлось свалить оттуда. Когда-нибудь " +"нужно будет добраться туда и очистить её." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" +"Что ж, я жил на окраине маленького городка. Магазинчик, бензоколонка и едва " +"ли что-то ещё. Мы слышали о какой-то херне в городе, но сами ничего не " +"видели, пока не прибыли военные и не начали разбивать тут лагерь. Они хотели" +" запереть нас всех в городке, но мне такое пришлось не по душе. Поэтому мы с" +" моим псом Баком убежали, пока военные щёлкали еблом." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" +"Мы с Баком ускользнули и отправились на Восток к ранчо моего дружбана. Милый" +" маленький пёсик думал, что мы просто идём на очень длинную прогулку. Я не " +"мог взять грузовик, иначе военные мигом бросились бы в погоню. Мы добрались " +"до леса, немного отдохнули и пошли снова. Сначала мы немного шли вдоль " +"шоссе, но видели слишком много военных грузовиков и автобусов с беженцами, и" +" вот тогда нам встретились ." + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "Где сейчас Бак?" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Догадываюсь, к чему всё идёт. " + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "Догадываюсь, к чему всё идёт. " + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" +"Мы дошли до ранчо моего приятеля, но федералы, , появились там " +"раньше. Всё было заколочено и перекрыто полицейской баррикадой. Одна из " +"этих, , турелей... , подстрелила Бака. Едва не убила и меня " +"тоже. Я сумел забрать своего щеночка... забрать его оттуда, это... это было " +"нелегко, пришлось прикрываться дверью полицейской машины как щитом и сперва " +"убить зомби-копа. А потом, ну, пока я рыдал, Бак вернулся. Мне пришлось... " +". Я... я не могу сказать. Ты знаешь." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Мне жаль Бака. " + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "Мне жаль Бака. " + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -129276,6 +131722,82 @@ msgstr "" "Наверно, я вырубился ненадолго. Очнулся и, пока я вылезал наружу, остальные " "начали возвращаться к жизни. Если вкратце, я выжил, они нет, и я убежал." +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" +"О, это целая история. случился прямо в день моей свадьбы." + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "О, прости..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" +"Да, если теперь посмотреть назад, не самый лучший выбор даты, ага? Но " +"признаю, мне было страшно. Так или иначе, мы обручались в церкви. К счастью," +" мне повезло опоздать на церемонию... Похоже, самые свежие трупы с кладбища " +"воскресли и напали на гостей." + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "Что ты делал дальше?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "Ты удивительно спокойно всё это говоришь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" +"После всего увиденного я повернулся и убежал в противоположном направлении. " +"Я видел фильмы про зомби. Я взял кое-какие вещи из дома и сумел выбраться из" +" города, прежде чем всё стало по-настоящему плохо. Тогда я считал себя " +"трусом, но сейчас я знаю, что если б я остался и помог, превратился бы в ещё" +" один слюнявый труп." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Что ж, у меня есть странная надежда, может, и тупая. Я видел, как моя " +"невеста уезжала со своим братом - моим свадебным свидетелем - в его пикапе, " +"когда началась вся хрень. Так что, пока я любым образом их не встречу, я всё" +" ещё буду верить, что они где-то там, и у них всё хорошо. Это больше, чем " +"есть у многих из нас." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Что ж, у меня есть странная надежда, может, и тупая. Я видела, как мой жених" +" уезжал со своей сестрой - моей подружкой невесты - в её пикапе, когда " +"началась вся хрень. Так что, пока я любым образом их не встречу, я всё ещё " +"буду верить, что они где-то там, и у них всё хорошо. Это больше, чем есть у " +"многих из нас." + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "О чём ты там говорил?" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Здарова, добытчик." @@ -130668,6 +133190,44 @@ msgstr "Вы наносите фазовый удар по %s" msgid " phase-strikes %s" msgstr " наносит фазовый удар по %s" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "Толчок" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "Вы отталкиваете %s прочь" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr " отталкивает %s прочь" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "Вы ловко делаете подножку %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr " ловко делает подножку %s" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "Перемещение и контратака" @@ -133676,6 +136236,10 @@ msgid "" "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" @@ -133687,6 +136251,8 @@ 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 "column" @@ -134425,6 +136991,26 @@ msgstr "вязания" msgid "bullet pulling" msgstr "извлечения пуль" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "анализа" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "концентрации" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "сепарации" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "тонкой перегонки" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "хроматографии" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "свёрнутый коврик" @@ -135343,6 +137929,18 @@ msgstr "пустой" msgid "canoe" msgstr "каноэ" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "грузовик-амфибия" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "каяк" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "гоночный каяк" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "плот" @@ -135409,7 +138007,7 @@ msgstr "боевая машина пехоты" #: lang/json/vehicle_from_json.py msgid "work light" -msgstr "" +msgstr "рабочее освещение" #: lang/json/vehicle_part_from_json.py msgid "null part" @@ -136902,11 +139500,22 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." msgstr "" -"Очень яркий широкоугольный прожектор, который освещает территорию снаружи " -"автомобиля, когда включён." +"Очень яркий круговой прожектор. Когда включён, освещает область снаружи " +"транспортного средства." + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." +msgstr "" +"Очень яркий направленный прожектор. Когда включён, освещает полукруглую " +"область снаружи транспортного средства. Во время установки можно выбрать, " +"куда направить свет." #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -136925,6 +139534,23 @@ msgstr "" "несколькими фарами можно осветить пространство не только спереди, но также " "по бокам и позади автомобиля." +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "широкоугольная фара" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" +"Яркий прожектор. Когда включён, освещает область широким конусом снаружи " +"транспортного средства. Во время установки можно выбрать, куда направить " +"свет, так что несколькими прожекторами можно подсветить боковые стороны, " +"заднюю или переднюю часть." + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -137262,6 +139888,38 @@ msgstr "широкое колесо (управляемое)" msgid "A wooden wheel." msgstr "Деревянное колесо." +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "Деревянный борт удерживает воду снаружи вашей лодки." + +#. ~ 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 "Жёсткий пластиковый борт удерживает воду снаружи вашей лодки." + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "Металлический борт удерживает воду снаружи вашей лодки." + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" +"Лёгкий и жёсткий борт из высокотехнологичного углеволокна удерживает воду " +"снаружи вашей лодки." + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "вёсла" @@ -139027,6 +141685,12 @@ msgstr "Этот инструмент хорош, но вы бы всё равн msgid "You dissect the corpse with a trusty scalpel." msgstr "Вы разделываете тушу своим верным скальпелем." +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "Вы разделываете тушу сложной системой хирургических скальпелей." + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -139500,8 +142164,8 @@ msgid "Repeat once" msgstr "Повторить один раз" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "Повторять пока возможно" +msgid "Repeat until reinforced" +msgstr "Повторять до укрепления" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -139511,11 +142175,24 @@ msgstr "Повторять до полного ремонта, но не укр msgid "Repeat until success/failure/level up" msgstr "Повторять до успеха/поломки/усиления" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "Назад к меню выбора предмета" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "Ваш %s разряжен." +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "Что починить?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "У вас нет предметов, которые может отремонтировать %s." + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "Вы больше ничему не научитесь при помощи этого." @@ -139523,13 +142200,18 @@ msgstr "Вы больше ничему не научитесь при помощ #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" msgstr "" -"%s\n" -"Шанс успеха: %.1f%%\n" -"Шанс повреждения: %.1f%%" +"%s %s\n" +"Шанс успеха: %.1f%%\n" +"Шанс повреждения: %.1f%%" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." +msgstr "%s уже полностью починен." #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -139583,6 +142265,11 @@ msgstr "Вы закончили ждать." msgid "%s finishes with you..." msgstr "%s заканчивает с вами..." +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "%s заканчивает болтать с вами." + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "Вы ворочаетесь и крутитесь..." @@ -139658,6 +142345,11 @@ msgstr "Вы закончили копать %s." msgid "You finish filling up %s." msgstr "Вы закончили закапывать %s." +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "Игра с %s подняла вам настроение." + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "Вы открыли свой набор и побрились." @@ -139666,6 +142358,20 @@ msgstr "Вы открыли свой набор и побрились." msgid "You give your hair a trim." msgstr "Вы подстриглись." +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "Вы разбираете %s." + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "Вы разряжаете %s." + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "Вы собрали урожай со всех возможных участков." + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "Вы вспахиваете землю." @@ -139674,6 +142380,15 @@ msgstr "Вы вспахиваете землю." msgid "You tilled every tile you could." msgstr "Вы вскопали все доступные участки." +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "У вас закончился %s" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "Вы удобрили все возможные участки." + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "Вы посадили все доступные семена." @@ -139734,7 +142449,7 @@ msgid_plural "Your %s tumble into the %s's %s." msgstr[0] "Ваш %s падает в %s %s." msgstr[1] "Ваши %s падают в %s %s." msgstr[2] "Ваши %s падают в %s %s." -msgstr[3] "Ваш %s падает в %s %s." +msgstr[3] "Ваши %s падают в %s %s." #: src/activity_item_handling.cpp #, c-format @@ -140991,6 +143706,10 @@ msgstr "" "регулярно, но почти незаметно уменьшается и увеличивается в размерах, словно" " дышит" +#: src/artifact.cpp +msgid "dead" +msgstr "мёртвый" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "ледяной на ощупь" @@ -142343,8 +145062,11 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "Энергия: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" +"Бионическая энергия: " +"%i/%i" #: src/bionics_ui.cpp msgid "" @@ -143011,7 +145733,7 @@ msgstr "Ожидаемое улучшение качества: %s" #: src/character.cpp msgid "You don't expect any improvement from using this." -msgstr "Вы не думаете, что с этим может получиться лучше." +msgstr "Применение этого предмета не даст никакого улучшения." #: src/character.cpp #, c-format @@ -143063,7 +145785,7 @@ msgstr "Здорово." #: src/character.cpp msgid "You don't expect any effect from using this." -msgstr "Вы не думаете, что использования будет какой-то эффект." +msgstr "Применение этого предмета не принесёт никакой пользы." #: src/character.cpp msgid "No limb would benefit from it." @@ -143891,12 +146613,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ФАЙЛ ПОВРЕЖДЁН, НАЖМИТЕ ЛЮБУЮ КЛАВИШУ…" #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." -msgstr "" -"Машина вводит в ваш глаз раствор \n" -"из перемолотых костей и ЛСД." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "Машина быстро выправляет вашу сломанную %s и накладывает шину." #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -144992,6 +147711,62 @@ msgstr "Вы наелись сладкого мёда." msgid "You can't finish it all!" msgstr "Вы не осилили всю порцию до конца!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "Тени сгущаются ещё сильнее." + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "У вас плохое предчувствие." + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "Вас охватывает сильный ужас." + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "По вашей коже ползут мурашки." + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "Они идут за вами." + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "Наверно, это была плохая идея..." + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "На этот раз вы доигрались." + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "Нужно сохранять бдительность. Они всегда смотрят..." + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "ошибка ошибка ошибка ошибка ошибка" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "Просто спокойствие, и вы справитесь." + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "Вы чувствуете себя очень нервно." + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "Что-то дёргается на краю вашего зрения." + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "Они знают, что ты наделал..." + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "Вы чувствуете ещё большую паранойю, чем обычно." + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "Вы объелись, готовясь к спячке." @@ -145514,13 +148289,10 @@ msgstr "показать или нет запомненныеExamples:\n" msgstr "" -"По умолчанию используется поиск по именам. Некоторые односимвольные префиксы можно использовать с помощью двоеточия (:) для поиска другими методами.\n" -"\n" -"Примеры:\n" #: src/crafting_gui.cpp msgid "shirt" @@ -145612,7 +148384,7 @@ msgstr "Вы уклонились от приближающегося снаря #: src/creature.cpp msgid " avoids an incoming projectile." -msgstr " уклоняется от приближающегося снаряда %s!" +msgstr " уклоняется от приближающегося снаряда." #: src/creature.cpp msgid "Headshot!" @@ -145811,7 +148583,7 @@ msgstr "Где находится желаемая overmap?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "Вы телепортируетесь к overmap (%d,%d,%d)." -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "Вы" @@ -151844,6 +154616,10 @@ msgstr "Показать отладочное сообщение" msgid "Crash game (test crash handling)" msgstr "Вылет игры (тест обработки вылета)" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "Выйти в главное меню" @@ -152192,22 +154968,25 @@ msgid "Underground" msgstr "Под землёй" #: src/game.cpp -msgid "Weather:" +msgid "Weather :" msgstr "Погода:" #: src/game.cpp -msgid "Temperature:" -msgstr "Температура:" - -#: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "Луна %s" +msgid "Temp :" +msgstr "" #: src/game.cpp msgid "Lighting:" msgstr "Освещение:" +#: src/game.cpp +msgid "Deaf!" +msgstr "Глухота!" + +#: src/game.cpp +msgid "Sound: " +msgstr "Звук: " + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -152518,6 +155297,11 @@ msgstr "Выбросить всё" msgid "Attach bag" msgstr "Добавить сумку" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "Поиграть с %s" + #: src/game.cpp msgid "Untie" msgstr "Развязать" @@ -152592,6 +155376,11 @@ msgstr "%1$s перегружен. Вы не можете перенести %2$ msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "%2$s (%1$s) не содержит достаточно места, это слишком громоздко!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "Поиграть немного с %s?" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "Точно убить зомби-раба?" @@ -152990,11 +155779,11 @@ msgstr ", чтобы добавить в чёрный список безоп #: src/game.cpp msgid "to look around" -msgstr "осмотреться" +msgstr ", чтобы осмотреться" #: src/game.cpp msgid "to shoot" -msgstr "выстрелить" +msgstr ", чтобы выстрелить" #: src/game.cpp #, c-format @@ -153385,63 +156174,6 @@ msgstr "У вас нет ничего, что можно было бы разр msgid "You're not wielding anything." msgstr "Вы ничего не держите в руках." -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "Вы убираете %s в свой инвентарь." - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "Этот %s уже пуст!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "Жидкость не может быть вылита в таком состоянии!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "Разрядить что?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "Вы не можете разрядить %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "Вы не можете разрядить перезаряжаемый %s!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "Ваш %s не заряжен." - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "%s не заряжен." - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "Вы разбираете %s." - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "Вы разряжаете %s." - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "Вы получаете %i неиспользованного плутония." - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "Вы не можете убрать частично обеднённый уран!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -154962,10 +157694,6 @@ msgstr "Да." msgid "Yes, and save game before sleeping." msgstr "Да, и сохранить игру перед сном." -#: src/handle_action.cpp -msgid "No." -msgstr "Нет." - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "Возможно, вы захотите отключить это перед тем, как лечь спать." @@ -155051,6 +157779,26 @@ msgstr "" "указать, какой участок предназначен для каких семян, также вы должны иметь " "семена в инвентаре." +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "Удобрить зоны" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "Удобрить зоны? У вас нет удобрений" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "Удобрить все ближайшие зоны типа \"Фермерство: участок\"." + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "Собрать урожай с зон" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "Собрать все созревшие растения с зон типа \"Фермерство: участок\"" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "Вам нужен инструмент, которым можно копать." @@ -155819,10 +158567,23 @@ msgstr "Семена расцветают довольно быстро..." msgid "The seed blossoms into a flower-looking fungus." msgstr "Семя превращается в похожий на цветок гриб." +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "На тайле - не растение" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "Тайл уже удобрен" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "Вы уже удобряли %s." +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "Вы удобряете %s с помощью %s." #: src/iexamine.cpp #, c-format @@ -155838,6 +158599,11 @@ msgstr "Удобрить %s" msgid "Use which fertilizer?" msgstr "Какое удобрение использовать?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "Вы уже удобряли %s." + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "Эта печь уже содержит древесный уголь." @@ -157437,7 +160203,7 @@ msgstr "Стимуляция:" #: src/item.cpp msgid "Downer" -msgstr "Ниже" +msgstr "Депрессант" #: src/item.cpp msgid "Upper" @@ -157758,6 +160524,10 @@ msgstr "Модификатор перезарядки: " msgid "Minimum strength required modifier: " msgstr "Модификатор минимально требуемой силы: " +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "Добавляет слоты модификаций: " + #: src/item.cpp msgid "Used on: " msgstr "Пригодно для: " @@ -157766,6 +160536,10 @@ msgstr "Пригодно для: " msgid "Location: " msgstr "Размещение: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "Несовместимо со слотом модификации: " + #: src/item.cpp msgid "Covers: " msgstr "Покрывает: " @@ -158682,6 +161456,11 @@ msgstr "Нельзя присоединить гильзоуловитель" msgid "must be unloaded before installing this mod" msgstr "необходимо разрядить перед установкой этой модификации" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "нельзя установить на оружие с \"%s\"" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -160237,15 +163016,15 @@ msgstr "Вы атакуете %1$s, используя %2$s." #: src/iuse.cpp msgid "buzzing" -msgstr "" +msgstr "жужжание" #: src/iuse.cpp msgid "clicking" -msgstr "" +msgstr "щёлканье" #: src/iuse.cpp msgid "rapid clicking" -msgstr "" +msgstr "быстрое щёлканье" #: src/iuse.cpp msgid "The geiger counter buzzes intensely." @@ -161404,13 +164183,8 @@ msgid "No music on device" msgstr "Нет музыки в устройстве" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "Рецепт: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "Просмотреть рецепт на экране с электронными чернилами" +msgid "View recipes on E-ink screen" +msgstr "Просмотреть рецепты на планшете" #: src/iuse.cpp msgid "Your collection of monsters" @@ -161479,13 +164253,8 @@ msgid "You turned on music on your %s." msgstr "Вы включаете музыку на вашем %s." #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "Выберите рецепт:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "Вы листаете экран планшета, чтобы посмотреть рецепт %s." +msgid "List recipes:" +msgstr "Список рецептов:" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -161541,10 +164310,6 @@ msgstr "Загрузить фото на карту памяти" msgid "No photos in memory" msgstr "Нет фото в памяти" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "Вы решаете не слепить себя вспышкой." - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "Здесь ничего особенно интересного." @@ -161577,6 +164342,10 @@ msgstr "%s оказывается на линии фотографировани msgid "This photo is better than the previous one." msgstr "Это фото лучше предыдущего." +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "Вы сделали селфи." + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -162792,7 +165561,7 @@ msgstr "Этот предмет (%1$s) слишком тяжёл для %2$s!" #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" -msgstr "Вы не думаете, что положить ваш %1$s в ваш %2$s это хорошая идея." +msgstr "Вы думаете, что положить %1$s в %2$s - не очень хорошая идея." #: src/iuse_actor.cpp #, c-format @@ -162895,15 +165664,6 @@ msgstr "Недостаточно света, чтобы сделать это!" msgid "Your tool does not have enough charges to do that." msgstr "В вашем инструменте не хватает зарядов для этого." -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "Что починить?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "У вас нет предметов, которые может отремонтировать %s." - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -163190,12 +165950,6 @@ msgstr "У вас и так установлена улучшенная верс msgid "Remove which modification?" msgstr "Какую модификацию снять?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "Вы вынимаете %1$s из %2$s." - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "Не установлены никакие модификации." @@ -164766,6 +167520,10 @@ msgstr "Можно разбить. " msgid "Diggable. " msgstr "Можно копать. " +#: src/map.cpp +msgid "Plowable. " +msgstr "Можно пахать." + #: src/map.cpp msgid "Rough. " msgstr "Неровное. " @@ -166938,6 +169696,21 @@ msgstr "Этот мод требует поддержки LuaLua support" msgstr "Этот мод требует поддержки Lua." +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "%s выстрелил в вас дротиком, но вы уворачиваетесь от него!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s выстрелил в вас дротиком!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "%s выстрелил в вас дротиком, но он отскакивает от вашей брони!" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -167572,11 +170345,6 @@ msgstr "Вы сопротивляетесь попыткам существа (% msgid " resist the %s as it tries to drag them!" msgstr " сопротивляется попыткам существа (%s) утянуть его!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s выстрелил дротиком в вас!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "Вы чувствуете, что яд попал в ваш организм!" @@ -168665,10 +171433,42 @@ msgstr "Очень тяжёлые ранения." msgid "It is nearly dead!" msgstr "Оно при смерти!" +#: src/monster.cpp +msgid " Difficulty " +msgstr " Сложность " + +#: src/monster.cpp +msgid "Difficulty " +msgstr "Сложность " + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "Минимальная опасность." + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "Небольшая опасность." + +#: src/monster.cpp +msgid "Dangerous." +msgstr "Опасен." + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "Очень опасен." + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "Чрезвычайно опасен." + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "Смертельно опасен!" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "Это %s. %s" +msgid "This is a %s. %s %s" +msgstr "Это %s. %s %s" #: src/monster.cpp #, c-format @@ -169493,12 +172293,12 @@ msgstr "очков" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(Нажмите %s, чтобы поменять)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "Сортировать..." +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" +"Сортировка: %1$s (нажмите " +"%2$s, чтобы сменить)" #: src/newcharacter.cpp msgid "Multiple pools" @@ -170113,14 +172913,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "В руках %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "Надето: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "В руках: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "Совсем не доверяет" @@ -170751,6 +173547,10 @@ msgstr "Если вам интересно, мне бы пригодилась msgid " If you are interested, I have another job for you." msgstr " Если тебе интересно, то у меня есть для тебя другая работа." +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "Приятно иметь с тобой дело!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "Ты уже спрашивал о снаряжении; спроси попозже." @@ -171140,17 +173940,17 @@ msgstr "Да, давай продолжим тренировку " msgid "%s ( cost $%d )" msgstr "%s (цена $%d)" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (цена $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "Ладно, спасибо." @@ -171327,14 +174127,14 @@ msgstr "Не ломать препятствия." msgid "You can bash obstacles." msgstr "Можно ломать препятствия." -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "Можно ложиться спать, если устанешь." - #: src/npctalk.cpp msgid "Stay awake." msgstr "Не ложиться спать." +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "Можно ложиться спать, если устанешь." + #: src/npctalk.cpp msgid "Stay quiet." msgstr "Тихо." @@ -171351,14 +174151,14 @@ msgstr "Оставить трупы в покое." msgid "Smash zombie corpses." msgstr "Разбивать трупы зомби." -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "Закрывать двери." - #: src/npctalk.cpp msgid "Leave doors open." msgstr "Оставлять двери открытыми." +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "Закрывать двери." + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "Установить правила сбора." @@ -171441,7 +174241,7 @@ msgstr "Здесь нет лагеря, чтобы его занять!" msgid "%s has abandoned the camp." msgstr "%s забрасывает лагерь." -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "кулаки" @@ -171510,6 +174310,23 @@ msgstr "%1$s даёт вам %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "%1$s даёт вам %2$d %3$s" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "У вас нет %1$s!" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "Вы отдаёте %2$s %1$s" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "Вы отдаёте %2$d %3$s %1$s" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "Я не верю тебе настолько, чтобы, , есть ЭТО..." @@ -171662,6 +174479,16 @@ msgstr "%s прилично вас постриг..." msgid "%s gives you a decent shave..." msgstr "%s прилично вас побрил..." +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "Было приятно пообщаться с %s..." + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "Было приятно пообщаться с %s." + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -173026,7 +175853,7 @@ msgstr "Действие при конце мира" #: src/options.cpp msgid "Handling of game world when last character dies." -msgstr "Что делать с миром, когда в нём умирает последний персонаж" +msgstr "Что делать с миром, когда в нём умирает последний персонаж." #: src/options.cpp msgid "Keep" @@ -173891,13 +176718,14 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "Пример: -pipe,-chunk,-steel" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "Поиск по [c]категории, [m]материалу, или [q]качеству:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "" +"Поиск по [c] категории, [m] материалу [q] качеству или [d] компонентам:" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "Например: c:food,m:iron,q:hammering" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "Например: c:food,m:iron,q:hammering,d:pipe" #: src/output.cpp msgid "unknown" @@ -174244,6 +177072,10 @@ msgstr "Поймать или выпустить существо" msgid "Load or unload a vehicle" msgstr "Загружать или выгружать транспорт" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "Положить семена в сеялку" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -174406,6 +177238,11 @@ msgstr "Вы ставите %1$s на %2$s, чтобы избежать разл msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr " ставит %1$s на %2$s, чтобы избежать разлива содержимого." +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "ты" + #: src/player.cpp msgid "your" msgstr "ваш" @@ -174714,8 +177551,11 @@ msgstr "Всего бионики: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "Энергия: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" +"Бионическая энергия: " +"%d/%d" #: src/player.cpp msgid "Weapon:" @@ -174801,6 +177641,14 @@ msgstr "ваш громкий выкрик!" msgid "The sound of your voice is almost completely muffled!" msgstr "Звук вашего голоса практически полностью заглушён!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "неразборчивый голос" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "ваш приглушённый выкрик" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "Звук вашего голоса значительно заглушён!" @@ -175476,10 +178324,6 @@ msgstr "Почему ты меня преследуешь?" msgid "This place is dangerous, you shouldn't be here." msgstr "Здесь опасно, тебе не следует здесь находиться." -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "Что ты здесь делаешь?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "Это же неправда, так ведь?" @@ -175778,11 +178622,6 @@ msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "" "Вы чувствуете аномальные ощущения, поступающие от ваших сенсоров излучения." -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "Ваш плёночный дозиметр сменил свой цвет с %1$s на %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "Ваша грудь горит, так как ваши энергосистемы перегружены!" @@ -175932,6 +178771,11 @@ msgstr "Ваши трясущиеся ноги заставляют вас сп msgid "You fall over!" msgstr "Вы падаете!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "Ваш плёночный дозиметр сменил свой цвет с %1$s на %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -176411,6 +179255,53 @@ msgstr "Вы не можете положить сюда предметы!" msgid " can't place items here!" msgstr " не может положить сюда предметы!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "Вы убираете %s в свой инвентарь." + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "Этот %s уже пуст!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "Жидкость не может быть вылита в таком состоянии!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "Разрядить что?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "Вы не можете разрядить %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "Вы не можете разрядить перезаряжаемый %s!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "Ваш %s не заряжен." + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "%s не заряжен." + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "Вы получаете %i неиспользованного плутония." + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "Вы не можете убрать частично обеднённый уран!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -176429,6 +179320,12 @@ msgstr[1] "Ваш %s имеет %d заряда, а нужно как миним msgstr[2] "Ваш %s имеет %d зарядов, а нужно как минимум %d." msgstr[3] "Ваш %s имеет %d заряд, а нужно как минимум %d." +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "Вы вынимаете %1$s из %2$s." + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -176892,6 +179789,10 @@ msgstr "" msgid "You resume your task." msgstr "Вы возобновили действие." +#: src/player.cpp +msgid "Weapon : fists" +msgstr "Weapon: кулаки" + #: src/player.cpp msgid "Wield what?" msgstr "Что взять в руки?" @@ -176930,6 +179831,14 @@ msgstr "Вы перестали тащить предметы." msgid "Your body strains under the weight!" msgstr "Ваше тело напряжено под такой тяжестью!" +#: src/player.cpp +msgid "Wielding: " +msgstr "В руках: " + +#: src/player.cpp +msgid " Traits: " +msgstr " Черты: " + #: src/player.cpp #, c-format msgid "You (%s)" @@ -177146,8 +180055,8 @@ msgstr "СКОВАННОСТЬ И КОМФОРТ" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "Бионическая энергия: %1$d" +msgid "Bionic Power: %1$d" +msgstr "Бионическая энергия: %1$d" #: src/player_display.cpp msgid "EFFECTS" @@ -177683,14 +180592,6 @@ msgstr "Стала жертвой приступа астмы." msgid "You wheeze and gasp for air." msgstr "Вы хрипите и пытаетесь сделать глоток воздуха." -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "Ваши кости словно резина, легко восстанавливают свою форму." - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "Ваши кости словно трещат и крошатся." - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "У вас слегка болит голова." @@ -178492,15 +181393,6 @@ msgstr "Очень холодно!%s" msgid "Freezing!%s" msgstr "Замерзание%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "Глухота!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "Шум %d" - #: src/sidebar.cpp msgid "Parched" msgstr "Пересохший" @@ -179802,6 +182694,21 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "Ускорение: %3d %s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" +"Безоп./макс скорость на воде: " +"%3d/%3d %s" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "Ускорение на воде: %3d %s/ход" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -179809,21 +182716,24 @@ msgstr "Масса: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "Грузоподъёмность: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" +"Грузоподъёмность: %s / " +"%s %s" #: src/veh_interact.cpp msgid "Status:" msgstr "Состояние:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "Самое повреждённое (невозможно починить):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "Самое повреждённое:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "Самое повреждённое (невозможно починить):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "Необходим ремонт:" @@ -179853,6 +182763,11 @@ msgstr "Трение покоя: %5d" msgid "Offroad: %4d%%" msgstr "По бездорожью: %4d%%" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "Осадка: %4.2f м" + #: src/veh_interact.cpp msgid "Name: " msgstr "Название: " @@ -180063,10 +182978,9 @@ msgid "Could not find base part in requirements for %s." msgstr "Невозможно найти основную часть в условиях для %s." #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "" -"Выберете направление для новой фары. Нажмите пробел, чтобы продолжить." +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "Выберите направление для %s. Нажмите пробел, чтобы продолжить." #: src/veh_interact.cpp #, c-format @@ -180153,10 +183067,10 @@ msgstr "Вы починили %2$s в машине (%1$s)." msgid "Lost connection with the vehicle due to distance!" msgstr "Потеряно соединение с транспортом из-за расстояния!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "БУХ!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -180370,13 +183284,13 @@ msgstr "завал" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s не хватает колёс для езды!" +msgid "The %s is too leaky!" +msgstr "%s слишком дырявый!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s слишком дырявый!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s не хватает колёс для езды!" #: src/vehicle_move.cpp #, c-format @@ -180603,6 +183517,14 @@ msgstr "Закрыть все занавески и двери" msgid "headlights" msgstr "фары" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "широкоугольные фары" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "направленная мигалка" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "мигалку" @@ -180860,18 +183782,23 @@ msgstr "Похоже, транспортное средство (%1$s) оста #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s издаёт долгий пикающий звук." +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s издаёт одиночный щёлкающий звук." +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s издаёт быстрый щёлкающий звук." +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -180880,8 +183807,8 @@ msgstr "%s быстро гаснет." #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s издаёт ужасный лязгающий звук." +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -180901,6 +183828,11 @@ msgstr "«БИИИП!»" msgid "You honk the horn, but nothing happens." msgstr "Вы сигналите, но ничего не происходит." +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "Сколько перенести? [Имеется %d] (0 — отмена)" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "простая мелодия звучит из громкоговорителей. " diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index c7c4a449314ef..0ded56bc6a7d2 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -22,16 +22,18 @@ # fei li , 2018 # Jianxiang Wang , 2018 # 何方神圣 何 <1366003560@qq.com>, 2018 -# Amans Tofu , 2018 -# cainiao , 2018 +# 等离子 坦克 , 2019 +# Amans Tofu , 2019 +# Dao Da , 2019 +# cainiao , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: cainiao , 2018\n" +"Last-Translator: cainiao , 2019\n" "Language-Team: Chinese (China) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -74,7 +76,7 @@ msgstr "美分" #. ~ Description for software #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "美元的一种,也是硬币的一种,此物品无实际意义,是一个你本不该见到的Bug。" +msgstr "如 果 你 看 到 本 句 意 味 着 这 有 一 个 BUG!" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -4902,7 +4904,20 @@ msgstr[0] "游牧装" msgid "" "A makeshift outfit made from pre-cataclysm clothing designed for long " "travels. It has a lot of storage space." -msgstr "一套由大灾变前的衣物制作的临时服装,有大量的储存空间,专为长途旅行设计。" +msgstr "一套由大灾变前的衣物制作的自制服装,有大量的储存空间,专为长途旅行设计。" + +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "轻型游牧装" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "一套由大灾变前的衣物制作的轻便自制服装,有大量的储存空间,专为夏季长途旅行设计。相较于普通游牧装,储存空间和护甲较低。" #: lang/json/ARMOR_from_json.py msgid "plated leather armor" @@ -4949,7 +4964,7 @@ msgid "" "A sturdy scavenger's outfit made from refitted pre-cataclysm protective " "gear. It has a lot of storage space." msgstr "" -"一套由大灾变前的衣物制成、拥有大量储存空间的耐用临时服装。\n" +"一套由大灾变前的衣物制成、拥有大量储存空间的耐用自制服装。\n" "\"穿上它开开心心的捡破烂。\"" #: lang/json/ARMOR_from_json.py @@ -5891,6 +5906,18 @@ msgid "" "from rain." msgstr "一件带头帽和两个特大口袋的塑料大衣,保护你免受雨淋。" +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "爱斯基摩肠制大衣" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "一件经过精心缝制的防寒大衣,使用处理过的割开的动物肠子制成。因其轻便防水,在北极的土著居民中备受青睐。" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -6513,9 +6540,7 @@ msgstr[0] "毛绒猫尾" msgid "" "A fuzzy tawny tail weighted down with tiny beads of plastic. Sways behind " "you when you walk." -msgstr "" -"一串塑料小珠子吊着一条黄色毛茸茸的尾巴,当你走动时会随之摇摆,非常可爱,引人注目。\n" -"\"一件不是用来穿,而是用‘塞’的饰品。\"" +msgstr "一串塑料小珠子吊着一条黄色毛茸茸的尾巴,当你走动时会随之摇摆,非常可爱,引\"人\"注目。" #: lang/json/ARMOR_from_json.py msgid "faux fur cat tail" @@ -6539,7 +6564,7 @@ msgstr[0] "毛绒猫咪项圈" msgid "" "A decorative 'collar' made out of fur, complete with a little bell hanging " "from the front. Don't worry, it's silent." -msgstr "一个毛皮制作的装饰用的项圈,前面还配了一个不会响的小铃铛,非常可爱,引人注目。" +msgstr "一个毛皮制作的装饰用的项圈,前面还配了一个不会响的小铃铛,非常可爱,引\"人\"注目。" #: lang/json/ARMOR_from_json.py msgid "faux fur kitty collar" @@ -16431,31 +16456,31 @@ msgid "Spice" msgstr "香料" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" +msgid "Riesling" +msgid_plural "Riesling" msgstr[0] "雷斯林白葡萄酒" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "一种清新馥郁、有着多层风味的白葡萄酒,产自德国,葡萄挑选精心而严格。" #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" +msgid "Chardonnay" +msgid_plural "Chardonnay" msgstr[0] "夏敦埃白葡萄酒" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "一种酒色呈淡金色的白葡萄酒,又称莎当妮葡萄酒,口感非常柔顺且产量高,成为最流行的葡萄酒之一。" #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" msgstr[0] "赤霞珠波尔多葡萄酒" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -16481,8 +16506,9 @@ msgstr[0] "威士忌" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "一种由大麦等谷物酿制,在橡木桶中陈酿多年后,调配成43度左右的烈性蒸馏酒。" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "一种经过蒸馏的谷物酿造的高度酒,由真正的南方邦联上校制造,供真正的南部邦联上校享用!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -16491,10 +16517,10 @@ msgstr[0] "伏特加" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "" -"一种俄罗斯传统的酒精饮料,以谷物或马铃薯为原料,酒质晶莹澄澈,无色且清淡爽口,入口入烈焰般及其浓烈,最常见的鸡尾酒基酒之一。\n" -"\"同志!伏特加!\"" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "一种除了酒精和水之外而没有其他添加物的高度酒。在美国,是男人们造的伏特加,而在苏联,是伏特加造的男人。" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -16503,9 +16529,10 @@ msgstr[0] "琴酒" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "" -"一种最先由荷兰生产,在英国大量生产后闻名于世的烈酒,具有芳芬诱人的香气,无色透明,味道清新爽口,可单独饮用,也可调配鸡尾酒,并且是调配鸡尾酒中惟一不可缺少的酒种。" +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "一种使用杜松浆果调味的酒类饮料。它闻起来有点浆果的味道,但成分中大部分都还是酒。" #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -16514,9 +16541,10 @@ msgstr[0] "朗姆酒" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "" -"一种原产在古巴,口感甜润、芬芳馥郁的蒸馏酒,酒液有琥珀色、棕色,也有无色的,绰号又叫海盗之酒,因为过去横行在加勒比海地区的海盗都喜欢喝朗姆酒。" +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "一种经过蒸馏的由糖蜜发酵而成的酒类饮料。喝下它也许会让你觉得自己像个海盗。也许不会。" #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -16525,10 +16553,11 @@ msgstr[0] "龙舌兰酒" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." +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 "" -"一种呈淡琥珀色或透明无色的蒸馏酒,一口下去极其舒爽,配合着柠檬汁的清爽和气泡酒的效果更能让人心肺瞬间灼热,是墨西哥的国酒,被称为墨西哥的灵魂。\n" -"\"记得别把虫子吃下去!等等,瓶子里好像没有虫子。(注:墨西哥人常将蝴蝶幼虫浸泡在酒中)\"" +"一种经过蒸馏的使用龙舌兰酿成的酒类饮料,龙舌兰汁液丰富且叶子上长有刺。别吃虫子!等等,这瓶酒里没有虫子。(注:墨西哥药酒常用龙舌兰酒泡虫子)" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -16614,8 +16643,10 @@ msgstr[0] "长岛冰茶" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." -msgstr "一种伏特加、朗姆酒、琴酒、龙舌兰酒等几种基酒、也可以再加入冰块、白薄荷酒、柠檬汁等配料调制而成的一款鸡尾酒。" +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." +msgstr "" +"一种使用各种烈酒混合而成的鸡尾酒,具有很浓烈风味,尝起来的却不像它们中的任何一种。它实际上不含茶叶成分,不过加入的可乐让它看上去有茶一样的颜色。" #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -16623,8 +16654,10 @@ msgstr "螺丝刀鸡尾酒" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "一种将伏特加和柠檬、西柚或其他柑橘类果汁倒入牛角杯中,螺旋式搅拌后饮用的饮料,并因此而得名,口感酸甜爽口、清爽。" +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "一种使用橙汁和伏特加混合而成的鸡尾酒。这是那些偷偷摸摸的酒鬼工程师们的首选饮品。" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -16654,9 +16687,9 @@ msgstr[0] "啤酒" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." -msgstr "" -"一种大麦芽、酒花、水为主要原料,经酵母发酵作用酿制而成的饱含二氧化碳的低酒精度酒,口感清爽、刺激,有独特的酒花香味和苦味,世界上最受欢迎的饮料之一。" +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." +msgstr "一种使用啤酒花调味的谷物酒。最好是冰过,装在玻璃杯里,配上些柠檬——但你可没那么幸运吧。" #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -16713,9 +16746,10 @@ msgstr[0] "私酿威士忌" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." -msgstr "一种最强的,最纯洁的,最好的老式烈酒!保证让你忘掉这一切关于灾难的事情,或者取回曾经的愿景。" +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." +msgstr "一种经过蒸馏的使用玉米和糖酿成的高度酒,最强、最纯、最好的老式烈酒!保证让你忘掉这一切关于灾难的事情,或给你些梦一般的幻象。" #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -16725,9 +16759,9 @@ msgstr[0] "比尔森啤酒" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." -msgstr "从欧洲进口的比尔森啤酒。\"冷藏后风味更佳\"——这行字如同讽刺一般跃入眼帘。" +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." +msgstr "一种从欧洲进口的拉格淡啤酒。最好是冰过,装在玻璃杯里——但你可没那么幸运吧。" #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -16777,7 +16811,7 @@ msgstr[0] "比利时麦酒" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "一种源自比利时修道士的果酒,气味丰富又能填饱肚子。最好是能配长脚玻璃杯来饮用。" @@ -16846,9 +16880,9 @@ msgstr "可乐鸡尾酒" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." -msgstr "kalimotxo,红酒和可乐的组合,尝起来没有有些人想的那样糟糕。某些国家年轻人和穷人的最爱。" +"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 "一种使用等比例的可乐和酒精混合调成的鸡尾酒。尝起来没有想象中那样糟,听说是某些国家年轻人和穷人的最爱。" #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -17240,8 +17274,10 @@ msgstr[0] "碎肉" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." -msgstr "量不多,但能避免饿死人。" +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." +msgstr "一小块尚可食用的碎肉。虽然量不多,但是作为一道应急配菜还行。" #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -17250,8 +17286,13 @@ msgstr[0] "屠宰残渣" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." -msgstr "呃,真是恶心。" +msgid "" +"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." +msgstr "" +"呕。一团泥土、粪便、结缔组织、以及诸如毛发爪子之类物质的混合物,屠宰之后留下来的残渣。吃下它连想都不要想,但如何处理它可能是个问题,因为它可能会吸引害虫。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -17259,8 +17300,10 @@ msgstr "熟肉" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "一份经过简单烹饪的肉块,美味且十分管饱。" +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "一块经过简单烹饪的肉。能够填饱肚子,营养也还丰富,但没有调过味,吃上去有点枯燥乏味。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -17274,9 +17317,10 @@ msgstr "生内脏" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." -msgstr "一个生的器官和内脏,外观看起来很难引起食欲但充满了必需的维生素。" +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "一些混杂在一起的生内脏。富含人体所需的各种维生素,但大多数人认为它有些恶心,除非经过精心料理。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -17286,8 +17330,10 @@ msgstr[0] "熟内脏" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." -msgstr "一份煮熟的新鲜内脏,外观看起来很难引起食欲但充满了必需的维生素。" +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "一些煮熟的新鲜内脏和肠子。富含人体所需的各种维生素,但大多数人认为它有些恶心,除非经过精心料理。" #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -17297,9 +17343,10 @@ msgstr[0] "腌制内脏" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." -msgstr "一份在盐卤里保存的煮熟内脏。富含人体必须的维生素,闻起来臭吃起来香。" +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." +msgstr "一份在盐水中保存的内脏和肠子。富含人体所需的各种维生素,虽然它看起来像一个实验室标本,但实际上尝起来味道还行。" #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -17309,9 +17356,9 @@ msgstr[0] "罐装内脏" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." -msgstr "一煮好就封进罐头里保存的新鲜内脏。难吃,却富含人体必需的维生素。" +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." +msgstr "一份密封在罐头里保存的煮熟的新鲜内脏和肠子。看着很恶心,但富含人体所需的各种维生素。" #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -17373,8 +17420,10 @@ msgstr "熏肉" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "美味的熏肉,为了保证质量经过烟熏处理,可以长期保存。" +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "一份经过烟熏处理以长期保存的美味熏肉。可进一步烟熏,使其完全脱水。" #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -17383,8 +17432,10 @@ msgstr[0] "熏鱼" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "美味的熏鱼,为了保证质量经过烟熏处理,可以长期保存。" +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "一份经过烟熏处理以长期保存的美味熏鱼。可进一步烟熏,使其完全脱水。" #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -17393,27 +17444,38 @@ msgstr "熏人肉" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." -msgstr "经过熏制的人肉,可以保持很长一段时间不变质,味道不错,如果你喜欢吃的话。" +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." +msgstr "一份经过烟熏处理以长期保存的烟熏人肉,味道不错,如果你喜欢吃的话。可进一步烟熏,使其完全脱水。" #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "生肺" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "生肺片" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." -msgstr "一块来自某种动物的肺脏。看上去和海绵差不多。" +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." +msgstr "" +"一块来自某种动物的肺脏。看上去像粉红色的海绵状物体,而且很容易腐败。如果料理得当,它也能够变成一道美味;但如果料理不当,它就是一大块枯燥乏味的结缔组织。" #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "熟肺" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "熟肺片" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." -msgstr "一块来自某种动物的肺脏。煮熟后依旧很难吃,不过起码寄生虫都被杀死了。" +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." +msgstr "" +"一块来自某种动物的肺脏。由于采用这种方式料理,它就是一大块不易嚼烂且枯燥乏味的灰褐色结缔组织。看上去并不比生的更好吃,但是起码寄生虫都被煮熟了。\n" +"“听我说,正宗的夫妻肺片里没有夫妻,也没有肺片”" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -17421,8 +17483,12 @@ msgstr "生肝" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." -msgstr "一块来自某种动物的肝脏。" +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" +"一块来自某种动物的肝脏。虽然许多人不喜欢这种口感,但它是动物中维生素含量较高的部位之一。制成香肠会很美味,但如果仅仅是煮熟的话,就不那么可口了。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" @@ -17430,8 +17496,11 @@ msgstr "熟肝" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" -msgstr "一块来自某种动物的肝脏。富含维生素B!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." +msgstr "一块来自某种动物的肝脏。富含维生素B!煮熟的肝脏可能并不是最糟糕的,这取决于你是否喜欢这种口感,但这肯定是最不花哨的烹饪方式。" #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -17450,8 +17519,10 @@ msgstr[0] "熟脑" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" -msgstr "一块来自某种动物的大脑。现在煮熟后你可以模仿那些你所深爱的丧尸了!" +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 "一块来自某种动物的大脑。现在煮熟后你可以模仿那些你所深爱的丧尸了!如何烹饪大脑很有挑战,而这看上去并不是最好的烹饪方式。" #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" @@ -17459,8 +17530,10 @@ msgstr "生肾" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." -msgstr "一块来自某种动物的肾脏。" +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." +msgstr "一块来自某种动物的肾脏。如何烹饪它是一个挑战,除非你希望整个厨房充满那种强烈的尿骚味。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" @@ -17477,8 +17550,10 @@ msgstr "生杂碎" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." -msgstr "一份由来自某种动物的胸腺或胰腺组成的杂碎。" +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." +msgstr "一份由来自某种动物的胸腺或胰腺组成的杂碎。如果料理得当的话,它会是美味佳肴。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" @@ -17554,11 +17629,11 @@ msgstr "被感染的骨头" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." msgstr "" -"一根源自变异生物的腐坏且易碎的骨头。可以用于制作某些物品,例如装填在炭窑中烧制成木炭。你也可以吃下它,但保证让你中毒。\n" -"\"丧失狗狗都不会喜欢的骨头。\"" +"一根源自变异生物的腐坏且易碎的骨头。可以用于制作某些物品,例如烧成木炭或制成骨胶。你也可以吃下它,但保证让你中毒。\n" +"\"丧尸狗狗都不会喜欢的骨头。\"" #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -17855,8 +17930,11 @@ msgstr[0] "咖啡" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "一份经过烘焙的咖啡豆或咖啡粉冲泡制作出来的美味饮料,味道略苦但非常香醇,有着提神醒脑等多种功效。" +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "曾经在世界末日前是一种早晨仪式,咖啡果经过一系列复杂的除种、烘焙、研磨和调制最终得到的饮品。咖啡比它的对手,茶含有更多的咖啡因。" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -17886,9 +17964,9 @@ msgstr[0] "炼乳" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." -msgstr "一份乳牛口粮,成人也可以食用。这份牛奶已加糖并增稠,可使其成为任何食物的甜味添加剂。 " +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." +msgstr "一种经过部分脱水的牛奶,这极大提升了它的保质期。哦,还加入了甜味剂调味。" #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" @@ -17947,10 +18025,10 @@ msgstr "能量饮料" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "" -"一罐流行于熬夜加班族们的高效提神饮料,大灾变前最流行的饮料之一。\n" -"\"喝下去并不会像广告中那样从尸群中杀出重围。\"" +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "一种含有大量咖啡因的软饮料。能量饮料在那些需要熬夜工作的人中很受欢迎。" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -18062,8 +18140,9 @@ msgstr "牛奶咖啡" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "牛奶咖啡在许多国家都是标准清晨饮品。" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "一种将咖啡,糖混入牛奶中而成的饮品。自1993年起,它就一直是罗德岛州的州立饮品。" #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -18071,9 +18150,8 @@ msgstr "奶茶" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "通常都在早上喝,许多国家都有喝奶茶的习俗。" +msgid "Hot tea with cold milk." +msgstr "一份热茶,加入了冷牛奶。" #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -18170,10 +18248,10 @@ msgstr "茶" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "" -"一份源自中国的古老饮品,略苦,但香气氤氲、清新怡人,蕴藏其中的丝丝香甜令人感到回味无穷。\n" -"\"在鸦片战争前夕,只有掺了沙子的茶,才叫正宗的中国茶。\"" +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "一份供全球绅士享用的饮品,通过将滚烫的开水倒入被称作\"山茶科山茶属\"的茶树的叶子中而成。" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -18221,8 +18299,8 @@ msgstr "番茄沙司" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "番茄酱,好吃,就是吃不够!" +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "一种由煮熟的西红柿制成的酱汁,除此之外没加入其他调味料。" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -18241,8 +18319,10 @@ msgstr[0] "蛋黄酱" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "传统口味的三明治蛋黄酱。" +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "一种由鸡蛋、食用油和盐混合而成的粘稠混合物,传统上用于给三明治调味。" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -18250,8 +18330,8 @@ msgstr "番茄酱" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "美味的传统番茄酱,热狗蘸上它,味道好极了。" +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "一种加入了盐和醋调味的粘稠番茄酱。" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -18260,8 +18340,10 @@ msgstr[0] "芥末酱" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "传统口味的芥末酱,汉堡里加一点味道不错。" +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "一种使用芥菜种子(黄芥或白芥)、醋、盐和各种香料制成的调味品。" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -18302,10 +18384,10 @@ msgstr[0] "食醋" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "" -"一些由糯米、高梁、大米、玉米、小麦以及糖类和酒类发酵制成的酸味液态调味品。\n" -"\"差点就变成酒。\"" +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "一种酸得掉牙的白醋。当你的酒发酵过头时,就会得到这样的结果。" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -18324,8 +18406,10 @@ msgstr[0] "糖蜜" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "一些粘稠、黑褐色、呈半流动的物体,像糖浆的极甜的焦油,略带苦涩。" +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 "一种富含糖分的焦油状糖浆,通过反复煮沸甘蔗汁或甜菜汁而产生。回味有点苦。" #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -19454,8 +19538,10 @@ msgstr[0] "枫树糖浆" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "一些真正的佛蒙特州香甜可口的枫糖浆。" +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "通过把枫树的汁液煮沸,浓缩而成的香甜可口的枫糖浆。" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -19721,15 +19807,13 @@ msgid "" msgstr "一磅多汁的肉类加上一磅香喷喷的碳水化合物,新鲜出炉,风味更佳,更易饱腹,也更容易坏掉。" #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" +msgid "deep-fried chicken" msgstr "炸鸡" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "" -"一份常见于各个快餐店里的炸鸡,有着金黄香脆的外皮,里面是鲜嫩多汁的鸡肉。\n" -"\"Ba la la ba ba!Ba la la ba ba!Ba la la ba ba!Ba la la ba ba!(麦当劳广告语)\"" +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "通过将鸡肉完全浸泡在油中炸熟而成。油腻但可口。" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -19880,8 +19964,8 @@ msgstr "生香肠" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "一条很大的生香肠,可以用来熏制。" +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "一条很大的生香肠,可以用来熏制或烹饪。" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -19892,6 +19976,15 @@ msgstr "香肠" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "一条很大的美味腊肠,已经经过处理熏制,可以长期存储。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "熟香肠" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "一条很大的熟香肠,可以食用了。" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "人肉香肠" @@ -19915,6 +20008,18 @@ msgstr[0] "甜香肠" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "一份香甜可口的香肠,最好趁着新鲜的时候吃掉。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "德式香肠" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "一种德式香肠,由被切细的碎肉制成,需要使用平底锅煎或烤制后食用。最好是趁热吃新鲜的。" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "蜂皇肉排" @@ -20070,8 +20175,10 @@ msgstr "午餐肉" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "一些压缩的肉糜,有着各种加工方式用作其它料理,通常在野餐时食用。军队中,午餐肉是必备的军需物品。" +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "将煮熟的肉腌制之后,切成薄片,便于夹在三明治中。也能当作冷盘吃。" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -20080,9 +20187,10 @@ msgstr "博洛尼亚红肠" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." -msgstr "一些博洛尼亚红肠,无需加热即可食用。(注:该种香肠在美国市场上多为\"奥斯卡\"牌,类似于火腿肠领域中的双汇。)" +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." +msgstr "一份源自博洛尼亚的正宗红肠,经过切碎腌制的细肉末被灌进肠衣后切成圆形薄片。不是奥斯卡牌的,能当作冷盘吃。" #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -20445,7 +20553,7 @@ msgid "" "Surprisingly tasty and quite filling, it is best served with boiled root " "vegetables and strong whisky." msgstr "" -"苏格兰传统风味布丁,将肉、内脏和燕麦片切碎混合后放入胃囊中缝好、煮熟。馅料充实而美味,与它的丑陋外表形成鲜明对比。正宗吃法还要搭配煮块根类蔬菜,再来点高度威士忌。又译哈革斯、肉馅羊杂。" +"苏格兰传统风味布丁,将肉、内脏和燕麦片切碎混合后放入胃囊中缝好、煮熟。馅料充实而美味,与它的丑陋外表形成鲜明对比。正宗吃法还要搭配煮块根,再来点高度威士忌。又译哈革斯、肉馅羊杂。" #: lang/json/COMESTIBLE_from_json.py msgid "fish makizushi" @@ -20553,11 +20661,9 @@ msgstr "博洛尼亚人肠" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." -msgstr "" -"一种采用预先切好的人肉制作的午餐肉。可不加热直接食用。\n" -"\"嘿,奥斯卡先生。\"" +"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 "经过切碎腌制的细人肉末,被灌进肠衣后切成圆形薄片。他也许曾经叫奥斯卡,能当作冷盘吃,就像现在的冷血食人的你。" #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -20789,8 +20895,33 @@ msgstr "生人肉香肠" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "一条很大的生\"两脚羊\"香肠,可以用来熏制。" +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "一条很大的生\"两脚羊\"香肠,可以用来熏制或烹饪。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "熟人肉香肠" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "一条很大的生香肠,可以食用了。真是一道“人气美食”啊。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "德式人肉肠" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "一种德式香肠,由被切细的碎人肉制成,需要使用平底锅煎或烤制后食用。最好是趁热吃新鲜的。顺便说一句,任何人都行,不一定必须用德国人。" #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -21627,7 +21758,7 @@ msgstr[0] "大麻叶片" #. ~ Use action activation_message for marijuana. #: lang/json/COMESTIBLE_from_json.py msgid "You smoke some weed. Good stuff, man!" -msgstr "你吸了点大麻,太爽了,妈的!" +msgstr "你吸了一口大麻。真是痛快!" #. ~ Description for marijuana #: lang/json/COMESTIBLE_from_json.py @@ -21685,6 +21816,22 @@ msgid "" "it boosts the body's resistance against them. One dose lasts twelve hours." msgstr "一种广谱抗生素,用于预防和抑制感染。功效还不足以彻底治愈感染,但可增强体内免疫力。一剂药持续十二小时。" +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "胃药" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "你服用了一些胃药。" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "一罐粘稠的粉红色胃药糖浆,能缓解胃部不适,平息呕吐冲动;带着一个能够拧下的盖子,能当作测量剂量的量杯使用。" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -22207,7 +22354,7 @@ msgstr "超浓缩的诱变剂,看上去就像植物的汁液。你需要一个 #: lang/json/COMESTIBLE_from_json.py msgid "raptor serum" -msgstr "猛禽诱变血清" +msgstr "迅猛龙诱变血清" #: lang/json/COMESTIBLE_from_json.py msgid "rat serum" @@ -22329,7 +22476,7 @@ msgstr "植物诱变剂" #: lang/json/COMESTIBLE_from_json.py msgid "raptor mutagen" -msgstr "猛禽诱变剂" +msgstr "迅猛龙诱变剂" #: lang/json/COMESTIBLE_from_json.py msgid "rat mutagen" @@ -23145,88 +23292,88 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "一个芸香科柑橘属植物果实,富含维生素C,但是非常得酸。" #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "蓝莓" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "一把蓝莓" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "" -"一种起源于北美的多年生灌木小浆果果树,因果实呈蓝色,故称为蓝莓。\n" +"一把北美常见的蓝莓灌木所结出的蓝色果实。\n" "\"适合在蓝色的天空下的蓝色小屋里听着蓝调布鲁斯吃着蓝莓。\"" #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "草莓" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "一把草莓" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." -msgstr "一个原产南美的草莓,如今在野外也很常见,鲜红的果肉,多汁又美味。" +msgstr "一把在野外常见的草莓灌木所结出的果实,鲜红的果肉,多汁又美味。" #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "蔓越莓" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "一把蔓越莓" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." -msgstr "一些小红莓,有着酸味的红色浆果,对健康有益。" +msgstr "一把蔓越莓灌木所结出的红色浆果,很酸,但对健康有益。" #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "木莓" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "一把树莓" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." -msgstr "一种甜甜的红色浆果,酸甜可口,具有很高的营养价值。" +msgstr "一把树莓灌木所结出的红色浆果,酸甜可口。" #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "越橘" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "一把越橘" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." -msgstr "美洲越橘,经常会和蓝莓混淆。" +msgstr "一把美洲越橘,经常会和蓝莓混淆。" #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "桑椹" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "一把桑椹" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py 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 "北美桑椹,这种红色品种是北美东部所独有的,并被认为是世界上所有品种中风味最浓的一个品种。" +msgstr "一把北美桑椹,这种红色品种是北美东部所独有的,并被认为是世界上所有品种中风味最浓的一个品种。" #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "接骨木果" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "一把接骨木果" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." -msgstr "接骨木果,生吃有毒,但煮熟后很美味。" +msgstr "一把接骨木果,生吃有毒,但煮熟后很美味。" #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "玫瑰果" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "一把玫瑰果" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." -msgstr "一颗经过授粉后的玫瑰花所结的果实。" +msgstr "一把玫瑰果,是经过授粉后的玫瑰花所结的果实。" #: lang/json/COMESTIBLE_from_json.py msgid "juice pulp" @@ -23258,14 +23405,14 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "一个柑橘类水果,有酸味和甘味,成熟时果皮一般呈不均匀的橙色或红色,果肉淡红白色。" #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "樱桃" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "一把樱桃" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." -msgstr "一种长在树上的红色果实,很甜。" +msgstr "一把樱桃树结出的红色果实,很甜。" #: lang/json/COMESTIBLE_from_json.py msgid "plum" @@ -23278,11 +23425,11 @@ msgid "" msgstr "一个紫色的大李子,饱满圆润,玲珑剔透,形态美艳,口味甘甜,是人们最喜欢的水果之一。" #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "葡萄" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "一把葡萄" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "" @@ -23338,11 +23485,11 @@ msgid "A large and very sweet fruit." msgstr "一个又大又甜的瓜,又称香瓜等,含有苹果酸、葡萄糖、氨基酸、甜菜茄、维生素C等丰富营养。" #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "黑莓" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "一把黑莓" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "一些原产地北美洲的黑莓,有着非常丰富的营养价值。" @@ -23387,13 +23534,14 @@ msgid "" msgstr "一个大大的,有着棕色纹装外皮的水果,绿色的果肉有着奇异的味道。" #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "杏子" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "一把杏子" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." -msgstr "一些果皮多为白色、黄色至黄红色,向阳部常具红晕和斑点、有着暗黄色果肉,味甜多汁的水果。" +msgstr "一把杏子,表皮很光滑,有着味甜多汁的暗黄色果肉,是桃子的近亲。" #: lang/json/COMESTIBLE_from_json.py msgid "barley" @@ -23444,8 +23592,8 @@ msgstr "卷心菜" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "一团清澈雪白的拳头大小的卷心菜。" +msgid "Crisp white cabbage." +msgstr "一团清澈雪白的卷心菜。" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -23532,8 +23680,8 @@ msgstr "黄瓜" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "一根黄瓜,葫芦科植物,味甘,甜、性凉,有着特殊的外观和作用。" +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "一种葫芦科植物,没什么味道但是非常多汁。" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -23615,7 +23763,7 @@ msgstr "液囊" msgid "" "A fluid bladder from a plant based lifeform. Not very nutritious, but fine " "to eat anyway." -msgstr "一个富有生机的植物的液体气囊,里面有一些汁液,营养并不丰富,但仍有食用价值。" +msgstr "一个从那些活生生的植物体上采集来的囊胞,里面有一些汁液,营养并不丰富,但勉强能食用。" #: lang/json/COMESTIBLE_from_json.py msgid "raw potato" @@ -23661,7 +23809,7 @@ msgstr "大黄" #. ~ Description for rhubarb #: lang/json/COMESTIBLE_from_json.py msgid "Sour stems of the rhubarb plant, often used in baking pies." -msgstr "一个带酸味的大黄叶柄,烤馅饼时常用它。" +msgstr "一些北美菜用大黄的肉质叶柄,很酸,烤馅饼时常用它。" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet" @@ -23954,6 +24102,10 @@ msgstr[0] "黑莓种子" msgid "Some blackberry seeds." msgstr "一些黑莓种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "黑莓" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -23964,6 +24116,10 @@ msgstr[0] "蓝莓种子" msgid "Some blueberry seeds." msgstr "一些蓝莓种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "蓝莓" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -23974,6 +24130,10 @@ msgstr[0] "蔓越莓种子" msgid "Some cranberry seeds." msgstr "一些蔓越莓种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "蔓越莓" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -23984,6 +24144,10 @@ msgstr[0] "越橘种子" msgid "Some huckleberry seeds." msgstr "一些越橘种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "越橘" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -23994,6 +24158,10 @@ msgstr[0] "桑椹种子" msgid "Some mulberry seeds." msgstr "一些桑椹种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "桑椹" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -24004,6 +24172,10 @@ msgstr[0] "接骨木种子" msgid "Some elderberry seeds." msgstr "一些接骨木种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "接骨木果" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -24014,6 +24186,10 @@ msgstr[0] "树莓种子" msgid "Some raspberry seeds." msgstr "一些树莓种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "木莓" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -24024,6 +24200,10 @@ msgstr[0] "草莓种子" msgid "Some strawberry seeds." msgstr "一些草莓种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "草莓" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -24034,6 +24214,10 @@ msgstr[0] "葡萄种子" msgid "Some grape seeds." msgstr "一些葡萄种子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "葡萄" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -25460,6 +25644,17 @@ msgstr "" "一份包括坚果、霜状白糖、生奶油、巧克力的蛋糕,发源于19世纪末的美国。\n" "\"这个和外婆做的完全不一样。\"" +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" +"一份包括坚果、霜状白糖、生奶油、巧克力的蛋糕,发源于19世纪末的美国。\n" +"\"这个和外婆做的完全一样。\"" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "纤维茎秆" @@ -26810,6 +27005,18 @@ msgstr[0] "放射废料桶" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "一个黄色大桶,上面印有辐射警告标识,用于储存放射性废料。" +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "花盆" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "一个能用来种植植物的特殊花盆。能够保证植物在合适的环境下生长,使其获得最大的产量。" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -29299,6 +29506,30 @@ msgid "" "without prior connection to compatible valve." msgstr "一种装有某种制冷剂的小型金属罐,常用于制冷设备中。被完全密封,以防止制冷剂蒸发,需要连接到特制的阀门上才能被打开。" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "硬化钢板" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "一块使用强化钢板制成的装甲板,专为防弹背心而设计。" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "钢板" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "一块钢制装甲板,专为防弹背心而设计。" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -29906,7 +30137,7 @@ msgstr[0] "战戟" msgid "" "This is a versatile polearm with an axe blade, a spike, and other fun things" " attached to a long stick." -msgstr "一个长棍的顶端附有尖锐的矛头与斧子,在14-15世纪被广泛使用于战争之中,如今常见于梵蒂冈的瑞士守卫。" +msgstr "一个长棍,顶端安装着一个由尖矛、斧头和其他装饰所构成的戟头,在14-15世纪被广泛使用于战争之中,如今常见于梵蒂冈的瑞士守卫。" #. ~ Description for halberd #: lang/json/GENERIC_from_json.py @@ -29937,7 +30168,7 @@ msgid "" "and other Japanese blades. Occasionally used by samurai in early periods, " "or by their wives in defense of the household." msgstr "" -"一个长柄、前端为具有弧度的长刀身,以切砍为主要攻击方式,长度约有2米。在镰仓时代为步兵与僧侣的主力兵器,在江户时代则成为了武士家女性作为教养的必学项目。" +"一根坚固耐用的长柄武器,顶部是一个弯曲的采用和武士刀一样其他日式刀具制作方法制成的利刃。在镰仓时代为步兵与僧侣的主力兵器,在江户时代则成为了武士家女性作为教养的必学项目。" #: lang/json/GENERIC_from_json.py msgid "survivor naginata" @@ -29949,7 +30180,7 @@ msgstr[0] "幸存者薙刀" msgid "" "This sturdy steel shaft with a sword blade at the end is good for both " "slashing and stabbing." -msgstr "一个长柄、前端为笔直锋利的长刀身,以突刺为主要攻击方式,长度约有1.5米。此款为幸存者客制化的现代版,专为击杀丧尸制定。" +msgstr "一根坚固的钢制杆身,一端安装了一个带刺刀头,既能斩击又能刺击。" #: lang/json/GENERIC_from_json.py msgid "expandable baton" @@ -30237,11 +30468,8 @@ msgstr[0] "袜装石锤" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "" -"将石块放到袜子底部组成的、一种不能抱多大希望的原始武器。\n" -"\"如果用装石头的是黑丝袜,可获得最大攻击距离。\"" +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "一对套在一起的袜子,里面装了个石头。绝对是绝境下才会使用的武器。" #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -30538,7 +30766,7 @@ msgstr[0] "战斧" #: lang/json/GENERIC_from_json.py msgid "" "This is a dull, cheaply made replica of a massive axe designed for warfare." -msgstr "一柄起源于欧洲的战斧,造型为一长柄的一端装有双头斧刃。此款外观、造型和材料与正品有差异,为廉价复制品。" +msgstr "一柄起源于欧洲的战斧,长长的斧柄的一端装有双头斧刃。此款外观、造型和材料与正品有差异,为廉价复制品。" #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "nodachi" @@ -31705,6 +31933,18 @@ msgid "" "without reducing its effectiveness." msgstr "一个用铁制框架保护起来的车头灯,抗撞击又不降低可用性。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "强化广角车头灯" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "一个用铁制框架保护起来的广角车头灯,抗撞击又不降低可用性。" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -31817,7 +32057,7 @@ msgstr "一台结构紧凑的车载冰柜,设计用于运输各种需要冰冻 #: lang/json/vehicle_part_from_json.py msgid "washing machine" msgid_plural "washing machines" -msgstr[0] "车载洗衣机" +msgstr[0] "洗衣机" #. ~ Description for washing machine #: lang/json/GENERIC_from_json.py @@ -32046,13 +32286,25 @@ msgstr "一套由各式钢管、凸轮和带子组成的装置,安装在载具 #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "floodlight" msgid_plural "floodlights" -msgstr[0] "探照灯" +msgstr[0] "泛光灯" #. ~ Description for floodlight #: lang/json/GENERIC_from_json.py msgid "A large and heavy light designed to illuminate wide areas." msgstr "又大又重的灯,用来照亮大片区域。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "定向泛光灯" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "又大又重的灯,用来照亮大片半圆形区域。" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -32259,6 +32511,16 @@ msgstr[0] "车灯" msgid "A vehicle headlight to light up the way." msgstr "车载头灯,照亮前方的路。" +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "广角车头灯" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "车载广角头灯,照亮前方的路。" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -32647,6 +32909,16 @@ msgstr[0] "醉拳拳法" msgid "A complete guide to Zui Quan." msgstr "一本完整的醉拳拳法秘籍。" +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "矛之道" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "一部完整的日本枪术指南。" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -34343,6 +34615,44 @@ msgstr[0] "新型模型兔子(损坏)" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "损坏的模型兔子,毫无生气。" +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "木制船壳" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "一个让船只保持浮力的木板。将其安装在载具上直到它浮在水上。继续添加桨或者引擎来移动船只。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "塑料船壳" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "一个让船只保持浮力的硬质塑料板。将其安装在载具上直到它浮在水上。继续添加桨或者引擎来移动船只。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "碳素纤维船壳" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "一个让船只保持浮力的碳素纤维板。将其安装在载具上直到它浮在水上。继续添加桨或者引擎来移动船只。" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -34353,6 +34663,26 @@ msgstr[0] "桨" msgid "Oars for a boat." msgstr "船桨,严格说是橹。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "充气节" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "充气艇的一截。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "充气气囊" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "一个充气气囊" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -34450,6 +34780,337 @@ msgid "belt ammo link" msgid_plural "belt ammo links" msgstr[0] "子弹带链节" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "花盆(番茄生长中)" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "作物已经可以收割了!" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "作物还在迅速生长。" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了番茄的花盆。当番茄成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "花盆(番茄已成熟)" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "一个种了番茄的花盆,番茄已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "花盆(小麦生长中)" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "作物已经可以收割了!" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "作物还在迅速生长。" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了小麦的花盆。当小麦成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "花盆(小麦已成熟)" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "一个种了小麦的花盆,小麦已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "花盆(啤酒花生长中)" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "作物已经可以收割了!" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了啤酒花的花盆。当啤酒花成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "花盆(啤酒花已成熟)" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "一个种了啤酒花的花盆,啤酒花已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "花盆(荞麦生长中)" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了荞麦的花盆。当荞麦成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "花盆(荞麦已成熟)" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "一个种了荞麦的花盆,荞麦已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "花盆(西兰花生长中)" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了西兰花的花盆。当西兰花成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "花盆(西兰花已成熟)" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "一个种了西兰花的花盆,西兰花已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "花盆(燕麦生长中)" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了燕麦的花盆。当燕麦成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "花盆(燕麦已成熟)" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "一个种了燕麦的花盆,燕麦已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "花盆(大麦生长中)" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了大麦的花盆。当大麦成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "花盆(大麦已成熟)" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "一个种了大麦的花盆,大麦已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "花盆(胡萝卜生长中)" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了胡萝卜的花盆。当胡萝卜成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "花盆(胡萝卜已成熟)" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "一个种了胡萝卜的花盆,胡萝卜已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "花盆(棉花生长中)" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了棉花的花盆。当棉花成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "花盆(棉花已成熟)" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "一个种了棉花的花盆,棉花已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "花盆(卷心菜生长中)" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了卷心菜的花盆。当卷心菜成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "花盆(卷心菜已成熟)" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "一个种了卷心菜的花盆,卷心菜已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "花盆(黄瓜生长中)" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了黄瓜的花盆。当黄瓜成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "花盆(黄瓜已成熟)" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "一个种了黄瓜的花盆,黄瓜已经成熟了。拆解它来收获。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "花盆(大蒜生长中)" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "一个种了大蒜的花盆。当大蒜成熟时你需要激活它来准备收割。" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "花盆(大蒜已成熟)" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "一个种了大蒜的花盆,大蒜已经成熟了。拆解它来收获。" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -34481,7 +35142,7 @@ msgid "" "This is a bronze polearm that originated in the Shang dynasty of China, if " "not earlier. It combines a spear head with the perpendicular blade of the " "earlier ge or dagger-axe." -msgstr "这件青铜的长柄武器源于中国商朝,如果不是更早的话。它由一个矛尖及垂直于矛尖的称为戈的刀刃组成。" +msgstr "一把起源自中国商朝或是更早时期的青铜长柄武器。它的顶部由矛尖和垂直于矛尖的被称作戈的刀刃组成。" #: lang/json/GENERIC_from_json.py msgid "dory" @@ -37663,6 +38324,15 @@ msgid "" "other gun mods." msgstr "使用几款通用枪械及弹药替代原版各类复杂的枪械与弹药类型。警告:该模组会频繁报错,部分物品无法正常使用,无法和其他枪械类模组同时启用。" +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "能种菜的花盆" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "让你能用花盆种植部分蔬菜。" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "手动安装生化插件" @@ -39358,6 +40028,10 @@ msgid "" msgstr "" "一只全身大部分都浮肿的丧尸,但是在他臃肿的身体里由于一些半凝固的胶体酸液,仍然能够保持着大概的轮廓。它很笨拙地走动,但是会喷出一大滩的酸液来攻击。" +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "腐蚀丧尸吐出了一团酸液!" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "爬行丧尸" @@ -40297,7 +40971,7 @@ msgstr "下水道鱼王" 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 "变异鲤鱼,闪闪发光的绿色鳞片,三瓣嘴充满了锯齿状的牙齿。" +msgstr "一只巨大的变异鲤鱼,它身上长满了闪闪发光的绿色鳞片,三瓣嘴充满了锯齿状的牙齿。" #: lang/json/MONSTER_from_json.py msgid "skittering plague" @@ -43645,11 +44319,18 @@ msgid "fedora" msgid_plural "fedoras" msgstr[0] "费多拉软呢帽" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "歪帽" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "你把费多拉帽歪了歪。" +#, no-python-format +msgid "You tip your %s." +msgstr "你歪了歪你的 %s。" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -44934,6 +45615,11 @@ msgid "boulder anvil" msgid_plural "boulder anvils" msgstr[0] "石块铁砧" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "生化生火工具" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -45038,7 +45724,7 @@ msgstr "这是一种比较常见的日本短刀。此款是做工不佳且有大 msgid "" "This is a huge axe designed for warfare. You notice that the axe heads " "aren't seated properly at all." -msgstr "一把为战斗而打造的巨斧。不过你注意到斧头没有被正确的安装好。" +msgstr "一柄起源于欧洲的战斧,长长的斧柄的一端装有双头斧刃。不过你注意到斧头没有被正确的安装好。" #. ~ Description for jian #: lang/json/TOOL_from_json.py @@ -45353,7 +46039,7 @@ msgid "" "This is a huge axe designed for warfare. Though intended for use as a " "weapon, it can also be pressed into service as a rather clumsy woodcutting " "tool." -msgstr "一把为战斗而打造的巨斧。虽然只建议作为武器使用,但也可以勉强当作一把相当笨拙的伐木工具。" +msgstr "一柄起源于欧洲的战斧,长长的斧柄的一端装有双头斧刃。虽然只建议作为武器使用,但也可以勉强当作一把相当笨拙的伐木工具。" #: lang/json/TOOL_from_json.py msgid "Louisville Slaughterer" @@ -46178,34 +46864,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "一个附带点火器的小型金属容器,里面可以填充木炭。可以用来烹煮食物。" -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "化学用品包" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "" -"这是一整套装在盒子里的化学实验装置,包括一些玻璃器皿、软管、金属导线、加热板以及护目镜。如果你需要的话,它可用来制作一些化学用品。\n" -"\"用于制造纯度高达99.1%的淡蓝色结晶。\"" - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "基础化学用品包" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "这是一整套基本的化学实验装置,包括一些玻璃器皿、软管以及护目镜。如果你需要的话,它可用来制作一些化学用品。这件物品需要热源。" - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -49495,9 +50153,7 @@ msgstr[0] "幸存者砍刀" msgid "" "This common gardening tool has been customized and rebalanced to improve its" " performance as a weapon." -msgstr "" -"一把已经被涂成红色并且加上了角的砍刀,此款为幸存者客制化版本,专为击杀丧尸制定。\n" -"\"大刀向鬼子头上砍去!\"" +msgstr "一把经过精心调整的普通砍刀,原本普通的园艺工具现在当作武器使用起来更加顺手。" #: lang/json/TOOL_from_json.py msgid "survivor mess kit" @@ -50833,6 +51489,151 @@ msgid "" "Some cars can be driven remotely." msgstr "一个真车的遥控器。可以打开和关闭机载设备。有些汽车还可以远程驾驶。" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "化学用品包" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "" +"这是一整套装在盒子里的化学实验装置,包括一些玻璃器皿、软管、金属导线、加热板以及护目镜。如果你需要的话,它可用来制作一些化学用品。\n" +"\"用于制造纯度高达99.1%的淡蓝色结晶。\"" + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "基础化学用品包" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "这是一整套基本的化学实验装置,包括一些玻璃器皿、软管以及护目镜。如果你需要的话,它可用来制作一些化学用品。这件物品需要热源。" + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "基础实验室分析工具包" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" +"这个庞大的试剂盒包含了一些基本测量工具,是你在进行任何精确化学操作时不可或缺的工具:包含一个小天平,一个分光度计,一个熔点仪,一个pH计,和一套色谱层析试纸。这让你更确信自己制造出来的化学品的成分是你所想要的成分。" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "小型天平" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "一个小型平衡称,使用一套钢制砝码以及滑条,能够精确测量样品的质量。" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "分光度计" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "一个十分常见的分析化学工具,用于测量液体样品在一种被称作比色皿的特殊试管中吸光率。" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "比色皿" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "一个小盒子,里面装满了经过精确校准的方形塑料试管,用于分光度计使用。" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "PH计" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "一个带着一对玻璃探针的电压表。通过将探针分别放入标准溶液(仪器已配套)和待测物质中,你可以测量酸碱度。" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "熔点仪" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" +"一个电炉,外带一个金属外壳。金属外壳上有个带放大镜的观察口,以及一个能插入装有结晶样品的细试管的插槽。这个仪器可以让你精确测量晶体的熔点,可用于鉴定样品的纯度。" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "检光器" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "一个安装在芯片上的光电二极管,可以用来将入射光转换成电能并进行测量。" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "玻璃棱镜" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "一个质量很好的水晶玻璃棱镜,用于分离并改变不同频率光的光路。" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "小型玻璃试管" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "一根小型玻璃管。你还想知道些什么?" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -51997,6 +52798,14 @@ msgid "inactive military robot" msgid_plural "inactive military robots" msgstr[0] "军用机器人(关)" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "一台动力耗尽的军用机器人,装上了一把内置7.62mm口径步枪及一把电击枪。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -52721,39 +53530,6 @@ msgstr "镶边木制车轮" msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "木制货车的车轮,金属镶边加强耐久,纯手工制作,照样不值钱。" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "充气节" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "充气艇的一截。" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "充气气囊" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "一个充气气囊" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "船板" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "一个让船只保持浮力的木板。像安装车轮一样安装在车辆上,将载具转换为船只。继续添加桨或者引擎来移动船只。" - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "凝胶履带" @@ -52955,6 +53731,10 @@ msgstr "停止控制载具?" msgid "Stop training?" msgstr "停止训练?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "停止闲聊?" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "停止急救?" @@ -53011,6 +53791,14 @@ msgstr "停止耕地?" msgid "Stop planting seeds?" msgstr "停止播种?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "停止收获?" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "停止施肥?" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "停止和物品栏互动?" @@ -53115,10 +53903,18 @@ msgstr "停止剃须?" msgid "Stop cutting your hair?" msgstr "停止理发?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "停止和宠物玩耍?" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr " 停止尝试入睡?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "停止清空?" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express 弹" @@ -54698,7 +55494,7 @@ msgstr "修理木墙" #: lang/json/construction_from_json.py msgid "Build Log Wall" -msgstr "建造圆木墙" +msgstr "建造原木墙" #: lang/json/construction_from_json.py msgid "Repair Log Wall" @@ -56004,6 +56800,17 @@ msgstr "被要求训练" msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "AI专用标签:要求训练。" +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "被要求闲聊" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "AI专用标签:要求闲聊。" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "被要求个人信息" @@ -57333,21 +58140,6 @@ msgstr "你被缠绕住了。" msgid "The ceiling collapses on you!" msgstr "天花板掉落下来并砸在了你身上!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "干细胞治疗" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "当你受到药物治疗时,你的体内会发生各种奇怪的反应。" - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "骨头和釉质的混合浆液被注射到了你的眼球中。" - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "服用抗惊厥药物" @@ -57901,6 +58693,15 @@ msgstr "万能药" msgid "You feel incredible! You could take on the world!" msgstr "你感到难以置信!你感觉自己随时准备好直面这个世界了。" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "缓解胃病" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "你的胃部不适症状得到了缓解。" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "漏电" @@ -57926,9 +58727,8 @@ msgstr "不愿告诉背景故事" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "AI专用标签:你已经询问过一次背景故事,NPC现在不愿再说一次。" #: lang/json/effects_from_json.py @@ -59534,7 +60334,7 @@ msgstr "室内自行车" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: src/map.cpp src/mapdata.cpp msgid "thump!" -msgstr "咕咚!" +msgstr "嘭!" #: lang/json/furniture_from_json.py msgid "treadmill" @@ -60088,7 +60888,7 @@ msgstr "一个短弓,相比长弓更短,这把弓更容易被普通人拉开 #: lang/json/gun_from_json.py msgid "compound bow" msgid_plural "compound bows" -msgstr[0] "合成弓" +msgstr[0] "现代复合弓" #: lang/json/gun_from_json.py msgid "" @@ -60100,7 +60900,7 @@ msgstr "一把威力大的弓,带有偏心滑轮组和额外的弓弦,能够 #: lang/json/gun_from_json.py msgid "compound bow (high)" msgid_plural "compound bows (high)" -msgstr[0] "合成弓(高)" +msgstr[0] "现代复合弓(高)" #: lang/json/gun_from_json.py msgid "" @@ -60113,7 +60913,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "compound bow (low)" msgid_plural "compound bows (low)" -msgstr[0] "合成弓(低)" +msgstr[0] "现代复合弓(低)" #: lang/json/gun_from_json.py msgid "" @@ -60136,19 +60936,19 @@ msgstr "一把采用多种材料复合制成以增加储能效率的弓。制造 #: lang/json/gun_from_json.py msgid "recurve bow" msgid_plural "recurve bows" -msgstr[0] "反曲弓" +msgstr[0] "现代反曲弓" #: lang/json/gun_from_json.py msgid "" "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." -msgstr "一把现代弓,弓身末端反向弯曲远离射手以增加威力,在比普通人强壮的人的手上十分好用。使用起来方便简单,但也没啥特殊功能。" +msgstr "一把现代反曲弓,弓身末端反向弯曲远离射手以增加威力,在较为强壮的射手手中十分好用。使用起来方便简单,但也没啥特殊功能。" #: lang/json/gun_from_json.py msgid "reflex bow" msgid_plural "reflex bows" -msgstr[0] "反射弓" +msgstr[0] "反曲弓" #: lang/json/gun_from_json.py msgid "" @@ -60159,7 +60959,7 @@ msgstr "一把弓,弓身中段反向弯曲远离射手以增加威力。体型 #: lang/json/gun_from_json.py msgid "hybrid longbow" msgid_plural "hybrid longbows" -msgstr[0] "合成长弓" +msgstr[0] "混合型长弓" #: lang/json/gun_from_json.py msgid "" @@ -60199,7 +60999,7 @@ msgstr "一把体型巨大难以拉开的长弓,弓身巨大且弓弦粗壮, #: lang/json/gun_from_json.py msgid "compound greatbow" msgid_plural "compound greatbows" -msgstr[0] "合成巨弓" +msgstr[0] "复合巨弓" #: lang/json/gun_from_json.py msgid "" @@ -60221,7 +61021,7 @@ msgid "" "and requires significant strength to draw the bow effectively, but can still" " be fired quickly." msgstr "" -"一把现代弓,同时结合了反曲弓和反射弓特点,弓身中段及两端反向弯曲远离射手,并采用复合材料增强弓身。这极大提高了弓箭的威力,但需要十分高的力量才能够拉开弓,同时射速并无任何损失。" +"一把现代弓,同时结合了古典反曲弓和现代反曲弓特点,弓身中段及两端反向弯曲远离射手,并采用复合材料增强弓身。这极大提高了弓箭的威力,但需要十分高的力量才能够拉开弓,同时射速并无任何损失。" #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -63279,7 +64079,7 @@ msgid "" "Someone crazy thought that the .50 BMG belonged in a pistol. This massive " "piece of steel proves otherwise. The sheer bulk however does make it quite " "adept at smashing face." -msgstr "有某个狂人觉得.50 BMG应该可以用手枪来打,所以就做出了这么一把东西,巨大的后坐力确实使它非常善于粉碎面部。" +msgstr "有某个狂人觉得.50 BMG子弹应该可以当作手枪弹使用,所以就做出了这么一把东西。不过以它巨大的体积来看,似乎都能直接挥舞来砸碎敌人的脸。" #: lang/json/gun_from_json.py msgid "M919" @@ -65048,6 +65848,44 @@ msgid "" "accuracy." msgstr "这种精密的配重扳机组件可以略为提升枪械命中率。" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "插入式自动扳机" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"good as actual full-auto parts, so precision and reliability suffer " +"slightly." +msgstr "" +"一个U形金属片和一个T形活动挡板安装在一根针上。把它塞进AR-" +"15步枪的下机匣里,能够让其调整发射模式。由于手工制作的挡板表面不如实际的全自动扳机好,所以精度和可靠性略有下降。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15" +msgstr "AR-15" + +#: lang/json/gunmod_from_json.py +msgid "lightning link" +msgid_plural "lightning links" +msgstr[0] "\"闪电链\"扳机" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" +"最初为柯尔特SP-1步枪设计,这个\"复刻品\"可将一把 AR-15 " +"步枪变成一把全自动步枪。当所需的修改到位并安装上\"闪电链\"扳机之后,将不再使用半自动模式,而是使用全自动模式发射。由于制造工艺有问题,以及难以获得的" +" SP-1 原装件,改装后的枪械可靠性和精度受到很大影响。" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -65178,6 +66016,15 @@ msgid "" msgstr "" "一组以垂直枪械平面45度角安装到枪械侧面上的机械瞄具,方便在枪械安装了瞄准镜等必须遮挡标准机械瞄具的改装件之后还可以正常利用机械瞄具来瞄准射击的一个枪械用改装件。" +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "侧面瞄具导轨" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "一组以垂直枪械平面45度角安装到枪械侧面上的导轨,让你能够安装一个额外瞄具。" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -65213,7 +66060,7 @@ msgstr "一个Leadworks公司制造的内置高级稳定陀螺仪。" #: lang/json/gunmod_from_json.py msgid "five pin bow sight" msgid_plural "five pin bow sights" -msgstr[0] "五针弓瞄准器" +msgstr[0] "五针弓瞄" #: lang/json/gunmod_from_json.py msgid "" @@ -65229,7 +66076,7 @@ msgstr "瞄准器" #: lang/json/gunmod_from_json.py msgid "single pin bow sight" msgid_plural "single pin bow sights" -msgstr[0] "单针弓瞄准器" +msgstr[0] "单针弓瞄" #: lang/json/gunmod_from_json.py msgid "" @@ -65240,7 +66087,7 @@ msgstr "一个简单的铝制瞄准针,以及能安装在现代弓上的支架 #: lang/json/gunmod_from_json.py msgid "bow scope" msgid_plural "bow scopes" -msgstr[0] "望远镜式弓瞄准器" +msgstr[0] "望远镜式弓瞄" #: lang/json/gunmod_from_json.py msgid "" @@ -67556,7 +68403,7 @@ msgstr "砍倒树木" #: lang/json/item_action_from_json.py msgid "Chop a Tree Trunk into logs" -msgstr "树干劈成圆木" +msgstr "树干劈成原木" #: lang/json/item_action_from_json.py msgid "Break stick" @@ -68229,11 +69076,10 @@ msgstr "开启时将大大增加车辆阻力,需要强劲的引擎才能牵引 #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." -msgstr "当载具平衡中心位于所有船板中间且没有车轮时,载具能够在一个足够强劲的引擎带动下向前移动。" +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." +msgstr "每个船壳将减少载具吃水并增加密封高度。如果吃水低于密封高度,你的载具将漂浮在水中。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -68491,11 +69337,11 @@ msgstr "切换配方是否在收藏栏中显示" #: lang/json/keybinding_from_json.py msgid "Go Up" -msgstr "向上" +msgstr "向上一层" #: lang/json/keybinding_from_json.py msgid "Go Down" -msgstr "向下" +msgstr "向下一层" #: lang/json/keybinding_from_json.py msgid "Next level" @@ -68981,7 +69827,7 @@ msgstr "屠宰" msgid "Chat with NPC" msgstr "和NPC交谈" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "观察四周" @@ -69592,6 +70438,14 @@ msgstr "开/关冰柜" msgid "Toggle headlights" msgstr "开/关车头灯" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "开/关广角车头灯" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "开/关定向车顶灯" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "开/关车顶灯" @@ -70003,14 +70857,14 @@ msgid "Analyze blood" msgstr "分析血样" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "干细胞大师" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "干细胞治疗" +msgid "Bonesetting Treatment" +msgstr "接骨治疗" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -70173,6 +71027,13 @@ msgstr " 在这里!" msgid "it works." msgstr "生成有效。" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "殡仪馆的名字后面写着一条草率的字条,上面写着:\"如果你的亲人不死,我不负责。\"" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -71101,12 +71962,12 @@ msgstr "少林五形拳之一。鹤拳刚柔相济,拳意轻灵。敏捷将取 #: lang/json/martial_art_from_json.py msgid "Crane's Precision" -msgstr "鹤谨" +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 "以敏捷值来计算追加伤害和破坏程度。" +msgstr "敏捷提升伤害,力量减少伤害。" #: lang/json/martial_art_from_json.py msgid "Crane's Flight" @@ -71131,7 +71992,7 @@ msgstr "少林五形拳之一。龙拳步法多变,攻击凶悍。智力能提 #: lang/json/martial_art_from_json.py msgid "Dragon Style" -msgstr "龙形" +msgstr "龙之形" #. ~ Description of buff 'Dragon Style' for martial art 'Dragon Kung Fu' #: lang/json/martial_art_from_json.py @@ -71161,7 +72022,7 @@ msgstr "少林五形拳之一。豹拳侧重于快速进攻压制敌人。你的 #: lang/json/martial_art_from_json.py msgid "Leopard Strategy" -msgstr "豹略" +msgstr "豹之略" #. ~ Description of buff 'Leopard Strategy' for martial art 'Leopard Kung Fu' #: lang/json/martial_art_from_json.py @@ -71191,7 +72052,7 @@ msgstr "少林五形拳之一。虎拳一气相贯,连绵不绝。力量将取 #: lang/json/martial_art_from_json.py msgid "Tiger Fury" -msgstr "虎贲" +msgstr "虎之怒" #. ~ Description of buff 'Tiger Fury' for martial art 'Tiger Kung Fu' #: lang/json/martial_art_from_json.py @@ -71200,7 +72061,7 @@ msgstr "+3 钝击/每次攻击" #: lang/json/martial_art_from_json.py msgid "Tiger Strength" -msgstr "虎力" +msgstr "虎之力" #. ~ Description of buff 'Tiger Strength' for martial art 'Tiger Kung Fu' #: lang/json/martial_art_from_json.py @@ -71220,7 +72081,7 @@ msgstr "少林五形拳之一。蛇拳以其若即若离的进攻动作与精准 #: lang/json/martial_art_from_json.py msgid "Snake Sight" -msgstr "蛇目" +msgstr "蛇之视" #. ~ Description of buff 'Snake Sight' for martial art 'Snake Kung Fu' #: lang/json/martial_art_from_json.py @@ -71240,7 +72101,7 @@ msgstr "五毒教神功之一。蜈蚣拳会发出暴雨般的高频攻击。你 #: lang/json/martial_art_from_json.py msgid "Hundred-Hitter" -msgstr "认真系列 - 连续普通拳" +msgstr "百击掌" #. ~ Description of buff 'Hundred-Hitter' for martial art 'Centipede Kung Fu' #: lang/json/martial_art_from_json.py @@ -71261,7 +72122,7 @@ msgstr "五毒教神功之一。神秘的蝎子功主练\"钳形散手\"与\"蝎 #: lang/json/martial_art_from_json.py msgid "Scorpion Venom" -msgstr "蝎毒" +msgstr "蝎之毒" #. ~ Description of buff 'Scorpion Venom' for martial art 'Scorpion Kung Fu' #: lang/json/martial_art_from_json.py @@ -71282,7 +72143,7 @@ msgstr "五毒教神功之一。蛤蟆功大师能在任何攻击面前保持冷 #: lang/json/martial_art_from_json.py msgid "Toad's Iron Skin" -msgstr "蛤蟆铁肤" +msgstr "蛤蟆铁布衫" #. ~ Description of buff 'Toad's Iron Skin' for martial art 'Toad Kung Fu' #: lang/json/martial_art_from_json.py @@ -71291,13 +72152,13 @@ msgstr "静立不动时护甲+6" #: lang/json/martial_art_from_json.py msgid "Iron Skin Dissipation" -msgstr "铁皮防护" +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 "一旦移动铁皮就失效了!" +msgstr "铁布衫随着你移动失效了!" #: lang/json/martial_art_from_json.py msgid "Lizard Kung Fu" @@ -71370,6 +72231,36 @@ msgid "" "armor, +Perception fire armor." msgstr "+力量 钝击防护,+敏捷 酸液防护,+智力 电击防护,+感知 火焰防护。" +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "日本枪术" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "日本枪术,又称\"矛之道\",是一种源自日本的使用长矛作战的武术。日本枪术专注于在战斗中保持同对手的距离,以便维持自身战斗优势。" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "静立不动时远距攻击武器格挡几率提升" + +#: lang/json/martial_art_from_json.py +msgid "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 "移动时增加伤害,但不提升格挡几率" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "中世纪剑术" @@ -71812,7 +72703,7 @@ msgstr "这种事都会发生的。" #: lang/json/mission_def_from_json.py msgid "Follow Sarcophagus Team" -msgstr "追随石棺团队" +msgstr "追踪埋点调查队" #: lang/json/mission_def_from_json.py msgid "You wouldn't believe what I found..." @@ -71829,9 +72720,7 @@ msgid "" " join up with what remains of the government then now may be our only " "chance." msgstr "" -"我的天啊!你找到黑匣子的那次坠机发生时间距今并不像我想的那么久远。看看这个,这架飞机当时正准备降落去接应一支部队,那支部队被派去某个秘密地点确保销毁被称为" -" \"危险的废弃石棺\" " -"的东西。如果那架飞机没有接应到那支部队的话,我们就仍有碰见他们的可能性。我猜黑匣子里还有电梯的接入码和一条给部队指挥官的加密信息。如果我们想加入那个还可称为政府机构的部队的话,这恐怕就是我们的最后机会了。" +"我的天啊!你找到黑匣子的那次坠机事故并不像我想的那么久远。看看这个,这架直升机当时正准备接应一支小队,那支部队被派去控制并摧毁某个地处偏僻而被称为\"放射性废料埋点\"的地点。既然直升机没能成功接到人,那我们就还有机会在那个地方找到他们。我猜黑匣子里应该还有电梯启动密码和给指挥官的加密指令。如果我们还想同政府部队的残存力量会合的话,这也许就是唯一的机会了。" #: lang/json/mission_def_from_json.py msgid "Fuck ya, America!" @@ -71847,15 +72736,16 @@ msgid "" "If there is a military team down there then we better go in prepared if we " "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 "如果有一个军事小组在那里灭团了,我们得准备准备给军方一个惊喜,嘿嘿~尽量多带点弹药,军方可能会派第二波人马来收拾残局,随时准备撤离!" +msgstr "" +"如果那个地方下面有一队军方小组的话,我们得好好准备准备才能给他们留下点深刻印象。带上尽可能多的弹药并准备打包好撤离这个鬼地方,毕竟他们肯定会再叫一批支援直升机的。" #: lang/json/mission_def_from_json.py msgid "Having any trouble following the map?" -msgstr "照地图指示有任何问题吗?" +msgstr "照着地图走有什么问题吗?" #: lang/json/mission_def_from_json.py msgid "We got this shit!" -msgstr "操,看我们得到了什么!" +msgstr "我们可算是干完了!" #: lang/json/mission_def_from_json.py msgid "What?! I out'ta whip your ass." @@ -71892,7 +72782,7 @@ msgstr "请小心,我们不希望再有任何伤亡。" msgid "" "Come back when you get a chance, we really need to start reclaiming the " "region." -msgstr "有机会的话你要回来哦,我们确实需要夺回这片区域。" +msgstr "有机会的话你记得要回来哦,我们确实需要夺回这片区域。" #: lang/json/mission_def_from_json.py msgid "If you can, get a friend or two to help you." @@ -71900,7 +72790,7 @@ msgstr "如果可能的话,叫上一两个朋友帮你。" #: lang/json/mission_def_from_json.py msgid "Will they be bothering us any longer?" -msgstr "他们还会继续让我们头疼吗?" +msgstr "那些家伙还会继续让我们头疼吗?" #: lang/json/mission_def_from_json.py msgid "" @@ -71909,7 +72799,7 @@ msgstr "谢谢你,家附近有个那么大的威胁真是让人觉得提心吊 #: lang/json/mission_def_from_json.py msgid "What good does this do us?" -msgstr "这对我们有什么好处?" +msgstr "你这样做对我们有什么好处?" #: lang/json/mission_def_from_json.py msgid "It was a lost cause anyways..." @@ -71968,7 +72858,7 @@ msgstr "我很确定,在你的大力协助下,我们的前哨站将会得到 #: lang/json/mission_def_from_json.py msgid "Just follow your map." -msgstr "照着你的地图走就行。" +msgstr "照着地图走就行。" #: lang/json/mission_def_from_json.py msgid "Do you have the prospectus?" @@ -71982,7 +72872,7 @@ msgstr "有了这个我们就能够说服其他人来建设农业合作社了。 #: lang/json/mission_def_from_json.py msgid "Find 25 Plutonium Cells" -msgstr "找到25个钚电池" +msgstr "收集 25 个钚电池" #: lang/json/mission_def_from_json.py msgid "" @@ -71994,7 +72884,7 @@ msgid "" "get an electrical expansion working for a year or two. I know they are rare" " but running generators isn't a viable option in the basement." msgstr "" -"我们开始在这建造新的基础设施,并希望几个新的电气系统能上线工作……不幸的是我们现有的系统由一种使用放射性同位素热力发电的核电池来供应能量。据我了解他们像巨大的电池那样工作。我们有扩大动力系统的能力,但是要想成功做到,得需要足够的钚才行。25个钚电池就足够我们的扩展电器工作上一到两年,我知道钚电池并非满大街都是的寻常东西,但是在地下室重新安装巨大的发电机组也不可行。" +"我们开始在这建造新的基础设施,并希望几个新的电气系统能上线工作……不幸的是我们现有的系统由一种使用放射性同位素热力发电的核电池来供应能量。据我了解它们的工作原理就像是一个巨大的电池。我们有扩大动力系统的能力,但是得先找到足够多的钚电池才行。25个钚电池就足够扩展后的电力网络工作上一到两年,我知道钚电池并非满大街都是的寻常东西,但是在地下室重新安装巨大的发电机组也不可行。" #: lang/json/mission_def_from_json.py msgid "If you can do this for us our survival options would vastly increase." @@ -72002,7 +72892,7 @@ msgstr "如果你能帮我们做成这事,这会大大增加我们活下去的 #: lang/json/mission_def_from_json.py msgid "Can't help you much, I've never even seen a plutonium battery." -msgstr "帮不了你,我从来没有见过钚电池。" +msgstr "我也帮不上什么忙,我从来没有见过钚电池。" #: lang/json/mission_def_from_json.py msgid "How is the search going?" @@ -72034,7 +72924,7 @@ msgstr "哦,感谢上帝,非常感谢你!我撑不过两天的,所以快 #: lang/json/mission_def_from_json.py msgid "What?! Please, without your help!" -msgstr "什么?!求你了,要是你不帮忙的话 !" +msgstr "什么?!求你了,要是你不帮忙的话 !" #: lang/json/mission_def_from_json.py msgid "There's a town nearby. Check pharmacies; it'll be behind the counter." @@ -72058,11 +72948,11 @@ msgstr "我怎么没死?!" #: lang/json/mission_def_from_json.py msgid "Find Antibiotics" -msgstr "发现抗生素" +msgstr "寻找抗生素" #: lang/json/mission_def_from_json.py msgid "This infection is bad, bad..." -msgstr "感染不容乐观,糟糕……" +msgstr "感染不容乐观, 糟糕……" #: lang/json/mission_def_from_json.py msgid "I'm infected. Badly. I need you to get some antibiotics for me..." @@ -72088,21 +72978,21 @@ msgid "" "me a black box from one of the wrecks I'll look into where we might open'er " "at." msgstr "" -"我们有国旗,但现在我们需要找到军队,看看我们能帮忙做些什么。我还什么都没看到,但我在这些轮爆发的疫情其中一次发现了一个好点子。如果你能给我其中一个残骸的黑匣子,我将看到我们将去向何方。" +"我们有国旗,但现在我们需要找到军队,看看我们能帮上点什么忙。虽然至今我都没看到过一个军人,但我想在这次事件爆发时四处飞的直升机上应该能找到些线索。如果你能找到一架坠毁直升机残骸上的黑匣子的话,我看看我能不能从里面找到些什么。" #: lang/json/mission_def_from_json.py msgid "Do you have any better ideas?" -msgstr "你有什么好主意吗?" +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 "幸存者都在谈论他们的遭遇,但是我不知道在哪里。如果我是一名飞行员,我会避免在一个城市或森林里迫降。" +msgstr "幸存者曾说过见到它们坠毁在某地,但我不知道具体地点。如果我是个飞行员的话,应该会避免在城市或森林里迫降的。" #: lang/json/mission_def_from_json.py msgid "How 'bout that black box?" -msgstr "这个黑匣子怎么办?" +msgstr "那个黑匣子的事情怎么样了?" #: lang/json/mission_def_from_json.py msgid "America, fuck ya!" @@ -72118,7 +73008,7 @@ msgstr "妈的!我只能亲自去找了。" #: lang/json/mission_def_from_json.py msgid "Retrieve Black Box Transcript" -msgstr "找回黑匣子数据" +msgstr "恢复黑匣子记录" #: lang/json/mission_def_from_json.py msgid "With the black box in hand, we need to find a lab." @@ -72134,23 +73024,23 @@ 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 "" -"感谢你的搜索,我们已经拿回了黑匣子,但我们现在需要知道里面存了什么。遗憾的是现在绝大多数建筑都没有电力了,但也许还有少数建筑有。不知你有没有曾经在某个鸟不拉屎的地方见过那些科学实验室?如果他们门前能看到一个发光的终端,我就知道其内部某个地方一定还有能源供应。如果你能想办法进去并找到一个可用的电脑,应该就能解读黑匣子里面的内容了。" +"多亏了你的搜索,我们已经拿回了黑匣子,但我们现在需要看看里面存了什么。遗憾的是现在绝大多数建筑都没有电力了,但也许还有少数建筑有。不知你有没有曾经在某个鸟不拉屎的地方见过那些科学实验室?那些狗地方门口总能看到发光的终端,所以我猜它内部一定还有电力供应。如果你能想办法进去并找到一台能用的电脑,应该就能知道黑匣子里面的内容了。" #: 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 "当我操作偶然碰见的终端时,它不断要求ID卡来取得操作权限。看来首要任务是先找到这样一张卡。" +msgstr "当我捣鼓那台我偶然碰见的终端时,它总是提示要插入某种ID卡来获得权限。看来首要任务是先找到这样一张卡。" #: 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 "美国,真他妈棒!几年前我还在警卫队里服役,所以我确信我对那些部队调动一清二楚。" +msgstr "美国,真是吊!几年前我在国民警卫队里服役过,所以我想我能从这些通信记录里查到一些线索。" #: lang/json/mission_def_from_json.py msgid "Damn, I maybe we can find an egg-head to crack the terminal." -msgstr "该死,也许我们可以找到一个聪明人去破解终端。" +msgstr "该死,也许我们该找一个聪明人去破解终端。" #: lang/json/mission_def_from_json.py msgid "Find Deputy Badge" @@ -72167,7 +73057,7 @@ msgid "" "justice for those who cannot. First things first, we can't just look like " "ruffians. Find us a deputy badge, easy enough?" msgstr "" -"我希望你能在这个保险箱找到有用的东西,不过我还有个任务给你,也许会有机会去打抱不平,先做重要的事情,我们不能只是看起来像痞子,给咱俩找个副官徽章,挺简单的吧?" +"我希望这个保险箱里的东西对你能有点用,不过我还有个任务给你,能够让你走上一条为不平之人伸张正义的道路。不过凡事有轻重缓急,我们可不能看起来像个暴徒一样。先找到个副官勋章,很简单不是吗?" #: lang/json/mission_def_from_json.py msgid "I'd check the police station." @@ -72177,11 +73067,11 @@ msgstr "我会去警察局找找。" msgid "" "We're also official... just hang in there and I'll show you what we can " "really do." -msgstr "我们也是公务员……你们在那儿再坚持会儿,我会让你见识见识我们的厉害。" +msgstr "我们也是公务员……就在那里等着,我会让你见识见识我们的厉害。" #: lang/json/mission_def_from_json.py msgid "They shouldn't be that hard to find... should they?" -msgstr "他们不应该这么难找……是吗?" +msgstr "那玩意不应该这么难找……不是吗?" #: lang/json/mission_def_from_json.py msgid "Any luck?" @@ -72189,7 +73079,7 @@ msgstr "成功了没?" #: lang/json/mission_def_from_json.py msgid "Great work, Deputy. We're in business." -msgstr "干的不错,副官。我们现在万事俱备了。" +msgstr "干的不错,副官。咱们现在该干活了。" #: lang/json/mission_def_from_json.py msgid "Thanks for trying... I guess." @@ -72197,33 +73087,33 @@ msgstr "感谢你的努力……我想是吧。" #: lang/json/mission_def_from_json.py msgid "The day of reckoning will come for the criminals if it hasn't already." -msgstr "这些罪犯的审判日马上就要降临,如果不是已经过了的话。" +msgstr "那些罪犯迟早都会被清算的,如果不是已经过了的话。" #: lang/json/mission_def_from_json.py msgid "Find Flag" -msgstr "找到国旗" +msgstr "寻找美帝国旗" #: lang/json/mission_def_from_json.py msgid "Does our flag still yet wave?" -msgstr "我们的国旗还在吗?" +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 "我们的国旗还在吗?即便发生了这么可怕的事,国旗也决不能倒下!" +msgstr "我们的国旗还在飘扬吗?虽然我们已经被打扁了,但我们还没有倒下,我们需要那染旧颜色!" #: lang/json/mission_def_from_json.py msgid "Hell ya! Find me one of those big ol' American flags." -msgstr "真棒!那就帮我找一面大大的美国国旗吧。" +msgstr "真棒!那就赶紧去找来一面大大的美帝国旗给我吧。" #: lang/json/mission_def_from_json.py msgid "Seriously? God damned commie..." -msgstr "真的吗?天杀的共产党……" +msgstr "真的吗?你个该死的共匪……" #: lang/json/mission_def_from_json.py msgid "Find a large federal building or school, they must have one." -msgstr "去找找学校或者大型联邦设施,哪些地方肯定会有国旗。" +msgstr "去学校或者大型联邦设施里找找,那些地方肯定会有国旗。" #: lang/json/mission_def_from_json.py msgid "Rescued the standard yet?" @@ -72237,18 +73127,19 @@ msgstr "什么?!你这个骗子!" 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 "你放弃了吗?这个国家因为大家找不到一个可以依靠的好人而土崩瓦解……还不如放弃,我想也是。" +msgstr "你就这么放弃了?这个国家因为大家找不到一个可以依靠的好人而土崩瓦解……还不如放弃,我想也是。" #: lang/json/mission_def_from_json.py msgid "Find Corporate Accounts" -msgstr "找到公司账目" +msgstr "寻找公司会计总账" #: lang/json/mission_def_from_json.py msgid "" "Our world fell apart because our leaders were as crooked as the con-men that" " 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 "我们的世界土崩瓦解了,这都是因为所谓的国家领导人都在忙着讨好他们的恩主。帮我找一本企业会计书,我将向您和世人揭示这到底是谁的错。" +msgstr "" +"我们的世界土崩瓦解了,这都是因为所谓的国家领导人和为他们的选举买单的骗子一样狡猾。帮我找来一份公司会计总账,我将向你和世人揭示这到底是谁的错。" #: lang/json/mission_def_from_json.py msgid "You'll see, I know I'm right." @@ -72258,28 +73149,28 @@ msgstr "等着瞧。我知道我是对的。" msgid "" "I know it isn't pressing but the big corporations didn't get a chance to " "destroy the evidence yet." -msgstr "我知道时间并不紧迫但一个大公司竟然没有机会来毁灭证据。" +msgstr "我知道这件事并不紧迫,但大公司没时间来毁灭证据。" #: 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 "试试那些大企业的办公楼,里面肯定会有会计部。" +msgstr "去那些大企业的办公楼看看,里面肯定会有会计部。" #: 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 "很好,我们来看看……嗯……呃……好吧,其实我自己也没填过税表,但我肯定如果我们能找个专家来看的话,这表格能证明他们有罪。" +msgstr "很好,我们来看看……嗯……呃……好吧,其实我自己也没填过税表,但我肯定如果我们能找个专家来看的话,这玩意肯定能证明他们有罪。" #: lang/json/mission_def_from_json.py msgid "" "The day of reckoning will come for the corporations if it hasn't already." -msgstr "这些大公司的审判日马上就要降临,如果不是已经过了的话。" +msgstr "那些大企业迟早都会被清算的,如果不是已经过了的话。" #: lang/json/mission_def_from_json.py msgid "Find Patient Records" -msgstr "找到病人的记录" +msgstr "寻找患者治疗记录" #: lang/json/mission_def_from_json.py msgid "I hope I don't see many names I know..." @@ -72290,7 +73181,7 @@ msgid "" "I've lost so many friends... please find me a patient list from the regional" " hospital or doctor's office. I just want to know who might still be out " "there." -msgstr "我已经失去了这么多的朋友……请给我从区域医院或医生的办公室找到病人名单。我只是想知道谁可能仍然在那里。" +msgstr "我已经失去了这么多的朋友……请帮我从地区医院或诊所里找来一份病人名单。我只是想知道谁还可能被困在那里。" #: lang/json/mission_def_from_json.py msgid "" @@ -72306,23 +73197,23 @@ msgstr "求求你,我只是想弄明白大家身上究竟都发生些了什么 msgid "" "I bet you'll run into a lot of those things in the hospital, please be " "careful." -msgstr "我打赌你将会在医院内遇到很多肮脏的东西,请小心些。" +msgstr "我打赌你将会在医院内遇到不少怪物,请小心些。" #: lang/json/mission_def_from_json.py msgid "Oh dear, I thought Timmy would have made it..." -msgstr "哦,亲爱的,我想蒂米会撑过去的……" +msgstr "哦,天啊,我本以为蒂米能撑过去的……" #: lang/json/mission_def_from_json.py msgid "I bet some of them are still out there..." -msgstr "我打赌他们中的一些还在那里……" +msgstr "我打赌他们中的一些人还被困在那里……" #: lang/json/mission_def_from_json.py msgid "Find Weather Log" -msgstr "找到天气日志" +msgstr "寻找天气日志" #: lang/json/mission_def_from_json.py msgid "I wonder if a retreat might exist..." -msgstr "我想知道是否有个隐居地……" +msgstr "我想知道是否有个隐身之所……" #: lang/json/mission_def_from_json.py msgid "" @@ -72332,23 +73223,23 @@ msgid "" "ever the disease was released. We need to find a record of all the weather " "patterns leading up to the outbreak." msgstr "" -"所有死去的人都复活了,对吗?这就说明不管是什么原因造成的,它一定是通过空气传染了所有人。如果是这样的话,我相信会有一处地方在瘟疫被释放时并没处于下风口。我们需要找到导致瘟疫爆发的所有天气模型的记录。" +"所有死去的人都复活了,对吗?这就说明不管是什么原因造成的这一切,它一定是通过空气传染了所有人。如果是这样的话,我相信总会有一处地方在瘟疫传播时处在上风口。我们需要找到导致瘟疫爆发的所有记录来构建这个天气模型。" #: lang/json/mission_def_from_json.py msgid "Thanks so much, you may save both of us yet." -msgstr "太谢谢了,你可救了我们两人的命。" +msgstr "太谢谢了,你可能救了我们两人的命。" #: lang/json/mission_def_from_json.py msgid "Ya, it was a long shot I admit." -msgstr "是,我承认,这有点不太可能。" +msgstr "是,我承认,可能性微乎其微。" #: lang/json/mission_def_from_json.py msgid "I'm not sure, maybe a news station would have what we are looking?" -msgstr "尽管我不确定,也许在新闻台能找到那玩意?" +msgstr "我不确定,也许在电视台里能找到那玩意?" #: lang/json/mission_def_from_json.py msgid "These look more complicated than I thought, just give me some time." -msgstr "尽管这些看起来比我原本想的还要复杂很多,嘛,给我些时间。" +msgstr "这些玩意看起来比我想的要复杂很多,嘛,给我些时间。" #: lang/json/mission_def_from_json.py msgid "This isn't what we need." @@ -72356,15 +73247,15 @@ msgstr "这不是我们想要的。" #: lang/json/mission_def_from_json.py msgid "If only we could find a great valley or something." -msgstr "只要我们能找到一个大峡谷之类的地方。" +msgstr "要是我们能找到大峡谷之类的就好了。" #: lang/json/mission_def_from_json.py msgid "Find Relic" -msgstr "寻找遗迹" +msgstr "寻找圣物" #: lang/json/mission_def_from_json.py msgid "St. Michael the archangel defend me in battle..." -msgstr "圣迈克尔天使在战斗中保护我……" +msgstr "愿圣迈克尔天使在战斗中护佑着我……" #: lang/json/mission_def_from_json.py msgid "" @@ -72373,12 +73264,12 @@ 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 "" -"随着整个世界似乎都在颠覆我们以往对现实的认识,那些曾经被我们抛弃的迷信所内含的道理现在看来也变得让人可信。请帮我找到这样一个宗教遗迹……我虽然怀疑它能有多大用处,但我必须将希望寄托在某事上。" +"随着整个世界似乎都在颠覆我们以往对现实的认识,那些曾经被我们抛弃的迷信所内含的道理现在看来也变得让人可信。请帮我找到一份宗教圣物……我虽然怀疑它可能没有多大用,但我总得有点盼头。" #: lang/json/mission_def_from_json.py msgid "" "I wish you the best of luck, may whatever god you please guide your path." -msgstr "祝你好运,愿你信仰的那个上帝指引你前进。" +msgstr "祝你好运,愿你信仰的那个上帝指引你前进的道路。" #: lang/json/mission_def_from_json.py msgid "Ya, I guess the stress may just be getting to me..." @@ -72386,11 +73277,11 @@ msgstr "呵,我想恐怕只有我来承担压力了……" #: lang/json/mission_def_from_json.py msgid "I suppose a large church or cathedral may have something." -msgstr "我想一个大教堂里可能会有点什么吧。" +msgstr "我想大教堂里可能会有点什么吧。" #: lang/json/mission_def_from_json.py msgid "Any luck? Please find me a small relic. Any relic will do." -msgstr "运气如何?请帮我去找个小巧圣物。任何一个都行。" +msgstr "运气如何?请帮我找来圣物。任何圣物都行。" #: lang/json/mission_def_from_json.py msgid "Thank you, I need some time alone now..." @@ -72409,18 +73300,18 @@ msgid "" " can keep any of the goodies in it that I can't use to press charges against" " these bastards." msgstr "" -"现在我不想让你感觉难过,但是我不清楚我现在应该拿账本干什么。不过我们有了一个新想法,账本上写着经理有一个保险箱,猜猜看,这个傻蛋把他的密码写到上面了。咱俩去找回这个箱子,里面只要是不能指控这帮混蛋的东西你都可以留着。" +"嗨,我不想冒犯你,但现在我不知道该拿着这份会计总账干什么用。不过我们现在可有个新目标了,账本上写着地区经理名下有一个保险箱。你猜怎么着,这个蠢货把密码写在这上面了。把这个保险箱带来给我,里面只要是不能指控这帮混蛋的东西你都可以自己留着。" #: lang/json/mission_def_from_json.py msgid "You may make a tidy profit from this." -msgstr "你可以从这一笔中可观的利润。" +msgstr "你也许会从中获得可观的利润哦。" #: lang/json/mission_def_from_json.py msgid "" "I know it isn't pressing but the world is going to be just as corrupt when " "we start rebuilding unless we take measure to stop those who seek to rule " "over us." -msgstr "我知道这并不紧要,但除非我们现在就采取措施来制止那些需求统治我们的人,否则重建的世界将会同样的腐败堕落。" +msgstr "我知道这件事并不紧迫,但除非我们现在就采取措施来制止那些想要统治我们的人,否则重建的世界将会同样的腐败堕落。" #: lang/json/mission_def_from_json.py msgid "This shouldn't be hard unless we run into a horde." @@ -72429,15 +73320,15 @@ msgstr "这应该不难,除非我们一头撞进尸潮里。" #: lang/json/mission_def_from_json.py msgid "" "Great, anything I can't use to prosecute the bastards is yours, as promised." -msgstr "灰常好,保险箱里面不能指控那帮混蛋的东西按照约定都是你的了。" +msgstr "很好,保险箱里面不能指控那帮混蛋的东西按照约定都是你的了。" #: lang/json/mission_def_from_json.py msgid "Retrieve Software" -msgstr "检索软件" +msgstr "取回软件资料" #: lang/json/mission_def_from_json.py msgid "Oh man, I can't believe I forgot to download it..." -msgstr "哦,我不敢相信我忘了下载……" +msgstr "哦,我不敢相信我居然忘了下载它……" #: lang/json/mission_def_from_json.py msgid "There's some important software on my computer that I need on USB." @@ -72445,7 +73336,7 @@ msgstr "我电脑里有些很重要的资料要复制到U盘里面。" #: lang/json/mission_def_from_json.py msgid "Thanks! Just pull the data onto this USB drive and bring it to me." -msgstr "谢谢!只要把数据下载到这个U盘里并带给我。" +msgstr "谢谢!只要把数据下载到这个U盘里并带给我就行了。" #: lang/json/mission_def_from_json.py msgid "Seriously? It's an easy job..." @@ -72453,7 +73344,7 @@ msgstr "真的吗?这很简单啊……" #: lang/json/mission_def_from_json.py msgid "Take this USB drive. Use the console, and download the software." -msgstr "带上这个U盘。使用终端,然后下载软件。" +msgstr "带上这个U盘。使用电脑,然后下载软件。" #: lang/json/mission_def_from_json.py msgid "So, do you have my software yet?" @@ -72469,43 +73360,43 @@ msgstr "哇,你失败了?所有这些工作,都浪费了……" #: lang/json/mission_def_from_json.py msgid "Analyze Zombie Blood" -msgstr "分析丧尸血" +msgstr "分析丧尸血样" #: lang/json/mission_def_from_json.py msgid "It could be very informative to perform an analysis of zombie blood..." -msgstr "如果能对丧尸血液进行一次分析的话能提供不少的情报信息……" +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 "我需要有人来获得一个丧尸血液样本并带它去医院,然后使用一个离心机分析它。" +msgstr "我需要你采集一份丧尸血液样本,将它带到医院里,然后使用离心机分析它。" #: lang/json/mission_def_from_json.py msgid "" "Excellent. Take this blood draw kit; once you've produced a zombie corpse, " "use it to extract blood from the body, then take it to a hospital for " "analysis." -msgstr "干得好。用这个采血管,一旦你找到一具丧尸尸体,就可以使用它来从那东西的身体中提取血液,然后把它带到医院进行分析。" +msgstr "很好。带着这根采血管;当你找到一具丧尸尸体后,就可以使用它从尸体中提取出血液样本,然后把它带到医院进行分析。" #: lang/json/mission_def_from_json.py msgid "" "Are you sure? The scientific value of that blood data could be priceless..." -msgstr "你确定吗?血液数据的科学价值可以是无价的……" +msgstr "你确定吗?那些血液样本数据的科学价值可是无价的……" #: 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 "操作离心机是需要点技术的,你需要先提升计算机技能再来完成这部分。" +msgstr "操作离心机是需要点技术的,你也许需要先提升下计算机技能,然后才能完成这部分操作。" #: lang/json/mission_def_from_json.py msgid "Well, do you have the data yet?" -msgstr "嗯,你拿到资料了吗?" +msgstr "嗯,你拿到数据了吗?" #: lang/json/mission_def_from_json.py msgid "Excellent! This may be the key to removing the infection." -msgstr "太棒了!这可能是去除感染的关键。" +msgstr "太棒了!这可能是治疗感染的关键。" #: lang/json/mission_def_from_json.py msgid "Wait, you couldn't possibly have the data! Liar!" @@ -72513,7 +73404,7 @@ msgstr "等等,你不可能有数据!骗子!" #: lang/json/mission_def_from_json.py msgid "What a shame, that data could have proved invaluable..." -msgstr "真遗憾,这个数据本可以是无价的……" +msgstr "真遗憾,那份数据本该是无价的……" #: lang/json/mission_def_from_json.py msgid "Investigate Cult" @@ -72528,7 +73419,7 @@ msgid "" "location for me? I'm not sure what was going on here but the priest seemed " "fairly worried about it." msgstr "" -"你不知道这本日记是多么令人关注。我发现两个非常有希望的线索……先说重要的,天主教教会已经开始自己对全球邪教现象的调查,最近以来教会似乎对一个当地的邪教很感兴趣。你可以帮我找出它的位置吗?我不知道发生了什么事情,但牧师似乎对此相当担心。" +"你不知道这本日记是多么有价值。我发现两条非常有希望的线索……先说重要的,天主教教会已经开始对全球邪教现象的进行全面自查,最近以来教会似乎对本地的一个邪教很感兴趣。你能替我去那里调查一下吗?我不知道发生了什么事情,但牧师似乎对此相当担心。" #: lang/json/mission_def_from_json.py msgid "" @@ -72538,7 +73429,7 @@ msgid "" "before and after the outbreak. The name of the cult is believed to be the " "Church of Starry Wisdom but it is noted that accounts differ." msgstr "" -"我祝你好运,愿你心中的神指引你的道路……你此行之艰辛将远超以往,只有更加坚定的信仰才能给你继续前行的勇气。这有一个关于危机爆发前后几天时间内可能的人类献祭的记录。据信该邪教的名字是星慧教堂,但也有人指出名字可能不同。" +"我祝你好运,愿你心中的神指引你的道路……你此行之艰辛将远超以往,只有更加坚定的信仰才能给你继续前行的勇气。这有一份灾变前后几天内可能发生过活人献祭的记录。据信该邪教的名字是星慧教堂,但记录里前后说法不一。" #: lang/json/mission_def_from_json.py msgid "" @@ -72546,11 +73437,11 @@ 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 "" -"我怀疑那个地点是否还在运作,但要去的话我还是会带把枪什么的。 我虽然不确定你在找什么,但我肯定,如果你搜寻的够仔细的话,你能找到与众不同的东西。" +"我不确定那个地点是否还在运作,但要去的话我还是会带上枪防身。 我虽然不知道你可能找到什么东西,但我肯定,如果搜寻够仔细的话,你还是能找到与众不同的东西。" #: lang/json/mission_def_from_json.py msgid "I'm positive there is something there... there has to be, any luck?" -msgstr "我肯定那里有点什么……肯定会有的,找到了么?" +msgstr "我很确定那里会藏着点什么的……肯定会有的,找到了么?" #: lang/json/mission_def_from_json.py msgid "" @@ -72559,11 +73450,11 @@ 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 "" -"谢谢你所做的一切……这些恶魔般的生物证明教会的担心是有理由的。我们的首要任务现在是找到这个邪教的任何幸存者……我不知道他们是否该对危机爆发负责,但他们肯定比我知道的更多。" +"谢谢你所做的一切……这些恶魔般的生物证明教会的担心不是空穴来风。现在我们的首要任务是找到这个邪教教派的任何幸存者……我不知道他们是否该对大灾变负责,但他们肯定比我知道的更多。" #: lang/json/mission_def_from_json.py msgid "Prison Visionary" -msgstr "幻影的监狱" +msgstr "狱中神示" #: lang/json/mission_def_from_json.py msgid "" @@ -72575,7 +73466,7 @@ 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 "" -"如果你愿意的话我还有另一个任务给你,牧师曾特别提到了一个囚犯,我想你能不能去调查下他到底怎么样了,或者说他有没有在他的囚室留下了什么东西。牧师承认,说的轻一点,那个人相当不稳定,但牧师个人认为那个人有某种忏悔的迹象。我现在还不能对该囚犯发表任何看法……但看起来他之前关于星智慧教堂的预言都非常准确。" +"如果你愿意的话,我这还有另一个任务给你。牧师曾特别提到了一个囚犯,我想你能不能去调查下他到底怎么样了,或者说他有没有在他的囚室留下了什么东西。牧师承认,说的轻一点,那个人相当不稳定,但牧师个人认为那个人有过悔罪神示。我现在还不能排除这份记录……但看起来这个人之前关于星慧教堂的预言都非常准确。" #: lang/json/mission_def_from_json.py msgid "" @@ -72593,12 +73484,12 @@ 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 "" -"最差的情况可能是囚犯逃脱了他们的牢笼,并把它建成自己的小堡垒。最好的情况可能是监狱进入紧急状态,囚犯都呆在监狱里。无论哪种情况,在那监狱里找路本来就很难。" +"最差的情况可能是囚犯逃脱了他们的牢笼,并把它建成自己的小堡垒。最好的情况可能是监狱进入紧急状态,囚犯都呆在监狱里。无论哪种情况,想要在监狱里找出一条路都会很困难。" #: 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 "谢谢,我不知道该怎么做,但我会考虑你的建议。" +msgstr "谢谢,我不知道该怎么回报你,但我会仔细研究你的记录的。" #: lang/json/mission_def_from_json.py msgid "Well damn, you must be the guys here to pick me up..." @@ -72625,7 +73516,7 @@ msgstr "头儿,在我们干场大仗之前请确保我们带了足够的装备 msgid "" "I don't think you're going to find many other survivors who haven't taken up" " a faction yet." -msgstr "我认为你没法找到那么多还没加入派系幸存者。" +msgstr "我可不觉得你还能找到任何一个到现在还没加入派系的其他幸存者。" #: lang/json/mission_def_from_json.py msgid "I'm a pretty good shot with a rifle or pistol." @@ -72641,15 +73532,15 @@ msgstr "等等……你真的让我当副官吗?" #: lang/json/mission_def_from_json.py msgid "I don't think so..." -msgstr "我并不这么认为……" +msgstr "我可不这么想……" #: lang/json/mission_def_from_json.py msgid "Quitting already?" -msgstr "要退出了吗?" +msgstr "这就不干了?" #: lang/json/mission_def_from_json.py msgid "Kill 100 Zombies" -msgstr "杀死100个丧尸" +msgstr "杀死100只丧尸" #: lang/json/mission_def_from_json.py msgid "You seem to know this new world better than most..." @@ -72664,7 +73555,7 @@ 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 "" -"你这身装备比大多数人要好的多……你对为我们创造一个更好的世界感兴趣么?这个小镇有足够的储备能让我们安家,但是我们这没人有足够能清理丧尸群的技能和装备。我会尽我所能去帮你但是你得真的像你说的那样把那些丧尸都赶出去。你,和我一起,让100只丧尸永远安息,怎么样?" +"你这身装备比大多数人要好的多……你对为我们创造一个更好的世界感兴趣么?这个小镇有足够的储备能让我们安家,但是我们这没有人有足够能清理尸群的技能和装备。我会尽我所能去帮你,但是你得真的像你说的那样把那些丧尸都赶出去。你,和我一起,让100只丧尸永远安息,怎么样?" #: lang/json/mission_def_from_json.py msgid "" @@ -72681,11 +73572,11 @@ msgstr "嗨,我知道我也不想自愿做这事儿……但我随即想到我 #: lang/json/mission_def_from_json.py msgid "I'd secure an ammo cache and try to sweep a town in multiple passes." -msgstr "我会确保弹药储备并尝试多扫荡几次城镇。" +msgstr "我会确保弹药储备并且分几次扫清整个城镇。" #: lang/json/mission_def_from_json.py msgid "Got this knocked out?" -msgstr "干掉他们了没?" +msgstr "干掉这些家伙了没?" #: lang/json/mission_def_from_json.py msgid "" @@ -72704,7 +73595,7 @@ 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 "我听到了某些不好的谣言,希望你准备好迎接新挑战……" +msgstr "我听到了很糟糕的传言,希望你准备好迎接新挑战……" #: lang/json/mission_def_from_json.py msgid "" @@ -72715,22 +73606,22 @@ msgid "" "but this thing reeks of trouble. Do whatever it takes but we can't risk it " "getting away." msgstr "" -"很显然一个幸存者领着一个异常密集的尸潮来到了这个地区。在这个群体的中心还有一个\"领导\"。要点是,杀了这个狗操的。我们不知道它是什么以及为什么其他丧尸围着它转,但是它绝对是个麻烦。不惜一切代价,我们不能让它跑了。" +"据我所知,另一名幸存者注意到有一波异常密集的尸潮正在走进本地区。在尸潮中心还有一个\"领导\"。总而言之,杀死那只王八蛋。我们不知道它有什么能力,也不知道为什么其他丧尸围着它转,但是它绝对是个大麻烦。不惜一切代价,我们不能让它跑了。" #: lang/json/mission_def_from_json.py msgid "" "I'll lend you a hand but I'd try and recruit another gunslinger if you can." -msgstr "我会帮你的,但如果可以的话,我想试着再招募一个枪手。" +msgstr "虽然我很想帮你的忙,但现在我想你应该试着再招募一个枪手。" #: lang/json/mission_def_from_json.py msgid "What's the use of walking away, they'll track you down eventually." -msgstr "逃离有用么?他们最终会找到你。" +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 "不要冒险去烧屋子,这屋子要是有地下室它可能会藏在里面,这傻蛋可能会在瓦砾和碎石中活着。" +msgstr "不要冒险去烧它所在的屋子,那间屋子要是有地下室的话,它可能会藏在底下。即便是压在瓦砾和碎石下,那个混蛋还是会继续活蹦乱跳的。" #: lang/json/mission_def_from_json.py msgid "May that bastard never get up again." @@ -72759,31 +73650,31 @@ 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 "" -"前些时候我和另一个朋友都躲在远离城镇的树林里,晚上再出来觅食。这样做帮我们躲过了普通丧尸的注意。但是有一天晚上有个怪物在路上截住了我们,追着我们跑了十多分钟,最后我们决定分头逃跑并在这里汇合。但是我的朋友却没能回来,我没办法杀掉那个怪物。你能帮忙吗?" +"前些时候我和另一个朋友都躲在远离城镇的树林里,晚上再出来觅食。这帮我们躲过了普通丧尸的注意,但是有一天晚上有只怪物发现了我们的踪迹,追着我们跑了十多分钟,最后我们决定分头逃跑并在这里汇合。但是我的朋友却没能回来,我没办法杀掉那只怪物。你能帮忙吗?" #: lang/json/mission_def_from_json.py msgid "Thanks, make sure you're ready for whatever the beast is." -msgstr "谢谢,请确保你已经准备好对付那个不知道是什么东西的野兽。" +msgstr "谢谢,请确保你已经准备好对付那个不知道是什么东西的怪物。" #: lang/json/mission_def_from_json.py msgid "Hey, I know I wouldn't volunteer for it either." -msgstr "嘿,我知道我不会自愿去做任何一个。" +msgstr "好吧,要是我我也不会自愿去做这件事的。" #: lang/json/mission_def_from_json.py msgid "I'd carry a shotgun at least, it sounded pretty big." -msgstr "要是我的话就要带一支够大够猛的喷子。" +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 "你看起来有一点动摇了,可是我想告诉你,当看见你干掉它时我是有多么高兴。" +msgstr "你看起来快散架了,我无法形容知道你杀了它时我有多高兴。" #: 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 "当我看树林时,一些东西仍然在阴暗处似乎盯着我。" +msgstr "当我看树林时,那个家伙仍然在暗暗盯着我。" #: lang/json/mission_def_from_json.py msgid "" @@ -72823,7 +73714,7 @@ msgstr "嗯……?你有没有……让我妈妈解脱?" #: lang/json/mission_def_from_json.py msgid "Thank you. I couldn't rest until I knew that was finished." -msgstr "谢谢你!在我知道那件事结束前我都睡不着。" +msgstr "谢谢你!在这之前我都睡不好觉。" #: lang/json/mission_def_from_json.py msgid "Really... that's too bad." @@ -72850,7 +73741,7 @@ msgid "" "and return the frequency list to me. I'm sure they could probably use your " "help also." msgstr "" -"在破解了设备之后,我们的沟通小组已经出发去守卫那个无线电控制台了。再此之后就再无音讯了,我需要你去找到他们。他们的首要目标是记录所有正在发射信息的其他幸存者和设备的生效无线电频道号。找到他们,并把无线电频率表带回给我。我相信他们也很需要你这样的帮助。" +"在破解了设备之后,我们的通讯小队已经出发去守卫那个无线电控制台了。再此之后就再无音讯了,我需要你去找到他们。他们的首要目标是记录所有正在发射信息的其他幸存者和设备的生效无线电频道号。找到他们,并把无线电频率表带回给我。我相信他们也很需要你这样的帮助。" #: lang/json/mission_def_from_json.py msgid "Good luck, the communications room shouldn't be far from here." @@ -72860,11 +73751,11 @@ msgstr "祝你好运,通讯室应该就在这附近。" msgid "" "I don't know why you would bother wasting your time down here if you can't " "handle a few small tasks..." -msgstr "我不知道你为什么在这种地方浪费时间,不过如果你可以帮点小忙的话……" +msgstr "如果连这点小事都办不到的话,我不知道你为什么还在这种地方浪费时间……" #: lang/json/mission_def_from_json.py msgid "We were briefed that the communications array was on this level." -msgstr "我们被简单告知通讯阵列就在这一层里。" +msgstr "任务简报里提到通信阵列就位于这一层。" #: lang/json/mission_def_from_json.py msgid "Thanks, let me know when you need another tasking." @@ -72886,7 +73777,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Good luck, finding a clear passage to the second level may be tricky." -msgstr "祝你好运,找到一条到第二层的安全道路可能会很棘手。" +msgstr "祝你好运,找到一条通往下层的安全道路可能会很棘手。" #: lang/json/mission_def_from_json.py msgid "These creatures can swing their appendages surprisingly far." @@ -72921,17 +73812,17 @@ msgstr "十分感谢,我知道在这个建筑群的另一头有个实验室, #: lang/json/mission_def_from_json.py msgid "I'm sure the motorpool has a truck battery you could salvage." -msgstr "我敢肯定汽车站会有一些你可以回收的货车电池的。" +msgstr "我敢肯定汽车站会有一些你可以回收利用的货车电池。" #: lang/json/mission_def_from_json.py msgid "Have you had any luck fabricating it?" -msgstr "你运气怎么样,造出来了没?" +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 "十分感谢,我会负责安装这一个的。需要点时间但我可以找个人帮忙在这个区域安装这些玩意。" +msgstr "十分感谢,我会来安装这个。需要花点时间,最好是能找到个帮手帮忙安装它。" #: lang/json/mission_def_from_json.py msgid "" @@ -72941,7 +73832,7 @@ msgid "" "few weeks. The task is rather simple but the shelters offer us a place to " "redirect refugees until this vault can be secured. " msgstr "" -"我想我们又得求助于你了。附近的紧急避难所有一些小型无线电发射机,如果我们不把它从避难所的供电系统中断开的话,紧急避难所的供电将会在接下来的数周内耗尽。任务本身很简单但这些紧急避难所能够让我们清理完这间避难所前为我们提供一个重新引导难民的地点。" +"我想我们又得求助于你了。附近的紧急避难所有里安装了一些小型无线电发射机,但如果我们不把它从避难所的供电系统中断开的话,紧急避难所的供电将会在接下来的数周内迅速耗尽。任务本身很简单,但这些紧急避难所能够让我们清理完这间避难所前为我们提供一个重新引导难民的安全地点。" #: lang/json/mission_def_from_json.py msgid "" @@ -72951,15 +73842,15 @@ msgstr "十分感谢,在你下次回来的时候我应该可以准备好帮你 #: lang/json/mission_def_from_json.py msgid "Try searching on the outskirts of towns." -msgstr "试着搜寻城镇的外围。" +msgstr "试着在城镇外围搜寻它们。" #: lang/json/mission_def_from_json.py msgid "Have you had any luck severing the connection?" -msgstr "你运气怎么样,切断连接了没?" +msgstr "干得怎么样,切断电源了没?" #: lang/json/mission_def_from_json.py msgid "We are good to go! The last of the gear is powering up now." -msgstr "我们大功告成了!最后的装备已经被启动了。" +msgstr "我们也准备好了!最后一台设备已经重新上线了。" #: lang/json/mission_def_from_json.py msgid "" @@ -72970,17 +73861,17 @@ msgid "" "unfortunately be ignored for now, without a dedicated emergency power system" " they won't be useful for some time." msgstr "" -"我的必要装备大部分都被带回前线了,所以现在是你发挥的时候了!去安装你的第一个无线电中继模块吧!一直往上走,找到最近的无线电台,然后把中继模块安装到备用无线电终端上,然后回来向我汇报,让我知道一切成功完成。现在的无线电发射塔肯定是不幸的被遗忘到现在了,没有一个专用的应急供电系统的话,那些东西的一些功能有时就不能用了。" +"我所需要的大多数设备都已经重新恢复电力供应了,所以现在是你来安装第一个无线电中继器模组的时候了!一直往上走,找到地面上最近的无线电站,然后把中继模块安装到备用无线电终端上,然后回来向我汇报,我可以在这里验证一切是否工作正常。不幸的是,我们暂时得先无视那些无线发射塔,因为它们缺少一个专用的应急供电系统,所以很长一段时间内它们都不能派上什么用场。" #: lang/json/mission_def_from_json.py msgid "I'll be standing by down here once you are done." -msgstr "我会在这里等着你完成任务。" +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 "如果你能帮忙制造点定位天线的话,也许能帮你定位那些无线电站。" +msgstr "如果你能够制造出一些能定位无线电的装置的话,也许它们能帮你找到那些无线电站。" #: lang/json/mission_def_from_json.py msgid "Have you had any luck finding a radio station?" @@ -72988,7 +73879,7 @@ msgstr "运气咋样?找到无线电塔了没?" #: lang/json/mission_def_from_json.py msgid "That's one down." -msgstr "又搞定一个。" +msgstr "又搞定一个任务。" #: lang/json/mission_def_from_json.py msgid "" @@ -72997,22 +73888,22 @@ msgid "" "little bit more. With enough of them we'll be able to maintain " "communication with anyone in the region." msgstr "" -"我总是可以让你去搭建下一个无线电中继器。也许不必我提醒,但每个新无线电中继器都将稍微扩大我们的响应范围。如果有足够多的话,我们可以和区域内的任意一个人保持联络。" +"我们还得让你去再多安装些无线电中继器。不用我说你也知道,每个新的无线电中继器都能够稍微扩大我们的响应范围。安装得够多的话,我能够和本地区任意一个人保持通讯联络。" #: lang/json/mission_def_from_json.py msgid "I'll be standing by." -msgstr "我会在这里等。" +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 "找到一部能用的车辆将随着你移动距离的增加而越来越重要。" +msgstr "找到一辆能够的载具会变得越来越重要,因为你所要跨越的距离会越来越远。" #: lang/json/mission_def_from_json.py msgid "" "I'll try and update the captain with any signals that I need investigated." -msgstr "我会尽力向上尉汇报任何我需要调查的信号的最新情况。" +msgstr "我会尽力向上尉汇报任何所需要调查的信号的最新情况。" #: lang/json/mission_def_from_json.py msgid "Kill Bandits" @@ -73026,7 +73917,7 @@ 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 "" -"我不喜欢派遣新人上战场送死,但是,既然你能活到现在,说明你确实有点本事。在这附近某个小屋里有至少两个强盗盘踞于此,任何捕杀平民的罪犯都应当被快点了结掉……你的任务就是处决掉他们。完成这个任务之后,旧世守护者就会认为你是本地区一个有价值的人。" +"我不喜欢派遣新人上战场送死,但是,既然你能活到现在,说明你确实有点本事。在这附近某个小屋里有至少两个强盗盘踞于此,任何捕杀平民的罪犯都应当被快点了结掉……你的任务就是处决掉他们。完成这个任务之后,旧世守护者就会认为你是个对他们有用的人。" #: lang/json/mission_def_from_json.py msgid "Contractor, I welcome you aboard." @@ -73066,11 +73957,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thank you, please keep this discreet." -msgstr "谢谢你,请保持谨慎。" +msgstr "谢谢你,请注意保密。" #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we could use a few good men." -msgstr "有机会就回来吧,我们欢迎能人。" +msgstr "一有机会就回来找我吧,我们欢迎能人。" #: lang/json/mission_def_from_json.py msgid "If they draw first blood their friends are less likely to blame you..." @@ -73078,7 +73969,7 @@ msgstr "如果他们先动手,那么他们的朋友可能就不会责怪你… #: lang/json/mission_def_from_json.py msgid "You deal with the rat?" -msgstr "你解决内鬼了吗?" +msgstr "你干掉那个内鬼了吗?" #: lang/json/mission_def_from_json.py msgid "Thank you, I'll do the explaining if anyone else asks about it." @@ -73095,21 +73986,21 @@ 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 "" -"又有困扰商会的麻烦了,但这一次不是人类……至少我觉得不是。商队末尾的人就那么消失了。没有人听到任何枪响,或许有些强盗非常擅长匿其行踪。侦查这片区域,并且汇报你发现的任何问题。" +"又有困扰商会的麻烦了,但这一次不是人类……至少我觉得不是。有个跟在商队末尾的人就那么消失了。没有人听到任何枪响,或许有些强盗非常擅长匿其行踪。侦查这片区域,然后回来跟我说说你发现的线索。" #: lang/json/mission_def_from_json.py msgid "Thanks, keeping the people safe is what we try and do." -msgstr "谢谢,保证人民的安全是我们必须去做的。" +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 "搜索灌木丛里的痕迹?我不是追踪专家,但你应该能够找到什么线索。" +msgstr "找找灌木丛里留下的痕迹?我不是追踪专家,但你应该能够找到什么线索。" #: lang/json/mission_def_from_json.py msgid "Great work, wasn't sure what I was sending you after." -msgstr "做得好!虽然我不记得让你找什么去了。" +msgstr "做得好!那时候我还不知道你会遇到些什么。" #: lang/json/mission_def_from_json.py msgid "Kill Raider Leader" @@ -73124,7 +74015,7 @@ msgid "" "Marshals Service and by agreeing to the mission you will become a marshal, " "swearing to assist the federal government in regaining order." msgstr "" -"我已经定位了一个\"地狱掠夺者\"在这一区域的营地,这个营地似乎是用来协调他们对自由商会的攻击行动。我们对这个\"帮派\"的领导结构一无所知,所以我需要有人去进行斩首行动。行动将在美国执法官服务的命令下进行,同意参加任务你将会被任命为执法官,并誓言帮助联邦政府重建秩序。" +"我已经定位了一个\"地狱掠夺者\"在这一区域的营地,这个营地似乎是用来组织对自由商会攻击行动的。我们对这个\"帮派\"的组织架构一无所知,但我需要有人去进行斩首行动。行动将在美国司法部执法官局的命令下进行,同意参加任务后,你将会被任命为执法官,并誓言帮助联邦政府重建秩序。" #: lang/json/mission_def_from_json.py msgid "" @@ -73140,17 +74031,19 @@ msgid "" "men or women assisting you are considered deputy marshals so keep them in " "line." msgstr "" -"跟着我大声发誓……我发誓,我将会不遗余力地支持和捍卫美利坚合众国宪法,不论是受到国外还是国内的威胁……我将承担真正的信念和忠诚……我无偿地承担这项义务,没有任何精神保留或逃避的目的……我将善意和忠诚地履行我即将担负的职责。建立正义,保障国内安宁,提供公共防卫,促进普遍福利和确保自由的祝福。所以帮助我吧,上帝!祝贺你执法官,不要忘记你的徽章和枪。作为一名联邦执法官,所有协助你的男女老少都是你的副官,管好他们。" +"跟着我大声宣誓……我宣誓,我将支持和捍卫美利坚合众国宪法和法律,反对国内外一切敌人……我将信念坚定,忠诚不渝……我自愿承担这一义务,毫无保留,决不逃避……我将尽职尽责完成我即将担负的本职工作" +" " +"。树立正义,保障国内安宁,提供共同防务,促进公共福利,并使我们自己和后代得享自由的幸福。愿上帝保佑我。祝贺你执法官,不要忘记带上你的徽章和枪。作为一名联邦执法官,所有协助你的男女老少都是你的副官,管好他们。" #: 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 "我建议您带两个副手。如果独自一人被包围的话,就像是掉进了死亡陷阱一样。" +msgstr "我建议你带上一两个副官……如果独自一人被包围的话,就像是掉进了死亡陷阱一样。" #: lang/json/mission_def_from_json.py msgid "Has the leadership been dealt with?" -msgstr "那个头目被处理了吗?" +msgstr "干掉他们的头目了吗?" #: lang/json/mission_def_from_json.py msgid "" @@ -73162,7 +74055,7 @@ 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 "" -"执法官,你一直以来都给我们留下深刻的印象。如果你有兴趣,我最近收到一个消息,一个小队部署到了我们防区内。我没有确切的坐标,但他们说他们正在攻占一座地下设施,可能需要帮助。听说直升机把他们放在一间水泵房旁边。没有更多的消息了。如果你找到负责此事的上尉,我相信他可以让你的技能得以发挥。在与他们会面时不要忘记戴上你的徽章。再次感谢你,执法官。" +"执法官,你一直以来都给我们留下深刻的印象。如果你感兴趣的话,我最近收到一条消息,一只小队已经被部署到本地区。我没有具体坐标,不过听说他们正在清理一处地下设施,可能需要帮助。直升机把他们空投在一间水泵房旁边。没有更多的消息了。如果你找到领头的上尉,我相信他能让你派上用场的。在与他们会面时不要忘记戴上你的徽章。再次感谢你,执法官。" #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" @@ -73173,8 +74066,7 @@ msgid "" "The wine and beer we can brew are sufficient to attract most patrons but we " "need something a bit stronger to get them to forget their misery. Could you" " build me a pair of stills?" -msgstr "" -"我们自己酿造的葡萄酒和啤酒已经可以吸引大部分的赞助商支援我们的建设了,但是我需要其他的一些东西来迷茫的他们的选择坚定的选择相信我们。你可以为我们建造一对蒸馏器吗?" +msgstr "我们自己酿造的葡萄酒和啤酒已经可以吸引大部分顾客了,但我还是需要些更烈的酒让他们忘记一切烦恼。你可以为我们造一对蒸馏器吗?" #: lang/json/mission_def_from_json.py msgid "" @@ -73184,12 +74076,12 @@ msgstr "有了这些蒸馏器,我们就可以酿造威士忌、朗姆酒和白 #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we need skilled survivors." -msgstr "有机会的话你要回来哦!我们很需要技能熟练的幸存者。" +msgstr "等你有机会再来,我们需要技能熟练的幸存者。" #: lang/json/mission_def_from_json.py msgid "" "I'm sure you could find the design for the stills in home brewing books." -msgstr "我相信你可以在酿造者宝典或者其他酿造书籍里面找到制作蒸馏器的方法。" +msgstr "我相信你可以在酿造类书籍里找到蒸馏器的制作方法。" #: lang/json/mission_def_from_json.py msgid "Do you have the stills?" @@ -73209,8 +74101,7 @@ msgid "" "contaminated the yeast we have been using. Could you locate a source of " "fresh yeast for us to use? I'd need about 20 teaspoons of dry yeast to get " "started." -msgstr "" -"上一桶我们酿造的酒品相很差,我坚信是我们加入的酵母里面混了些其他的东西。你可以找到一些生酵母的来源吗?我需要20茶匙的干酵母粉来开始下一桶酿造。" +msgstr "上一桶我酿的酒品相很差,我敢打赌一定是我们用的酵母被污染了。你能帮我们找点新鲜的酵母吗?我需要约20单位的酵母粉才能保证酿造进程。" #: lang/json/mission_def_from_json.py msgid "Thank you for your assistance." @@ -73236,11 +74127,11 @@ 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 "" -"糖和糖浆仍然供应短缺。我已经发布了需求任务了,但看来有时我需要一个可靠的来源。如果你感兴趣的话,无论搜刮队有没搜到,我现在想要一些甜菜种子来满足我们未来对糖的需求。你可以找回给我足够来种植到至少10米长的田垄里的至少那么多的种子吗?" +"糖和糖浆仍然供应短缺。我已经提交了申请,但看来很长一段时间里都见不到一个可靠的来源。如果你感兴趣的话,无论拾荒小队能找到点什么,我们总会需要甜菜种子来满足今后日益增加的糖分需求。你能帮我找来足够种满十块田垄的甜菜种子吗?" #: lang/json/mission_def_from_json.py msgid "Farms or supply stores might have a few seeds..." -msgstr "农场或者种子店也许会有一些种子……" +msgstr "农场或者园艺店里也许会有一些种子……" #: lang/json/mission_def_from_json.py msgid "Do you have the sugar beet seeds?" @@ -73248,7 +74139,7 @@ msgstr "弄到甜菜种子了吗?" #: lang/json/mission_def_from_json.py msgid "Find 12 Metal Tanks" -msgstr "收集 12 个金属罐" +msgstr "收集 12 只金属罐" #: lang/json/mission_def_from_json.py msgid "" @@ -73259,11 +74150,11 @@ msgid "" "metal tanks to build them. I've talked with the scrappers but we are a low " "priority at the moment." msgstr "" -"我们酿造的饮料已经成为我们主要的对外来访客和自由生意人们的主要贸易物了。我们的酿造罐已经造了些更大的,但是我们仍然缺少足够的用来储藏和运输啤酒的酿造罐。我已经让一些志愿者来帮我建造一些储存罐了,但是我仍然需要12个金属罐来建造它。我已经和拾荒者们谈过了,但现在我们的请求对他们来说优先级很低。" +"我们酿的酒已经成为我们用来吸引访客和偶尔出现的商人的重要产品了。现在每批酿造量越来越大,但是缺少足够的储存罐来储存两次商队之间所酿出来的酒。我已经让一些志愿者来帮我建造一些储存罐了,但是我还差12只金属罐才能造完它。我已经和拾荒小队说过这件事了,但我们的这个请求目前对他们来说优先级很低。" #: lang/json/mission_def_from_json.py msgid "Scrapping vehicles might be your best bet." -msgstr "拆车取材可能是你最好的方法。" +msgstr "拆掉废载具来获取材料可能是你最好的选择。" #: lang/json/mission_def_from_json.py msgid "Do you have the metal tanks?" @@ -73281,7 +74172,7 @@ msgid "" "200-liter drums we should be able to keep them supplied while turning a " "significant profit." msgstr "" -"我们已经联系上的一些其他的幸存者前哨站非常渴望通过贸易换取我们的啤酒和其他饮料。但是目前运送饮料到他们那里仍然有很多的困难。如果你可以找到两只200L的钢制油罐的话,我们应该就可以做成这笔利润丰厚的生意了。" +"我们所接触到的其他幸存者哨站都很渴望通过贸易换取我们的啤酒和其他酒精饮料。不过运输这些酒到他们那里还很困难。如果你可以找来两只200L的钢制油罐的话,我们应该就可以做成这笔利润丰厚的生意了。" #: lang/json/mission_def_from_json.py msgid "Factories or junk yards are the only places I know where to look." @@ -73289,7 +74180,7 @@ msgstr "工厂或者垃圾场应该是唯二能够找到它的地方,当然你 #: lang/json/mission_def_from_json.py msgid "Do you have the 200-liter drums?" -msgstr "弄到油罐了吗?" +msgstr "弄到钢制油罐了吗?" #: lang/json/mission_def_from_json.py msgid "Cut 200 2x4's" @@ -73304,12 +74195,12 @@ msgid "" "other half and construction. If you don't have a truck, I'd make finding " "one your first priority. " msgstr "" -"我们的首要目标是把谷仓围起来,让难民们能有个安全的地方睡觉。但在真的开始这项改进之前,我们需要大量的木材作准备。仅仅是封闭谷仓的4个入口,我们就需要接近400块2x4制式木料了……如果你能提供所需材料的一半,加上我们自己能搞定的另一半,就能开工了。如果你还没有辆卡车的话,如果是你我会把寻找它当作首要任务来完成。" +"我们的首要目标是把谷仓围起来,让难民们能有个安全的地方睡觉。但在开始正式工作之前,我们需要大量的木材。光是封闭谷仓的4个入口就得花费近400块2x4制式木料了……如果你能提供一半材料,加上我们能搞定的另一半,就能开工了。如果你还没有辆卡车的话,要我的话肯定优先去找一辆来。" #: lang/json/mission_def_from_json.py msgid "" "The more men we can bring to the camp the quicker improvements can be made." -msgstr "我们如果带更多人到营地的话,就能更快地升级。" +msgstr "越早完成这项改造,我们就能多叫点人过来。" #: lang/json/mission_def_from_json.py msgid "Avoid destroying the furniture, we'll be needing it." @@ -73317,13 +74208,13 @@ msgstr "尽量不要破坏家具,我们会用得着的。" #: lang/json/mission_def_from_json.py msgid "Do you have them?" -msgstr "弄到了吗?" +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 "很好,我会传信说我们能够叫上其他帮手来帮忙的。" +msgstr "很好,我会传信回去,让他们再多派几个帮手过来的。" #: lang/json/mission_def_from_json.py msgid "Gather 6 First Aid Kits" @@ -73338,11 +74229,11 @@ msgid "" " could bring in 6 full kits I'm sure we could supplement them to make them " "last a bit longer." msgstr "" -"我们计划开办一个诊所,但还需要更多的医疗物资,难民中心才会批准把少数有医疗经验的人送一个来前哨站。我知道急救箱很少见,但它能提供我没把握确定的各类基础医疗用品。如果你能带来6个完整的急救箱,我相信我可以查漏补缺,让这里维持运作更长时间。" +"我们计划开办一个诊所,但还需要更多的医疗物资,难民中心才会批准把少数有医疗经验的人送一个来前哨站。我知道急救箱很少见,但它里面有各种我叫不上来的基础医疗用品。如果你能带来6个完整的急救箱,我相信我可以查漏补缺,让诊所维持运作更久。" #: lang/json/mission_def_from_json.py msgid "We'll do our best to make them last..." -msgstr "我们会作出最大努力保证队友的存活。" +msgstr "我会尽量让它们用的久一点的……" #: lang/json/mission_def_from_json.py msgid "Homes, hospitals, labs, and doctor offices would be where I'd check." @@ -73368,17 +74259,17 @@ msgid "" "build fortifications and equipment. We are going to need a pair of electric" " welders for our mechanics to use." msgstr "" -"你所完成的工作已经让难民中心的领导者们动摇,想要送一些人出去帮助找医疗物品了。我们的下一步是建成简易工房,以便我们开始回收破碎金属来制造碉堡和各种装备。我们想要一对焊枪,提供给我们的机械工人焊接零件。" +"你所做的工作已经让难民中心的领导回心转意,已经派个人来帮我们解决医疗需求了。我们的下一步是造间简易工房,以便回收金属废料来建造碉堡和各种装备。我们需要一对电焊枪,好给机械师用。" #: lang/json/mission_def_from_json.py msgid "With two, we should be able to repair one if it breaks." -msgstr "如果我们有了两支电焊枪,当其中一只坏了我们都可以用另一支来修理它。" +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 "我唯一见过它在车库,但是我觉得你可以在某些商店找到它。" +msgstr "我只在车库里见过那玩意,不过我想你在某些商店里也应该能找到。" #: lang/json/mission_def_from_json.py msgid "Do you have the welders?" @@ -73396,7 +74287,7 @@ 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 "" -"我们已经有了所需的基本设备,但现在没有专门的电网供电,我们被迫用能比较容易取得的载具的电池来供电给设备使用。这虽然是一件麻烦的小事,但我想要12块汽车电池,让我们可以在给电池充电和设备用电之间无间隔地轮换电池。" +"我们已经有了一些基础装备,但如果没有可用的供电网络的话,我们只能用那些比较容易获得的汽车电池来给它们充电。虽然是件杂活,但我需要12块汽车电池在充电和用电之间轮换。好消息是你带来的电池不需要充好电,我们会自己想办法解决的。" #: lang/json/mission_def_from_json.py msgid "I'm counting on you." @@ -73406,7 +74297,7 @@ msgstr "我就指望你了。" msgid "" "Cars can be found in traffic jams along roads or in parking lots... I'm " "sure you can find a few." -msgstr "车子在路上交通拥堵的地方和停车场都可以找到……我相信你能够找到不少。" +msgstr "汽车可以沿着路或者是在停车场里找到……我相信你能够找到不少。" #: lang/json/mission_def_from_json.py msgid "Do you have the car batteries?" @@ -73430,19 +74321,19 @@ msgid "" " that. Communication is the biggest obstacle for the teams... could you " "bring in a pair of two-way radios?" msgstr "" -"如果你有空的话去找找我们的护士,我知道她在建设诊所的过程中需要你的帮助。在建筑前线,我们将会需要成立几个专业拾荒小队来给我们供应各种有用的小玩意。我们正要在前哨站北边建立一间旧货商店,所以我想得到你的帮助。现在团队之间急缺沟通的手段……你能捎回来两台双向无线电吗?" +"有空的话去找一趟护士,我知道她在建设诊所的过程中需要你的帮助。在建筑前线,我们会成立几只专业拾荒小队为我们带回各种有少量需求的物品。我们也会在哨站北面为他们新开一间旧货商店,那里也需要你的帮助。队伍之间的通信是目前最大的问题……你能弄来一对双向无线电吗?" #: lang/json/mission_def_from_json.py msgid "" "Organizing the scavenging missions is difficult enough without " "communication." -msgstr "如果没有足够的沟通条件,拾荒任务将很难开展。" +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 "你可以在电器商店或者警局找到它。" +msgstr "你应该能在电器店或者警局里找到它。" #: lang/json/mission_def_from_json.py msgid "Do you have the two-way radios?" @@ -73450,7 +74341,7 @@ msgstr "弄到双向无线电了吗?" #: lang/json/mission_def_from_json.py msgid "I'm sure the scavengers will find these useful." -msgstr "我敢肯定,拾荒者们会觉得这些很有用。" +msgstr "我敢肯定,拾荒者们会觉得它很有用的。" #: lang/json/mission_def_from_json.py msgid "Gather 5 Backpacks" @@ -73464,11 +74355,11 @@ msgid "" "backpacks to get them started. Could you find five backpacks to give to the" " initial team?" msgstr "" -"拾荒小队的志愿者们将会需要配备一些基本的装备。等到老板拉起旧货商店的棚之后你应该去问问他的团队还需要些什么。同时我们也要提供些背包来让这间店子有东西开张。你能够找到5个背包给前往的队伍吗?" +"拾荒小队的志愿者们需要派发一些基础装备。当旧货商店的头正式开张营业后你可以去问问他的团队还要点什么。与此同时我们可以为他们提供一些背包来帮他们早点开张。你能够找来5个背包给第一支小队吗?" #: 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 "如果你没能找到学校或者其他什么的话,造一只比较简单。" +msgstr "如果你在学校或是其他商店里找不到的话,直接造一个更简单。" #: lang/json/mission_def_from_json.py msgid "Do you have the backpacks?" @@ -73477,7 +74368,7 @@ msgstr "弄到背包了吗?" #: lang/json/mission_def_from_json.py msgid "" "Having at least basic equipment greatly increases survivability. Thanks." -msgstr "我们有了这些基础装备之后,生存率大大提高了。谢谢。" +msgstr "有了这些基础装备之后,生存率会大大提高的。谢谢你。" #: lang/json/mission_def_from_json.py msgid "Find Homebrewer's Bible" @@ -73495,11 +74386,11 @@ msgid "" "going to need you to find a book called the 'Homebrewer's Bible' or " "something along those lines." msgstr "" -"发展速度慢慢地停了下来。我们已经有人我们已经周围问过了,除去生活必须的资源外,我们应该去前哨站搭建一个酒吧,让那些犹豫不决的人们可以下定决心上前线去冒险。因为不像其他的地方,前哨站那里如果我们有更多的人可以过去,我们就可以制造出更多的食物……至少在还未机械化的很长时间内情况都将如此。没有人曾在那里酿造过酒精饮料,所以我们需要你去找一本叫《酿造者宝典》的酿造书籍或者同类的书。" +"最近哨站的发展有些停滞。偶尔会有人路过这里,但是看到为了维持生存而努力工作的前景又赶跑了他们。我已经问过了一圈并决定,除去生活必须的资源外,再建一间酒吧应该就能吸引一些犹豫不决的人在哨站生活。不像其他地方,哨站那里人越多,就能产出越多的食物……至少长期看来是这样的。不幸的是,这里没人懂得如何酿酒,所以需要你找本叫名字大概是《酿造者宝典》的酿造类书籍来。" #: lang/json/mission_def_from_json.py msgid "I guess you should search homes or libraries?" -msgstr "我想你应该搜索一下民宅或是图书馆?" +msgstr "我想也许你该去民宅或是图书馆看看?" #: lang/json/mission_def_from_json.py msgid "Do you have the book?" @@ -73507,7 +74398,7 @@ msgstr "弄到那本书了吗?" #: lang/json/mission_def_from_json.py msgid "I guarantee we will toast to your name when the bar is finished." -msgstr "我敢说当一切完成后,我们的酒吧里都会以你的名字干杯!" +msgstr "我保证,当酒吧建起来之后,大伙每次都会用你的名字干杯!" #: lang/json/mission_def_from_json.py msgid "Gather 80 Sugar" @@ -73521,13 +74412,13 @@ 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 "" -"刚刚翻了些书看到,在大多数的酒精制造饮料的配方中,我们目前最缺少一种有很高需求量的原料——糖。我们以前搜刮回来的酒精饮料的总量已经不够支持太久了,所以我们现在的第一要务就是开始发酵生产属于我们的第一桶啤酒。你能带来80份的糖吗?这么多糖该能让我们坚持到我们建立好我们自己的原料供应线。" +"刚刚翻了翻书,我发现在多数酿酒配方中,用量最大而目前最缺的原料是糖。之前搜刮来的酒维持不了多久,所以现在首要任务是赶紧开始酿第一批酒。你能给我们带来80单位的糖吗?有了这么多糖应该能坚持到我们能开始自己产出原料。" #: 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 "如果你足够幸运你才会找到现成的纯糖,但是如果熟练的话,你也可以通过煮沸水果汁提取糖分。" +msgstr "如果你足够幸运,你能找到现成的,但是如果你熟悉制造方法的话,你也能从含糖的果汁里蒸馏结晶出来。" #: lang/json/mission_def_from_json.py msgid "Do you have the sugar?" @@ -73537,7 +74428,7 @@ msgstr "弄到糖了吗?" msgid "" "There is a large group of thirsty individuals in our outpost that are truly " "thankful for your work." -msgstr "我们前哨站里一大群口渴的成员都会诚挚地感谢你的无私奉献。" +msgstr "哨站里一大群渴望已久的成员会很感激你的无私奉献的。" #: lang/json/mission_def_from_json.py msgid "Collect 30 Glass Sheets" @@ -73552,8 +74443,7 @@ 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 "" -"虽然我们是一个农业前哨站,但我们能做到的仅仅是在比较暖和的几个月份种一些当季蔬菜。我想没有比盖几个温室更能扩展我们的选择余地了。 " -"这可不是件轻松活,我们需要大量的玻璃片来构建温室的框架。如果你感兴趣的话,第一座温室需要的玻璃片是:30 片。" +"虽然我们是一个农业前哨站,但我们只能是在比较暖和的几个月里种一些适应新英格兰气候的当季蔬菜。最简单的解决方法就是盖间温室来作为户外农田的补充。但建温室可不是件轻松活,我们需要大量的玻璃片来搭建温室框架。如果你还想帮忙的话,第一所温室就需要30片玻璃片。" #: lang/json/mission_def_from_json.py msgid "" @@ -73568,7 +74458,7 @@ 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 "一旦我们把这些装好,我们会马上种下第一批种子。" +msgstr "一把它们安装好,我们就会马上种下第一批种子。" #: lang/json/mission_def_from_json.py msgid "Find 25 Blankets" @@ -73582,17 +74472,17 @@ 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 "" -"当谷仓入口被封住之后,进去住的难民们就能够感到更安全了,但是随着天气变冷,我们需要在谷仓隔间里建造简易的床来抵御寒冷带来的各种疾病和冻伤了。我们可以找到床架的材料,但是我们需要你去搜刮些棉毯。我们需要25条棉毯来提供最基本的睡眠条件。" +"当谷仓入口被封住之后,住进去的难民们虽然觉得安全了,但还是天寒地冻的。我们需要在马厩里建造些简易床铺来抵御寒冷带来的疾病和冻伤了。我们自己能搞定床架,但需要你帮忙找些棉毯来。我们需要25条棉毯来保障基本的住宿条件。" #: 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 "我认为你可以去酒店搜刮,当然你也可以自己缝……但那是最坏的方法。" +msgstr "要是我的话,我会从酒店开始找,当然你也可以自己缝……但那是万不得已的方法。" #: lang/json/mission_def_from_json.py msgid "Avoid destroying the furniture here, we'll be needing it." -msgstr "不要打破这些家具,我们需要它。" +msgstr "尽量不要破坏这里的家具,我们会用得着的。" #: lang/json/mission_def_from_json.py msgid "Your assistance is always appreciated." @@ -73610,13 +74500,13 @@ msgid "" "rubble. We'd need 2500 to have enough that we won't be sending you back out" " too soon." msgstr "" -"我们的铁钉资源不足。我想向你要上几盒了。通常还没被搜刮过的五金店会有一些钉子。而且我觉得你可以在建筑废墟中找到不少的钉子。我们需要2500颗钉子,有了这个数我们可能就不会在短时间内再麻烦你一趟了。" +"我们这里的钉子储备已经耗光了。我想我们得找你要几盒了。通常还没被搜刮过的五金店会有一些钉子。我想也许你还能在建筑废墟里找到不少。我们得要2500枚钉子,有了这个数,短时间内应该不会再麻烦你一趟了。" #: 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 "拆解家具看来不是很有效率。试试找看有没有一整盒的,或者去建筑废墟里面刨一些?" +msgstr "光靠拆家具是远远不够的,去看看有没有整盒的,或者去建筑废墟里面刨一些?" #: lang/json/mission_def_from_json.py msgid "Gather 300 Salt" @@ -73634,7 +74524,7 @@ msgid "" "is salt. I negotiated them down from 500 units to 300... we were hoping you" " might have access to a source." msgstr "" -"我知道你已经发现我们慢慢找到些新伙伴了。那些自由商人的意思是要我们需要立即在现在的有限资源情况下建立自给自足的设施。我们的确需要在冬天和饥荒把无助和毫无准备的我们打倒之前迅速地建立一个农业产业链。我们需要通过以物换物的形式,收集半打铁楸和两包种子,才能够开始建设。我已经下好决心了,但他们想要交换的唯一货物是…盐。我已经通过谈判从500份降到300份了……我们都盼着你能够取得这些资源。" +"我想你或许注意到这里慢慢增多的新工人了。自由商会的意思是要我们需要马上自给自足,因为补给有限。我们的确需要在冬天和饥荒把无助和毫无准备的我们打倒之前,迅速建立一条农业产业链。为了换取半打铁锹和几包种子来开始建设农田,我们需要先得有点东西。我已经和商人们谈好了,不过他们想要的唯一物品是……盐。价钱已经从500份谈好到只需要300份了……我们想着也许你能够有点路子帮我们弄来。" #: lang/json/mission_def_from_json.py msgid "" @@ -73642,12 +74532,12 @@ 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 "" -"盐是用来腌制肉和其他易腐坏食物的重要原料……虽然现在我们没有任何多余的食物储备,这玩意还帮不上什么忙。但是我预计在未来总有一天会用得到的,所以,该你出动了。" +"盐是用来腌制肉类和其他易腐食物的重要原料……虽然现在我们没有任何多余的食物储备,这玩意还帮不上什么忙。但是我预计在未来总有一天会用得到的,所以,该你出动了。" #: lang/json/mission_def_from_json.py msgid "" "If you can find a source of salt water you should be able to boil it down." -msgstr "如果你能够找到一处可以提供盐水的地方的话,你就可以通过烧水蒸发水分来提取盐了。" +msgstr "如果能够找到一处盐水地,你就可以煮盐了。" #: lang/json/mission_def_from_json.py msgid "Do you have the salt?" @@ -73680,7 +74570,7 @@ msgstr "我不知道具体配方,但是我确定你可以通过收集商品肥 #: lang/json/mission_def_from_json.py msgid "I'd look through a few basic chemistry books to find a simple recipe." -msgstr "我会查查些基本化学书去找出简单的配方的。" +msgstr "要是我的话,我会去查查基础化学书,找出些简单的配方的。" #: lang/json/mission_def_from_json.py msgid "Do you have the liquid fertilizer?" @@ -73688,7 +74578,7 @@ msgstr "弄到液体肥料了吗?" #: lang/json/mission_def_from_json.py msgid "This really should make the first winter easier to survive." -msgstr "这些东西将会使我们度过的第一个冬天的生存难度切实地降低下来。" +msgstr "这会让第一个冬天好熬多了。" #: lang/json/mission_def_from_json.py msgid "Gather 75 Stones" @@ -73706,7 +74596,7 @@ msgid "" "accomplish the task before we all get sick. After we have them installed " "you will have free access to them, guaranteed. " msgstr "" -"在你的努力下,我们的目前的存活率已经明显地提高了。下一个主要问题就是确保一个更安全的水源。从农场背后的池塘里取水喝已经引起了一轮痢疾爆发。我们需要尽快改善营地里的卫生条件。要做到这一目标,我们的首先需要挖个井,并建造石头壁炉来给移民们烧水。如果我们想要在这里所有人都病倒前完成任务的话,需要你能为我们找来至少75块大石头。在完成任务之后,你也能够免费使用这些设施,我保证。" +"在你帮助下,我们的目前的存活几率有了显著提升。下一个主要问题就是确保饮水安全。从农场背后的池塘里取水喝已经引起了一轮痢疾爆发。我们需要尽快改善营地里的卫生条件。为了达成这一目标,我们得先挖个水井,并且在谷仓里建个石头壁炉来给移民们烧水。如果我们想要在这里所有人都病倒前完成任务的话,需要你能为我们找来至少75块大石头。在建成之后,你也能够免费使用这些设施,我保证。" #: lang/json/mission_def_from_json.py msgid "" @@ -73716,7 +74606,7 @@ msgstr "如果你能够用铁楸铲起废墟的话,你应该可以找到能够 #: lang/json/mission_def_from_json.py msgid "Mining would always be an option if you had the resources." -msgstr "挖矿向来都是你获取资源的一个好方法。" +msgstr "挖矿也是个不错的选项,前提是你有合适的工具。" #: lang/json/mission_def_from_json.py msgid "Do you have the stone?" @@ -73738,19 +74628,19 @@ msgid "" " eventually become desirable. You could assist us with procuring 50 steel " "pipes, if you so have the chance." msgstr "" -"要建设水井的手泵和其他用来作其他用途的组件,我们需要找到或者生产一定数量的钢管。尽管管道工程目前还不太需要,但是这里最终还是要实现某种灌溉方式的改进的。有机会的话,请找到50条钢管给我们。" +"为了制造水井里的手压泵和其他几个建设项目里所需要的部件,我们需要找到或是制造出许多钢管。尽管自来水管道系统看上去还很遥远,但农田灌溉工程终究是有需求的。如果可以的话,请带50根钢管给我们。" #: 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 "终于,我们的新移民们有希望自给自足了。" +msgstr "真希望未来我们的新移民能够自给自足。" #: 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 "钢管在无数金属建筑中都发挥着作用。破坏无用的家具可能可以提供所需的金属材料。" +msgstr "钢管在各种金属建筑里都很常见。砸碎一些废旧家具也许会提供所需的材料。" #: lang/json/mission_def_from_json.py msgid "Do you have the pipes?" @@ -73768,7 +74658,7 @@ 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 "" -"在成功打好水井之后,我们遇上了开始可持续性发展的难题。为了从这里扩张出去,我们需要大量的木头来建筑碉堡和新的建筑。我们已经开始建设一间手动锯木厂,但我们需要两台电力引擎来控制驱动锯木刀片。我们希望你应该可以为我们找到电力引擎。" +"在成功打好水井之后,我们可持续发展的落差正在不断减少。为了在这个基础上继续扩张,我们需要大量的木料来加固旧建筑并建设新建筑。我们已经开始建设一间手工锯木厂,但我们需要两台电力引擎来控制驱动锯木刀片。我们希望你能为我们找来两个电力引擎。" #: lang/json/mission_def_from_json.py msgid "" @@ -73793,7 +74683,7 @@ msgid "" "would be the first step I imagine. Bring me 5 gallon jugs of bleach so we " "can get started." msgstr "" -"疾病和感染在难民中一直是一个潜在的危险。如果没有专业的医护人员和设备,我怀疑当下一次疾病爆发时,这里所有人都会病倒。在我们能找到一位老医生或者老护士之前一切只能先凑合着来。我认为第一步要保证杀菌,先给我找来5加仑漂白剂吧。" +"难民中的疾病和感染是个一直困扰着我们的问题。如果没有专业的医护人员和设备,我怀疑当下一次疾病爆发时,这里所有人都会病倒。在我们能找到一位老医生或者老护士之前一切只能先凑合着来。我想第一步要保证杀菌消毒,先给我找来5加仑壶满的漂白剂吧。" #: lang/json/mission_def_from_json.py msgid "I'm sure you can find bleach in most homes..." @@ -73803,7 +74693,7 @@ msgstr "我相信你能够在大多数民宅里找到漂白剂。" msgid "" "If you can't find a large supply I'd recommend checking hospitals or " "research labs." -msgstr "如果你找不到一个大的供应点的话,我建议你去医院和研究实验室里找找。" +msgstr "如果找不到大批漂白剂的话,我建议你去医院和研究实验室里找找。" #: lang/json/mission_def_from_json.py msgid "Do you have the bleach?" @@ -73822,12 +74712,12 @@ msgid "" "prevent me from ever seeing it. I could use your help getting a few bottles" " of aspirin to start with." msgstr "" -"眼下我只有少的可怜的绷带和几个急救箱……说白了, " -"只要有点儿什么医疗紧急情况,我都只能干瞪眼。原本只要拾荒者们找到些医疗用品,他们有义务立刻拿来给我,但这些天我连个影子也没见着,我猜这要感谢有黑市这么个地方。如果你愿意帮把手的话,能给我找几瓶阿司匹林吗?没有它们我连兽医都算不上。" +"眼下我只有少得可怜的几根绷带和几个急救箱……说白了, " +"只要有点儿什么医疗紧急情况,我都只能干瞪眼。拾荒小队本应该优先把任何医疗用品上缴给我,但黑市对它们的需求让我连个影子都没见着。如果你想帮把手的话,可以先从帮我找几瓶阿司匹林开始。" #: lang/json/mission_def_from_json.py msgid "Aspirin is pretty common in homes and convenience stores." -msgstr "民宅和杂货店里应该能找到些阿司匹林。" +msgstr "阿司匹林在民宅和杂货店里很常见。" #: lang/json/mission_def_from_json.py msgid "Do you have the aspirin?" @@ -73849,11 +74739,11 @@ msgid "" "time until one of the older or younger members of the outpost gets a bad " "case." msgstr "" -"这位医生有一些制作流感疫苗的计划。如果你能够找到给我一只未使用过的流感疫苗回来就好了。我们现在仍没有任何对抗流感的设备。但如果我们前哨站的某个老人小孩身体偶尔变差了,我们又没有对抗它的方法的话,流感的大规模爆发就只是时间问题了。" +"这位医生有个制作流感疫苗的计划方案。如果你能够找到一只未使用过的流感疫苗,请带回来给我。虽然目前还没有人因为流感而死亡,但一旦哨站里某个老人或者小孩得了重病的话,流感的大规模爆发不过是时间问题。" #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few that haven't been used." -msgstr "医院和诊所应该有一些未使用过的。" +msgstr "医院和诊所里应该有一些未使用过的。" #: lang/json/mission_def_from_json.py msgid "Do you have the flu shot?" @@ -73870,11 +74760,11 @@ msgid "" "syringes to use. I'll take care of cleaning them to prevent transferring " "infections." msgstr "" -"我们开始想要分离出一些自然地产生了抗体的血清,但是我们没有管理取用这些鸡尾酒一般的混合物的设备。我需要你给我带回来10支空的针管回来以供使用。我会负责帮这些针管消毒以防止交叉感染的。" +"我们已经开始分离出了一些含有天然抗体的血清,但是缺少用来注射混合液的设备。我需要你带10根空的针管回来供我使用。我会负责给针管消毒以防止交叉感染的。" #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few sitting around." -msgstr "医院和诊所应该会散落一些。" +msgstr "医院和诊所里应该有一些丢在那里的。" #: lang/json/mission_def_from_json.py msgid "Do you have the empty syringes?" @@ -73890,11 +74780,11 @@ 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 "" -"我来这的时候弄到了几瓶漂白剂,但要真正消毒器械的话,我还需要几个轻便电炉。我相信在一些老民宅或者电器店里你能找到它们。眼下我估计三台就够用了。" +"刚来这里的时候,我被分配了几大罐漂白剂,但要真正消毒医疗器械的话,我还需要几个轻便电炉。我相信在一些老民宅或者电器店里你能找到它们。眼下我估计三台就够用了。" #: lang/json/mission_def_from_json.py msgid "It should be a fairly common item, don't know what else to say." -msgstr "我不知道还能告诉你些什么,不过我觉着这东西应该挺好找的。" +msgstr "这东西应该很常见,我不知道我还能说些什么。" #: lang/json/mission_def_from_json.py msgid "Do you have the hotplates?" @@ -73914,7 +74804,7 @@ msgid "" "able to treat the most vulnerable before they spread anything to the rest of" " us." msgstr "" -"营养不良造成大家的免疫力都很差,一有传染病就会疯狂传播起来,可我却无计可施。食物太匮乏了,只要不被饿死,人们什么都吃的下去,谁还管健康不健康呢。如果我再不为哨站的膳食补充维生素,就会有越来越多营养不良间接造成的死亡。我知道要求的可能有点过分,但如果有200单位的复合维生素,我就能在疾病蔓延之前给那些体质最差的人平衡一下营养。" +"疾病正在哨站内快速蔓延,因为营养不良导致大家抵抗力下降,而我却无计可施。食物太过匮乏,人们只能靠手头那点食物维持生存。我需要马上为哨站伙食补充维生素,否则会有越来越多因营养不良而间接造成的死亡。我知道要求的可能有点过分,但如果有200单位的复合维生素,我就能在疾病蔓延之前给那些体质最差的人平衡一下营养。" #: lang/json/mission_def_from_json.py msgid "Do you have the vitamins?" @@ -73932,7 +74822,7 @@ 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 "" -"尽管我一直建议所有人注意饮水安全,但我却不断发现到这儿的旅行者们因为喝污水而生病。在他们不具备烧开水的条件时,炭滤净水器就比较方便了。如果你能做四台炭滤净水器给我的话,下次有旅行者经过的时候我就能发给他们了。" +"尽管我一直建议所有人注意饮水安全,但我却不断发现有旅行者因为喝了被污染的生水而生病。当他们没法煮开水时,炭滤净水器就比较方便了。如果你能做四台炭滤净水器给我的话,下次有旅行者经过的时候我就能发给他们了。" #: lang/json/mission_def_from_json.py msgid "" @@ -73976,11 +74866,11 @@ msgid "" "depleted my supply of masks. Could you find me 10 filter masks? I tend to " "only distribute them in severe cases so I'll be sure to make them last." msgstr "" -"上礼拜呼吸道感染大爆发,我这儿的过滤面罩没几天就发完了。你能给我找10个过滤面罩吗?这次我得吸取教训,除非快要咳死,谁也别想从我这儿领走他们。" +"上周的呼吸道感染大爆发用光了我这里最后的几个过滤面罩。你能给我找来10个过滤面罩吗?我只会给最严重的病人发过滤面罩,所以它们应该够用上很久。" #: lang/json/mission_def_from_json.py msgid "You may be able to make one if you had the right guide." -msgstr "如果你能找着配方,我估计你自己就能做出个来。" +msgstr "如果你能找着配方,我估计你自己都能做个出来。" #: lang/json/mission_def_from_json.py msgid "Do you have the filter masks?" @@ -73997,7 +74887,7 @@ 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 "" -"杀怪爆出来的大量的体液和酸液已经让我在打扫时弄烂了不少橡胶手套了。你能够给我带回来四对重型的橡胶手套吗?这样的话,在丧失爆发期过后我就可以分一批人去洗地了。" +"我日常所需要处理的各类体液和腐蚀液体已经快让我现在所用的橡胶手套报废了。你能够给我带回来四对耐用的橡胶手套吗?这应该足够了,我可以在下次疫情爆发时,让几个苦工帮忙清理。" #: lang/json/mission_def_from_json.py msgid "You should be able to find them in cleaning closets." @@ -74018,7 +74908,7 @@ 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 "" -"我听到消息说有一位外科医生正赶来这里。工作人员们已经开始扩张我们的小诊所了,但是我想你去找到一对外科手术刀给那位即将到来的外科医生做手术。我相信你应该能够在医院或者手工品商店找到它。" +"我听到消息说有一位外科医生正在来这里的路上。劳工们已经开始准备扩建诊所了,但是我想你去找到一对外科手术刀给那位即将到来的外科医生做手术。我相信你应该能够在医院或者手工品商店找到它。" #: lang/json/mission_def_from_json.py msgid "Hospitals and crafting stores should have a few." @@ -74038,7 +74928,7 @@ 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 "" -"你有没听过过一本叫《高级护理急救指南》的书?我需要有一本它的副本。这位医生需要一堆我们现在没有的医疗物品,但是如果有了那本书,我觉得我就可以自己造一些出来了。" +"你有没听过过一本叫《高级护理急救指南》的书?我真的急需一本。医生需要一堆我不是很熟悉的医疗用品,但如果有了那本书我想我能够自己造一些出来了。" #: lang/json/mission_def_from_json.py msgid "Libraries are the only place I'd think to look." @@ -74060,11 +74950,11 @@ msgid "" "monsters. Could you make me a dozen of them? I may need more later but " "that should help the first few teams." msgstr "" -"我通常都会发一些额外的生存装备给我们的新成员们。而发到每个人手上的最基本的武器是刺刀长矛……它可以提供不错的射程、威力和当遭遇到大部分的普通怪物时都有不错的易用性。你可以给我带回来一打吗?未来它的需求量会更多,但是现在我只需要这么多来装备我们的第一支小队。" +"我通常都会发一些额外的生存装备给我们的新成员们。而每个人都能发到的最基础的武器是一把刺刀长矛……它很好的平衡了攻击距离、威力和易用性,适合对付普通的怪物。你能帮我做一打出来吗?也许我以后可能会需要更多,但这应该能够武装起前几只小队了。" #: lang/json/mission_def_from_json.py msgid "You should be able to make them with the most basic of skills." -msgstr "你可以用你最基本的技能制造它。" +msgstr "它只要些最基本的技能就能被制造出来。" #: lang/json/mission_def_from_json.py msgid "Do you have the knife spears?" @@ -74100,12 +74990,12 @@ msgid "" "armor? The life-expectancy of my scavengers would drastically increase if " "you did." msgstr "" -"服装在与野生动物的战斗和爬窗时都可以给你提供必要的保护。我们在外面能捡到的最好的衣服就是皮甲了,但是它很难得,因为资源有限。你可以帮我们造三套皮甲吗?有了这些皮甲,我们的搜刮队的预期寿命将会大大提高。" +"一件能够经受住反复爬窗和与野生动物的战斗时的磨损的服装一直都很紧俏。我们所能穿出去作战的最好的服装就是皮革护甲了,但因为有限的资源,制作起来很困难。你可以帮我们造三套皮革护甲吗?有了这些皮革护甲,我们的拾荒队员的预期寿命将会大大提高。" #: lang/json/mission_def_from_json.py msgid "" "Finding the leather might be easier in town rather than making it yourself." -msgstr "皮革材料,你在城镇里找,比你自己鞣制要容易得多。" +msgstr "制造所需要的皮革材料可以在城镇里找到,比你自己鞣制要容易得多。" #: lang/json/mission_def_from_json.py msgid "Do you have the leather armor?" @@ -74129,7 +75019,7 @@ msgstr "" msgid "" "Alcohol or lamp oil is probably easier to refine rather than find in large " "quantities." -msgstr "大量的酒精或者灯油,相比起到外面找,自己提炼可能比较容易得到。" +msgstr "大量的酒精或者灯油,比起到外面找,自己提炼可能更容易些。" #: lang/json/mission_def_from_json.py msgid "Do you have the Molotov cocktails?" @@ -74141,7 +75031,7 @@ msgstr "到达农场" #: lang/json/mission_def_from_json.py msgid "I just need a place to start over..." -msgstr "我只是需要一个地方重新开始…" +msgstr "我只想找个地方重新开始……" #: lang/json/mission_def_from_json.py msgid "" @@ -74150,25 +75040,25 @@ 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 "" -"我承认我所认识的人都挂了……因为各种原因挂掉,但我真的希望我曾经能做什么来救我的兄弟,苦逼的是他却是第一个挂掉的。我想重新开始,在乡下建立一个开心农场,你能帮我吗?" +"我承认我所认识的人都挂了……因为各种原因。但我真的希望我当初能做点什么救下我的兄弟,但他却是第一个挂掉的。我想重新开始,在乡下建立一个开心农场,你能帮我吗?" #: 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 "谢谢你,我们找个偏远的地方吧,那样不必担心有许多丧尸。" +msgstr "谢谢你,我们找个偏僻一点的吧,那样不必担心有许多丧尸。" #: lang/json/mission_def_from_json.py msgid "Please, I just don't know what to do otherwise." -msgstr "求求你,我不知道我还能做点什么。" +msgstr "求求你,我不知道除此之外我还能做点什么。" #: lang/json/mission_def_from_json.py msgid "Traveling the backroads would be a good way to search for one." -msgstr "沿乡村公路通行是找到某个农场的好方法。" +msgstr "沿着小路走应该是个找到农场的好方法。" #: lang/json/mission_def_from_json.py msgid "Shall we keep looking for a farm house?" -msgstr "我们去找个农场怎么样?" +msgstr "我们继续找农场好吗?" #: lang/json/mission_def_from_json.py msgid "" @@ -74176,8 +75066,7 @@ msgid "" "make this place self sustaining will take some work but the future is " "looking brighter. At least it ought to be safe for now. You'll always be " "welcome here." -msgstr "" -"嗯,我的冒险已经结束了。我无法表达对您的感谢。试图让这个地方自我维持需要一些工作,但未来是光明的。至少现在是安全的。在这您永远是最受欢迎的。" +msgstr "好吧,我冒险的日子已经结束了。我对你感激不尽。试图让这里自给自足还需要干不少活,但未来是光明的。至少现在是安全的。这里永远欢迎你到来。" #: lang/json/mission_def_from_json.py msgid "I guess it was just a pipe dream." @@ -74185,11 +75074,11 @@ msgstr "我想这只是一个白日梦。" #: lang/json/mission_def_from_json.py msgid "Reach FEMA Camp" -msgstr "到达FEMA营地" +msgstr "到达联邦应急管理局营地" #: lang/json/mission_def_from_json.py msgid "Maybe they escaped to one of the camps..." -msgstr "也许他们逃到一个难民营的……" +msgstr "也许他们逃到了一个难民营地里……" #: lang/json/mission_def_from_json.py msgid "" @@ -74198,7 +75087,7 @@ 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 "" -"我对你帮我带来这些病人记录真是感激不尽,但是我真的还有另一个请求。你看起来对外面的环境颇为熟悉……能否请你带我去其中一个联邦应急营地?我知道有些营地已被摧毁,但我还是无法相信他们全都沦陷了。" +"你能帮我带来这些患者记录,真是感激不尽,但是我还有另一个请求。你看起来对外面的环境颇为熟悉……能否请你带我去其中一个联邦应急管理局营地?我知道有些营地已被丧尸攻破,但我还是无法相信所有营地都沦陷了。" #: lang/json/mission_def_from_json.py msgid "Thank you, just bring me to the camp... I just want to see." @@ -74211,11 +75100,11 @@ 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 "我们最好在晚上行动,如果出了什么篓子,我们可以尽快的跑路。" +msgstr "我们最好在晚上行动,如果营地已经被丧尸攻破,我们可以尽快跑路。" #: lang/json/mission_def_from_json.py msgid "Any leads on where a camp might be?" -msgstr "有没有任何关于营地方位的线索?" +msgstr "你有没有任何关于营地方位的线索?" #: lang/json/mission_def_from_json.py msgid "I guess this wasn't as bright an idea as I thought." @@ -74227,7 +75116,7 @@ msgstr "达到安全地点" #: lang/json/mission_def_from_json.py msgid "Recover Priest's Diary" -msgstr "获得牧师的日记" +msgstr "获得牧师日记" #: lang/json/mission_def_from_json.py msgid "" @@ -74238,13 +75127,13 @@ 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 "" -"据我所知,你在遗迹周围碰见的那些生物跟我所了解的任何东西都不一样。可笑的是,我现在已接受丧尸是我们日常生活的一部分。尽管如此,这教堂一定能解释这些事件。我已经找到了当地神职人员的居住地址,你能去这个地址并找到任何可能揭示教堂对这些事件立场的东西吗?" +"据我所知,你在获取圣物时在那里碰见的那些生物跟我所了解的任何东西都不一样。可笑的是,我现在已接受丧尸是我们日常生活的一部分。无论如何,教会对这些事件一定有些解释。我已经找到了一位本地神职人员的住址,你能去这个地址并带回来任何可能揭示教堂对这些事件立场的东西吗?" #: lang/json/mission_def_from_json.py msgid "" "If the information is confidential the priest must have it hidden within his" " own home." -msgstr "如果信息是保密的,牧师必须把它隐藏在他自己的家里。" +msgstr "如果这些信息是保密的,那么牧师肯定会把它隐藏在他自己的家里。" #: lang/json/mission_def_from_json.py msgid "Thank you, a diary is exactly what I was looking for." @@ -74252,7 +75141,7 @@ msgstr "谢谢你,这就是我要找的日记。" #: lang/json/mission_def_from_json.py msgid "Recruit Tracker" -msgstr "征募追随者" +msgstr "征募追踪者" #: lang/json/mission_def_from_json.py msgid "" @@ -74263,13 +75152,13 @@ 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 "" -"我们还有另一个麻烦需要解决,但光靠我们自己恐怕不行,所以我帮大家找了个志愿者……算是志愿的吧。他自负的像个锤子,但却打得一手好枪,他将会去搜集那些有用的东西然后在森林的小木屋里和我们碰头。因为不确定我们要多久才能去和他碰头,所以我告诉他如果他到了小木屋就一直在那扎营等待我们的到来。" +"我们还有另一个麻烦需要解决,但光靠我们俩恐怕不行,所以我帮大家找了个志愿者……算是志愿的吧。他自负的像个锤子,但却有一手好枪法。他将会去搜集有用的线索,然后在森林的小木屋里和我们碰头。因为不确定我们要多久才能去和他碰头,所以我告诉他如果他到了小木屋就一直在那扎营等我们来。" #: 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 "了解,如果他没出现的话,那么其他的枪手会代替他……但我想恐怕在我们动身之前他就溜了。" +msgstr "了解,如果他没出现的话,那么找个其他枪手代替他就好……但我担心在我们动身之前他就溜了。" #: lang/json/mission_def_from_json.py msgid "" @@ -74293,12 +75182,12 @@ msgstr "寻找丢失的狗" #: lang/json/mission_def_from_json.py msgid "Oh, my poor puppy..." -msgstr "哦,我可怜的小狗……" +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 "我忘了带我可怜的狗在一个房子里,离这里不远。你能找回它吗?" +msgstr "我把我那可怜的狗狗忘在一间房子里,离这里不远。你能帮我把它找回来吗?" #: lang/json/mission_def_from_json.py msgid "Thank you! Please hurry back!" @@ -74306,17 +75195,17 @@ msgstr "谢谢你!请尽快回来!" #: lang/json/mission_def_from_json.py msgid "Please, think of my poor little puppy!" -msgstr "拜托,请为我可怜的小狗着想!" +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 "带我的狗哨子;如果狗开始乱跑,吹响它,他会回到你身边。" +msgstr "给你,这是我的狗哨;一旦那小家伙跑开了,吹响它,他会回到你身边的。" #: lang/json/mission_def_from_json.py msgid "Have you found my dog yet?" -msgstr "你找到我的狗了吗?" +msgstr "你找到我的宝贝狗了吗?" #: lang/json/mission_def_from_json.py msgid "Thank you so much for finding him!" @@ -74324,7 +75213,7 @@ msgstr "谢谢你帮忙找到他!" #: lang/json/mission_def_from_json.py msgid "Oh no! My poor puppy..." -msgstr "哦不!我可怜的小狗……" +msgstr "哦不!我那可怜的狗狗……" #: lang/json/mission_def_from_json.py msgid "Reach Refugee Center" @@ -74341,7 +75230,7 @@ msgstr "我们这里缺少进行实际分析的设备,因此需要在外面完 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 "干得好。用这个采血管,一旦你找到一具丧尸尸体,就可以使用它来从那东西的身体中提取血液,然后把它带到医院进行分析。" +msgstr "很好。拿上这根采血管,一旦你找到一具丧尸尸体,使用它来从尸体中提取血液样本,然后把它带到医院进行分析。" #: lang/json/mission_def_from_json.py msgid "Download Workstation Data" @@ -74355,15 +75244,15 @@ msgid "" "knew! We have the destination address. Go there, get in, and bring back " "any records you can download off a computer." msgstr "" -"那套医疗软件不光是分析了血样,它还触发了政府部门的警报。医疗人员都收到过将任何匹配的样本立刻送到最近的实验室的政府指令。这意味着政府早就知道这一切了!我们有目的地地址。去到那里,进去,把你可从电脑上下载的所有记录都带回来给我。" +"那套医疗软件不光是分析了血样,它还触发了政府部门的警报。医疗人员都收到过将任何匹配的样本立刻送到最近的实验室的政府指令。这意味着政府早就知道这一切了!我们有目的地地址。去到那里,进去,把你能从电脑上下载的所有记录都带回来给我。" #: lang/json/mission_def_from_json.py msgid "Great! I've mapped out a route to the address." -msgstr "太棒了!我已经画出了一条通往该地址的路线。" +msgstr "太棒了!我已经在地图上为你画好了路线图。" #: lang/json/mission_def_from_json.py msgid "Can't blame you, but come back if you change your mind." -msgstr "不怪你,但如果你改变主意记得再回来找我。" +msgstr "不怪你,但如果你改主意了,记得再回来找我。" #: lang/json/mission_def_from_json.py msgid "" @@ -74372,7 +75261,7 @@ msgid "" "computers will have some security on them. Bring back anything you find on " "a USB drive." msgstr "" -"如果实验室上了锁,也许你可以从疏散中死亡的员工身上找到ID卡。此外需要提升一下你的电脑技能,所有电脑都会有一些安防措施。把你所找到的一切用U盘带回来。" +"如果实验室上了锁,也许你可以从疏散中死亡的员工身上找到ID卡。此外需要提升一下你的计算机学技能,所有电脑都会有一些安防措施。把你找到的所有数据用U盘带回来。" #: lang/json/mission_def_from_json.py msgid "" @@ -74398,11 +75287,11 @@ msgstr "" 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 "太棒了!我已经制定了一条路线,目标看起来应该像个普通的民宅。把你所找到的一切用U盘带回来。" +msgstr "太棒了!我已经制定了一条路线,目标看起来应该像个普通的民宅。把你所找到的一切数据用U盘带回来。" #: lang/json/mission_def_from_json.py msgid "Expect the lab to be locked as usual." -msgstr "当然,我猜那所实验室也会被锁上了。" +msgstr "当然,我猜那间实验室也会被锁上了。" #: lang/json/mission_def_from_json.py msgid "" @@ -74454,7 +75343,7 @@ msgid "" "there, find the tunnels that they dug, and download everything you can about" " the train network." msgstr "" -"在数据中,我们发现了一份8个月前签订的隧道挖掘和列车设备的重要合同。这是我们最好的线索。这是那些设备被送到的政府实验室的地址。我想要你去那里,找到他们所挖掘的隧道,并下载你所能够找到的关于地铁列车系统的所有信息。" +"在数据中,我们发现了一份8个月前签订的隧道挖掘和列车设备的重要合同。这是我能找到的最好线索。这是那些设备被送到的政府实验室的地址。我想要你去那里,找到他们所挖掘的隧道,并下载你所能够找到的关于地铁列车系统的所有信息。" #: lang/json/mission_def_from_json.py msgid "So glad for your help." @@ -74466,7 +75355,7 @@ 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 "" -"这些设备被要求能在地下50英尺正常使用,因此实验室隧道入口会比普通地铁要更深得多。50英尺就意味着要往下走四层。把你所找到的一切用U盘带回来。" +"这些设备被要求能在地下50英尺正常使用,因此实验室隧道入口会比普通地铁要更深得多。50英尺就意味着要往下走四层。把你所找到的一切数据用U盘带回来。" #: lang/json/mission_def_from_json.py msgid "" @@ -74520,43 +75409,43 @@ msgstr "%1$s 向 猛抓过来,但失败了。" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s flashes you!" -msgstr "%1$s 在你眼前发出刺眼的亮光!" +msgstr "%1$s 闪瞎了你!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s flashes at !" -msgstr "%1$s 在 眼前发出刺眼的亮光!" +msgstr "%1$s 闪瞎了 !" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$s 试着在你眼前发出刺眼的亮光,但是失败了。" +msgstr "%1$s 试图闪瞎你,但是失败了。" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to flash , but fails to." -msgstr "%1$s 试着在 眼前发出刺眼的亮光,但是失败了。" +msgstr "%1$s 试图闪瞎 ,但是失败了。" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s injects you with a syringe!" -msgstr "%1$s 用注射器给你注射了什么东西!" +msgstr "%1$s 用针管给你注射了什么东西!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s injects with a syringe!" -msgstr "%1$s 用注射器给 注射了什么东西!" +msgstr "%1$s 用针管给 注射了什么东西!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "%1$s 试图给你注射什么东西,但是没能穿透护甲!" +msgstr "%1$s 试图用针管给你注射什么东西,但是没能穿透护甲!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "" "The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "%1$s 试图给 注射什么东西,但是没能穿透护甲!" +msgstr "%1$s 试图用针管给 注射什么东西,但是没能穿透护甲!" #: lang/json/morale_type_from_json.py #, no-python-format @@ -74567,6 +75456,10 @@ msgstr "享受 %s" msgid "Enjoyed a hot meal" msgstr "享受一顿热饭" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "享受闲聊" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "音乐" @@ -74690,7 +75583,7 @@ msgstr "晒干" #: lang/json/morale_type_from_json.py msgid "Bad Feeling" -msgstr "反感" +msgstr "感觉糟糕" #: lang/json/morale_type_from_json.py msgid "Killed Innocent" @@ -74710,11 +75603,11 @@ msgstr "因为分尸而有负罪感" #: lang/json/morale_type_from_json.py msgid "Fey Mutation" -msgstr "猫科变异" +msgstr "精灵变异" #: lang/json/morale_type_from_json.py msgid "Chimerical Mutation" -msgstr "混合变异" +msgstr "奇美拉变异" #: lang/json/morale_type_from_json.py msgid "Mutation" @@ -74771,19 +75664,23 @@ msgstr "理了发" #: lang/json/morale_type_from_json.py msgid "Freshly Shaven" -msgstr "修刮干净" +msgstr "剃了须" #: lang/json/morale_type_from_json.py msgid "Barfed" msgstr "呕吐过" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "与宠物玩耍过" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" -msgstr "点了一把火" +msgstr "点了把火" #: lang/json/morale_type_from_json.py msgid "Spent time close to fire" -msgstr "在火边待了一会" +msgstr "在火边待过" #: lang/json/morale_type_from_json.py msgid "Craving fire" @@ -74791,7 +75688,7 @@ msgstr "渴望燃烧的火焰" #: lang/json/morale_type_from_json.py msgid "Filthy Gear" -msgstr "脏衣服" +msgstr "肮脏装备" #: lang/json/morale_type_from_json.py msgid "Anguished by memories of butchering human corpse" @@ -75119,7 +76016,7 @@ msgstr "你的思想和身体都慢了下来。你感觉平静祥和。" #. ~ Mutation class: Cattle iv_message #: lang/json/mutation_category_from_json.py msgid "You wonder if this is what rBGH feels like..." -msgstr "你想:这就是牛奶激素的力量吗……" +msgstr "你想知道这是不是奶牛生长激素的感觉……" #. ~ Mutation class: Cattle Male memorial messsage #: lang/json/mutation_category_from_json.py @@ -75220,7 +76117,7 @@ msgstr "蜕掉了丑陋的人类外皮。" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Troglobite" -msgstr "穴居动物" +msgstr "穴居人" #. ~ Mutation class: Troglobite mutagen_message #: lang/json/mutation_category_from_json.py @@ -75247,7 +76144,7 @@ msgstr "适应了穴居生活。" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Alpha" -msgstr "原初" +msgstr "超人" #. ~ Mutation class: Alpha mutagen_message #: lang/json/mutation_category_from_json.py @@ -75257,7 +76154,7 @@ msgstr "你觉得……好多了。不知何故。" #. ~ Mutation class: Alpha iv_message #: lang/json/mutation_category_from_json.py msgid "You took that shot like a champ!" -msgstr "你急不可耐的\"射\"了自己!" +msgstr "你像个冠军一样接下了那一针!" #. ~ Mutation class: Alpha Male memorial messsage #: lang/json/mutation_category_from_json.py @@ -75287,7 +76184,7 @@ msgstr "你感觉到血液在你的血管中四处奔涌,一股奇特的磕了 #: lang/json/mutation_category_from_json.py msgid "" "You can feel the blood in your medication stream. It's a strange feeling." -msgstr "你感到体内药物流中有伴有的血液,真是奇怪的感受。" +msgstr "你能感到注入的药物和你的血流融合。真是种奇怪的感觉。" #. ~ Mutation class: Medical junkie_message #: lang/json/mutation_category_from_json.py @@ -75346,7 +76243,7 @@ msgstr "团结的一盘散沙。" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Fey" -msgstr "精类" +msgstr "精灵" #. ~ Mutation class: Fey mutagen_message #: lang/json/mutation_category_from_json.py @@ -75378,7 +76275,7 @@ msgstr "接受更加自然化的生活。" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Raptor" -msgstr "猛禽" +msgstr "迅猛龙" #. ~ Mutation class: Raptor mutagen_message #: lang/json/mutation_category_from_json.py @@ -75457,14 +76354,14 @@ msgstr "你的听觉神经更为发达,对于微小的、更远处的声音你 #: lang/json/mutation_from_json.py msgid "Outdoorsman" -msgstr "户外爱好" +msgstr "户外客" #. ~ Description for Outdoorsman #: lang/json/mutation_from_json.py msgid "" "You are accustomed to being exposed to the elements. This decreases morale " "penalties for being wet." -msgstr "你的皮肤相比于普通人,对湿润的环境更具接受能力。减少湿身心情惩罚。" +msgstr "你相比普通人,更习惯于被雨淋。减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Parkour Expert" @@ -75492,7 +76389,7 @@ msgstr "你的耐力肌肉与心肺能力更加强大,在进行高强度体力 #: lang/json/mutation_from_json.py msgid "Hyperactive" -msgstr "活跃过度" +msgstr "龙精虎猛" #. ~ Description for Hyperactive #: lang/json/mutation_from_json.py @@ -75521,7 +76418,7 @@ msgstr "你大脑激素水平更加旺盛,时刻分泌着令你快乐的多巴 #: lang/json/mutation_from_json.py msgid "Fast Healer" -msgstr "自愈" +msgstr "快速自愈" #. ~ Description for Fast Healer #: lang/json/mutation_from_json.py @@ -75532,13 +76429,13 @@ msgstr "你身体的自愈系统更加出色,睡眠时损伤部位恢复的更 #: lang/json/mutation_from_json.py msgid "Light Eater" -msgstr "节食" +msgstr "饭量少" #. ~ Description for Light Eater #: lang/json/mutation_from_json.py msgid "" "Your metabolism is a little slower, and you require less food than most." -msgstr "你的新陈代谢能力比较特殊,你拥有更好的合成代谢能力,所以同等营养需求,你所需食物比普通人更少一些。" +msgstr "你的新陈代谢较为缓慢,你所需食物比普通人更少一些。" #: lang/json/mutation_from_json.py msgid "Accomplished Sleeper" @@ -75584,7 +76481,7 @@ msgstr "你拥有天然的夜视能力,在黑暗中能看得比普通人更远 #: lang/json/mutation_from_json.py msgid "Poison Resistant" -msgstr "毒素抵抗" +msgstr "抗毒体质" #. ~ Description for Poison Resistant #: lang/json/mutation_from_json.py @@ -75595,7 +76492,7 @@ msgstr "你的身体组织对于中和体内有毒物质能力更强,大部分 #: lang/json/mutation_from_json.py msgid "Fast Reader" -msgstr "快速阅读" +msgstr "读得快" #. ~ Description for Fast Reader #: lang/json/mutation_from_json.py @@ -75616,18 +76513,18 @@ msgstr "你的脚掌厚度与脚底反射区较为坚韧,即便脚掌没有保 #: lang/json/mutation_from_json.py msgid "Tough" -msgstr "强壮" +msgstr "身强力壮" #. ~ Description for Tough #: lang/json/mutation_from_json.py #, no-python-format msgid "" "It takes a lot to bring you down! You get a 20% bonus to all hit points." -msgstr "你的肌肉密度更大,对于外物攻击有着更强的抵御能力,你的生命值上限增加20%。" +msgstr "你的肌肉密度更大,对于外界打击有着更强的抵御能力,你的生命值上限增加20%。" #: lang/json/mutation_from_json.py msgid "Durable" -msgstr "更强壮" +msgstr "钢筋铁骨" #. ~ Description for Durable #: lang/json/mutation_from_json.py @@ -75670,7 +76567,7 @@ msgstr "你总是能找到空间塞进点东西,整理和存放物品时效率 #: lang/json/mutation_from_json.py msgid "Strong Back" -msgstr "背肌发达" +msgstr "铁背" #. ~ Description for Strong Back #: lang/json/mutation_from_json.py @@ -75682,7 +76579,7 @@ msgstr "你背部肌肉力量比普通人更大,你的身体最大承载重量 #: lang/json/mutation_from_json.py msgid "Fast Learner" -msgstr "快速学习" +msgstr "学得快" #. ~ Description for Fast Learner #: lang/json/mutation_from_json.py @@ -75694,7 +76591,7 @@ msgstr "你的大脑的学习能力更加灵活出色,加快你技能的经验 #: lang/json/mutation_from_json.py msgid "Strong Stomach" -msgstr "肠胃发达" +msgstr "铁胃" #. ~ Description for Strong Stomach #: lang/json/mutation_from_json.py @@ -75705,7 +76602,7 @@ msgstr "你的胃与肠道对于酒精与食物中毒等处理能力更强,即 #: lang/json/mutation_from_json.py msgid "Good Memory" -msgstr "出色记忆" +msgstr "记得牢" #. ~ Description for Good Memory #: lang/json/mutation_from_json.py @@ -75724,11 +76621,11 @@ msgstr "灵巧" msgid "" "While you're not any better at melee combat, you are better at recovering " "from a miss, and will be able to attempt another strike faster." -msgstr "你在近战中的反应更为敏锐,在一次近战攻击未命中后可以更快恢复,更快地发动下一次攻击,此特性与近战等级无关。" +msgstr "虽然你的近战技能并未得到提升,但你能更快的从一次未命中的攻击中恢复过来,并更快的尝试发动新的攻击。" #: lang/json/mutation_from_json.py msgid "Drunken Master" -msgstr "酗酒道" +msgstr "天生醉拳" #. ~ Description for Drunken Master #: lang/json/mutation_from_json.py @@ -75736,7 +76633,7 @@ msgid "" "The ancient arts of drunken brawling come naturally to you! While under the" " influence of alcohol, your melee skill will rise considerably, especially " "unarmed combat." -msgstr "你的攻击性在酒精的刺激下将会更加强大,当在酒精的影响下时,你的近战能力将大幅上升,尤其是徒手格斗。" +msgstr "古老的酒后斗殴术对你来说如同是与生俱来一般!在酒精的作用下,你的近战能力将大幅上升,尤其是徒手格斗。" #: lang/json/mutation_from_json.py msgid "Spiritual" @@ -75752,7 +76649,7 @@ msgstr "你一直觉得世界远比我们能看到的丰富。不知是出于宗 #: lang/json/mutation_from_json.py msgid "Substance Tolerance" -msgstr "药物耐受" +msgstr "耐药体质" #. ~ Description for Substance Tolerance #: lang/json/mutation_from_json.py @@ -75763,7 +76660,7 @@ msgstr "你可以很好的抵抗麻醉药品。它们的效果在你身上持续 #: lang/json/mutation_from_json.py msgid "Gourmand" -msgstr "美食家" +msgstr "贪食" #. ~ Description for Gourmand #: lang/json/mutation_from_json.py @@ -75771,8 +76668,7 @@ msgid "" "You eat faster, and can eat and drink more, than anyone else! You also " "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 "" -"你天生对美食更加情有独钟,你吃得更快,也能比其他人吃、喝更多东西!你还可以从美味食物中获得更多的好心情,你也不介意残羹剩菜。激活该变异可跳过暴饮暴食的确认对话框。" +msgstr "你比别人吃得更快,也比别人更能吃!你能从美食中获得更多的好心情,你也不介意残羹剩菜。激活该变异可跳过暴饮暴食的确认对话框。" #: lang/json/mutation_from_json.py msgid "Bookworm" @@ -75787,7 +76683,7 @@ msgstr "没有什么能比得上看一本好书的感觉!书籍对你来说更 #: lang/json/mutation_from_json.py msgid "Addiction Resistant" -msgstr "抗瘾性" +msgstr "抗瘾体质" #. ~ Description for Addiction Resistant #: lang/json/mutation_from_json.py @@ -75807,23 +76703,22 @@ msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" " less likely to attack. This only applies to natural animals such as " "woodland creatures." -msgstr "" -"你的身体散发着友好的信息素,友善的动物不会从你身边跑开,甚至那些富有攻击性的动物也会表现出更少的攻击性。这个特性只适用于那些自然界的生物如林地动物。" +msgstr "不攻击人的动物不会从你身边跑开,甚至那些富有攻击性的动物也不太会优先攻击你。该特性只能对诸如林地动物等的自然生物生效。" #: lang/json/mutation_from_json.py msgid "Terrifying" -msgstr "动物恐惧" +msgstr "恐惧气息" #. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " "more likely to try to flee." -msgstr "你身上散发出令动物感到恐惧的信息素,它们见到你便会由于恐惧开始逃跑。" +msgstr "你身上有些让动物们感到恐惧的东西,它们更有可能试图从你身边逃开。" #: lang/json/mutation_from_json.py msgid "Disease Resistant" -msgstr "疾病抵抗" +msgstr "抗病体质" #. ~ Description for Disease Resistant #: lang/json/mutation_from_json.py @@ -75845,12 +76740,12 @@ msgstr "你肾上腺髓质分泌的激素在紧急时刻作用更大,当你处 #: lang/json/mutation_from_json.py msgid "Less Sleep" -msgstr "少眠者" +msgstr "睡得少" #. ~ Description for Less Sleep #: lang/json/mutation_from_json.py msgid "You need less sleep than the average person." -msgstr "你的身体、大脑细胞活性更强,你不需要充足的睡眠就可以保持活力,你对睡眠时间的要求比普通人要少。" +msgstr "相比普通人,你不需要充足的睡眠就依旧能够保持活力,你对睡眠时间的要求比普通人要少。" #: lang/json/mutation_from_json.py msgid "Self-Aware" @@ -75885,6 +76780,19 @@ msgid "" "unique pleasure to you." msgstr "你有受虐癖,疼痛使你感到快乐,虽然你还会承受疼痛的负面效果,但这同时会让你感到一种独特的快感。" +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "兴奋剂精神病" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" +"你和兴奋剂(如咖啡因或安非他明)之间有过一段独特的经历。你比普通人能够承受更高剂量的兴奋剂而不过量,但如果你吸入过多,你开始看见一些奇怪的事情发生……" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -75894,7 +76802,7 @@ msgstr "对你来说,实用的重要性远远低于好看。即使是在末世 #: lang/json/mutation_from_json.py msgid "Light Step" -msgstr "潜行" +msgstr "脚步轻盈" #. ~ Description for Light Step #: lang/json/mutation_from_json.py @@ -75916,7 +76824,7 @@ msgstr "你具有非常完美的基因基础,当你发生变异时,有利变 #: lang/json/mutation_from_json.py msgid "Scout" -msgstr "视觉发达" +msgstr "侦察者" #. ~ Description for Scout #: lang/json/mutation_from_json.py @@ -75924,7 +76832,7 @@ msgid "" "You're an excellent navigator and your ability to spot distant landmarks is " "unmatched. Your sight radius on the overmap extends beyond the normal " "range." -msgstr "你的视觉神经更加发达,能够看得非常远——甚至能看到还没有标记在地图上的地方。你的视野半径较通常距离有所增加。" +msgstr "你是个出色的领航员,你发现远处地标的能力无与伦比。你的大地图视野相比普通人有所扩大。" #: lang/json/mutation_from_json.py msgid "Topographagnosia" @@ -76013,8 +76921,8 @@ msgstr "剑术师" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." -msgstr "你曾在当地道场接受过一套近身武器训练。你在开始的时候可以选择菲律宾剑棍术、击剑术、班卡苏拉刀术或二天一流剑术之一。" +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." +msgstr "你曾经接受过一套近身武器训练。你在开始的时候可以选择菲律宾剑棍术、击剑术、班卡苏拉刀术、二天一流剑术或日本枪术之一。" #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -76036,7 +76944,7 @@ msgstr "欺骗精通" msgid "" "You have no qualms about bending the truth, and have practically no tells. " "Telling lies and otherwise bluffing will be much easier for you." -msgstr "你说谎时的大脑皮质不会分泌激素,所以你根本不会脸红,谎话说的就像是真的一样。欺骗别人将变得更加容易。" +msgstr "你对歪曲事实毫无顾虑,说谎时毫不脸红,而谎话说的就像是真的一样。欺骗别人将变得更加容易。" #: lang/json/mutation_from_json.py msgid "Pretty" @@ -76131,7 +77039,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Heavy Sleeper" -msgstr "重度沉睡" +msgstr "睡得沉" #. ~ Description for Heavy Sleeper #: lang/json/mutation_from_json.py @@ -76145,7 +77053,7 @@ msgstr "渴睡" #. ~ Description for Sleepy #: lang/json/mutation_from_json.py msgid "You need sleep more often, but still spend most of your time awake." -msgstr "你大脑细胞活性较弱,你用脑时间比常人更短,你更加渴望睡眠,不过大多数时候还能保持清醒。" +msgstr "相对于常人,你需要更多的睡眠,不过大多数时候还能保持清醒。" #: lang/json/mutation_from_json.py msgid "Asthmatic" @@ -76183,7 +77091,7 @@ msgstr "你天性易怒,你时常抱怨这个世界,看什么都感到不快 #: lang/json/mutation_from_json.py msgid "Disorganized" -msgstr "邋遢" +msgstr "杂乱无章" #. ~ Description for Disorganized #: lang/json/mutation_from_json.py @@ -76213,7 +77121,7 @@ msgstr "你听觉神经或许是用耳习惯不佳或是天生如此,你的听 #: lang/json/mutation_from_json.py msgid "Slow Learner" -msgstr "缓慢学习" +msgstr "学得慢" #. ~ Description for Slow Learner #: lang/json/mutation_from_json.py @@ -76444,7 +77352,7 @@ msgstr "野生动物如狗和狼把你当作猎物看待,并且会更有可能 #: lang/json/mutation_from_json.py msgid "Slow Reader" -msgstr "缓慢阅读" +msgstr "读得慢" #. ~ Description for Slow Reader #: lang/json/mutation_from_json.py @@ -76506,7 +77414,7 @@ msgstr "你不把你的背包装满就觉得浑身不对劲。当你携带物品 #: lang/json/mutation_from_json.py msgid "Savant" -msgstr "偏执狂" +msgstr "独开一窍" #. ~ Description for Savant #: lang/json/mutation_from_json.py @@ -76515,7 +77423,8 @@ msgid "" "at half speed in all skills except your best one. Note that combining this " "with Fast Learner will come out to a slower rate of learning for all skills." msgstr "" -"你在技能上严重偏科,除了你所喜欢的那一个其他都不愿意去学,将会导致其他的技能升级速度减慢。注:如你同时拥有快速学习特性时,将会使你所有的技能升级速度减慢。" +"你只专注于一项技能,对其他技能都不甚了解。除了你等级最高的技能外,你的所有其他技能经验获取速度减半。此外,当与学得快特性配合时,将会使所有技能的学习速度减慢。\n" +" " #: lang/json/mutation_from_json.py msgid "Pacifist" @@ -76539,7 +77448,7 @@ msgstr "你的心情难以控制,常常毫无预料的开心或难过,而且 #: lang/json/mutation_from_json.py msgid "Slow Footed" -msgstr "慢足" +msgstr "脚步迟缓" #. ~ Description for Slow Footed #: lang/json/mutation_from_json.py @@ -76571,7 +77480,7 @@ msgstr "你对羊毛过敏,不能穿任何羊毛制品衣服。" #: lang/json/mutation_from_json.py msgid "Truth Teller" -msgstr "欺骗抵触" +msgstr "说不出谎" #. ~ Description for Truth Teller #: lang/json/mutation_from_json.py @@ -76617,7 +77526,7 @@ msgstr "你的身体由于疾病等困扰还是天生如此,你很瘦弱,不 #: lang/json/mutation_from_json.py msgid "Frail" -msgstr "更瘦弱" +msgstr "弱不禁风" #. ~ Description for Frail #: lang/json/mutation_from_json.py @@ -76629,7 +77538,7 @@ msgstr "你的身体由于疾病等困扰还是天生如此,你非常瘦弱。 #: lang/json/mutation_from_json.py msgid "Fragile" -msgstr "极度贫弱" +msgstr "柴毁骨立" #. ~ Description for Fragile #: lang/json/mutation_from_json.py @@ -76639,6 +77548,17 @@ msgid "" "you heal much slower. Stacks with Glass Jaw." msgstr "你的身体由于疾病等困扰还是天生如此,你的身体极为脆弱。其最大HP比正常情况低75%,HP恢复速度也很慢。能和脆弱头骨叠加。" +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "基因恶性循环" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "一次大灾变中发生的事故已经严重损坏了你的DNA,使其难以恢复。你会经常获得变异,而且你获得的所有变异(无论来源)都是负面的。" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "粗糙皮肤" @@ -76695,7 +77615,7 @@ msgstr "你的视觉系统发生了变异,你的大脑神经跟上了你眼睛 #: lang/json/mutation_from_json.py msgid "Fey Eyes" -msgstr "妖精之眼" +msgstr "精灵之眼" #. ~ Description for Fey Eyes #: lang/json/mutation_from_json.py @@ -76706,7 +77626,7 @@ msgstr "你的眼睛发生了变异,眼睛颜色变成了莹绿色。瞳孔似 #: lang/json/mutation_from_json.py msgid "Fey Vision" -msgstr "妖精视觉" +msgstr "精灵视觉" #. ~ Description for Fey Vision #: lang/json/mutation_from_json.py @@ -76717,7 +77637,7 @@ msgstr "你的眼睛发生了变异,所视的阴影似乎并没有那么暗。 #: lang/json/mutation_from_json.py msgid "Fey Nightsight" -msgstr "妖精夜视" +msgstr "精灵夜视" #. ~ Description for Fey Nightsight #: lang/json/mutation_from_json.py @@ -76803,7 +77723,7 @@ msgstr "你的视觉系统发生了变异,视觉神经与大脑已经随着你 #: lang/json/mutation_from_json.py msgid "Very Fast Healer" -msgstr "快速自愈" +msgstr "高速自愈" #. ~ Description for Very Fast Healer #: lang/json/mutation_from_json.py @@ -76823,7 +77743,7 @@ msgstr "你的机体自愈能力发生了变异,你在受创时,身体会以 #: lang/json/mutation_from_json.py msgid "Reptilian Healing" -msgstr "再生" +msgstr "蜥蜴再生" #. ~ Description for Reptilian Healing #: lang/json/mutation_from_json.py @@ -76867,7 +77787,7 @@ msgstr "你将尖牙扎入 %s 体内" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s sinks their fangs into %2$s" -msgstr "%1$s 将它的尖牙扎入 %2$s 体内" +msgstr "%1$s 将尖牙扎入 %2$s 体内" #: lang/json/mutation_from_json.py msgid "Incisors" @@ -76881,12 +77801,12 @@ msgstr "你的嘴部牙齿发生了变异,长出了很突出的门齿,看起 #: lang/json/mutation_from_json.py #, no-python-format msgid "You bite into %s with your ratlike incisors" -msgstr "你用你老鼠般的门牙狠狠的咬进 %s" +msgstr "你用你老鼠般的门齿扎入 %s 体内" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s bites %2$s with their ratlike incisors" -msgstr "%1$s 用老鼠般的门齿狠狠的咬进 %2$s" +msgstr "%1$s 用老鼠般的门齿扎入 %2$s 体内" #: lang/json/mutation_from_json.py msgid "Nictitating Membrane" @@ -77121,7 +78041,7 @@ msgid "" "You've grown a chitin exoskeleton, much like that of an insect. It provides" " considerable physical protection, but reduces your dexterity by 1. " "Somewhat reduces wet effects." -msgstr "你的皮肤组织发生了变异,产生了甲壳。全身被类似昆虫的外壳所包围,它可以为你提供全方位的保护,但你的敏捷值-1。稍微减少湿身心情惩罚。" +msgstr "你的皮肤组织发生了变异,产生了甲壳。全身被类似昆虫的外壳所包围,它可以为你提供全方位的保护,但你的敏捷 -1。稍微减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Chitinous Plate" @@ -77134,7 +78054,8 @@ 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 "" -"你的皮肤组织发生了变异,产生了甲壳。全身被类似甲壳虫的厚厚的外壳所包围,它可以为你提供近乎完美的保护,但你敏捷-1,且身体各部位受到累赘,除了眼睛和嘴。大大减少湿身心情惩罚。" +"你的皮肤组织发生了变异,产生了甲壳。全身被类似甲壳虫的厚厚的外壳所包围,它可以为你提供近乎完美的保护,但你的敏捷 " +"-1,且身体除了眼睛和嘴的各部位都额外增加了累赘。大大减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Hairy Chitin" @@ -77160,14 +78081,14 @@ msgstr "你的皮肤组织发生了变异,产生了甲壳。甲壳上的几丁 #: lang/json/mutation_from_json.py msgid "Furred Plate" -msgstr "毛皮甲壳板" +msgstr "毛皮板甲" #. ~ Description for Furred Plate #: lang/json/mutation_from_json.py msgid "" "Your exoskeleton has hardened considerably--restricting movement, granted--" "and boasts a fine coat of hairs that put feline whiskers to shame." -msgstr "你的皮肤组织发生了变异,产生了甲壳。甲壳得到的强化,变得相当坚硬,同样也妨碍到了行动,外面覆盖着一层可以强化感知的皮毛传感外衣。" +msgstr "你的皮肤组织发生了变异,产生了甲壳。甲壳变得相当坚硬,但同样也妨碍到了行动,外面覆盖着一层可以强化感知的长毛,能让猫须自愧不如。" #: lang/json/mutation_from_json.py msgid "Urticating Hairs" @@ -77180,7 +78101,7 @@ 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 "" -"你的皮肤组织发生了变异,产生了甲壳。大部分毛发都是松脱地粘在身上的。如果有生物攻击你的话,很可能会沾上大量刺激性的绒毛。这些毛发并未携带你身上的毒液,但会分散攻击者的注意力。" +"你的皮肤组织发生了变异,产生了许多毛发。大部分毛发都是松脱地粘在身上的。攻击你的生物很可能会沾上大量恼人的绒毛。这些毛发并未携带你身上的毒液,但会分散攻击者的注意力。" #: lang/json/mutation_from_json.py msgid "Spines" @@ -77192,7 +78113,7 @@ msgid "" "Your skin is covered with fine spines. Whenever an unarmed opponent strikes" " a part of your body that is not covered by clothing, they will receive " "moderate damage." -msgstr "你的皮肤组织发生了变异。覆盖着大骨刺。每一个手无寸铁的对手攻击你的身体,他们将受到中度损伤。" +msgstr "你的皮肤组织发生了变异,长出了许多细骨刺。当对手徒手攻击直接命中暴露在外的肢体时,将会受到不小的伤害。" #: lang/json/mutation_from_json.py msgid "Quills" @@ -77204,7 +78125,7 @@ msgid "" "Your body is covered with large quills. Whenever an unarmed opponent " "strikes a part of your body that is not covered by clothing, they will " "receive significant damage." -msgstr "你的你的皮肤组织发生了变异,身上布满了硬刺。当对手徒手攻击不穿衣服的你时,他们将会受到伤害。" +msgstr "你的皮肤组织发生了变异,长出了又大又长的硬刺。当对手徒手攻击直接命中暴露在外的肢体时,将会受到较高的伤害。" #: lang/json/mutation_from_json.py msgid "Phelloderm" @@ -77217,7 +78138,7 @@ msgid "" "provides a weak armor, and helps you retain moisture, resulting in less " "thirst. Greatly decreases wet penalties." msgstr "" -"你的你的皮肤组织发生了变异,在变成绿色的同时质地也更像木头。这为你提供了薄弱的护甲加成,并帮助你保持水分,从而减少口渴。大大减少湿身心情惩罚。" +"你的皮肤组织发生了变异,在变成绿色的同时质地也更像木头。这为你提供了薄弱的护甲加成,并帮助你保持水分,从而使你不容易口渴。大大减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Bark" @@ -77229,7 +78150,7 @@ msgid "" "Your skin is coated in a light bark, like that of a tree. This provides " "resistance to cutting damage and minor protection from fire. Greatly " "reduces wet effects." -msgstr "你的皮肤被一层薄薄的树皮所覆盖。它可以减少你受到的斩击伤害,并且轻微增加火焰抵抗。大大减少湿身心情惩罚。" +msgstr "你的皮肤组织发生了变异,被一层薄薄的树皮所覆盖。它可以减少你受到的斩击伤害,并且轻微增加火焰抵抗。大大减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Thorns" @@ -77242,8 +78163,7 @@ msgid "" "strikes a part of your body that is not covered by clothing, they will " "receive minor damage. Your punches may also deal extra damage." msgstr "" -"你的皮肤覆盖着小木刺。每一个手无寸铁的对手攻击你的身体,他们将受到轻微损伤。\n" -"你的徒手攻击也可能造成额外的伤害。" +"你的皮肤组织发生了变异,覆盖着许多细小的木质尖刺。当对手徒手攻击直接命中暴露在外的肢体时,将会受到些微的伤害。你的徒手攻击也能造成额外伤害。" #: lang/json/mutation_from_json.py msgid "Leaves" @@ -77256,7 +78176,7 @@ msgid "" " being physically striking, these provide you with a minor amount of " "nutrition while in sunlight. Slightly reduces wet effects." msgstr "" -"你的秀发转变成了一蓬绿油油的藤蔓,上面长满了绿叶。除了卖相奇葩外,当你处于阳光照射下时,它还能够通过光合作用给你提供一定的营养。稍微减少湿身心情惩罚。" +"你的秀发转变成了一蓬绿油油的藤蔓,上面长满了绿叶。除了样子很令人瞩目之外,当你处于阳光照射下时,它还能够通过光合作用给你提供一定的营养。稍微减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Flowering" @@ -77267,7 +78187,7 @@ msgstr "脑花怒放" msgid "" "You've started blooming where your scalp used to be. Your blossoms have a " "pleasant aroma, are visually striking, and are quite sensitive." -msgstr "你的脑袋上开出了花朵,香气怡人,意外的是挺好看的,而且还特别敏感。" +msgstr "你的头皮上开出了花朵,香气怡人,看上去也很令人瞩目,而且还特别敏感。" #: lang/json/mutation_from_json.py msgid "Mycus Spores" @@ -77280,7 +78200,7 @@ msgstr "吾等已在本地生物上培育出了孢子囊。马卡斯必将壮大 #: lang/json/mutation_from_json.py msgid "Mycus Sporogenesis" -msgstr "马卡斯孢子增殖" +msgstr "马卡斯产孢" #. ~ Description for Mycus Sporogenesis #: lang/json/mutation_from_json.py @@ -77294,7 +78214,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Mycus Blossoms" -msgstr "马卡斯绽放" +msgstr "马卡斯之花" #. ~ Description for Mycus Blossoms #: lang/json/mutation_from_json.py @@ -77313,7 +78233,7 @@ msgid "" "guidance determines that it is safe to germinate. Rapid development taxes " "local nutrient reserves but ensures swift and effective growth." msgstr "" -"本地的有机生物似乎将公开散播孢子视作危险行为,并攻击马卡斯。因此吾等本地的孢子花将保持沉寂,直到本地向导决定什么时候才是安全绽放的时机。孢子怒放会极大地消耗本地养分储备,但也能保证快速而有效地繁殖。" +"本地的有机生物似乎将公开散播孢子视作危险行为,并攻击马卡斯。因此吾等本地的孢子花将保持沉寂,直到本地向导决定何时为安全绽放的时机。孢子怒放会极大地消耗本地养分储备,但也能保证快速而有效地繁殖。" #: lang/json/mutation_from_json.py msgid "Mycus Provenance" @@ -77325,7 +78245,7 @@ msgid "" "Local spore sacs and blossoms have merged into a single, symbiotic form. " "Acting as one, they germinate together to cement rapid growth across a large" " area according to local guidance. The Mycus must grow." -msgstr "本地的孢子囊和孢子花将融合为单一而共生的形态。合二为一,它们将在本地向导的指导下共同生长,将一大片区域融合在马卡斯下。马卡斯族群必将壮大。" +msgstr "本地的孢子囊和孢子花将融合为单一而共生的形态。合二为一,它们将在本地向导的指导下共同生长,将一大片区域融合在马卡斯下。马卡斯必将壮大。" #: lang/json/mutation_from_json.py msgid "Long Fingernails" @@ -77356,7 +78276,7 @@ msgstr "鼠爪" #. ~ Description for Rat Claws #: lang/json/mutation_from_json.py msgid "Your claws have grown tougher and slightly gnarled." -msgstr "你的爪子变得又粗又硬。" +msgstr "你的爪子变得又粗又硬,还带着倒钩。" #: lang/json/mutation_from_json.py msgid "Stainless Claws" @@ -77367,7 +78287,7 @@ msgstr "钢铁利爪" msgid "" "Your paws are bone, muscle, and claw with a thin layer of skin and fur. " "They might as well be made of stainless steel." -msgstr "你的手爪不外乎骨头,肌肉,利爪外加一层皮毛,也许是不锈钢材质构成的。" +msgstr "你的手爪不外乎骨头,肌肉,利爪外加一层皮毛,如同不锈钢一般锋利。" #: lang/json/mutation_from_json.py msgid "Retractable Claws" @@ -77378,7 +78298,7 @@ msgstr "伸缩利爪" msgid "" "You have claws on the ends of your fingers, and can extend or retract them " "as desired. Gloves will still get in the way, though." -msgstr "你的指尖变得尖锐锋利,并且伸缩自如。如果你没带手套,你的徒手攻击将造成少量斩击伤害。" +msgstr "你的指甲变得尖锐锋利,并且伸缩自如。如果不戴手套,你的徒手攻击将造成少量斩击伤害。" #: lang/json/mutation_from_json.py msgid "Tentacle Rakes" @@ -77405,14 +78325,14 @@ msgstr "你的食指已经变成了一个巨大的猛禽利爪,经过实践后 #: lang/json/mutation_from_json.py msgid "Radiogenic" -msgstr "辐射吸收" +msgstr "辐射再生" #. ~ Description for Radiogenic #: lang/json/mutation_from_json.py msgid "" "Your system has adapted to radiation. While irradiated, you will actually " "heal slowly, converting the radiation into hit points." -msgstr "你的身体已经适应辐射。当你受到辐射时你将缓慢恢复生命值。" +msgstr "你的身体似乎稍微适应了辐射。当你受到辐射时,你将缓慢恢复生命值,将辐射值慢慢转换成生命值。" #: lang/json/mutation_from_json.py msgid "Marloss Carrier" @@ -77423,7 +78343,7 @@ msgstr "马洛斯携带者" msgid "" "Ever since you ate that Marloss berry, you can't get its scent out of your " "nose, and you have a strong desire to try some seeds and...sap?" -msgstr "自从你吃了马洛斯变异莓后,你永远无法忘怀它的气味,你十分想再吃一次,或者去试试种子和……汁液?" +msgstr "自从你吃了马洛斯变异莓后,你永远无法忘怀它的气味,你十分想再吃一次,或者去试试种子和……蜜浆?" #: lang/json/mutation_from_json.py msgid "Marloss Vessel" @@ -77434,7 +78354,7 @@ msgstr "马洛斯化身" msgid "" "Ever since you ate that Marloss seed, you can't get its taste off of your " "tongue, and you have a strong desire to try some berries and...sap?" -msgstr "自从你吃了马洛斯种子后,你永远无法忘怀它的味道,你十分想再吃一次,或者去试试变异莓和……汁液?" +msgstr "自从你吃了马洛斯种子后,你永远无法忘怀它的味道,你十分想再吃一次,或者去试试变异莓和……蜜浆?" #: lang/json/mutation_from_json.py msgid "Marloss Vector" @@ -77445,7 +78365,7 @@ msgstr "马洛斯传教者" msgid "" "Ever since you ate that Marloss jelly, you can't stop thinking of it, and " "you have a strong desire to eat some seeds and berries." -msgstr "自从你吃了马洛斯蜜浆后,你永远无法忘怀它,你十分想再吃一次,或者去试试种子和变异莓。" +msgstr "自从你吃了马洛斯蜜浆后,你永远无法忘怀它的味道,你十分想再吃一次,或者去试试种子和变异莓。" #: lang/json/mutation_from_json.py msgid "Marloss Rejection" @@ -77456,7 +78376,7 @@ msgstr "马洛斯排斥" msgid "" "Ever since you had that life-threatening reaction to that Marloss junk, you " "can't bear the thought of ever eating it again!" -msgstr "自从你对那什么狗屁马洛斯莓有过一次危及生命的排异反应,你一辈子都不想再吃它了,哪怕是一次!" +msgstr "自从你对那什么马洛斯狗屁玩意有过一次危及生命的排异反应,你一辈子都不想再吃它了,哪怕是一次!" #: lang/json/mutation_from_json.py msgid "Mutagenic Aversion" @@ -77489,7 +78409,7 @@ msgstr "动物信息素" msgid "" "Your body produces low-level pheromones which puts mammals at ease. They " "will be less likely to attack or flee from you." -msgstr "你的身体会生产少量使哺乳动物安心的信息素,使得动物不太可能会攻击或远离你。" +msgstr "你的身体会生产少量使哺乳动物安心的信息素,使得动物不太可能会攻击或逃离你。" #: lang/json/mutation_from_json.py msgid "Disease Immune" @@ -77504,7 +78424,7 @@ msgstr "你的身体产生了疾病免疫。你将永远不会生病。" #: lang/json/mutation_from_json.py msgid "Infection Resistant" -msgstr "感染抵抗" +msgstr "抗感染体质" #. ~ Description for Infection Resistant #: lang/json/mutation_from_json.py @@ -77523,7 +78443,7 @@ msgstr "感染免疫" msgid "" "Your bloodstream has developed antibiotic properties. Your wounds will " "never become infected." -msgstr "你的血液里充斥着抗体。你再也不会被感染了" +msgstr "你的血液里充斥着抗体。你的伤口再也不会被感染了。" #: lang/json/mutation_from_json.py msgid "Mycus Identity" @@ -77537,7 +78457,7 @@ msgid "" "system, and we may traverse Mycus biospheres easily, as native bioforms " "shift shape to accommodate us." msgstr "" -"吾等已将本地生物生态改造得适应了马卡斯。吾等所遇到的孢子将不再本地生物体内生长,吾等将可在马卡斯地形上轻易移动,只因本地生物生态将变异以适应于吾等。" +"吾等已将本地生物生态改造得适应了马卡斯。吾等所遇到的孢子将不再本地生物体内生长,吾等将可在马卡斯地形上轻易移动,只因本地生物形态已经变异适应于吾等。" #: lang/json/mutation_from_json.py msgid "Parasite Immune" @@ -77559,7 +78479,7 @@ msgstr "毒素攻击" msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " "mutations have a chance to poison your target." -msgstr "你的身体会产生毒液。任何由于变异导致的斩击和刺击攻击都有机会使目标中毒。" +msgstr "你的身体能分泌出一种烈性毒液。任何由于变异导致的斩击和刺击攻击都有机会使目标中毒。" #: lang/json/mutation_from_json.py msgid "Strongly Venomous" @@ -77571,7 +78491,7 @@ msgid "" "Your venom has become particularly strong. You're confident that your bites" " or other cutting/stabbing natural attacks will take your target down " "quickly." -msgstr "你的毒性变得更加猛烈。被你撕咬或抓伤、刺伤的目标将会迅速完蛋。" +msgstr "你所分泌的毒液的毒性变得更加猛烈。你相信,被你咬伤或其他变异的斩击/刺击攻击都能够迅速干掉你的目标。" #: lang/json/mutation_from_json.py msgid "Slime Hands" @@ -77583,7 +78503,7 @@ msgid "" "The skin on your hands is a mucous membrane and produces a thick, acrid " "slime. Attacks using your hand will cause minor acid damage. Slightly " "increases wet benefits." -msgstr "你双手表皮上产生了一层厚厚的、刺鼻气味的粘液膜,当你徒手攻击敌人时将会造成酸液腐蚀伤害。稍微增加湿身心情加成。" +msgstr "你双手表皮发生了变异,能够分泌出一层厚厚的、刺鼻气味的粘液膜,当你徒手攻击敌人时将会造成轻微的酸液腐蚀伤害。稍微增加湿身心情加成。" #: lang/json/mutation_from_json.py msgid "Stretchy Limbs" @@ -77592,7 +78512,7 @@ msgstr "弹性肢体" #. ~ Description for Stretchy Limbs #: lang/json/mutation_from_json.py msgid "Your limbs seem to have a little more 'give' to them. +1 Dexterity." -msgstr "你的肢体好像能够再主动\"伸远\"一点点。+1敏捷。" +msgstr "你的四肢好像能够再主动\"伸远\"一点点。敏捷 +1。" #: lang/json/mutation_from_json.py msgid "Rubbery Limbs" @@ -77603,7 +78523,7 @@ msgstr "橡胶肢体" msgid "" "Your limbs are significantly more flexible than any pathetic human arm or " "leg. +3 Dexterity, -2 Strength." -msgstr "你的四肢明显比可悲的人类肢体要柔韧。+3敏捷-2力量。" +msgstr "你的四肢明显比可悲的人类肢体要柔韧。敏捷 +3,力量 -2。" #: lang/json/mutation_from_json.py msgid "Pseudolimbs" @@ -77613,7 +78533,7 @@ msgstr "变形肢体" #: lang/json/mutation_from_json.py msgid "" "Your pseudopod-like limbs can fit into anything! +4 Dexterity, -4 Strength." -msgstr "你的肢体可以适配任何东西!+4敏捷-4力量。" +msgstr "你的四肢能够匹配任何东西!敏捷 +4,力量 -4。" #: lang/json/mutation_from_json.py msgid "Compound Eyes" @@ -77624,7 +78544,7 @@ msgstr "复眼" 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 "你的眼睛变成了像昆虫一样的复眼。只要你不戴眼镜,感知+2。" +msgstr "你的眼睛变成了像昆虫一样的复眼。只要你不戴任何眼部装备,感知 +2。" #: lang/json/mutation_from_json.py msgid "Padded Feet" @@ -77637,7 +78557,7 @@ msgid "" "The bottoms of your feet are strongly padded. You receive no movement " "penalty for not wearing shoes, and even receive a 10% bonus when moving " "barefoot." -msgstr "你的脚底有个肉垫,不穿鞋子可以增加10%移动速度,穿鞋就没效果。" +msgstr "你的脚底长出了厚厚的肉垫,光着脚行动时不受惩罚,甚至能增加10%移动速度,穿鞋就没效果。" #: lang/json/mutation_from_json.py msgid "Toe Talons" @@ -77649,7 +78569,7 @@ msgid "" "You have grown large, curved, and wickedly sharp talons in place of your big" " toes. Fortunately, they don't get in the way of your movement. " "Unfortunately, they do prevent you from wearing footgear." -msgstr "爪子已经代替你的大脚趾长的巨大,带有弯曲和锋利的爪子。幸运的是,他们并没有影响你移动方式。不幸的是,这爪子让你无法穿戴鞋袜。" +msgstr "你的大脚趾上长出了巨大、弯曲且看上去十分锋利的爪子。幸运的是,它们不会影响你的移动。不幸的是,这爪子让你无法穿戴鞋袜。" #: lang/json/mutation_from_json.py #, no-python-format @@ -77671,17 +78591,17 @@ msgid "" "Your feet have fused into hooves. This allows kicking attacks to do much " "more damage, provides natural armor, and removes the need to wear shoes; " "however, you can not wear shoes of any kind. Reduces wet effects." -msgstr "你的脚已经融合成蹄,如同西方的恶魔一样。踢人更厉害了,提供天然护甲,光着脚也能走路,然而,你不能穿任何鞋子。减少湿身心情惩罚。" +msgstr "你的脚已经融合成蹄,如同西方的恶魔一样。踢人更厉害了,提供天然护甲,光着脚也能走路,然而,你穿不上鞋了。减少湿身心情惩罚。" #: lang/json/mutation_from_json.py #, no-python-format msgid "You kick %s with your hooves" -msgstr "你用蹄子踢 %s" +msgstr "你用蹄子猛地踢向 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s kicks %2$s with their hooves" -msgstr "%1$s 用蹄子猛踢 %2$s" +msgstr "%1$s 用蹄子猛地踢向 %2$s" #: lang/json/mutation_from_json.py msgid "Alcohol Metabolism" @@ -77701,7 +78621,7 @@ msgstr "地底耐性" #. ~ Description for Subterranean Fortitude #: lang/json/mutation_from_json.py msgid "The aches and pains of living underground don't bother you as much." -msgstr "你习惯于长年生活在地下。" +msgstr "你习惯于长年生活在地下,对你来说并不痛苦。" #: lang/json/mutation_from_json.py msgid "Subterranean Build" @@ -77713,7 +78633,7 @@ msgid "" "Your frame has adapted for life in confined spaces. You seem a little " "shorter and bulkier, trading muscle mass for mobility. (+2 Strength, -2 " "Dexterity)" -msgstr "为了适应在狭小地方的生活,你变得矮小精干,牺牲灵活性来获得力量。(+2力量,-2敏捷)" +msgstr "为了适应在狭小地方的生活,你变得矮小精干,牺牲灵活性来获得力量。力量 +2,敏捷 -2。" #: lang/json/mutation_from_json.py msgid "Saprovore" @@ -77832,7 +78752,7 @@ msgstr "你的牙又长又尖,以至于你不能带口罩,吃东西也很不 #: lang/json/mutation_from_json.py #, no-python-format msgid "You tear into %s with your saber teeth" -msgstr "你用你的尖牙撕裂了 %s" +msgstr "你用尖牙撕裂了 %s" #: lang/json/mutation_from_json.py #, no-python-format @@ -77865,12 +78785,12 @@ msgstr "你头上有一对像小牛一样的小犄角。你可以用你的头撞 #: lang/json/mutation_from_json.py #, no-python-format msgid "You headbutt %s with your horns" -msgstr "你用角头锥攻击 %s" +msgstr "你用角顶了 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s headbutts %2$s with their horns" -msgstr "%1$s 用角头锥攻击 %2$s" +msgstr "%1$s 用角顶了 %2$s" #: lang/json/mutation_from_json.py msgid "Curled Horns" @@ -77882,7 +78802,7 @@ 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 you from wearing any " "headwear." -msgstr "你有一对像公羊一样的羊角。你可以用你的头撞击对方造成钝击伤害,但除面料做的帽子外你都戴不上。" +msgstr "你有一对像公羊一样的羊角。你可以用你的头撞击对方造成钝击伤害,但也让你没法戴上不是织物的帽子。" #: lang/json/mutation_from_json.py #, no-python-format @@ -77904,7 +78824,7 @@ msgid "" "You have a pair of long, pointed horns, like those of an antelope. They " "allow you to make a strong piercing headbutt attack, but prevent you from " "wearing any headwear the is not made of fabric." -msgstr "你头上有一对像羚羊般的犄角。你可以用你的头撞击对方造成刺击伤害,但除了面料做成的帽子外你都穿不了。" +msgstr "你头上有一对像羚羊般的犄角。你可以用你的头撞击对方造成刺击伤害,但也让你没法戴上不是织物的帽子。" #: lang/json/mutation_from_json.py #, no-python-format @@ -77926,7 +78846,7 @@ msgid "" "You have a huge rack of antlers, like those of a moose. They prevent you " "from hearing headwear that is not made of fabric, but provide a weak " "headbutt attack." -msgstr "你头上有个像麋鹿一样的鹿角,你将不能穿戴除了布料做成以外的头盔,但可以给你的头提供些许撞击加成。" +msgstr "你头上有个像麋鹿一样的鹿角,也让你没法戴上不是织物的帽子,但让你能够头锤攻击敌人造成些许伤害。" #: lang/json/mutation_from_json.py #, no-python-format @@ -77948,7 +78868,7 @@ msgid "" "You have a pair of antennae. They allow you to detect the presence of " "monsters up to a few tiles away, even if you can't see or hear them, but " "prevent you from wearing headwear that is not made of fabric." -msgstr "你有一对触角,可以发现周围你看不见的怪物,但除面料做的帽子外你都戴不上。" +msgstr "你有一对触角,可以发现周围你看不见的怪物,但也让你没法戴上不是织物的帽子。" #: lang/json/mutation_from_json.py msgid "Road-Runner" @@ -77969,7 +78889,7 @@ msgstr "粗短尾巴" #. ~ Description for Stubby Tail #: lang/json/mutation_from_json.py msgid "You have a short, stubby tail, like a rabbit's. It serves no purpose." -msgstr "你有一个毛茸茸的兔子尾巴。" +msgstr "你有一个毛茸茸的兔子尾巴。但是没有任何作用。" #: lang/json/mutation_from_json.py msgid "Tail Fin" @@ -77980,7 +78900,7 @@ msgstr "尾鳍" 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 "你有一个鳍状的尾巴。它允许你游得更快,但也让你没法穿上不是织物的裤子。略微增加湿身心情加成。" +msgstr "你有一个鳍状的尾巴。它让你游得更快,但也让你没法穿上不是织物的裤子。略微增加湿身心情加成。" #: lang/json/mutation_from_json.py msgid "Long Tail" @@ -78026,17 +78946,17 @@ msgstr "粗尾巴" 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 "你现在有了一根长长的、粗粗的蜥蜴尾巴。它能够帮你在奔跑的时候增加一些平衡,同时还能当做一根很犀利的鞭子。让你没法穿上不是织物的裤子。" +msgstr "你现在有了一根长长的、粗粗的蜥蜴尾巴。它能够帮你维持平衡,同时还能当做一根很犀利的鞭子。让你没法穿上不是织物的裤子。" #: lang/json/mutation_from_json.py #, no-python-format msgid "You whap %s with your tail" -msgstr "你用尾巴拍打 %s" +msgstr "你用尾巴猛抽 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s whaps %2$s with their tail" -msgstr "%1$s 用尾巴拍打 %2$s" +msgstr "%1$s 用尾巴猛抽 %2$s" #: lang/json/mutation_from_json.py msgid "Raptor Tail" @@ -78048,11 +78968,11 @@ msgid "" "You have a long and semi-stiff lizardlike tail. You can't effectively lash " "it in combat, but it significantly improves your balance. Prevents wearing " "non-fabric pants." -msgstr "你有一条长而坚(僵)硬的蜥蜴尾巴。用它抽人有些费力,不过能够用它来维持平衡。让你没法穿上不是织物的裤子。" +msgstr "你有一条长而坚硬的蜥蜴尾巴。用它抽人有些费力,不过能够用它来维持平衡。让你没法穿上不是织物的裤子。" #: lang/json/mutation_from_json.py msgid "Fluffy Tail" -msgstr "毛绒尾巴" +msgstr "毛绒长尾" #. ~ Description for Fluffy Tail #: lang/json/mutation_from_json.py @@ -78060,7 +78980,7 @@ msgid "" "You have a long, fluffy-furred tail. It greatly improves your balance, " "making your ability to dodge much higher. Prevents wearing non-fabric " "pants." -msgstr "你有一条毛茸茸的尾巴,它极大地提高你的平衡,使你的闪避能力提高。让你没法穿上不是织物的裤子。" +msgstr "你有一根长长的毛茸茸的尾巴,它极大地提高你的平衡,使你的闪避能力提高。让你没法穿上不是织物的裤子。" #: lang/json/mutation_from_json.py msgid "Spiked Tail" @@ -78127,7 +79047,7 @@ msgstr "能屈能伸" msgid "" "You can survive injuries that would incapacitate humans: you get a 20% bonus" " to all hit points. Stacks with Tough, etc." -msgstr "你能从严酷的环境中存活下来,生命值上限额外加成20%。可以和强硬等叠加。" +msgstr "你能从严酷的环境中存活下来,生命值上限额外加成20%。可以和强壮等特性叠加。" #: lang/json/mutation_from_json.py msgid "Solidly Built" @@ -78139,7 +79059,7 @@ msgstr "内外兼修" msgid "" "Not much scares you. You get a 30% bonus to all hit points. Stacks with " "Tough, etc." -msgstr "基本没什么东西可以吓到你了。生命值上限额外加成30%。可以和强硬等特性叠加。" +msgstr "基本没什么东西可以吓到你了。生命值上限额外加成30%。可以和强壮等特性叠加。" #: lang/json/mutation_from_json.py msgid "TAAANK" @@ -78151,7 +79071,7 @@ msgstr "人形坦克" msgid "" "You can simply take the punishment from lesser beings and keep going. You " "get a 40% bonus to all hit points. Stacks with Tough, etc." -msgstr "弱者无法阻止你前进的道路,碾压!生命值上限额外加成40%。可以和强硬等特性叠加。" +msgstr "弱者无法阻止你前进的道路,碾压!生命值上限额外加成40%。可以和强壮等特性叠加。" #: lang/json/mutation_from_json.py msgid "Pain Recovery" @@ -78247,7 +79167,7 @@ msgstr "你的身体会对任何疼痛来源产生极度反应。对你造成双 #: lang/json/mutation_from_json.py msgid "Culler" -msgstr "以杀证道" +msgstr "扑杀者" #. ~ Description for Culler #: lang/json/mutation_from_json.py @@ -78257,12 +79177,12 @@ msgid "" "less bothered by death of others: their own weakness invited these fates " "upon them." msgstr "" -"你从杀戮其他生物中领悟天地的极意。一切生灵终将归于尘土,而你则是这个永恒的自然法则的守护者。你对其他人的死亡毫不在意:他们自身的懦弱导致了他们的结局。" +"你从杀戮之中领悟到,通过杀掉终将死去的弱者,你为那些能够活下去的强者保留了更多资源。你不会太被其他人的死亡所困扰,因为他们自身的懦弱导致了他们的结局。" #: lang/json/mutation_from_json.py lang/json/npc_class_from_json.py #: lang/json/npc_from_json.py msgid "Hunter" -msgstr "猎手" +msgstr "狩猎者" #. ~ Description for Hunter #: lang/json/mutation_from_json.py @@ -78271,7 +79191,8 @@ msgid "" "making it easier to control misplaced reactions to death of your prey. " "Additionally, combat skills, which you use to hunt, are easier to learn and " "maintain." -msgstr "你的大脑比起人类更像捕食者,使你容易控制猎物死亡时的不利反应。此外,战斗技能,你用来打猎的技能,将更易掌握并保持。" +msgstr "" +"你的大脑较人类而言更像是只猛兽,让你更容易控制自己在面对猎物死亡时所造成的负面情绪。此外,你能够更容易提升及保持你所用来进行狩猎的战斗技能。" #: lang/json/mutation_from_json.py msgid "Predator" @@ -78283,7 +79204,7 @@ msgid "" "You consider yourself something other than human and no longer empathize " "with them. Combat skills are easy to learn and maintain, but your critical " "thinking, so characteristic to these creatures, suffers." -msgstr "你认为你自己不再是人类,也不再同情他们。战斗技能很容易掌握并保持,但你的批判性思维能力,那类生物的突出特点,已被影响。" +msgstr "你认为自己不再归属于人类,也不再同情他们。战斗技能很容易提升及保持,但你的批判性思维能力,那类生物的突出特点,变差了。" #: lang/json/mutation_from_json.py msgid "Apex Predator" @@ -78295,7 +79216,8 @@ msgid "" "Your mind and brain have adapted to your new place in the world: as one on " "top the food chain. You can effortlessly master and maintain combat skills," " but your critical thinking has atrophied further." -msgstr "你是顶级掠食者,你的意识和大脑已经适应了你在世界上的新地位:食物链的巅峰。你可以毫不费力地掌握并保持战斗技能,但你的批判性思维进一步萎缩。" +msgstr "" +"你是顶级掠食者,你的意识和大脑已经适应了你在世界上的新地位:食物链的巅峰。你可以毫不费力地提升及保持战斗技能,但你的批判性思维能力已进一步萎缩。" #: lang/json/mutation_from_json.py msgid "Sapiovore" @@ -78318,7 +79240,7 @@ msgid "" " - our fibers will grow strong and resilient when such threats present " "themselves to us." msgstr "" -"一直以来,马卡斯都需要保护免受那些,不知道出于什么原因,想要伤害它的非马卡斯们的攻击。吾等已经适应并进化出了执行该项任务之能力,吾等之纤维在遇到该类威胁时能够生长变得足够强壮且有弹性。" +"一直以来,马卡斯都需要吾等之保护,以免受那些,不知何故,总想伤害它的非马卡斯们的攻击。吾等已经适应并进化出了执行该项任务之能力,吾等之纤维在遇到该类威胁时能够生长变得足够强壮且有弹性。" #: lang/json/mutation_from_json.py msgid "Bird Wings" @@ -78365,7 +79287,7 @@ msgid "" "A set of insect-like mandibles have grown around your mouth. They allow you" " to eat faster and provide a slicing unarmed attack, but prevent you from " "wearing mouthwear. Slightly reduces wet effects." -msgstr "你的嘴上长出了类似昆虫一样的下颚,你吃东西更快,偶尔还可以啄你的对手,但是你不能戴口罩了。" +msgstr "你的嘴上长出了类似昆虫一样的下颚,你吃东西更快,并且让你在徒手攻击时能够用它狠狠地咬敌人一口,但是你不能戴口罩了。稍微减少湿身心情惩罚。" #: lang/json/mutation_from_json.py #, no-python-format @@ -78386,7 +79308,7 @@ msgstr "潜藏獠牙" msgid "" "Your mandibles have developed extensible fangs, allowing you to bite quickly" " or ensure your venom goes home, as desired." -msgstr "你的牙齿发生了变异,你的上颚长出了可以延展的獠牙,让你能够撕咬得更快,或保证你的毒液如预计一样到达目的地。" +msgstr "你的牙齿发生了变异,你的上颚长出了可以延展的獠牙,让你能够快速撕咬敌人,也能让你的毒液如预期一样到达目的地。" #: lang/json/mutation_from_json.py msgid "Canine Ears" @@ -78397,7 +79319,7 @@ msgstr "犬耳" 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 "你的耳朵伸得比狗都要长,他们可以增强你的听觉,让你听得更远。" +msgstr "你的耳朵发生了变异,变得又长又尖,和狗耳朵差不多。它们能够增强你的听觉,让你听得更远。" #: lang/json/mutation_from_json.py msgid "Lupine Ears" @@ -78408,7 +79330,7 @@ msgstr "狼耳" msgid "" "Your hearing has evolved further and is now on par with wolves. You can " "hear things significantly farther away." -msgstr "你的听力大大增强了,就像狼一样——长得也一样。" +msgstr "你的耳朵已经进一步变异,现在和狼耳朵差不多了。你能够听到远得多的地方所发出的声音。" #: lang/json/mutation_from_json.py msgid "Feline Ears" @@ -78419,7 +79341,7 @@ msgstr "猫耳" 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 "你的耳朵已经长的像猫又长又尖又软了。你的听力得到了增强。" +msgstr "你的耳朵发生了变异,变得又长又尖又软,和猫耳朵差不多。你发现自己能比较容易的收到远处发出的声音,听力得到了增强。" #: lang/json/mutation_from_json.py msgid "Ursine Ears" @@ -78430,7 +79352,7 @@ msgstr "熊耳" msgid "" "Your ears have grown longer and rounder, much like those of a bear. You can" " hear things a little farther away." -msgstr "你的耳朵又圆又大,像极黑熊的耳朵。你的听力稍微提升了。" +msgstr "你的耳朵发生了变异,变得又圆又大,和熊耳朵差不多。你的听力稍微提升了。" #: lang/json/mutation_from_json.py msgid "Pointed Ears" @@ -78442,7 +79364,7 @@ msgid "" "Your upper earlobes have grown noticeably higher. Fortunately, they don't " "get in the way of your headgear, much. Unfortunately, they also don't seem " "to help your hearing any." -msgstr "你的耳朵像精灵一般,幸运的是,长长的耳垂并不影响你穿戴头饰,但这仅仅是外观上的改变,并无法增强听力。" +msgstr "你的耳朵发生了变异,和精灵一般,幸运的是,长长的耳垂并不影响你穿戴头饰。不幸的是,这仅仅是外观上的改变,并不能增强你的听力。" #: lang/json/mutation_from_json.py msgid "Rodent Ears" @@ -78453,7 +79375,7 @@ msgstr "鼠耳" msgid "" "Your ears are huge, round, and gray! They're rather fascinating, and help " "you hear from a much greater distance." -msgstr "你的耳朵变得又大又圆还有点灰!它们看上去很迷人,而且能够帮助你听见远处的动静。" +msgstr "你的耳朵发生了变异,变得又大又圆还有点灰!它们看上去很迷人,而且能够帮助你听见远处的动静。" #: lang/json/mutation_from_json.py msgid "Web Walker" @@ -78497,17 +79419,17 @@ msgstr "吊网者" 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 "你的网丝可以轻易的支撑你的体重,遇到陡坡时可以让你安全下降。" +msgstr "你的蛛网丝可以轻易的支撑你的体重,遇到陡坡时可以让你安全下降。" #: lang/json/mutation_from_json.py msgid "Rope Webs" -msgstr "绳网" +msgstr "绳网者" #. ~ Description for Rope Webs #: lang/json/mutation_from_json.py msgid "" "With spinnerets like THESE, who needs rope?! Activate to produce rope." -msgstr "有了次世代纺织器,谁还需要绳子?激活它以制造绳索。" +msgstr "有了次世代纺织器,谁还需要绳子?激活该变异以制造绳索。" #: lang/json/mutation_from_json.py msgid "You spin a rope from your silk." @@ -78535,7 +79457,7 @@ msgid "" "You have a set of prominent rodent-like whiskers around your mouth. These " "make you more aware of vibrations in the air, and improve your ability to " "dodge slightly." -msgstr "你的嘴部周围出现了像啮齿动物般的胡须。它可以在空气中震动从而提高你的感知,并轻微提升你的闪避力。" +msgstr "你的嘴部周围出现了像啮齿动物般的显眼胡须。它可以在空气中震动从而提高你的感知,并轻微提升你的闪避力。" #: lang/json/mutation_from_json.py msgid "Fat Deposits" @@ -78567,7 +79489,7 @@ msgstr "魁梧身躯" #. ~ Description for Large #: lang/json/mutation_from_json.py msgid "You carry your rugged body with the dignity you deserve. Strength +2." -msgstr "虽然你的身材高大,但是你也拥有与之相匹配的力量和敏捷。力量+2" +msgstr "虽然你的身材高大,但是你也拥有与之相匹配的力量和敏捷。力量+2。" #: lang/json/mutation_from_json.py msgid "Freakishly Huge" @@ -78657,7 +79579,7 @@ msgstr "你的手脚更加灵活了。敏捷+2" #: lang/json/mutation_from_json.py msgid "Extremely Dextrous" -msgstr "高度灵巧" +msgstr "动如脱兔" #. ~ Description for Extremely Dextrous #: lang/json/mutation_from_json.py @@ -78903,7 +79825,7 @@ msgstr "你的舌头像蛇一样分叉,除了吓人以外没什么用。" #: lang/json/mutation_from_json.py msgid "Bulging Eyes" -msgstr "蛙眼" +msgstr "凸眼" #. ~ Description for Bulging Eyes #: lang/json/mutation_from_json.py @@ -79089,7 +80011,7 @@ msgstr "你的下巴和鼻子长成了狼鱼吻状。它战则能咬,视之而 #: lang/json/mutation_from_json.py #, no-python-format msgid "You nip at %s" -msgstr "你咬了 %s" +msgstr "你袭扰并咬了 %s" #: lang/json/mutation_from_json.py #, no-python-format @@ -79130,7 +80052,7 @@ msgstr "你的脸颊凸出来了,让你看起来充满着警觉与细心。" #: lang/json/mutation_from_json.py msgid "Reptilian Muzzle" -msgstr "爬虫枪鼻" +msgstr "蜥蜴之吻" #. ~ Description for Reptilian Muzzle #: lang/json/mutation_from_json.py @@ -79138,7 +80060,7 @@ msgid "" "Your face and jaws are a shorter version of those found on alligators. They" " look NASTY-as do the bite wounds they can inflict-but prevent you from " "wearing mouthgear." -msgstr "你的嘴脸,呃,是缩短版的鳄鱼吻。它看起来巨凶——咬起来也巨凶,可惜你面部无法再穿戴任何装备了" +msgstr "你的嘴脸,呃,是缩短版的鳄鱼吻。它看起来巨凶——咬起来也巨凶,可惜你面部无法再穿戴任何装备了。" #: lang/json/mutation_from_json.py #, no-python-format @@ -79152,14 +80074,14 @@ msgstr "%1$s 咬掉了 %2$s 的一部分" #: lang/json/mutation_from_json.py msgid "Proboscis" -msgstr "长鼻" +msgstr "管状喙" #. ~ Description for Proboscis #: lang/json/mutation_from_json.py msgid "" "You've gotten rid of that terribly imprecise mouth and now imbibe your food " "like a proper person. Chewing was tiresome anyway." -msgstr "你终于摆脱那张糟糕而又含糊的嘴啦,现在你就像\"大绅士\"一样吸取食物。咀嚼多累啊!" +msgstr "你终于摆脱那张糟糕而又含糊的嘴啦,现在你现在能用长长的喙像个真正的\"人\"一样吸取植物精华。咀嚼多累啊!" #: lang/json/mutation_from_json.py msgid "Hollow Bones" @@ -79186,7 +80108,7 @@ msgstr "你经常感到恶心,更容易从变质食物和酒精中获得这种 #: lang/json/mutation_from_json.py msgid "Vomitous" -msgstr "呕吐" +msgstr "易吐" #. ~ Description for Vomitous #: lang/json/mutation_from_json.py @@ -79251,7 +80173,7 @@ msgstr "你的身体容易脱水。你需要喝更多的水。" #: lang/json/mutation_from_json.py msgid "Very Thirsty" -msgstr "非常渴水" +msgstr "口舌生烟" #. ~ Description for Very Thirsty #: lang/json/mutation_from_json.py @@ -79333,7 +80255,7 @@ msgstr "你的身体正在缓慢地萎缩!" #: lang/json/mutation_from_json.py msgid "Solar Sensitivity" -msgstr "太阳能敏感" +msgstr "阳光过敏" #. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py @@ -79392,7 +80314,7 @@ msgid "" "Your hands and feet are heavily webbed, reducing your dexterity by 1 and " "causing problems with gloves. However, you can swim much faster. Slightly " "decreases wet penalties." -msgstr "你的手和脚上都长出了蹼,你的敏捷下降1点并且戴手套很困难,但是你可以游得更快。稍微减少湿身心情惩罚。" +msgstr "你的手和脚上都长出了蹼,敏捷-1,而且没法戴手套,但是你可以游得更快。稍微减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Paws" @@ -79404,7 +80326,7 @@ msgid "" "Your hands have fused into quasi-paws. Fine manipulation is a challenge: " "permanent hand encumbrance of 10, difficulty with delicate craftwork, and " "your gloves don't fit. But they handle water better." -msgstr "你的双手变成了双爪。精细操作对你来说是个挑战:手掌累赘永久+10,精细制造时间延长,手套也不再合身。不过,爪子的防水性倒是不错。" +msgstr "你的双手变成了爪子。精细操作对你来说是个挑战:手掌累赘永久+10,精细制造时间延长,手套也不再合身。不过,爪子划水还不错。" #: lang/json/mutation_from_json.py msgid "Broad Paws" @@ -79416,7 +80338,7 @@ msgid "" "Your paws are much larger now. Manual dexterity is is difficult: permanent " "hand encumbrance of 20, serious problems crafting, and no gloves. But you " "can swim more effectively." -msgstr "你的爪子现在更加粗壮了。精细手工活相当困难:手掌累赘永久+20,制作物品有大麻烦,同样不能穿手套。但游起泳更加有效。" +msgstr "你的爪子现在更加粗壮了。精细手工活相当困难:手掌累赘永久+20,制作物品有大麻烦,同样不能穿手套。但你游起泳比之前更加快了。" #: lang/json/mutation_from_json.py msgid "Beak" @@ -79433,12 +80355,12 @@ msgstr "你有一个嘴喙。你可以偶尔用它来啄你的敌人,但你不 #: lang/json/mutation_from_json.py #, no-python-format msgid "You peck %s" -msgstr "你使劲啄 %s" +msgstr "你使劲啄击 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s pecks %2$s" -msgstr "%1$s 使劲啄 %2$s" +msgstr "%1$s 使劲啄击 %2$s" #: lang/json/mutation_from_json.py msgid "Woodpecker Beak" @@ -79470,18 +80392,18 @@ msgstr "蜂鸟喙" msgid "" "Though your beak's not suitable for pecking, those flowers out there are a " "good source of energy. Examine them to feed." -msgstr "虽然你的喙不适合啄东西,那些开在外边的花却成了不错的能量来源。通过检查来食用。" +msgstr "虽然你的喙不适合啄东西,那些开在外边的花却成了不错的能量来源。按\"E\"查看来食用。" #: lang/json/mutation_from_json.py msgid "Genetically Unstable" -msgstr "遗传错乱" +msgstr "基因错乱" #. ~ Description for Genetically Unstable #: lang/json/mutation_from_json.py msgid "" "Your DNA has been damaged in a way that causes you to continually develop " "more mutations." -msgstr "你的DNA已被严重损害,这会导致你会不断产生更多的变异。" +msgstr "你体内的基因已被严重损害,这会导致你会不断产生更多的变异。" #: lang/json/mutation_from_json.py msgid "Genetic Chaos" @@ -79634,7 +80556,7 @@ msgstr "阳光依赖" msgid "" "You feel very sluggish when not in direct sunlight. You suffer a 5% drop in" " speed when in shade, and a 10% drop in speed when in the dark." -msgstr "如果你不能在阳光照射下将变得非常缓慢。你在阴暗中速度下降5%,在黑暗中下降10%。" +msgstr "当你不在阳光下时,你的行动会变得非常迟钝。你在阴暗处速度下降5%,在黑暗中下降10%。" #: lang/json/mutation_from_json.py msgid "Vines" @@ -79656,7 +80578,7 @@ msgstr "藤蔓假肢" 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 "你已经可以控制你身上的藤蔓了。这些藤蔓可以用来抽打攻击。你甚至可以用这些藤蔓从陡坡上爬下去,不过断开藤蔓会让你受伤。" +msgstr "你已经可以控制你身上的藤蔓了。这些藤蔓可以猛抽你的敌人。你甚至可以用这些藤蔓从陡坡上爬下去,不过藤蔓断开时可真疼。" #: lang/json/mutation_from_json.py #, no-python-format @@ -79666,11 +80588,11 @@ msgstr "你用藤蔓鞭挞 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s lashes %2$s with their vines" -msgstr "%1$s 用它的藤蔓鞭挞 %2$s" +msgstr "%1$s 用藤蔓鞭挞 %2$s" #: lang/json/mutation_from_json.py msgid "Vine Sprouter" -msgstr "藤蔓控制" +msgstr "藤蔓萌发" #. ~ Description for Vine Sprouter #: lang/json/mutation_from_json.py @@ -79685,14 +80607,14 @@ msgstr "你从身上扯下一条藤蔓。" #: lang/json/mutation_from_json.py msgid "Toe Roots" -msgstr "脚趾根系" +msgstr "根状脚趾" #. ~ Description for Toe Roots #: lang/json/mutation_from_json.py 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 "你的脚趾奇葩的蜿蜒着,而你根本想不通你为何把那玩意穿脚上。脱下来,它挡路了。" +msgstr "你的脚趾奇葩的蜿蜒着,而你根本想不通你为何会在脚上穿东西。脱下来,它挡到你了。" #: lang/json/mutation_from_json.py msgid "Roots" @@ -79704,7 +80626,7 @@ msgid "" "It's about time you started developing a root system. When reading, fishing" " from, waiting, or otherwise being stationary for a while on diggable " "terrain, you'll extract nutrients and water from the soil." -msgstr "是时候发展你的根系了。在阅读,钓鱼,等待,或者固定在可挖掘地形的时候,你将从土壤中提取营养素。" +msgstr "是时候发展你的根系了。在阅读,钓鱼,等待,或者站在可挖掘地形上时,你将从土壤中提取营养素。" #: lang/json/mutation_from_json.py msgid "Rooter" @@ -79715,7 +80637,7 @@ msgstr "人根合一" 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 "你发现你想不深插,基本是不可能的。你可以从任何可以挖掘的地形上或者水里汲取营养,但你的行动更加缓慢了。" +msgstr "你发现一有机会自己就想要扎根进土里。你可以从任何可挖掘地形上或者水中汲取营养,但你的行动更加缓慢了。" #: lang/json/mutation_from_json.py msgid "Chloromorphosis" @@ -79809,7 +80731,7 @@ msgstr "你的嗓门很大且经常发出咆哮音,从而几乎不可能说服 #: lang/json/mutation_from_json.py msgid "Hissing Voice" -msgstr "嘶吼嗓门" +msgstr "蜥蜴之嗓" #. ~ Description for Hissing Voice #: lang/json/mutation_from_json.py @@ -79877,7 +80799,7 @@ msgstr "昆虫臂膀" 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 "有这么多臂膀真是好。尽管它们太纤细没办法格挡或者击拳,必要情况下你却可以把他们藏到你披的这身人皮里边。" +msgstr "有这么多臂膀真是好。尽管它们太纤细没办法格挡或者击拳,但需要时你能够把它们藏进你披的这身人皮里边。" #: lang/json/mutation_from_json.py msgid "Arachnid Limbs" @@ -79916,22 +80838,22 @@ msgstr "你的手臂已转化为触手,敏捷+1,手掌累赘永久+30,不 #: lang/json/mutation_from_json.py #, no-python-format msgid "You slap %s with your tentacle" -msgstr "你用你的触手拍击 %s" +msgstr "你用触手猛掴 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s slaps %2$s with their tentacle" -msgstr "%1$s 用它的触手拍击 %2$s" +msgstr "%1$s 用触手猛掴 %2$s" #: lang/json/mutation_from_json.py #, no-python-format msgid "You rake %s with your tentacle" -msgstr "你用你的触手扑打 %s" +msgstr "你用触手猛扇 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s rakes %2$s with their tentacle" -msgstr "%1$s 用它的触手扑打 %2$s" +msgstr "%1$s 用触手猛扇 %2$s" #: lang/json/mutation_from_json.py msgid "4 Tentacles" @@ -79994,7 +80916,7 @@ msgid "" "Your legs have transformed into six tentacles. This decreases your speed on" " land by 20%, makes your movement silent, increases your swimming speed, and" " reduces wet penalties." -msgstr "你的腿变成了六条触须。这会降低你20%左右的陆地移动速度,但让你走路没有声音。然而,也增加你的游泳速度,减少湿身心情惩罚。" +msgstr "你的腿变成了六条触须。这会降低你20%左右的陆地移动速度,但让你走路悄无声息。然而,也增加你的游泳速度,减少湿身心情惩罚。" #: lang/json/mutation_from_json.py msgid "Tentacle Bracing" @@ -80005,21 +80927,21 @@ msgstr "触手吸盘" 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 "你的下肢的触手长出了吸盘。你在陆地上行动时会带来一定的不便,不过可以保证你不被吹走。" +msgstr "你的下肢的触手长出了吸盘。你在陆地上行动时会带来一定的不便,不过可以保证你稳稳站着。" #. ~ Description for Lizard #: lang/json/mutation_from_json.py msgid "" "You sometimes look back on your days before your tail came in. But you're " "better now." -msgstr "有时候你还会回忆起你长尾巴之前的日子,但你觉得现在快活多了。" +msgstr "你偶尔还会回想起长尾巴前的日子,但你觉得现在快活多了。" #. ~ Description for Bird #: lang/json/mutation_from_json.py msgid "" "You're sure you'll fly someday. In the meantime, there's still nests to " "build." -msgstr "你确信你某天会飞起来,但在此之前还是先把窝做好的说。" +msgstr "你确信你有一天会飞起来的,但在此之前还是先把窝做好的说。" #: lang/json/mutation_from_json.py msgid "Aquatic" @@ -80072,7 +80994,7 @@ msgstr "文明崩溃?太棒了!你和你的亲属将永远不用再担心屠 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 "成为皇后,无数仆人为你的每一个需求进行服务的感觉非常好……但怎样让他们排好队呢?" +msgstr "成为皇后,让无数仆人服侍你的感觉非常好……但怎样让它们排好队呢?" #. ~ Description for Plant #: lang/json/mutation_from_json.py @@ -80102,14 +81024,14 @@ msgid "" "Not much point to rebuilding up in that horribly bright roofless wasteland." " Now that you've become accustomed to your new digs, there's the beginnings" " of a great empire right here, underground." -msgstr "在那个亮的可怕的废土上重建并没有多大意义。现在习惯于新的发掘工作,这将是一个伟大帝国的开端,地下的帝国。" +msgstr "在那个亮的可怕的废土上重建并没有多大意义。你现在习惯于你的新住所,这将是一个伟大帝国的开端,地下的帝国。" #. ~ Description for Cephalopod #: lang/json/mutation_from_json.py msgid "" "Strange aeons, true, but Death seems to be slacking and you are doing just " "fine." -msgstr "不可思议的永劫,是啊,死神还在打盹儿,没空儿理你。" +msgstr "现在是个奇怪的时代,是啊,古神还在打盹儿,没空儿理你。" #: lang/json/mutation_from_json.py msgid "Arachnid" @@ -80328,7 +81250,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You tear into %s with your teeth" -msgstr "你用你的尖牙撕裂了 %s" +msgstr "你用尖牙撕裂了 %s" #: lang/json/mutation_from_json.py #, no-python-format @@ -80345,7 +81267,7 @@ msgid "" "You are a duly sworn law enforcement officer, with jurisdiction throughout " "the New England region thanks to interstate agreements. Whether that means " "anything now is another question." -msgstr "你是一个誓言捍卫法律的执法警察。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" +msgstr "你是一名誓言捍卫法律的执法警察。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" #: lang/json/mutation_from_json.py msgid "SWAT Officer" @@ -80357,7 +81279,7 @@ msgid "" "You are a duly sworn law enforcer, with jurisdiction throughout the New " "England region thanks to interstate agreements. Whether that means anything" " now is another question." -msgstr "你是一个誓言捍卫法律的特警。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" +msgstr "你是一名誓言捍卫法律的特警。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" #: lang/json/mutation_from_json.py msgid "Bionic Officer" @@ -80369,7 +81291,7 @@ msgid "" "You are a cybernetically-resurrected law enforcer, with jurisdiction " "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 "你是一个生化重构了的警察。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" +msgstr "你是一名被生化插件重新定义过的警察。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" #: lang/json/mutation_from_json.py msgid "Churl" @@ -80392,7 +81314,7 @@ msgid "" "You are a duly sworn law enforcement investigator, with jurisdiction " "throughout the New England region thanks to interstate agreements. Whether " "your shield means anything now is another question." -msgstr "你是一个誓言守卫法律并且区别对待黑人的警探。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" +msgstr "你是一名誓言守卫法律的警探。感谢州际协议,你拥有在全新英格兰的执法权。当然,这还有没有意义是另外一回事了。" #: lang/json/mutation_from_json.py msgid "US Marshal" @@ -80403,7 +81325,7 @@ msgstr "联邦执法官" msgid "" "You are a duly sworn Federal marshal, with nationwide jurisdiction and the " "authority of the United States of America." -msgstr "你是一个誓言过的联邦执法官,拥有在美帝全国的执法权。" +msgstr "你是一名誓言守卫法律的联邦执法官,拥有在美帝全国的执法权。" #: lang/json/mutation_from_json.py msgid "MD" @@ -80415,7 +81337,7 @@ msgid "" "You were just through with the administrative formalities for your residency" " when the cataclysm struck. \"Your\" hospital was overrun and evacuated, " "but there's always work for a good doctor." -msgstr "大灾变来临之际,你才刚刚圆满完成你的实习期。\"你的\"医院已经变得非常有趣了,但是好的医生,不管到哪都是能够取出信差脑子中的子弹的。" +msgstr "大灾变来临之际,你才刚刚圆满完成你的实习期,成为一名住院医师。而\"你的\"医院已经被丧尸攻陷,你成功撤离了,不过好医生无论到哪里都很吃香。" #: lang/json/mutation_from_json.py msgid "Skater" @@ -80426,7 +81348,7 @@ msgstr "滑冰者" 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 "大灾变前你在你的小轱辘上消磨了不少时间,结果就是你现在可以在推推搡搡中也能溜出个惊人体位。" +msgstr "在大灾变前,你花费了不少时间学习如何操控这个小轱辘,现在可以在推推搡搡中也能站得稳稳当当。" #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -80471,7 +81393,7 @@ msgid "" "You're trained in proper operation of the Autodoc, an advanced machine used " "for surgical procedures. Operations involving it will be moderately more " "likely to succeed." -msgstr "你受过专业培训,可在一种尖端医疗设备,全自动医疗仪上进行手术。所有涉及使用该医疗设备的手术会更容易成功。" +msgstr "你受过专业培训,可在一种被称为\"全自动医疗仪\"的尖端医疗设备上进行手术。所有涉及使用该医疗设备的手术会更容易成功。" #: lang/json/mutation_from_json.py msgid "Dungeon Master" @@ -80521,7 +81443,7 @@ msgstr "有1级同伴任务" #. ~ Description for Has Level 1 Companion Missions #: lang/json/mutation_from_json.py msgid "New mission options have become available!" -msgstr "有新的任务选项" +msgstr "有新的任务选项!" #: lang/json/mutation_from_json.py msgid "Has Level 1 Construction Built" @@ -80531,15 +81453,33 @@ msgstr "有1级建筑建设" #. ~ Description for Has Level 2 Construction Built #: lang/json/mutation_from_json.py msgid "New options may have become available!" -msgstr "有新的可用选项" +msgstr "有新的可用选项!" #: lang/json/mutation_from_json.py msgid "Has Level 2 Construction Built" msgstr "有2级建筑建设" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "起始NPC" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "起始NPC的标记" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "静态NPC" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "静态NPC的标记" + #: lang/json/mutation_from_json.py msgid "Debug Vision" -msgstr "调试视野" +msgstr "调试用视野" #. ~ Description for Debug Vision #: lang/json/mutation_from_json.py @@ -80548,7 +81488,7 @@ msgstr "你现在可以看的和开发组大神一样清楚了!耶!" #: lang/json/mutation_from_json.py msgid "Debug Invisibility" -msgstr "调试隐形" +msgstr "调试用隐形" #. ~ Description for Debug Invisibility #: lang/json/mutation_from_json.py @@ -80557,7 +81497,7 @@ msgstr "如果你能看到这个,你最好正在Debug某些东西,否则就 #: lang/json/mutation_from_json.py msgid "Debug Life Support" -msgstr "调试生命支持" +msgstr "调试用生命支持" #. ~ Description for Debug Life Support #: lang/json/mutation_from_json.py @@ -80600,7 +81540,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" @@ -81178,7 +82118,7 @@ msgstr "我正在寻找需要救助的伤员。" #: lang/json/npc_class_from_json.py msgid "Trader" -msgstr "贸易商人" +msgstr "贸易商" #: lang/json/npc_class_from_json.py msgid "I'm collecting gear and selling it." @@ -81214,7 +82154,7 @@ msgstr "赏金猎人" #: lang/json/npc_class_from_json.py msgid "I'm a killer for hire." -msgstr "我是个寻求雇主的杀手。" +msgstr "我是个寻求雇主的杀手,莫得感情。" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Thug" @@ -81222,7 +82162,7 @@ msgstr "恶棍" #: lang/json/npc_class_from_json.py msgid "I'm just here for the paycheck." -msgstr "我来这就是为了我的钱包。" +msgstr "我来这就是为了收保护费的。" #: lang/json/npc_class_from_json.py msgid "Scavenger" @@ -81246,7 +82186,7 @@ msgstr "我正在追踪猎物。" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Soldier" -msgstr "战士" +msgstr "士兵" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Bartender" @@ -81254,7 +82194,7 @@ msgstr "酒保" #: lang/json/npc_class_from_json.py msgid "I'm looking for new drink recipes." -msgstr "我想学点新饮料配方。" +msgstr "我在四处寻找新饮料配方。" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Apis" @@ -81264,6 +82204,10 @@ msgstr "蜜蜂人" msgid "I'm bugged - I shouldn't talk to you." msgstr "我出现了Bug,我不该跟你说话的。" +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "乞丐" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -81491,13 +82435,13 @@ msgstr "呃啊——我在找奇美拉诱变剂…这个世界已经不适合人 #: lang/json/npc_class_from_json.py msgid "Raptor Mutant" -msgstr "猛禽变种人" +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 "我在找猛禽诱变剂…这个世界已经不适合人类了,因此我也不打算做人了。" +msgstr "我在找迅猛龙诱变剂…这个世界已经不适合人类了,因此我也不打算做人了。" #: lang/json/npc_from_json.py msgid "Tester" @@ -81583,6 +82527,30 @@ msgstr "强盗" msgid "Psycho" msgstr "精神病人" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "乞丐" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "丽娜 桑德" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "迪诺 戴夫" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "罗美珍" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "布兰顿 贾德尔" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "雄介 泰勒" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "强盗" @@ -82758,8 +83726,36 @@ msgid "trailhead" msgstr "林间小径起点" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "废弃快餐店" +msgid "veterinarian clinic" +msgstr "兽医所" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "博物馆" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "停尸间" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "自助洗衣店" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "珠宝店" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "双层汽车旅馆" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "办公大楼" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "家装店" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -82785,6 +83781,10 @@ msgstr "保龄球馆" msgid "boxing gym" msgstr "拳击馆" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "健身房" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "体育馆" @@ -82798,37 +83798,13 @@ msgid "gardening supply" msgstr "园艺店" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "健身房" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "家装店" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "珠宝店" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "自助洗衣店" +msgid "abandoned drive-through" +msgstr "废弃快餐店" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "无名" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "停尸间" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "博物馆" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "兽医所" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "破产的披萨店" @@ -83066,14 +84042,6 @@ msgstr "学校" msgid "projects" msgstr "公寓项目" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "双层汽车旅馆" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "办公大楼" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "机械师车库" @@ -83190,6 +84158,34 @@ msgstr "轮胎店" msgid "regional dump" msgstr "地区垃圾场" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "流浪汉" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "一桩事故让你流浪,没有家人,没有朋友。但是你所知道的世界已经过去了,也许你独自生存的经历在这个新的世界中可能会很有用。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "女流浪汉" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "一桩事故让你流浪,没有家人,没有朋友。但是你所知道的世界已经过去了,也许你独自生存的经历在这个新的世界中可能会很有用。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -87454,6 +88450,112 @@ msgid "" "commercial robots, but you never thought your survival might depend on it." msgstr "在末日来临之前,你的业余爱好是非法将民用机器人重新编程并改装,但你从来没有想过你的生存可能依赖于你的这项爱好。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "自动化工程师" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "你是一家机器人制造商的低级工程师。管理一直告诉你,把喷火器安装在飞锯无人机上\"不必要\"而且\"太危险\"了,但现在再没有谁能阻止你这么干了。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "自动化工程师" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "你是一家机器人制造商的低级工程师。管理一直告诉你,把喷火器安装在飞锯无人机上\"不必要\"而且\"太危险\"了,但现在再没有谁能阻止你这么干了。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "机械奇才" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "你自打学会用电烙铁起,就一直在制造机器人,现在你可不打算让世界末日阻止你继续干下去。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "机械奇才" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "你自打学会用电烙铁起,就一直在制造机器人,现在你可不打算让世界末日阻止你继续干下去。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "机器人养子" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "当暴乱发生时,一只军用机器人不知道从什么地方冒了出来并救下了你。也许它认为你是个重要人物,谁知道呢。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "机器人养女" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "当暴乱发生时,一只军用机器人不知道从什么地方冒了出来并救下了你。也许它认为你是个重要人物,谁知道呢。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "机械化猎手" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "你雇了一名本地黑客给你造了一只机器人猎狗。它几乎和真狗一样好,但它可不想仅仅被你当作宠物对待。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "机械化猎手" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "你雇了一名本地黑客给你造了一只机器人猎狗。它几乎和真狗一样好,但它可不想仅仅被你当作宠物对待。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -90356,7 +91458,7 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "火焰很容易四处蔓延,特别是在可燃物很多的情况下。" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." +msgid "Even without electricity, ovens can be useful fire containers." msgstr "即使没有电源,烤箱也能作为可靠的火焰容器使用。" #: lang/json/snippet_from_json.py @@ -90380,22 +91482,20 @@ msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "冰冷的食物保质期更长。找个凉快的地下室或者建个储藏地窖。" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." -msgstr "你死了?这也是游戏体验的一部分。利用所学到的经验再试一次。" +msgid "Dying is part of the experience. Try again with what you've learned." +msgstr "死亡也是游戏体验的一部分。利用所学到的经验再试一次。" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." +msgid "Frozen food? Put it by a fire or heat it up in a pan." msgstr "食物冻上了?把它放在火堆旁或者用锅加热一下。" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." -msgstr "地下洞穴或地下室总是凉爽的,但从不结冰。" +msgid "Underground spaces like basements or caves stay cool year-round." +msgstr "洞穴或地下室之类的地下空间一年到头都很凉爽,但从不结冰。" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "害怕野生动物?大喊大叫直到它离开你。但要小心被声音引来的怪物。" @@ -90404,8 +91504,8 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "野生动物和丧尸不是朋友。你可以利用这点。" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "门不是唯一的入口。或出口,如果用词很重要的话。" +msgid "A door is not the only way in or out of most places." +msgstr "门不是唯一的入口,或出口,如果用词很重要的话。" #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -90420,17 +91520,16 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "许多物品都有特殊的功能。试着找出它们的用途。" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." -msgstr "危险的地方并不总是意味着有好的战利品。动动脑子。" +msgid "Just because a place is dangerous doesn't mean it's worth looting." +msgstr "仅仅因为一个地方很危险并不意味着值得去那里搜刮。" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." -msgstr "怎么进去并不是问题。想想怎么出来,不要被逼到绝境。" +msgid "If you're breaking in, be sure you also know how to get back out." +msgstr "如果你准备破门而入,一定要知道怎么出去。" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "通常有不止一种方式来达成目标。试着跳出框框思考。" #: lang/json/snippet_from_json.py @@ -90461,13 +91560,14 @@ msgstr "没什么能在120mph的汽车前活下来。你能吗?" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." -msgstr "如果你不想让腐烂的食物里长出一只巨型蟑螂的话,把它们处理掉。" +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." +msgstr "腐烂的食物通常会吸引虫子,而且最近虫子们有点大……" #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." -msgstr "各类药品可以帮助你在紧要关头活下来,但要小心过量使用和上瘾。" +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." +msgstr "毒品能够暂时提升你的属性,但要小心上瘾或过量。" #: lang/json/snippet_from_json.py msgid "" @@ -90476,8 +91576,7 @@ msgid "" msgstr "合理使用地图。优先去那些能让你得到所需物品的地点。" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "伤口会随着时间的推移而愈合。包扎和消毒可以加快这一过程。" #: lang/json/snippet_from_json.py @@ -90500,15 +91599,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "大自然能提供一切。如果你知道方法,你能够完全依靠土地生存。" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" -msgstr "从不安全的地方获得的生肉和生水也不会健康的,不是吗?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" +msgstr "从不安全的地方获得的生肉和生水也不会安全,不是吗?" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "当你能改装一辆载具的时候,为什么还要为去邻近城镇走上一整天呢?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "为什么还要走路,当你明明可以开车时?或是开坦克时?" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "大灾难之前的食物不会永远保持新鲜。记住这一点。" #: lang/json/snippet_from_json.py @@ -90561,7 +91660,7 @@ msgstr "枯燥的日常工作会最终害死你。保持警惕!不要放松。 #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "绝大部分药物不会立即生效,不要因为药物没起作用就尝试吞下整瓶药。" @@ -90595,10 +91694,8 @@ msgid "" msgstr "材料用光了?破坏或者拆解其它物品,说不定可以得到有趣的部件。" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." -msgstr "食品的保质期不是固定的。存储条件对其有着很大影响,特别是温度。" +msgid "Temperature affects the shelf life of foods. The colder, the better." +msgstr "温度影响食物的保质期。越低越久。" #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." @@ -90621,7 +91718,7 @@ msgstr "“不过是点擦伤”?还是包扎消毒一下,这样可以加速 #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "四肢断掉,行动困难?医院里面可能有下一代科技,能让你重获新生。" @@ -90638,10 +91735,8 @@ msgid "" msgstr "可别刚脱下裤子就被抓了。反正再也不会有卫生纸了。" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." -msgstr "通过困难地形时移动速度会降低,好好想想怎么利用下吧。" +msgid "Terrain that slows you down will also slow down your enemies." +msgstr "减慢你速度的地形也会减慢你的敌人的速度。" #: lang/json/snippet_from_json.py msgid "" @@ -90656,17 +91751,78 @@ msgid "" msgstr "多多尝试不同的角色、职业和场景可以为你的游戏增添乐趣。角色扮演!" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "多救下一名幸存者就多赢得一个朋友。当然大多数时候……" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "想知道怎么玩游戏?查看快捷键绑定菜单并了解各种按键诀窍。" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "为不可预料的事情做好准备,即便会是西班牙异端裁判所。" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "你可以在窥查拐角的时候扔东西。最适合用来干掉炮塔。" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "没有人告诉过自动售货机世界末日来了。记得多存点现金卡!" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "在那些绝密的地下实验室里肯定有一些很酷的东西,对吧?" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "在水壶或水桶上放一个集雨器,以便随着时间的推移收集雨水。" + +#: 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 "一个城市的丧尸虽然很多,但数量有限。你可以(最终)把它们全部杀光。" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "你*只*拿走了那些没有被钉牢的物品吗?回去拿钉子!" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "您可以在暂停菜单中制定自己的\"安全模式规则\"。" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "世界上最好的枪如果没有弹药也不过是根烧火棍。" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "大多数丧尸都只会穿过载具而不会绕着走。逃跑的时候要记住这一点。" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "如果你被一条断腿困住了,可以读一些书来打发时间。" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "解剖某些特殊尸体可以获得生化插件。" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "别太贪心了。如果你死了,那战利品毫不重要。" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -95472,6 +96628,67 @@ msgstr "水……附近有绿洲吗?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "你要知道,喝水不足比起休息不足更加可以杀死人。" +#: 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 "当然可以,我看到你身上带着啤酒!让我们开一瓶冰啤酒,坐下来聊一聊,,怎么样?" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "哦,当然,不如给我一瓶你带着的啤酒怎么样?怎么样,成交?" + +#: 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 "是的,不过你得先分我一瓶你囤的那些啤酒,然后我们接着聊!难道你只是在说笑话吗,怎么样,?" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "哦,当然可以,,正好我也该放松一下了,你最近怎么样?" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "哦,可以,,近况如何啊?" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "当然,我们聊聊吧!你还好吧?" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "为什么不呢?你还好吗?" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "我不介意,怎么了?" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "我可以抽出几分钟时间,怎么了?" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "当然,,你还好吗?" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "好吧,你有什么要说的吗?" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "我随时奉陪!但是为什么呢,你还好吗?" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "好吧,,我们是应该互相了解一下,你过得怎样?" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "当然可以,我奉陪。你还好吗? " + #: lang/json/snippet_from_json.py msgid "darn" msgstr "该死的" @@ -95936,7 +97153,7 @@ msgstr "老兄" msgid "fella" msgstr "小伙子" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "你" @@ -97012,6 +98229,18 @@ msgstr "我们这是在里诺城吗?因为我要看着你死!(注:Folsom msgid "You're going to pay for that, !" msgstr "你要为此付出代价,!" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "安静点,听见说话声了吗!" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "你听到有人说话了吗?" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "谁说了话?" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "那声音听起来可不妙。" @@ -97028,6 +98257,10 @@ msgstr "你听到了吗?" msgid "What's that noise?" msgstr "什么声音?" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "那边有什么东西吗?" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "我听见什么东西在动,就像是" @@ -97037,16 +98270,16 @@ msgid "What's that sound? I heard" msgstr "那是什么声音?我听见" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" -msgstr "谁在那里?我听见" +msgid "What's there? I heard" +msgstr "那是什么声音?我听见" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" msgstr "你听到了吗?听上去像是" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" -msgstr "是谁发出的声音?我能听见" +msgid "What is making that sound? I can hear the" +msgstr "是什么发出的声音?我能听见" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." @@ -97181,6 +98414,10 @@ msgstr "行尸走肉" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "不死之人" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "活死人" @@ -97193,10 +98430,6 @@ msgstr "丧尸" msgid "Z's" msgstr "丧尸们" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "死亡的" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -97541,7 +98774,7 @@ msgstr " 。被变异黄蜂扎烂了。" #: lang/json/snippet_from_json.py msgid "LIVING INSIDE!" -msgstr "我在这里面活着!" +msgstr "内有活人!" #: lang/json/snippet_from_json.py msgid "Send Help." @@ -100257,1833 +101490,516 @@ msgid "Clothing Store" msgstr "服装店" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" -"我 也不能确定了。我 不知道发生了什么事情。我只是在尽我所能活下去。世界末日了,而我却跌跌撞撞而没有死,然后就遇见你了。" +msgid "That sure is a shiny badge you got there!" +msgstr "你那闪亮亮的警徽可真漂亮啊!" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "哈。" +msgid "Heh, you look important." +msgstr "嗨,你看起来像个大人物。" #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" -"在 之前?谁还在乎呢?现在是一个新世界了,虽然是个很 " -"世界。但这个世界我们所拥有的世界,所以我们不要停留在过去,当我们应该好好利用现在剩下的那点东西。" +msgid "I'm actually new." +msgstr "我是新来的。" #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "我可以尊重这一点。" +msgid "What are you doing here?" +msgstr "你在这里干什么?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" -"老实说……我不记得了。我只能记得世界变成现在这个样子之前生活的一些模糊细节,但关于 " -"本身呢?全都是一团浆糊。我不知道我是怎么走到现在这一步的,也不知道这一切是怎么发生的。我想一定是我遇到些特别糟糕的事。或者我的头被狠狠揍了一顿。或者两者兼而有之。大概这些都发生过吧。" +msgid "Heard anything about the outside world?" +msgstr "有外界的消息吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "我的故事。哈,没什么特别的。我曾有很多人,但他们已经都和主在一起了。我不明白祂为什么不把我也带走,但我想时机合适的时候一切都会水落石出的。" +msgid "Is there any way I can join your group?" +msgstr "我可以加入你的团队吗?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "你是说在宗教意义上,还是……?" +msgid "What's with your ears?" +msgstr "你的耳朵怎么了?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Anything I can help with?" +msgstr "我能帮上什么忙?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "好的,再见。" #: lang/json/talk_topic_from_json.py msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" -"当然!很清楚,不是吗?那个……当末日来临,\"被提\"会来。而我却仍然在这里,我仍然不明白为什么,但我会把耶稣留在我的心中,经历即将到来的苦难。当一切过去之后,我相信祂会欢迎我进入天国。或者……或者其他类似的东西。虽然不像我曾经所想的那样,但预言就是这样的。" - -#: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" -msgstr "如果你错了呢?" +"嗨,那咱俩一个样啊。好吧,差不多一样。不过按我说,这会儿我们可没法开门迎客了。(悄声道)已经挤满了。地下室里吵吵嚷嚷的跟菜市场一样,真让人受不了。看到一进门那个商人了吗,这儿他说了算。" #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "那你会怎么做?" +msgid "Sucks..." +msgstr "那可麻烦了……" #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" -"什么?你怎么能说这种话?我真不敢相信你看着眼前发生的这一切,除了末日审判日之外的没有任何可能。死者已经复苏,地狱大门已经打开,魔鬼的野兽在陆上行走,正义的人都被提进了主的王国。你还想要更多的证据?" +"你瞧,楼下有个家伙搞来了一台运作良好的气动加农炮。那玩意能把钢筋像……像加农炮一样射出去,而且还不出一丝声。低成本高效率,可不是吗?而且能用钢筋造各种自制武器怕是我列也列不完啊。不过要说起这最大的用途啊,那还得是继续建造各种防御工事。用钢筋造出来的防御工事,栅栏啊墙啊啥的,就没有啥怪物能够攻破的。" #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "那你会怎么做?" +msgid "Well, then..." +msgstr "好吧……" #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." -msgstr "" -"我会坚持所信,一直祷告,击倒我所看见的一切地狱使者。这是我们剩下所能做的少数几件事,不是吗?我想也许我们太过懦弱,只能留下来继承这个人世。但我不太看好我们的胜算。" +"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 "至少一点都不乐观。我们本来有个女孩带着无线电台上了路的,但现在她和她的电台都没能回来。完蛋了。" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" -"和其他人一样。我背叛了上帝,现在我要付出代价。\"被提\"来了,而我被留下了。所以现在,我想我得留在这个人间地狱里四处游荡。我真希望当初我在主日学校里上能多听点课。" +msgid "Nothing optimistic?" +msgstr "一点都不乐观吗?" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" -"好吧,我知道这听起来很疯狂,但我就早知道会发生今天这种事。就像,在那之前。你甚至可以问问我的心理医生,但是,我想她现在已经死了。在世界末日来临前一周我告诉过她关于我做的梦。真的!" +"大多数避难营地在这会儿都已经陷落了。城市早就被围攻过了,森林里到处是发光的眼睛和丧尸。外面发生的都是各种让人发狂的事,所有收到的无线电通信都听上去像是人们在记录他们生命最后的可怕时刻。" #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" -msgstr "你的梦是什么样的?" +msgid "I feel bad for asking." +msgstr "我不该问这些。" #: lang/json/talk_topic_from_json.py msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." -msgstr "好吧,第一个梦我连续做了三周,每天晚上都是同一个。我梦见我拿着一根棍子跑过树林,与巨大的蜘蛛搏斗。真的!每天晚上。" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." +msgstr "" +"我不知道啊。不过要按我说,如果你能帮上忙的话,应该能成。但最近的风声很模糊,关键还是得看你问谁。如果我不是在卖东西的话,怕不是早被那个商人给赶出去了。不过……似乎也有例外的家伙。" #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "好吧,不过这似乎没什么奇怪的。" +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." +msgstr "我打赌就和你得到你的那个一样。别声张,这里的有些人看不起像我们这样的人。" #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "哇,太疯狂了,我真不敢相信你真的梦见了 。" +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "嘘,小点声。这里有些人不欢迎……变种人。这是个意外,别问了。" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"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 "" -"好吧,不过,这只是个开始。那么,在它真实发生的前一周,在那个蜘蛛的梦之后,我半夜会起床去撒尿,然后才躺回床上,因为我有点害怕,对吧?然后我会做另一个梦,就像,我的老板死了,然后又复活了!几天后我在工作时,我老板的丈夫来我们的办公室,在那里他心脏病发作了,第二天我听说他真的就死而复活了!就和我的梦一个样,只不过是一个不同的人!" +msgid "Sorry to ask" +msgstr "真抱歉不该问你" #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "这可有点奇怪了。" +msgid "You're disgusting." +msgstr "你真恶心!" #: lang/json/talk_topic_from_json.py msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and I heard the next " -"day that he'd come back from the dead! Just like in my dream, only it was a" -" different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" -"可不是吗?还有呢!那么,在它真实发生的前一周,在那个蜘蛛的梦之后,我半夜会起床去撒尿,然后才躺回床上,因为我有点害怕,对吧?然后我会做另一个梦,就像,我的老板死了,然后又复活了!几天后我在工作时,我老板的丈夫来我们的办公室,在那里他心脏病发作了,第二天我听说他真的就死而复活了!就和我的梦一个样,只不过是一个不同的人!" +"我放火把房子烧了,然后把材料卖给自由商会。别笑,我可是认真的。如果你在城郊看到烧毁的房屋残骸,或者路边堆着出售的钢筋,那说不定就是我干的。作为报酬,商会把我照顾得不错,至少我认为还成。要的话,我还可以卖几个燃烧瓶给你。" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." -msgstr "" -"可不是吗?总之,我还是会做一些奇怪的梦,但不再是关于未来的了。就像,自从世界末日以来,我做了很多可怕的梦。就像,每隔几个晚上,我就会梦到地球周围有一片布满黑色星星的空间,有那么一瞬间,它们都同时盯着地球,就像数十亿个小小的黑色眼球。然后它们眨了眨眼,望向其他地方,然后在我的梦中,地球和其他星球一样,也是一颗黑色星星,我仍然被困在它上面,孤零零的,令人毛骨悚然。这是最糟糕的一个。还有其他几个。" +msgid "I'll buy." +msgstr "[交易]我要了。" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "和我多讲讲你那些奇怪的梦。" +msgid "Who needs rebar?" +msgstr "谁还会需要钢筋啊?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" -"好吧,嗯,有时候我梦见自己已经是个丧尸,只是没意识到罢了。我只是对自己而言表现正常,在我眼里的丧尸其实是正常人,而我眼里的正常人其实是丧尸。当我醒来时,我知道这是假的,因为如果它是真的,应该会有更多的正常人才对。因为他们实际上是丧尸。现在每个人都是丧尸了。" +msgid "As if you're one to talk. Screw You." +msgstr "好像你是能说话的人一样,滚。" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "我想我们现在都会有这样的梦了。" +msgid "Screw You!" +msgstr "去你妈的!" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" -"可能吧。有时候,我也梦见自己就像一颗尘埃,漂浮在一个巨大而漠不关心的银河之中。那个梦让我很想念我的大麻贩子,下流的丹,要是他没被那只巨大的螃蟹怪物吃掉就好了。" +msgid "Another survivor! We should travel together." +msgstr "[组队]另一名幸存者!让我们组队行动吧。" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "可怜的家伙。" +msgid "What are you doing?" +msgstr "[询问]你在做些什么?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "谢谢你告诉我这一切。" +msgid "Care to trade?" +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 "我好不容易逃到了那些 紧急避难所中的一个,但几乎比我留在原地还要更糟糕。然后又从那里逃了出来,从那以后就一直在四处逃亡。" +msgid "&Put away weapon." +msgstr "&收起武器。" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "你逃出来之后怎么活下来的?" +msgid "&Drop weapon." +msgstr "&放下武器。" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "我花了很多时间在森林里搜寻大黄和一些能食用的野菜,直到我鼓起勇气开始翻找那些死去怪物的尸体。我想我那时候是够孤注一掷的。" +msgid "Don't worry, I'm not going to hurt you" +msgstr "别担心,我不打算伤害你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" -"和大多数在暴乱中没有直接被杀的人一样。我去了那些被称为\"紧急避难所\"的 " -"死亡陷阱。事实上,我和其他三人一起在那里住了一段时间。其中有个我猜看过很多电影的家伙负责掌控局面,因为他看上去似乎真的知道外面发生了什么。剧透警报:他并" -" 不知道。" +msgid "Drop your weapon!" +msgstr "把你的武器放下!" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "你原来的同伴呢?" +msgid "Get out of here or I'll kill you." +msgstr "给老子滚开,否则我杀了你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" -"当我们无畏的领导人决定把另一名不幸被咬伤的同伴强行干掉的时候,事情就变得糟糕了。她的丈夫对此特别强烈反对,我也对他没有什么信心;在彼时彼刻,他已经犯过很多次错了。他开始自己暗中盘算并动手杀了她。然后,她的丈夫决定礼尚往来,杀死了那个白痴。然后她重新复活成丧尸,我不得不又杀了她一次,还砸碎了我们的前领袖。不幸的是在这场纷争中,她给了她丈夫狠狠咬了一口,而他甚至无法鼓起勇气还击她。我他妈的并不是怪他。我们最终一起逃出去了,但这对他来说打击太大了,他的魂显然已经不在身体里面了……他被咬的伤口感染了,但最终另一只" -" 杀了他。然后我孤身一人。" +msgid "Hey there, ." +msgstr "嘿,。" -#: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "你觉得发生了什么?你在附近看到那些家伙了吗?" +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "再见。" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" -"我没什么特别的,我不知道为什么我能活到现在。我和其他几个人一起被疏散了,但是我们到得太晚了,没赶上第二趟去联邦应急管理局营地的车。然后我们就被死人袭击了……我是那里唯一一个成功逃离并活下来的人。这一路上我都没敢回头看过一眼。" +msgid "Hello there." +msgstr "你好。" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" -"他们本来准备把我和一群被疏散者们送到一个难民中心,但我们的大巴被你所能见过的体型最大的丧尸给砸烂了。它忙着追赶其他乘客,所以我做了所有人都会做的一件事,那就是他妈的赶紧跑得越远越好。" +msgid "Okay, no sudden movements..." +msgstr "好吧,别乱动……" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" -"我的避难所里被那些蜜蜂袭击了,它们体型就像狗一样大。我用一块2x4制式木料干掉了几只,但很快我就意识到要不赶紧逃到山里,要不就得给它们叮成猪头。接下来的事你都知道了。" +msgid "Keep your distance!" +msgstr "离我远点!" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "巨型蜜蜂?多和我讲讲吧。" +msgid "Calm down. I'm not going to hurt you." +msgstr "冷静点,我不会伤害你。" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "但蜜蜂通常并不好斗啊……" +msgid "Screw you, no." +msgstr "去你妈的!" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" -"是的,我肯定你见过它们,它们到处都是。就像那些老科幻电影里的东西一样。避难所里的其他人被蜇伤了,可不是开玩笑的。不过,我并没有呆在那里看看会不会有后遗症。我毫不惭愧地承认,我像只" -" 鸡一样逃跑了。" +msgid "&Put hands up." +msgstr "&举起双手。" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "但蜜蜂通常不是并不好斗啊……你是说黄蜂吗?" +msgid "*drops his weapon." +msgstr "*放下他的武器。" #: 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 "好吧,请你原谅我没能停下来 问问它们是哪种杀人的虫子。" +msgid "*drops_her_weapon." +msgstr "*放下她的武器。" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "对不起。你能告诉我更多关于它们的信息吗?" +msgid "Now get out of here" +msgstr "现在赶紧滚" #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "好吧。很抱歉。" +msgid "Now get out of here, before I kill you." +msgstr "在我杀了你之前,从这里滚开。" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" -"嗯,我那会正在家,手机突然开始一直响警报,告诉我去一个紧急避难所。所以我就去了紧急避难所。然后紧急避难所渐渐变得拥挤起来,人们等着被送到难民中心,但是大巴却一直没有来。你一定已经知道接下来会发生什么了。一开始是恐慌,然后变成打斗。我没有留下来看看接下来会发生什么,我带着我能从锁柜里抢到的工具逃进树林里。几天后我回去了,但那地方被完全遗弃了。不知道那些人最后怎么样了。" +msgid "Okay, I'm going." +msgstr "好好,我现在就走。" #: 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 "这可是件难事。长话短说,我被疏散到一个联邦应急管理局营地,而理由是为了我所谓的安全,但幸运的是我逃了出来。" +msgid "About that job..." +msgstr "关于那个任务……" #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "跟我说说关于联邦应急管理局营地的事。" +msgid "About one of those jobs..." +msgstr "关于其中的一个任务……" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "你是怎么逃出来的?" +msgid "What's the matter?" +msgstr "你怎么了?" #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" -"太可怕了。我们被一辆改装过的校车带到那里,一共大约有三十人。你可能已经猜到问题所在了。车上有几个人受伤了,某个看过太多B级电影的笨蛋试图坚持说,任何\"被咬伤\"的人都会\"转变\"。他妈的白痴,对吧?我已经被咬过十几次了,而最糟糕的一次不过是得了一次严重感染而已。" +msgid "I don't care." +msgstr "我不在乎。" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "之后发生了什么?" +msgid "I see." +msgstr "我懂了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" -"那家伙开始闹事。人们已经很惊慌失措了。有个带着武装的家伙负责维护车上的秩序,他看着像个警察,但实际上他只是不过是被上头塞了一把枪的 " -"孩子。他试着平息事态,我想也许确实起了一点用,但\"杀死被感染者\"的那伙人还是被 " -"吓坏了,很明显,他们准备好一旦那个手臂上受伤的老奶奶开始口吐白沫时,就会跳出来大干一场。当我们到营地的时候他们又开始闹事了。那可对他们来说不太好。几个全副武装的士兵把他们拖走了,而我再也没见过他们。" +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "哦,好的。" #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" -"那地方很混乱。我只在那待了几个小时。他们有一台巨大的挖土机在警戒区里来回跑,挖了一个巨大的坑,而他们不让我们靠近。嗯,我设法溜了进去,看到他们在坑里倾倒了一堆又一堆的死人尸体,甚至当它们苏醒过来想爬出来的时候,也把泥土倒在他们身上。即便是在那之后我又遇见过许许多多操蛋的事情,它仍然时时刻刻萦绕在我的心头。当时我就知道我必须马上离开。幸运的是,第二天早上,我们被一只巨大的恐怖怪兽袭击,之后我就再也没见过那种恐怖怪兽了。当警卫们忙着应付怪兽的时候,我带上了我在前晚偷偷储藏下的补给品,然后我就他妈的离开了那里。还有几个人想和我一起从那个鬼地方逃出来,但据我所知,我是唯一的幸运儿。" +msgid "Never mind, I'm not interested." +msgstr "[拒绝]算了,我没兴趣。" + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "算了。" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "那是下一次的故事了。我不太喜欢回想那件事。" +msgid "I'll do it!" +msgstr "[确认]我去做吧!" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "对不起。跟我说说关于联邦应急管理局营地的事。" +msgid "Not interested." +msgstr "[取消]不感兴趣。" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "很抱歉不该问你。" +msgid "Not a problem." +msgstr "没问题,然后呢?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "很抱歉不该问你。" +msgid "Got any advice?" +msgstr "能给点建议吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" -"当一切都失控的时候我很晚才被疏散。在城里被困了几天,躲在地下室里吃女童子军饼干和喝温过的麦根沙士。最后,我设法在 不被 " -"抓住的情况下逃了出来。我在一家废弃的购物中心里呆了几天,但我需要食物,所以我又进了树林里自食其力。这活计我做得不太好,所以很高兴你及时出现了。" +msgid "Can you share some equipment?" +msgstr "能给点装备吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "当世界末日到来的时候我正患流感在家休养,当我身体恢复足够时逃进了一间商店里搜寻食品杂货……从那以后我就一直在跑路。" +msgid "I'll be back soon!" +msgstr "我很快就回来!" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "别这样,话别说一半啊。" +msgid "Sounds good, thanks." +msgstr "明白了,谢谢。" #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" -"好吧,刚开始的几天我就有点迷迷糊糊。我知道外面有场风暴,但我以为那是发烧而在做疯狂的梦之类的事情。老实说,我可能应该早点去医院看病,但我想如果真的去了医院那我现在应该已经是个死人了。我不知道什么是梦,什么是真的大灾变。我记得去冰箱找点喝的,才注意到冰箱灯早灭了,水也是温的,我想那会是在我发烧之前吧。当我喝光最后一罐鸡汤的时候,我还是昏昏欲睡,所以我花了好一段时间才真正意识到我所在的大楼是多么黑暗又死气沉沉。" +msgid "Sounds good. Bye!" +msgstr "我懂了,再见!" #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "你出去的时候发生了什么?" +msgid "I'm sorry." +msgstr "[重复]抱歉,我再考虑一下?" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" -"你可能还记得城市以前是什么样的。我想那会大概是大灾变后第四天。我一走出家门,就立马意识到发生了什么事,或者至少说意识到了我不知道发生了什么事。我看到一群暴徒正在砸一辆车,然后我注意到其中一个人正在猛击一个女人的头。我取消了去杂货店的购物计划,在他们看到我之前就跑回了我的公寓,并尽可能地躲在那里。随着死者的数量开始超过活人,一切变得相对平静起来,所以我开始从我的邻居们那里搜刮一切物品,必要的时候再重新杀死他们一次。最后," -" 在我的大楼里泛滥成灾,我不得不翻窗逃出来,骑着一辆旧摩托往深山里走。" +msgid "Whatever. Bye." +msgstr "[取消]无所谓,再见!" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "谢谢你告诉我这一切。" +msgid "Well, um, sorry." +msgstr "呃,嗯……不好意思。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "谢谢你告诉我这一切。" +msgid "I'm sorry. I did what I could." +msgstr "对不起,我已经尽力了。" #: 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 "在 之前没什么特别的。当死人开始走路的时候,我做好充分准备,并开始把它们重新放倒。" +msgid "Sure, here you go!" +msgstr "当然, 给你!" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "进展如何?" +msgid "Thank you." +msgstr "谢谢你。" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "酷。" +msgid "Thanks, bye." +msgstr "谢了,再见。" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "酷。" +msgid "Well, I guess it's just us." +msgstr "呵呵,我估计就我们两个活人了。" #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" -"差点被杀了。对付一只 " -"很简单,但是对付十只就有点多了,而对付一百只就是一个死亡陷阱。我陷得太深了,差一点没能把肠子留在肚子里并溜出来。在一家老汽车旅馆里固守了一段时间,慢慢养伤,想我下一步要做什么。就在那时我想明白了。" +msgid "At least we've got shelter." +msgstr "好歹我们还有个避难所可以呆。" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" -msgstr "想明白了什么?" +msgid "What should we do now?" +msgstr "[询问]我们现在该做什么?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "别放在心上。" +msgid "Any tips?" +msgstr "[询问]有什么建议吗?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "[任务]我能为你做些什么?" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " -msgstr "别放在心上。" +msgid "Want to travel with me?" +msgstr "[组队]与我同行吧,如何?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "[交易]做些交易吧,怎样?" #: lang/json/talk_topic_from_json.py -msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." -msgstr "" -"就是它了。我是为此而生的。在大街上,砸碎怪物的头。祈祷我能逃出去?我从没那样想过。活着。很重要。所以,自从我把自己困在那一次之后,我像疯了一样,一次次又回去干它们。从那以后可能杀了一千多只丧尸,我还是毫不厌倦。" +msgid "I can't leave the shelter without equipment." +msgstr "[索取]一点装备都没的话,我可不敢离开这个避难所。" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "很高兴你找到了你的使命。" +msgid "Relax and chat with me for a while..." +msgstr "放松点,我们聊一聊吧……" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " -msgstr "很高兴你找到了你的使命。" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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 "" -"哦,你知道的。有过一份工作和生活,诸如此类的废话,然后每个人都死了。呜呼。不过,我得和你实话实说:老实说,我觉得我更喜欢这样。每天为生存而战?我从来没有像现在这样觉得自己更像个活人。我杀了几百个混蛋。迟早它们中的一个会干掉我,但我倒下时我知道我做的是一件真正重要的事。" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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 "" -"李看,我根本不系这个地方滴人。当这一切发生的时候,我刚从南方开车来看我滴儿几。我本来住在一家汽车旅馆,一对军车路过,告诉我们要撤离到联邦应急管理局营地里去。" +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" +msgstr "是的,炎炎夏日让我很难受,让我们休息一下,你最近如何啊, ?" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "跟我说说你儿子吧。" +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" +msgstr "好吧,也许这能让我不再这鬼天气里冻僵了,怎么了?" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "那,你去了联邦应急管理局的一个营地?" +msgid "Well, I'm feeling pretty sick... are you doing OK though?" +msgstr "我感觉很难受……你还好吗?" #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" -"他住在加拿大北部,一个鸟不拉屎的地方,与他那疯框滴妻子和我三个孙子住在一起。他是一家石油天然气公司滴环境工程师。她有点像个嬉皮士。不过,我爱他们两个人,就我所知,他们都从这个糟糕烂摊子里逃出来了,就在荒郊野外。我猜他们会以为我死了,所以他们会避开这个鬼地方,这样最好。" +"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 "现在我们可以稍微歇一会,我刚刚在想,这得有一个多月了吧……发生了这多事,你是怎么应付这一切的?" #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" -msgstr "你刚刚说你去过什么?" +msgid "Oh you know, not bad, not bad..." +msgstr "哦,你知道的,勉强还行……" #: lang/json/talk_topic_from_json.py -msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" -"当然不会去。如果我让一个穿着尺寸过大制服滴细佬告诉我该怎么做,我就完蛋了。我把我的悍马装好,准备出发越野,我带了很多很多汽油,我甚至在边境检查所允许范围内尽可能多带了几把枪。我不知道我为什么该逃,而我也没有逃。" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "不知道,或许我们应该寻找其他幸存者和补给。" #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "那你去过哪了?" +msgid "Maybe we should start boarding up this place." +msgstr "也许我们该开始加固这个地方。" #: lang/json/talk_topic_from_json.py msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" -"起初,我只是一直往北走,但最后我遇到了一道规模巨大滴军事封锁线。他们甚至有像电视上那种巨型步行机器人。我开始想上去看看,还没等我弄明白,他们就开火了!我差点就死了,但我还反应还很快。我急转弯掉头,加速离开。不过悍马受到了狠狠打击,我是直到发现它在高速路上漏油时才发现这点。又往前开了几英里,然后被困在一处无人区。我安顿下来然后开始四处游荡。我想我还是在向北走,只是以一种相当迂回滴方式,懂吗?" - -#: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "这个故事可真棒。" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." +msgstr "也许该弄好一辆车了,这对我们从这里迅速撤离是很有帮助的。" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "这个故事可真棒。" +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 "我知道周边有几个农场,我们可以去找一个落脚。它们可以提供充足的食物,而且也不用在城市里和那些家伙打照面。" #: lang/json/talk_topic_from_json.py msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" -"哦,伙计。我早就想说了。风早就吹了这么多年。我在城外建了一座LMOE避难所。而且,当然,还有我的好运:当中国发动攻击,世界末日来临时,我刚好在镇子几里外去参加一个工作会议。" +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." +msgstr "也许我们应该远离那些城市,即便那里有不少有用的东西。" #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "你怎么了?" +msgid "Hmm, okay." +msgstr "嗯嗯,好吧。" #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "你的避难所呢?" +msgid "Not until I get some antibiotics..." +msgstr "直到我得到一些抗生素……" #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" -"我们的会议是在湖边的度假村里举行的。我们都在我们的手机上看到了紧急广播,但我是唯一在字里行间了解其真正含义的人:大规模的生物恐怖主义。我不打算留下来找出我的同事中有谁是卧底探员。虽然我赌五十块钱是小李。不管怎么说,我偷了联络人的皮卡然后直接回我的避难所。" +msgid "You asked me recently; ask again later." +msgstr "你刚才问过我了,我仍在考虑中,一会再问我吧。" #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "你到那里了吗?" +msgid "Why should I travel with you?" +msgstr "为什么我应该跟你同行?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" -"不,我只跑出了两英里。我撞上了一种来自地狱的中国佬的生物武器,一头疯狂尖叫的 " -",它是由各种生物包括人类的手臂、腿和头部组成的怪物。我想我也许杀了它,但可以肯定的是皮卡被我撞坏了。我拿起行李袋就跑了,当然离开前给那家伙额外补了几颗子弹。我希望我再也不要见到那样的东西了。" +msgid "Understood. I'll get those antibiotics." +msgstr "明白了,我会把抗生素拿给你的。" #: 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 "我还没到那里。我每次尝试一次,我都会被 打断。谁知道呢,也许有一天会到那里的。" +msgid "Right, right, I'll ask later." +msgstr "好吧,以后再问你吧。" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "你能再说一遍那个故事吗?" +msgid "I can keep you safe." +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 "哦,伙计。我以为我准备好了。我本来把一切都计划好了。求生背包。上膛的枪。逃生路线图。后院地堡。" +msgid "You can keep me safe." +msgstr "因为你能保护我的安全。" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "听起来好像没成功。" +msgid "We're friends, aren't we?" +msgstr "因为我们是朋友啊,对吧?" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "嘿,我真的很想看那些地图。" +msgid "I'll kill you if you don't." +msgstr "要是不答应我就杀了你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" -"那取决于你对成功的定义。起码我还活着,不是吗?当地狱从天而降,怪物开始攻击城市时,我抓起我的东西,塞进了地堡。我的地面摄像机持续工作了许多天,我可以看到地面上发生的一切。我看着那些家伙大步走过。我还会在噩梦看到它们那种移动身体的方式,就像它们只在那里就会撕裂世界一样。我没有其他能做的事情。我看着它们把警察和军队撕成碎片,看着死者复活,开始和活人战斗。我看着街那头的好心老太太把我邻居家的狗的头扯下来。我看到一个士兵的身体抽搐生长,变成某种带电的绿巨人。我看着这一切在眼前发生。" +msgid "You got it, I'm with you!" +msgstr "如你所愿,我和你一起走!" #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "你为什么离开你的地堡?" +msgid "Awesome!" +msgstr "嗯,那太好了!" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" -"老实说?我本来打算死的。在我看到这些之后,我有点疯了。我以为一切都结束了,我觉得没有必要去反抗它。我想我不会在地面上活过一分钟,但我不能让自己在地堡里结束这一切。我离开地堡,打算让" -" " -"把我干掉,但我能说什么呢?生存本能是一件有趣的事,我杀了地堡外的那些家伙。我想肾上腺素是我才是我真正需要的。它让我从那以后坚持了下来。" +msgid "Okay, let's go!" +msgstr "好的,我们出发吧!" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "谢谢你告诉我。" +msgid "Yeah... I don't think so." +msgstr "噢……我并不这么认为。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "谢谢你告诉我。" +msgid "You're really leaving?" +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 "是的,我有。我愿意需要,嗯,1000美元来说出这个故事。直接从ATM帐户走,现金卡可不行。" +msgid "Yeah, I'm sure. Bye." +msgstr "[确认]是的,再见吧。" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "[$2000] 成交。" +msgid "Nah, I'm just kidding." +msgstr "[取消]我只是在开个玩笑。" -#: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "地图上的东西对我们都有好处。" +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "干什么?" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "不如你 赶紧交出来,在我 生气之前?" +msgid "How much further?" +msgstr "还有多远?" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "很抱歉换了话题。你刚才说了什么?" +msgid "I'd like to lead for a while." +msgstr "让我来带路吧。" #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "好的。就在这里。" +msgid "Step aside. I'm leader now." +msgstr "一边去,现在我是领队!" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +msgstr "一起走吧。" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "谢谢!你刚刚说了什么?" +msgid "Alright. You can lead now." +msgstr "好吧,现在你说了算。" #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "想得美。你想要地图就得付钱。" - -#: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "好吧。你刚才说了什么?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" -"我当时还没反应过来是 " -"。我碰巧离城市很远,远离了最坏的情况。我的车在高速公路上抛锚了,我等拖车等了几个小时。我终于在路边的灌木林里搭了个帐篷野营了;还好,因为一辆由死去的司机,你懂的,驾驶的半挂卡车撞上了我的车,把它变成了一道刹车痕。我为那些大灾变时还呆在城市里的混蛋们感到难过。" - -#: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "你是怎么在野外活下来的?" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "你在头几天看到了什么?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" -"哈,我自己也不完全明白。刚开始在野外的几天是非常艰苦,这是肯定的。我遇到了一场地狱一般的暴雨,雨水让我的皮肤有些被灼伤。我设法躲在一辆汽车下,躺在我的帐篷上。但那该死的东西毁了它,但总比毁了我好。不过,据我所知,我很幸运,那是我遇到过最糟糕的事。我没有碰到那些我所听说的袭击城市的恶魔怪兽,所以我想我很幸运。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" -"除了酸雨,我主要看到人们逃离城市。我试着远离道路,但我也不想在树林里迷路,所以我沿着路边较深处的树林走。我看到各种满载着疏散人员的汽车,大巴,卡车。大多数都直接开走了,但有很多是由于没有汽油和其他原因而停了下来。有些车装满了人和装备,以致于人们踌躇不前。拖延是一项死刑判决,因为死者是沿着道路来解决掉一个个幸存者的。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" -"在它发生时,我正和我的朋友出去钓鱼。我不知道那些日子是怎么排起来的……但我们最早意识到世界末日来临的线索,是当我们被某种毒风吹倒时,里面有一种酸雾,灼伤了我们的眼睛和皮肤。我们不知道该怎么做,所以我们进屋休息,而当我们在屋里休息时,一种奇怪的灰尘落在了外面所有的东西上。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "酸雾过后发生了什么?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" -"到了早晨,湖边的区域被一种粉红色的真菌覆盖了,周围有会行走蘑菇,朝空中射出一团团灰尘。我们不知道发生了什么事,但我们都不想留下找出真相。我们收拾好我们的东西,整理好小船,然后启程前往上游。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "你朋友怎么了?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "我们离开湖边几个小时后,她就生病了。呕吐,抱怨她浑身关节疼。我带她去了河边一家我认识的小商店,希望他们能帮点忙,或者至少知道发生了什么事。" - -#: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "我猜他们也不知道发生了什么。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" -"实际上,店里没人在。不过她的情况很危急,所以我闯了进去。我从商店的收音机里知道了更多关于城镇中的混乱的信息。给我朋友找了些止痛药和晕船药,但当我回到船上的时候……对她来说太晚了。" - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "她死了?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" -"我希望是那样。那样对她而言是宽恕。她发出一声可怕的、令人窒息的尖叫,她的身体被撕碎了。蘑菇从她身上的各个部位破体而出。而我……我逃跑了。现在我希望我当时能让她摆脱痛苦,但现在回去就是自杀。" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "太可怕了。" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "太可怕了。" - -#: 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 "我妻子和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" - -#: 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 "我丈夫和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "听到这消息我很难过。" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "和我说说那些植物怪物。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" -"有的事就是这样,你知道吗?这是世界末日。我不想再多谈这件事了。实话实说,在旧世界里,我从来都不觉得自己有活着的意义。而现在奇怪的是,我觉得我有一个目标了。你懂我吗?" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "是的,我明白。有时我觉得我是在大灾变后不久才真正开始存在的。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "我想我们这些人能活到现在这么久,一定是有原因的,或者别的什么的。我不是说宗教原因,只是……我们活下来了。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" -"哈哈,是啊,我明白你为什么会这么想了。我不是说末日很好。我只是想说,至少现在我知道我每天都在做什么。我宁愿杀掉一百只丧尸来换连上互联网或是找部烂电影晚上一起和……抱歉。我们换个话题吧。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" -"是的,你见过它们吗?它们是一朵 行尸走肉的花,中间有根 " -"大大的刺。它们成群捕猎。它们讨厌丧尸,我们用它们作为掩护来清除尸潮。不幸的是,这些植物有比 " -"更好的追踪猎物的方式。它们表现得似乎有智力……我差点就没能逃出来,只是因为它们被,呃,分散了注意力。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "听到你失去了爱人我很难过。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "只不过是另一个 爱情与失落的故事。我现在没心情讲故事了。" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "认清现实。如果我们一起并肩作战我需要了解你更多。" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "别介意。很抱歉我又提起了它。" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "我认同你的观点,但我不会这么做。到此为止。" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "OK." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "哦,。这和你无关,也和我们无关。" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "好吧,好吧。我曾经有个爱人。我失去了她。" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "好吧,好吧。我曾经有个爱人。我失去了他。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "发生什么了?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"当核弹开始落下,整个世界都变成地狱时,她一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的妻子,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" -" 活着回到了家。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"当核弹开始落下,整个世界都变成地狱时,他一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的丈夫,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" -" 活着回到了家。" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "你一定见过很糟糕的情况。" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "我猜家里的情况也不怎么样。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" -"是的,我真的做到了。我花了两天的时间徒步穿过这座城市,在垃圾箱和类似的地方露营。我通常在夜晚才出发,而且学到了避开军队才是正确方法。他们就是一个 " -" 磁铁,而且他们通常驻扎在怪物会过来的方向。这座城市不少地区起初还比较安静。有几块地方的人已经被疏散或赶走,而这些地方 " -" " -"不会去。后来,很多像我这样的人开始进入这些社区,所以我换了方式,开始跑步穿过被炸过的市区。无论如何,我不得不回家。然而,当我改变方式的时候,战斗已经渐渐停止了,我主要精力花费在躲避丧尸和其他怪物的注意上。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" -"第一个先兆是我必须从城中保存完好的社区穿过被烧毁的社区才能回到家。结果比我想的还要糟糕。就在我家外面有一个警察路障,有一对完全没用的自动炮塔坐在前面,无动于衷地看着丧尸们从眼前蹒跚而过。而且有人已经把它们重新编程杀死任何人,之前它只会朝非法入侵的人类开火。可真是个好时候啊,你总是可以相信政府机关会以最令人惊叹的方式弄砸各种事情。不管怎么说,房子本身就塌了一半,一辆特警队装甲车撞上了它。我想我知道我会看到些什么,但我已经走了这么远,我不会回头。" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "你这一路上一定看到过不少糟糕的事。" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "你进到房子里了吗?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我妻子还活着。她一直躲在地下室里,但被倒塌的地板压住了。当我找到她的时候,她已经失血过多了。我没办法把她弄出来,所以我给了她食物和水,和她呆在一起,牵着她的手,直到她去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我丈夫还活着。他一直躲在地下室里,但被倒塌的地板压住了。当我找到他的时候,他已经失血过多了。我没办法把他弄出来,所以我给了他食物和水,和他呆在一起,牵着他的手,直到他去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"我一个人住,住在城外很远的一间老房子里。我妻子在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去她是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" -"我一个人住,住在城外很远的一间老房子里。我丈夫在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去他是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "接下来发生了什么?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" -"嗯,渐渐累积起来的。一开始是那场酸雨,烧坏了我的一辆拖拉机。如果不是那样的话现在我还会留在那里种地的……嗯,今年是个 " -"年头,我也没有多少值得干的活。然后就是四处爆炸之类,还有头顶上的直升机。我很害怕,拉上窗帘,不停地换频道。然后,突然有一天,没有可以换的频道了。只剩下紧急广播,一遍又一遍。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" -"这是第一件真正把我摇醒的事情。我并没有什么很亲密的朋友,但镇子里有些人我还是有点关心的。我发了很多短信,但我没意识到他们已经好几天没有回复过我了。我上了我的卡车,试图回到镇上。没过多久,我就遇到了高速公路上" -" 出没阻挡道路的连环车祸,从那时起,我就开始把这一切整合在一起了。最后我也没能够回到镇上。不幸的是,我领着 " -"回到了我的农场,不得不离开那里。总有一天会回去把它们都清除掉的。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" -"我住在一个小镇的边缘。除了一间街角商店和加油站外没什么别的。我们听说了城市里发生的糟糕事,但我们没能亲眼看到多少,直到军队冲进镇子里来,试图在那里建立一个营地。他们想把我们都关在镇子里,而我可不想被关起来,所以我和我的狗巴克一起出发了,让他们留在镇子里闻屁去。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" -"巴克和我溜了出去,向东,朝我朋友的农场前行。巴克这个可爱的小傻瓜以为我们只是要去趟长途旅行。我没法在不被军中男孩们顺风听见的情况下开走卡车。于是我们跑进森林里,在一间松枝棚屋里扎营。然后收拾行李继续走。起初,我们沿着高速公路走了一会儿,但看到太多的军用卡车和大巴上挤满了疏散人员,而这时我们才第一次见到了" -" 。" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "巴克现在哪去了?" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "我想我知道接下来会怎样了。" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "我想我知道接下来会怎样了。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" -"我们到了我朋友的农场,但是 军队抢先一步到了那里。一切都被封锁了,门口有一个警察路障。两座 炮塔中的一座…… " -" " -"打中了巴克。我也差点被打中。我设法让我的狗……让他出来了,这……这可不容易,必须用警车门作为盾牌,还必须先杀死一个警察丧尸。然后,当我还在哭泣的时候,巴克复活了。我不得不……。我……我说不出来。你知道的。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "听到巴克的这些事我很难过。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "听到巴克的这些事我很难过。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "哦好吧,那个真是个故事,所以可要准备好啊。这一切都可以追溯到五年前,那时我已经从工厂退休了。日子不好过,但我们挺过来了。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "好吧,请继续。" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "回头想一想,我们还是谈点别的吧。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" -"就在那时,我买了我那辆旧卡车,蓝色的。我们叫她\"老黄狗\"。有一次,我和马迪 " -"刚普斯——或者,像我称呼的那样,老G——正开着\"老黄狗\"去格林伍德山避暑,顺便找一些萤火虫抓抓。" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "萤火虫。明白了。" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "这和我问你的事有什么关系?" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "你最好快点讲,我要走了。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "老G——那是我的一个老朋友马迪 刚普斯——正坐在副驾驶位子上,腿上躺着他那可靠的\"18号霰弹枪\"。那是他的狗的名字,我们都叫它\"18号\"。" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "18号,狗。明白了。" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "我想我看到有些丧尸过来了。我们应该缩短时间。" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "闭嘴,你这个傻老头。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" -"该死,我就快讲到了,别嚼舌头。就像我刚刚说的,老G——那是我的一个老朋友马迪 " -"刚普斯——正坐在副驾驶位子上,腿上躺着他那可靠的\"18号霰弹枪\"。那是他狗的名字,我们都叫它\"18号\"。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" -"在格林伍德山顶上,曾经有间护林站,那可是在你出生之前就已经有了。有一年,它被烧毁了,他们说是被闪电击中了,但你和我都知道是因为大学生聚会。老G和我离开了\"老黄狗\",进去查看了一下。房子烧焦的外表看上去就像闹了鬼一样,我们发现曾经被那几个该死的孩子在里面翻箱倒柜过。老G带着他的\"18号\",很幸运,因为接下来我们所看到的东西。" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "你们看到了什么?" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "我们真的,真的得走了。" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "看在他妈的份上,闭嘴!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" -"耐心点!我就快说完了。在格林伍德山顶上,曾经有间护林站,那可是在你出生之前就已经有了。有一年,它被烧毁了,他们说是被闪电击中了,但你和我都知道是因为大学生聚会。老G和我离开了\"老黄狗\",进去查看了一下。房子烧焦的外表看上去就像闹了鬼一样,我们发现曾经被那几个该死的孩子在里面翻箱倒柜过。老G带上了他的18号霰弹枪,很幸运,因为接下来我们所看到的东西。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" -"一只巨大驼鹿!就住在护林站里!它几乎把老G撕成了碎片,但他及时扳下了\"18号霰弹枪\"的\"扳机\",在它的毛皮上炸出了一个大洞。\"18号\"朝山上跑了去,但我们找到了它。那只驼鹿就像一袋土豆一样倒在地上,但是可是一个真正的大袋子,如果你懂我意思的话。" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "我懂你的意思。" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "你说完了吗?我是认真的!" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "看在一切神灵的份上,请闭上嘴!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" -"总之,长话短说,当我又回到格林伍德山去查看那座老护林站时,我听到炸弹从天上掉下来,直升机在到处乱飞。所以决定在那里露营直到这一切结束,但一切都没能结束,直到现在还是,不是吗?所以我到了这里。" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "谢谢你的故事!" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "。" - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "你那闪亮亮的警徽可真漂亮啊!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "嗨,你看起来像个大人物。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "我是新来的。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "你在这里干什么?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "有外界的消息吗?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "我可以加入你的团队吗?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "你的耳朵怎么了?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "我能帮上什么忙?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "好的,再见。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" -"嗨,那咱俩一个样啊。好吧,差不多一样。不过按我说,这会儿我们可没法开门迎客了。(悄声道)已经挤满了。地下室里吵吵嚷嚷的跟菜市场一样,真让人受不了。看到一进门那个商人了吗,这儿他说了算。" - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "那可麻烦了……" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"你瞧,楼下有个家伙搞来了一台运作良好的气动加农炮。那玩意能把钢筋像……像加农炮一样射出去,而且还不出一丝声。低成本高效率,可不是吗?而且能用钢筋造各种自制武器怕是我列也列不完啊。不过要说起这最大的用途啊,那还得是继续建造各种防御工事。用钢筋造出来的防御工事,栅栏啊墙啊啥的,就没有啥怪物能够攻破的。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -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 "至少一点都不乐观。我们本来有个女孩带着无线电台上了路的,但现在她和她的电台都没能回来。完蛋了。" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "一点都不乐观吗?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"大多数避难营地在这会儿都已经陷落了。城市早就被围攻过了,森林里到处是发光的眼睛和丧尸。外面发生的都是各种让人发狂的事,所有收到的无线电通信都听上去像是人们在记录他们生命最后的可怕时刻。" - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "我不该问这些。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"我不知道啊。不过要按我说,如果你能帮上忙的话,应该能成。但最近的风声很模糊,关键还是得看你问谁。如果我不是在卖东西的话,怕不是早被那个商人给赶出去了。不过……似乎也有例外的家伙。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." -msgstr "我打赌就和你得到你的那个一样。别声张,这里的有些人看不起像我们这样的人。" - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "嘘,小点声。这里有些人不欢迎……变种人。这是个意外,别问了。" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "真抱歉不该问你" - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "你真恶心!" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"我放火把房子烧了,然后把材料卖给自由商会。别笑,我可是认真的。如果你在城郊看到烧毁的房屋残骸,或者路边堆着出售的钢筋,那说不定就是我干的。作为报酬,商会把我照顾得不错,至少我认为还成。要的话,我还可以卖几个燃烧瓶给你。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "[交易]我要了。" - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "谁还会需要钢筋啊?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "好像你是能说话的人一样,滚。" - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "去你妈的!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "[组队]另一名幸存者!让我们组队行动吧。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "[询问]你在做些什么?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "[交易]你想要交易吗?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&收起武器。" - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&放下武器。" - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "别担心,我不打算伤害你。" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "把你的武器放下!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "给老子滚开,否则我杀了你。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "嘿,。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "再见。" - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "你好。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "好吧,别乱动……" - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "离我远点!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "冷静点,我不会伤害你。" - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "去你妈的!" - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&举起双手。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*放下他的武器。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*放下她的武器。" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "现在赶紧滚" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "在我杀了你之前,从这里滚开。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "好好,我现在就走。" - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "关于那个任务……" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "关于其中的一个任务……" - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "你怎么了?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "我不在乎。" - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "我懂了。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "哦,好的。" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "[拒绝]算了,我没兴趣。" - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "算了。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "[确认]我去做吧!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "[取消]不感兴趣。" - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "没问题,然后呢?" - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "能给点建议吗?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "能给点装备吗?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "我很快就回来!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "明白了,谢谢。" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "我懂了,再见!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "[重复]抱歉,我再考虑一下?" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "[取消]无所谓,再见!" - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "呃,嗯……不好意思。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "对不起,我已经尽力了。" - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "当然, 给你!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "谢谢你。" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "谢了,再见。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "呵呵,我估计就我们两个活人了。" - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "好歹我们还有个避难所可以呆。" - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "[询问]我们现在该做什么?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "[询问]有什么建议吗?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "[任务]我能为你做些什么?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "[组队]与我同行吧,如何?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "[交易]做些交易吧,怎样?" - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "[索取]一点装备都没的话,我可不敢离开这个避难所。" - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "不知道,或许我们应该寻找其他幸存者和补给。" - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -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 "也许该弄好一辆车了,这对我们从这里迅速撤离是很有帮助的。" - -#: 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 "我知道周边有几个农场,我们可以去找一个落脚。它们可以提供充足的食物,而且也不用在城市里和那些家伙打照面。" - -#: 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 "也许我们应该远离那些城市,即便那里有不少有用的东西。" - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "嗯嗯,好吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "直到我得到一些抗生素……" - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "你刚才问过我了,我仍在考虑中,一会再问我吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "为什么我应该跟你同行?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "明白了,我会把抗生素拿给你的。" - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "好吧,以后再问你吧。" - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "因为我有能力保护你啊。" - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "因为你能保护我的安全。" - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "因为我们是朋友啊,对吧?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "要是不答应我就杀了你。" - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "如你所愿,我和你一起走!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "嗯,那太好了!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "好的,我们出发吧!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "噢……我并不这么认为。" - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "你真的要离开?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "[确认]是的,再见吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "[取消]我只是在开个玩笑。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "干什么?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "还有多远?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "让我来带路吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "一边去,现在我是领队!" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "一起走吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "好吧,现在你说了算。" - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "好的。还有别的事……" +msgid "Good. Something else..." +msgstr "好的。还有别的事……" #: lang/json/talk_topic_from_json.py msgid "Alright, let's go." @@ -102399,7 +102315,7 @@ msgstr "有什么避免麻烦的秘诀?" #: lang/json/talk_topic_from_json.py msgid "Have you seen anyone who might be hiding something?" -msgstr "你有发现任何可能藏匿物品的人吗?" +msgstr "你有发现谁在藏着什么吗?" #: lang/json/talk_topic_from_json.py msgid "Bye..." @@ -102413,7 +102329,7 @@ msgstr "我没在这待很长时间,但我总是尽量注意来来往往的那 #: lang/json/talk_topic_from_json.py msgid "Keep your head down and stay out of my way." -msgstr "低下头不准看我然后别他妈挡我的路!" +msgstr "保持低调,然后别挡老子的路!" #: lang/json/talk_topic_from_json.py msgid "OK..." @@ -102429,7 +102345,7 @@ msgstr "我不确定……" #: lang/json/talk_topic_from_json.py msgid "Like they could be working for someone else?" -msgstr "好像会对其他人有用?" +msgstr "像是他们在为其他人工作?" #: lang/json/talk_topic_from_json.py msgid "You're new here, who the hell put you up to this crap?" @@ -102477,7 +102393,7 @@ msgstr "我们才不会把你这种废物放在眼里,有事办事,办完赶 #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest... please don't arrest me." -msgstr "我似乎闻到了一头蠢猪的味道,哦,抱歉。" +msgstr "我似乎闻到了一头蠢猪的味道。开玩笑的……你可别抓我。" #: lang/json/talk_topic_from_json.py msgid "Huh, thought I smelled someone new. Can I help you?" @@ -102513,7 +102429,7 @@ msgstr "好……好吧?" 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 "我交易食物来在这里换取一席之地和其它补给。好吧,更具体点,我交易的食物不是薯片和可乐那号的。" +msgstr "我交易食物来在这里换取一席之地和其它补给。好吧,更具体点,我交易的食物不是过期薯片和跑了气的可乐之类的。" #: lang/json/talk_topic_from_json.py msgid "Interesting." @@ -102521,7 +102437,7 @@ msgstr "有意思。" #: lang/json/talk_topic_from_json.py msgid "Oh, so you hunt?" -msgstr "喔,怎么你受伤了?" +msgstr "喔,那你自己打猎吗?" #: lang/json/talk_topic_from_json.py msgid "Not really, just trying to lead my life." @@ -102532,7 +102448,7 @@ msgid "" "Yep. Whatever game I spot, I bag and sell the meat and other parts here. " "Got the occasional fish and basket full of wild fruit, but nothing comes " "close to a freshly-cooked moose steak for supper!" -msgstr "对。无论我在什么情形,我包装并贩卖肉品或其他部位。偶尔会有鱼跟几篮野果,但没有什么能比上新鲜的碳烤驼鹿肉排!" +msgstr "对啊。不管我抓到什么猎物,我都把肉品和其他部位带来这里卖。偶尔也能弄到写鲜鱼或是几篮野果,但没有什么能比上新鲜的碳烤驼鹿肉排当晚餐!" #: lang/json/talk_topic_from_json.py msgid "Great, now my mouth is watering..." @@ -102552,7 +102468,7 @@ msgstr "喂一个人一条鱼,他一天都不会饿。喂一个人一发子弹 #: lang/json/talk_topic_from_json.py msgid "Spot your prey before something nastier spots you." -msgstr "在更可怕的存在发现你之前,发现你的猎物 。" +msgstr "在你被更可怕的怪物发现你之前,先发现你的猎物 。" #: lang/json/talk_topic_from_json.py msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." @@ -102583,7 +102499,7 @@ msgstr "吸口快克可卡因来继续做那该死的破事。" #: lang/json/talk_topic_from_json.py msgid "Watch your back out there." -msgstr "我会支持你的!" +msgstr "出门在外,当心你的背后。" #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." @@ -102681,11 +102597,11 @@ 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 "" -"前阵子有一个来这的家伙说灾变后他曾试着开车进入雪城。还没到城区他就遇到一大群活死人,多的可以挡下坦克,更别说他那辆小破车了。他拼了命逃了出来,就他说至少有几千个丧尸。想想吧,把一堆丧尸扔在一起,它们就会制造出足以把所有东西吸引过来的噪声。幸运的是,我们这边没有那么大的尸潮。" +"前阵子有一个来这的家伙说灾变后他曾试着开车进入雪城。还没到城区他就遇到一大群活死人,多的可以挡下坦克,更别说他那辆小破车了。他拼了命逃了出来,就他说至少有几千只丧尸。想想吧,把一堆丧尸扔在一起,它们就会制造出足以把所有东西吸引过来的噪声。幸运的是,我们这边没有那么大的尸潮。" #: lang/json/talk_topic_from_json.py msgid "Thanks for the tip." -msgstr "不错的消息,谢了!" +msgstr "多谢你的消息。" #: lang/json/talk_topic_from_json.py msgid "" @@ -102742,7 +102658,7 @@ msgstr "我可以照顾我自己!" msgid "" "[INT 11] I'm sure I can organize salvage operations to increase the bounty " "scavengers bring in!" -msgstr "[智力 11] 我想我可以很好地组织回收行动,增加拾荒者带来的收获。" +msgstr "[智力 11] 我想我可以更好的组织拾荒行动,增加拾荒者带来的收获。" #: lang/json/talk_topic_from_json.py msgid "[STR 11] I punch things in face real good!" @@ -103067,7 +102983,7 @@ msgid "" "refugee traffic away from overcrowded outposts and free up more of our " "forces to conduct recovery operations." msgstr "" -"我带领了我们团队剩下的人马来重新控制这一设施。我们两打队员进入了一个复杂的地区,然后立刻前往确保控制室。在哪里我派了些人去守护这一层和下一层的关键系统。如果我们成功了的话,这个设施就可以作为我们这个团队的永久基地了。最重要的是这里可以让我们从一些过于拥挤的避难所里分流一部分难民,同时相关的工作人员也可以从中释放以从事其它修复工作。" +"我带领了我们连队剩下的人马来执行重新控制该设施的任务。我们两打队员进入了这个建筑群,并当即进入并保卫了这间控制室。从这里我又派了些人去控制这一层和下一层的关键系统。如果我们成功了的话,这座设施就可以作为我们连队在本地区执行任务时的永久基地了。最重要的是这里可以让我们将一部分难民从一些过于拥挤的避难所里分流过来,同时解放出更多人手来从事其他修复工作。" #: lang/json/talk_topic_from_json.py msgid "Seems like a decent plan..." @@ -103086,7 +103002,7 @@ msgid "" "sickness. The only other thing the logs tell us is that all water pressure " "was diverted to the lower levels." msgstr "" -"这一设施主要是作为产生了全球范围的军事冲突之后,作为提供一个安全的庇护所来建造的。这个地洞可以提供几千人在这里生活上几年,如果所有设备都正常运作并且有专人控制的话。这里的供电系统已经在哪里损坏或者被蓄意破坏过了,会释放出一堆带有致死能量的极强电磁辐射。这一灾难性事件使得在这里2层和更低层的人们在几分钟之内全部死于非命。而那些在这一层工作的人们通过封死了通往下层的通道而逃过了辐射的伤害。而这一报告也说出了另外的情况,下层空间已经被水压涌入淹没。" +"这座建筑原本是作为全球核冲突爆发之后的安全庇护所而修建的。如果所有设备都正常运作并且有专人控制的话,这个避难所可以让几千人在地下安全生活上几年。不幸的是,供电系统在某个时候受损或是被故意破坏了,并爆发了一次足够致人死亡的辐射。这次灾难性事故使得所有位于地下二层和更低层的人在几分钟之内全部死于非命。而那些在本层工作的人们在死于辐射病之前成功封死了通往下层的通道。记录中还提到另一件事,所有水下被重新导入到更底层去了。" #: lang/json/talk_topic_from_json.py msgid "Whatever they did it must have worked since we are still alive..." @@ -103106,7 +103022,7 @@ msgstr "女士,您没有这里的授权……请离开。" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[任务]上尉让我带给你一份频率表。" +msgstr "[任务]上尉让我找你要份频率表。" #: lang/json/talk_topic_from_json.py msgid "Do you need any help?" @@ -103121,11 +103037,11 @@ msgid "" "We are securing the external communications array for this facility. I'm " "rather restricted in what I can release... go find my commander if you have " "any questions." -msgstr "我们正在保卫这座设施的外部通讯阵列。我受限不能透露太多信息……如果你有任何问题,去找我的指挥官。" +msgstr "我们正在保卫着这座设施的对外通讯阵列。都是些保密资料,我不知道该透露些什么……如果你有任何问题,去找我的指挥官。" #: lang/json/talk_topic_from_json.py msgid "I'll try and find your commander then..." -msgstr "我会去找你的领导的……" +msgstr "我会去找你的指挥官的……" #: lang/json/talk_topic_from_json.py msgid "" @@ -103137,16 +103053,16 @@ 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 "" -"我本希望上尉能派来一个跑腿的。 这是你要的频率表。从这份表里我们只能看到那些曾经有通讯过的频率, " -"但这些通讯大多都加密了,不修复或者替换这里的设备是没法破译的。当初设施被侵占了,按标准流程来说应该破坏加密用的硬件,以此来保护联邦政府机密和保持通讯网络的完整,虽然我们还希望收到些明文报文。" +"我正等着上尉给我派个跑腿的人来。这是你要的频率表。从这份表里我们只能看到那些曾经有通讯过的频率, " +"但这些通讯大多都加密了,不修复或者替换这里的设备是没法破译的。按标准流程来说,当设施被外敌侵占时,应该破坏加密器,以保护联邦政府机密和保持加密通讯网络的完整。不过我们还是希望能够获得一些明文编码的信息。" #: lang/json/talk_topic_from_json.py msgid "Marshal..." -msgstr "长官,你好。" +msgstr "你好,执法官……" #: lang/json/talk_topic_from_json.py msgid "Citizen..." -msgstr "你好,公民。" +msgstr "你好,公民……" #: lang/json/talk_topic_from_json.py src/npctalk.cpp msgid "Who are you?" @@ -103257,6 +103173,277 @@ msgid "" msgstr "" "在直到一名招募官来之前,你没法地真正加入我们。不过我们一直都欢迎大家来帮一把手,记得时常来问我有没有可以干的活。作为临时工,多完成任务可以让你在这群世上仅存的最有实力的人们中扬名立万。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "拜托,帮帮我。我需要食物。你不是他们的警长吗?你不能帮帮我吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "拜托,帮帮我。我需要食物。" + +#: lang/json/talk_topic_from_json.py +msgid "Get away from me." +msgstr "离我远点。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They won't let me in. They say they're too full. I'm allowed to camp out " +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "他们不让我进去。他们说他们已经满人了。他们让我在这露营,前提是我保持这里干净整洁,不惹事生非,但我实在是太饿了。" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go somewhere else?" +msgstr "你为什么不去别的地方呢?" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you scavenge your own food?" +msgstr "你为什么不自食其力呢?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do before the cataclysm?" +msgstr "你在大灾难之前是做什么的?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "对不起,我帮不了你。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" +"还有别的地方吗?我不能在外面和那些怪物搏斗。我身体状况很差,又没有一技之长,我被外面那些 和暴行吓坏了。我该怎么找个安全的地方?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" +"去外面?那是自杀!每个出去的人都没能回来,那些可是能自己过活的人……不像我。我宁愿在这里求口剩饭吃,等待里面的人死掉一些,为我腾出位置,谢谢。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" +"我是高中数学老师。那是一份好工作,我很喜欢。可笑的是,在世界末日之后,这并没有什么用。我是说,很久很久之后也许人们会再次需要一个老师,但现在他们想要的只是食物,住所和衣服。" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "我跟你说过硬纸板的事吗,朋友?你有吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "硬纸板?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "你为什么坐在这里?" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "你真的就这么穿着恐龙套装吗?" + +#: lang/json/talk_topic_from_json.py +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 "我正在用硬纸板盖房子。睡魔告诉我别这么做,但我告诉它赶紧滚。" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "为什么是硬纸板?" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "我想我得走了……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" +"现在有用不完的硬纸板了,而且丧尸们都怕它。至少到目前为止它都保护了我的安全。从丧尸体内会发射出贝塔射线,但一旦击中纸板,就无法穿透。反射射线可以避免任何进一步的伤害。" + +#: lang/json/talk_topic_from_json.py +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 "那些胆小鬼都怕我。他们不让我进入他们的基地。我要盖我自己的新房子,而我也不会让他们进来的。" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "盖房子?" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "否" + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "那硬纸板是怎么回事?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "别理那些混蛋们。" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "怎么了?" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "好吧……回头见。" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "他们说\"人太多了\"。妈的一帮不懂分享的混蛋。" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "那你为什么还住这里?" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "我得走了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" +"即使没有他们的帮助,这也是我所能呆的最安全的地方。只要我们在保持这里的干净整洁,不引发卫生问题,他们就不会介意我们坐在门口。他们是如此的仁慈和慷慨,让我们坐在这里慢慢地饿死。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "嘿,你还相信适者生存吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "你为什么这么问?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "抱歉,没兴趣。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "因为我肯定不适合,所以我现在正坐在这里等着被饿死呢。帮帮我这个得病的可怜人吧?" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "你怎么了?" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "他们不让你进去来是因为你生病了?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "你如果你得了重病,那你还怎么可能来到这里的?" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "既然他们不让你进去,你为什么还要在这里扎营?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" +"凡是你想得到的!哮喘、糖尿病、关节炎。糖尿病目前没那么严重了,自从我停止,你知道的,吃东西之后。嗯,我猜的。说的好像我还能去叫什么来着,去验血一样,医生过去每隔几个月都要催着我去验血。" + +#: lang/json/talk_topic_from_json.py +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 "他们要养的人太多,需要每个人有足够的劳动力来撑起自己的体重。我太重了,但身体太虚,撑不起,所以我就在这了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "和之前的一小群人一起来的。其他人都很年轻,身体很好,他们进去了。实际上他们是最后几个被收进去的人。我没能被算上。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" +"多亏了他们的恩德。现在我有住的地方、有照明和保暖,如果有丧尸出现,那些警卫还会帮我们处理掉。也没那么糟。如果我一个人在外面的话,我啥都不会有,而且同样得找食物……换句话说,我会必死无疑。或者我该说\"不死\"无疑。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "嘿,老铁。" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "你到这来做什么?" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "我不得不说一句,你浑身上下都长毛了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "我住在这里。变异太多不可能加入酷孩子俱乐部,但还变异得不足以一眼见到就杀人。" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "为什么住在这里?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "你看上去能自己照顾自己。为什么不和我一起走呢?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" +"这比我自己再去造一个家更安全。必要时我就去森林里搜寻些果子吃。只要我们保持这里干净整洁,并在丧尸来时尽我们一份力,他们就会让我们蹲在这里作为额外的一层防御。他们不太喜欢我给这里的其他人带吃的……我想他们准备让我们慢慢地饿死,尽管我没法让这每个人都吃饱,但我带回来的食物足够维持这些人生存下去。我想他们最终会找个借口把我赶走。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "真恶心,不是吗?像个野人一样。大灾难过后不久,我身上就开始到处长毛。不知道是什么引起的。我不怪他们讨厌这玩意,我也讨厌。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" +"哦,好吧,是个好心的提议,我很感激你能不在乎我这身该死的毛。不过很抱歉。我开始觉得自己该照顾门口这群小家伙了。只要我还是唯一一个能养活他们的人,我就没法离开他们。" + #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" msgstr "有什么我可以效劳的吗,执法官?" @@ -103312,8 +103499,8 @@ msgid "" " build from scratch. The refugee center I came from is constantly facing " "starvation and undead assaults." msgstr "" -"要做的事怎么说也有成百上千。 他们选择这个牧场,因为位置比较偏远,栅栏也挺完整,还有大片的空地。 " -"这么一大块栅栏围住的土地,只要再搞到些建材,我们可以建起一座村庄。原本我们想占据一个现成的小镇之类的地方,但耕种用地的匮乏和丧尸们的热情访问让我们明白,还是从头开始建设更来得实际。我原来呆的难民中心就一直在面临着饥荒和丧尸攻击的问题。" +"可能会有上百个吧。他们选择这个牧场,因为位置比较偏远,栅栏也挺完整,还有大片的空地。 " +"这么一大块栅栏围住的土地,只要再搞到些建材,我们可以建起一座村庄。原本我们想占据一个现成的小镇之类的地方,但耕地的匮乏和丧尸们的热情访问让我们明白,还是从头开始建设更来得实际。我原来呆的难民中心就一直在面临着饥荒和丧尸攻击的问题。" #: lang/json/talk_topic_from_json.py msgid "Hopefully moving out here was worth it..." @@ -103328,11 +103515,11 @@ 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 "" -"我是负责把这个地方变成一个工作营地的工程师。这会是件棘手的事情,因为抵达这里时我们几乎耗尽了补给,而封死所有的窗户又差不多用光了我们的材料。可我还有一堆数都数不清的活要做,所以如果你能给我们提供一些补给品我简直愿意以身相许。只要你有任何能运来的材料,把车开进来,把东西一股脑卸在地上就行。剩下的就交给我们吧。" +"我是负责把这个地方变成一个能正常运作的营地的工程师。这是场硬仗,我们几乎耗尽了补给才到了这里,而封死窗户又差不多用光了剩余的材料。我还有一堆数都数不清的活要做,所以如果你能给我们提供一些补给品的话,我非常感激。只要你有任何能运来的材料,把车开进来,把东西一股脑卸在地上就行。剩下的就交给我们吧。" #: lang/json/talk_topic_from_json.py msgid "I'll keep that in mind." -msgstr "我会记住的。" +msgstr "我会记着的。" #: lang/json/talk_topic_from_json.py msgid "" @@ -103403,7 +103590,7 @@ msgstr "下次再说吧。" #: lang/json/talk_topic_from_json.py msgid "I'll be back later." -msgstr "我之后会回来的。" +msgstr "我稍后再来。" #: lang/json/talk_topic_from_json.py msgid "Don't have much time to talk." @@ -103418,7 +103605,7 @@ 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 "" -"我会把伐木工人们砍下来放在这里的原木转运加工成木材,然后作为前哨站扩建的材料。保养木锯锯条是我现在份内的工作中最不无聊的工作了,因为我可以一个锯齿一个锯齿地数到天黑。" +"我会把伐木工人们砍下来放在这里的原木加工成木材,来作为前哨站扩建的材料。保养木锯相当枯燥,但这是现在最不无聊的工作了,因为我可以一个锯齿一个锯齿地数到天黑。" #: lang/json/talk_topic_from_json.py msgid "" @@ -103432,7 +103619,7 @@ msgid "" "I was sent here to assist in setting-up the farm. Most of us have no real " "skills that transfer from before the cataclysm so things are a bit of trial " "and error." -msgstr "我是被派过来帮忙建设农场的。我们大多数人在末世之前都没学过相关的知识,所以我们现在是在尝试和错误中努力前行。" +msgstr "我是被派过来帮忙建设农场的。我们大多数人在大灾变来临之前都没学过相关的知识,所以我们现在是在尝试和错误中努力前行。" #: lang/json/talk_topic_from_json.py msgid "" @@ -103441,7 +103628,7 @@ 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 "" -"抱歉我这没有什么能交易的东西。这里的工作程序把我们生产的东西分配给难民中心,农场,最后是我们自己。如果你是个熟练工,你可以花点时间流点汗挣些外快。可要是你想做个农夫的话,我这就没什么活给你了。" +"很抱歉,我这没有什么能交易的东西。这边的规矩是这样的,我们的产出先要分配给难民中心,农场,最后才是我们自己。如果你是个熟练工,你可以花点时间流点汗挣些外快。可要是你想做个农夫的话,我这就没什么活给你了。" #: lang/json/talk_topic_from_json.py msgid "You mind?" @@ -103453,7 +103640,7 @@ 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 "" -"我自认是一个从不死生物的追杀中逃脱出来成为一个高尚的农田工作者的幸运的人。我们有独立房间和食堂,但是我们在作物丰收之前我们没有多余的劳动成果可以投入市场经济。" +"我自认是一个从不死生物的追杀中逃脱出来并过上自耕农般的贵族生活的幸运儿罢了。我们有宿舍和食堂,但除非收成很好,否则分不到自己劳作的一点成果。" #: lang/json/talk_topic_from_json.py msgid "It could be worse..." @@ -103463,7 +103650,7 @@ msgstr "可能会更糟……" 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 "我没时间跟你聊天。如果你想交易或是找活干,去和工头或者作物看守聊聊。" +msgstr "我没时间跟你聊天。如果你想交易或是找活干,去和工头或者农场主管聊聊。" #: lang/json/talk_topic_from_json.py msgid "I'll talk with them then..." @@ -103475,14 +103662,14 @@ msgstr "我希望你来这儿是做生意的。" #: lang/json/talk_topic_from_json.py msgid "I'm interested in investing in agriculture..." -msgstr "我有兴趣在农业上投资……" +msgstr "我想要投资点农田……" #: lang/json/talk_topic_from_json.py msgid "" "My job is to manage our outpost's agricultural production. I'm constantly " "searching for trade partners and investors to increase our capacity. If you" " are interested I typically have tasks that I need assistance with." -msgstr "我的工作是监管我们哨站的农业生产。我一直在寻找合作伙伴的贸易和投资,以提高我们的产能。如果你有兴趣我通常有些你能帮上忙的任务。" +msgstr "我的工作是管理前哨站的农业生产。我一直在寻找贸易伙伴和投资者,以提高我们的产能。如果你想要的话,我这里也有些你能帮上忙的任务。" #: lang/json/talk_topic_from_json.py msgid "Please leave me alone..." @@ -103496,7 +103683,7 @@ msgstr "出什么事了?" 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 "我原只是个干粗活的,直到他们给我找了现在这份更长久的差事。问题是我的病一直好不了,让我很多事都做不顺当。" +msgstr "在他们给我找份更长久的差事之前,我现在一直只能当个苦力。但问题是我的病一直好不了,让我很多事都做不顺当。" #: lang/json/talk_topic_from_json.py msgid "That's sad." @@ -103506,7 +103693,11 @@ msgstr "那可真糟糕。" msgid "" "I don't know what you could do. I've tried everything. Just give me " "time..." -msgstr "我不知道你能做什么。什么我都试过了。 给我点时间……" +msgstr "我不知道你能做什么。什么我都试过了。也许多给我点时间就好……" + +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "OK." #: lang/json/talk_topic_from_json.py msgid "" @@ -103524,7 +103715,7 @@ msgstr "我能帮你什么忙吗?" #: lang/json/talk_topic_from_json.py msgid "I could use your medical assistance." -msgstr "我需要你的医疗协助。" +msgstr "我需要你帮忙治疗一下。" #: lang/json/talk_topic_from_json.py msgid "" @@ -103536,7 +103727,7 @@ msgstr "我以前是一名护士,所以我现在负责哨站的医疗事务, 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 "我会付你额外的价钱,只要你能找到医疗用品拿来。有时候我这也会有些杂活需要人手。" +msgstr "我会为你所找来的医疗用品付出高价。有时候我这也会有些杂活需要人手。" #: lang/json/talk_topic_from_json.py msgid "What kind of jobs do you have for me?" @@ -103548,7 +103739,7 @@ msgstr "现在还不行。" #: lang/json/talk_topic_from_json.py msgid "I can take a look at you or your companions if you are injured." -msgstr "如果你和你的同伴受伤了,我会照料你们。" +msgstr "如果你和你的同伴受伤了,我也能帮你看看。" #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." @@ -103564,7 +103755,7 @@ msgstr "我感觉还能扛一会。" #: lang/json/talk_topic_from_json.py msgid "That's the best I can do on short notice." -msgstr "短时间内我只能帮你治疗到这了。" +msgstr "短时间内我只能帮你治疗成这样了。" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I don't have time to see you at the moment." @@ -103572,15 +103763,15 @@ msgstr "抱歉,我现在没时间照应你。" #: lang/json/talk_topic_from_json.py msgid "For the right price could I borrow your services?" -msgstr "我能用适当的价格换取你的服务吗?" +msgstr "也许适当的价格就能换取点服务?" #: lang/json/talk_topic_from_json.py msgid "I imagine we might be able to work something out." -msgstr "也许吧,我想我们俩一起能搞定。" +msgstr "也许吧,我想我们能谈妥价格的。" #: lang/json/talk_topic_from_json.py msgid "I was wondering if you could install a cybernetic implant..." -msgstr "我想知道你能不能帮我安装生化插件……" +msgstr "我需要你帮我安装生化插件……" #: lang/json/talk_topic_from_json.py msgid "I need help removing an implant..." @@ -103596,14 +103787,14 @@ msgid "" "use a vehicle immediately we haul it into the ring we are building to " "surround the outpost. It provides a measure of defense in the event that we" " get attacked." -msgstr "我把没用的车拆卸成配件和材料。我们还把暂时排不上用场的车拖到哨站周围围成一圈工事,如果我们遭到攻击,它们能提供一些防御。" +msgstr "我把没用的车拆卸成部件和材料。我们还把暂时排不上用场的车拖到哨站周围围成一圈临时工事。如果我们遭到攻击,它们能提供一些防御。" #: lang/json/talk_topic_from_json.py msgid "" "I don't personally, the teams we send out to recover the vehicles usually " "need a hand but can be hard to catch since they spend most of their time " "outside the outpost." -msgstr "我是不怎么需要。出去回收车辆的小组应该需要帮忙,但他们大部分时间都在哨站外面,恐怕不太好找。" +msgstr "我自己是不怎么需要的,不过我们派出去回收载具的小队应该是需要帮手的,但他们大部分时间都在哨站外面,恐怕不太好找。" #: lang/json/talk_topic_from_json.py msgid "Welcome to the junk shop." @@ -103621,7 +103812,7 @@ 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 "" -"我组织拾荒小队去找回些没法自制的补给品。我想尽办法鼓励移民们加入这些队伍……这活计挺冒险,但没了它我们的哨站就很难保持运作。我们把所有用不上的东西拿去跟走私客交易。如果你能叫上一两个同伴帮一把某支拾荒小队的话,我会很感激的。" +"我组织拾荒小队去外面搜寻些没法自己生产的补给品。我想尽办法鼓励移民们加入这些队伍……这活很危险,但是能保证哨站存活下去。用不上的东西我们会卖给旅行商人来保证我们不破产。如果你能派一两个同伴协助我们的拾荒行动的话,我会很感激的。" #: lang/json/talk_topic_from_json.py msgid "I'll think about it." @@ -103631,7 +103822,7 @@ msgstr "我会考虑的。" msgid "" "Are you interested in the scavenging runs or one of the other tasks that I " "might have for you?" -msgstr "我这有些任务给你,或者你愿意去加入拾荒小队?" +msgstr "你对拾荒小队或是我所提供的任务感兴趣吗?" #: lang/json/talk_topic_from_json.py msgid "Tell me more about the scavenging runs." @@ -103647,7 +103838,7 @@ msgstr "不,谢了。" #: lang/json/talk_topic_from_json.py msgid "Want a drink?" -msgstr "想来一杯?" +msgstr "来一杯?" #: lang/json/talk_topic_from_json.py msgid "I'm looking for information." @@ -103663,7 +103854,7 @@ msgstr "有什么喝的没有?" #: lang/json/talk_topic_from_json.py msgid "I'll be going..." -msgstr "我会去……" +msgstr "我该走了……" #: lang/json/talk_topic_from_json.py msgid "" @@ -103671,13 +103862,13 @@ msgid "" "world alcohol that we sell for special occasions. For most that come " "through here though, the drinks we brew ourselves are the only thing they " "can afford." -msgstr "如果你还看不出的话,我在照看这个酒吧。拾荒者们会带回些旧世界的酒,但我们很少卖它们。基本上来这儿的人都只喝得起我们自己酿的酒。" +msgstr "如果你还看不出的话,我负责照看这个酒吧。拾荒者们会带回些旧世界的酒,但很少能卖的出去。基本上来这儿的人都只喝得起我们自己酿的酒。" #: 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 "我们有规矩不能多说什么。要是你想听些八卦或者新闻什么的,去和那些酒客聊一聊吧。" +msgstr "我们有规矩,不能多说。要是你想听些八卦或者新闻什么的,去和那些酒客聊一聊吧。" #: lang/json/talk_topic_from_json.py msgid "Thanks for nothing." @@ -103685,7 +103876,7 @@ msgstr "算我自讨没趣。" #: lang/json/talk_topic_from_json.py msgid "Our selection is a bit limited at the moment." -msgstr "眼下我们没多少余地。" +msgstr "目前我们的选择有点有限。" #: lang/json/talk_topic_from_json.py msgid "[$8] I'll take a beer" @@ -103721,7 +103912,7 @@ msgstr "[$10] 给我剪个头" #: lang/json/talk_topic_from_json.py msgid "Maybe another time..." -msgstr "也许下次吧。" +msgstr "下次再说吧……" #: lang/json/talk_topic_from_json.py msgid "" @@ -103735,11 +103926,11 @@ msgstr "眼下好像没什么需要你帮忙的。" #: lang/json/talk_topic_from_json.py msgid "Stand still while I get my clippers..." -msgstr "请稍等,让我把剪刀拿过来……" +msgstr "请稍等,让我拿把剪刀来……" #: lang/json/talk_topic_from_json.py msgid "Thanks..." -msgstr "谢了。" +msgstr "谢了……" #: lang/json/talk_topic_from_json.py msgid "I haven't done anything wrong..." @@ -103788,11 +103979,11 @@ msgstr "[$8000] 成交。" #: lang/json/talk_topic_from_json.py msgid "I guess you're the boss." -msgstr "我猜你是老板!" +msgstr "我猜你是个大老板。" #: lang/json/talk_topic_from_json.py msgid "Glad to have you aboard." -msgstr "很高兴有你在。" +msgstr "欢迎入队。" #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" @@ -103802,7 +103993,7 @@ msgstr "我能换点补给品吗?" 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 "我是名医生,前哨站里幸存下来的几个人之一。我们是幸运的。在情况刚开始变糟糕前就来到这里,再也没有离开过。" +msgstr "我是名医生,前哨站里幸存下来的几个人之一。我们是幸运儿。在情况刚开始变糟糕前就来到这里,再也没有离开过。" #: lang/json/talk_topic_from_json.py msgid "So what are you doing right now?" @@ -103906,6 +104097,14 @@ msgstr "NPC特性测试回应。" msgid "This is a npc short trait test response." msgstr "NPC短特性测试回应。" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "特性标志测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "NPC特性标志测试回应。" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "NPC效果测试回应。" @@ -103950,6 +104149,66 @@ msgstr "NPC同伴1测试回应。" msgid "This an error! npc allies 2 test response." msgstr "NPC同伴2错误测试回应。" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "春季测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "大灾变后30天测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "夏季测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "大灾变后120天测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "秋季测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "大灾变后210天测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "冬季测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "大灾变后300天测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "白天测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "夜晚测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "选项1测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "选项2测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "默认选项1测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "默认选项2测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "另一个基本测试回应。" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "现金、空闲及特性“或”测试回应。" @@ -103983,171 +104242,851 @@ msgid "This is a u_buy_item bottle of beer response" msgstr "玩家购买啤酒回应。" #: lang/json/talk_topic_from_json.py -msgid "This is a u_buy_item plastic bottle response" -msgstr "玩家购买塑料瓶回应。" +msgid "This is a u_buy_item plastic bottle response" +msgstr "玩家购买塑料瓶回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_spend_cash response" +msgstr "玩家花费现金回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a multi-effect response" +msgstr "多种效果回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "玩家出售塑料瓶回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "玩家出售啤酒回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "玩家拥有塑料瓶回应。" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "玩家拥有啤酒回应。" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "测试失败!拥有物品测试回应。" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before this started, I had a crappy job flipping burgers at Sambal's Grille." +" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " +"Last time I saw them alive, I just came home from school, grabbed a snack " +"and went to work. I don't think I even told my mom I loved her, and I was " +"pissed at my dad for some shit that really doesn't matter. Didn't " +"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 "" +"在这一切发生之前,我在叁巴烤肉店有份蹩脚的工作,负责给汉堡翻面。失去它没什么大不了的。失去我的爸爸妈妈更让人伤心。上一次看到他们活着的时候,我刚从学校回来,拿了包零食然后就去上班了。我想我甚至没有告诉我妈妈我爱她,而我那会还因为一些" +" 的毫不重要的事情生我爸爸的气。那时候不重要,现在更不重要了。当我在工作的时候,一切都开始变得疯狂……军队进城,疏散警报响起。" + +#: lang/json/talk_topic_from_json.py +msgid "So, did you evacuate?" +msgstr "那么,你疏散了吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't evacuate. I went home... saw some freaky shit on the way, but at " +"the time I just thought it was riots or drugs. By the time I got there, my " +"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 "" +"我没有撤离。我回家了……在路上看到了一些怪异的事,但当时我还以为是暴乱或者毒品。当我回到家的时候,我的父母已经走了。没有他们的踪迹。到处都乱七八糟的,东西散落一地,就像搏斗过一样,地板上还有血迹。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I haven't found them yet. Whenever I see a , a little part of me is" +" afraid it's going to be one of them. But then, maybe not. Maybe they " +"were evacuated, maybe they fought and tried to wait for me but the military " +"took them anyway? I've heard that sort of thing happened. I don't know if " +"I'll ever know." +msgstr "" +"我还没找到他们。每当我看到一只 " +",我都会担心也许那就是他们变的。当然,也许不是。也许他们已经被疏散了,也许他们战斗过一阵子并试图等我,但军队还是带走了他们?我听说过这种事。我不知道我是否会得到答案。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "哦好吧,那个真是个故事,所以可要准备好啊。这一切都可以追溯到五年前,那时我已经从工厂退休了。日子不好过,但我们挺过来了。" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "好吧,请继续。" + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "回头想一想,我们还是谈点别的吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" +"就在那时,我买了我那辆旧卡车,蓝色的。我们叫她\"老黄狗\"。有一次,我和马迪 " +"刚普斯——或者,像我称呼的那样,老G——正开着\"老黄狗\"去格林伍德山避暑,顺便找一些萤火虫抓抓。" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "萤火虫。明白了。" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "这和我问你的事有什么关系?" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "你最好快点讲,我要走了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "老G——那是我的一个老朋友马迪 刚普斯——正坐在副驾驶位子上,腿上躺着他那可靠的\"18号霰弹枪\"。那是他的狗的名字,我们都叫它\"18号\"。" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "18号,狗。明白了。" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "我想我看到有些丧尸过来了。我们应该缩短时间。" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "闭嘴,你这个傻老头。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" +"该死,我就快讲到了,别嚼舌头。就像我刚刚说的,老G——那是我的一个老朋友马迪 " +"刚普斯——正坐在副驾驶位子上,腿上躺着他那可靠的\"18号霰弹枪\"。那是他狗的名字,我们都叫它\"18号\"。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" +"在格林伍德山顶上,曾经有间护林站,那可是在你出生之前就已经有了。有一年,它被烧毁了,他们说是被闪电击中了,但你和我都知道是因为大学生聚会。老G和我离开了\"老黄狗\",进去查看了一下。房子烧焦的外表看上去就像闹了鬼一样,我们发现曾经被那几个该死的孩子在里面翻箱倒柜过。老G带着他的\"18号\",很幸运,因为接下来我们所看到的东西。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "你们看到了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "我们真的,真的得走了。" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "看在他妈的份上,闭嘴!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" +"耐心点!我就快说完了。在格林伍德山顶上,曾经有间护林站,那可是在你出生之前就已经有了。有一年,它被烧毁了,他们说是被闪电击中了,但你和我都知道是因为大学生聚会。老G和我离开了\"老黄狗\",进去查看了一下。房子烧焦的外表看上去就像闹了鬼一样,我们发现曾经被那几个该死的孩子在里面翻箱倒柜过。老G带上了他的18号霰弹枪,很幸运,因为接下来我们所看到的东西。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" +"一只巨大驼鹿!就住在护林站里!它几乎把老G撕成了碎片,但他及时扳下了\"18号霰弹枪\"的\"扳机\",在它的毛皮上炸出了一个大洞。\"18号\"朝山上跑了去,但我们找到了它。那只驼鹿就像一袋土豆一样倒在地上,但是可是一个真正的大袋子,如果你懂我意思的话。" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "我懂你的意思。" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "你说完了吗?我是认真的!" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "看在一切神灵的份上,请闭上嘴!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" +"总之,长话短说,当我又回到格林伍德山去查看那座老护林站时,我听到炸弹从天上掉下来,直升机在到处乱飞。所以决定在那里露营直到这一切结束,但一切都没能结束,直到现在还是,不是吗?所以我到了这里。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "谢谢你的故事!" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" +"我 也不能确定了。我 不知道发生了什么事情。我只是在尽我所能活下去。世界末日了,而我却跌跌撞撞而没有死,然后就遇见你了。" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "哈。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a cop. Small town sheriff. We got orders without even really knowing" +" what they meant. At some point one of the g-men on the phone told me it " +"was a Chinese attack, something in the water supply... I don't know if I " +"believe it now, but at the time it was the best explanation. At first it " +"was weird, a few people - - fighting like rabid animals. Then it " +"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 "" +"我那会是个警察。一座小镇里的治安官。我们刚接到命令还不完全明白它们的意思。直到电话里的一个男的告诉我,这是一次来自中国的袭击,是供水系统里的什么东西……我不知道我现在还是否相信,但当时这是最好的解释。一开始很奇怪,有几个人————像发疯的动物一样打架。然后情况就变得更糟了。我试图控制一切,但只有我和我的副官对抗整座暴乱的城镇。然后一切都不可收拾了。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "发生什么了?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A big-ass hole opened up right in the middle of town, and a " +"crawled out, right in front of the church. We unloaded into it, but bullets" +" just bounced off. Got some civilians in the crossfire. It started just " +"devouring people like potato chips into a gullet that looked like a rotting " +"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " +"have been the only person to escape. I haven't been able to even look at my" +" badge since then." +msgstr "" +"一个巨大无比的洞在镇中心打开了,还有一只 " +"爬出来,就在教堂门口。我们朝它狂泻子弹,但子弹却被弹开了。交火波及了一些平民。它开始把人像薯片一样吞进一个看起来像长着牙齿的腐烂食道里,然后……我失去了勇气。我逃跑了。我想我可能是唯一一个逃跑的人。从那以后我再也没敢看过警徽一眼。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was SWAT. By all rights I should be dead. We were called to control " +"\"riots\", which we all know were the first hordes. Fat lot of " +"good we were. Pretty sure we killed more civilians. Even among my crew, " +"morale was piss poor and we were shooting wild. Then something hit us, " +"something big. Might have been a bomb, I really don't remember. I woke up " +"pinned underneath the SWAT van. I couldn't see anything... but I could " +"hear it, . I could hear everything. I spent hours, maybe days " +"under that van, not even trying to get out." +msgstr "" +"我是SWAT特警队的。按理说我早就应该已经死了。我们被叫去控制\"暴乱\",现在我们都知道这是第一批 " +"尸潮。我们一点忙都没能帮上。很确信我们杀了更多平民。即使在我的队友中,士气也都很低落,而我们依旧疯狂射击。然后有什么东西袭击了我们,一些大家伙。可能是炸弹,我真的不记得了。我醒来时被压在一辆特警队警车下面。我什么也看不见……但我能听见,。我什么都能听到。我花了无数个小时,也许几天在那辆货车下,甚至都不想出去。" + +#: lang/json/talk_topic_from_json.py +msgid "But you did get out." +msgstr "但你确实出来了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Eventually yes. It had been quiet for hours. I was parched, injured, and " +"terrified. My training was maybe the only thing that kept me from freaking " +"out. I decided to try to pull myself out and see how bad my injuries were." +" It was easy. The side of the van was torn open, and it turned out " +"I was basically just lying under a little debris, with the ruins of the van " +"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " +"I could, and I slipped out. It was night. I could hear fighting farther " +"away in the city, so I went the other way. I made it a few blocks before I " +"ran into any ... I ran from them. I ran, and I ran, and I ran " +"some more. And here I am." +msgstr "" +"最终是的。已经安静了好几个小时了。我口渴得厉害,又受伤了,而且被吓坏了。我的训练也许是唯一能让我没发疯的原因。我决定试着把自己拉出来,看看我的伤势有多严重。结果很" +" " +"简单。警车的侧面被撕开了,原来我只是躺在一小块碎片下面,警车的残骸就在我周围。我甚至没有受太严重的伤。我捡起尽可能多的装备,然后溜了出去。那是个晚上。我能听见城市更远处还在战斗,所以我选了另一条路。我刚跑了几个街区就撞到了一大群" +" ……我逃离了它们。我不断逃啊逃,逃离一群又一群。然后我就在这了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just sittin' in lockup. They took me in the night before, for a " +"bullshit parole violation. Assholes. I was stuck in my cell when the cops " +"all started yelling about an emergency, geared up, and left me in there with" +" just this robot for a guard. I was stuck in there for two god-damn " +"days, with no food and only a little water. Then this big-ass zombie busted" +" in, and started fighting the robot. I didn't know what the fuck to think, " +"but in the fighting they smashed open my cell door, and I managed to slip " +"out." +msgstr "" +"我当时只是呆在看守所里。他们在大灾变前晚上把我抓进去的,因为我违反了什么假释条例。一群混蛋。我被困在我的牢房里,而警察们开始大声叫喊有紧急情况,开始拿装备,把我一个人留在那里,只有一个" +" " +"机器人当警卫。我在那里呆了该死的两天,没有食物,只有一点水。然后有只巨大无比的丧尸闯进来,开始和机器人搏斗。我那会儿不知道该想些啥东西,但在战斗中,它们砸开了我的牢房门,我设法溜了出去。" + +#: lang/json/talk_topic_from_json.py +msgid "Lucky you. How did you get away?" +msgstr "你真幸运。你是怎么逃出来的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was just chaos on the streets, man. But I'm used to chaos. You " +"don't live as long as I've lived and not know how to keep away from a fight " +"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." +" It was the fuckin' police robots. They knew I was in violation, and they " +"kept trying to arrest me." +msgstr "" +"那时候街上已经是一片 " +"混乱,伙计。但我已经习惯了混乱。等你活到我这一把年纪的时候,就会知道如何避免被卷入一场你赢不了的战斗。老实说,最让我担心的不是丧尸和怪物。而是那些该死的警察机器人。它们知道我已经违法,所以它们一直想逮捕我。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was lucky for . I was squatting in a warehouse out " +"on the edge of town. I was in a real place, and my crew had mostly" +" just been arrested in a big drug bust, but I had skipped out. I was scared" +" they were gonna think I ratted 'em out and come get me, but hey, no worries" +" about that now." +msgstr "" +"我想遇到 对我而言 幸运。我当时正偷偷住在城镇边缘的一间仓库里。我那时的处境十分 " +",我的同伴们大多在一次大缉毒行动中被捕了,但我却逃了出去。我很害怕他们会认为我出卖了他们然后来抓我,但是现在不用担心了。" + +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "哇,你真幸运。你是怎么知道 发生了的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" +"我只是不过是呆在仓库里,而不是在赞博尼亚。我能上网。在YouTube上看到了那些疯狂的视频直播,把我吓得屁滚尿流。不过我吃得很好,我拿了一堆罐装食品啥的,然后就舒服地蹲在那间仓库里。毕竟,我原本就计划在那里呆很长时间,同时想着怎么应付我的同伴们。" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "一定是什么东西把你赶出去了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" +"是啊。。一大群,领头的长着会发出红光的眼睛,一个令人毛骨悚然的乌黑发亮的混蛋,可没骗你。我不知道为啥它们从那么远来到我那里,也许是它们看到我在外面撒了泡尿,就这样。我朝它们开了几枪,但那个毛骨悚然的混蛋挥动着它的手,把它们又复活起来,于是我赶紧逃跑了出来。当我经历过这一切之后,我意识到也许那并不糟糕,反正我补给也都快用完了。从那以后,我一直靠我能搜刮到的补给生活,直到我遇见你。" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "关于那个领头丧尸你有什么建议吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" +"好吧,我是说,如果它身边像那样围了一群朋友,而它又能复活它们,我觉得它会是个超级可怕的混蛋。如果我能把它单独孤立出来的话,我想也许我可以把它干掉。另外,在我逃跑时,我设法和一只丧尸单挑,在剩下的家伙出现之前,我用棍子把它砸成了碎浆。领头的家伙想要把它复活,但它没有成功。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" +"好吧,我知道这听起来很疯狂,但我就早知道会发生今天这种事。就像,在那之前。你甚至可以问问我的心理医生,但是,我想她现在已经死了。在世界末日来临前一周我告诉过她关于我做的梦。真的!" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "你的梦是什么样的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "好吧,第一个梦我连续做了三周,每天晚上都是同一个。我梦见我拿着一根棍子跑过树林,与巨大的蜘蛛搏斗。真的!每天晚上。" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "好吧,不过这似乎没什么奇怪的。" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "哇,太疯狂了,我真不敢相信你真的梦见了 。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" +"好吧,不过,这只是个开始。那么,在它真实发生的前一周,在那个蜘蛛的梦之后,我半夜会起床去撒尿,然后才躺回床上,因为我有点害怕,对吧?然后我会做另一个梦,就像,我的老板死了,然后又复活了!几天后我在工作时,我老板的丈夫来我们的办公室,在那里他心脏病发作了,第二天我听说他真的就死而复活了!就和我的梦一个样,只不过是一个不同的人!" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "这可有点奇怪了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" +"可不是吗?还有呢!那么,在它真实发生的前一周,在那个蜘蛛的梦之后,我半夜会起床去撒尿,然后才躺回床上,因为我有点害怕,对吧?然后我会做另一个梦,就像,我的老板死了,然后又复活了!几天后我在工作时,我老板的丈夫来我们的办公室,在那里他心脏病发作了,第二天我听说他真的就死而复活了!就和我的梦一个样,只不过是一个不同的人!" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" +"可不是吗?总之,我还是会做一些奇怪的梦,但不再是关于未来的了。就像,自从世界末日以来,我做了很多可怕的梦。就像,每隔几个晚上,我就会梦到地球周围有一片布满黑色星星的空间,有那么一瞬间,它们都同时盯着地球,就像数十亿个小小的黑色眼球。然后它们眨了眨眼,望向其他地方,然后在我的梦中,地球和其他星球一样,也是一颗黑色星星,我仍然被困在它上面,孤零零的,令人毛骨悚然。这是最糟糕的一个。还有其他几个。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "和我多讲讲你那些奇怪的梦。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" +"好吧,嗯,有时候我梦见自己已经是个丧尸,只是没意识到罢了。我只是对自己而言表现正常,在我眼里的丧尸其实是正常人,而我眼里的正常人其实是丧尸。当我醒来时,我知道这是假的,因为如果它是真的,应该会有更多的正常人才对。因为他们实际上是丧尸。现在每个人都是丧尸了。" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "我想我们现在都会有这样的梦了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" +"可能吧。有时候,我也梦见自己就像一颗尘埃,漂浮在一个巨大而漠不关心的银河之中。那个梦让我很想念我的大麻贩子,下流的丹,要是他没被那只巨大的螃蟹怪物吃掉就好了。" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "可怜的家伙。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "我好不容易逃到了那些 紧急避难所中的一个,但几乎比我留在原地还要更糟糕。然后又从那里逃了出来,从那以后就一直在四处逃亡。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "你逃出来之后怎么活下来的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "我花了很多时间在森林里搜寻大黄和一些能食用的野菜,直到我鼓起勇气开始翻找那些死去怪物的尸体。我想我那时候是够孤注一掷的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" +"和大多数在暴乱中没有直接被杀的人一样。我去了那些被称为\"紧急避难所\"的 " +"死亡陷阱。事实上,我和其他三人一起在那里住了一段时间。其中有个我猜看过很多电影的家伙负责掌控局面,因为他看上去似乎真的知道外面发生了什么。剧透警报:他并" +" 不知道。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "你原来的同伴呢?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" +"当我们无畏的领导人决定把另一名不幸被咬伤的同伴强行干掉的时候,事情就变得糟糕了。她的丈夫对此特别强烈反对,我也对他没有什么信心;在彼时彼刻,他已经犯过很多次错了。他开始自己暗中盘算并动手杀了她。然后,她的丈夫决定礼尚往来,杀死了那个白痴。然后她重新复活成丧尸,我不得不又杀了她一次,还砸碎了我们的前领袖。不幸的是在这场纷争中,她给了她丈夫狠狠咬了一口,而他甚至无法鼓起勇气还击她。我他妈的并不是怪他。我们最终一起逃出去了,但这对他来说打击太大了,他的魂显然已经不在身体里面了……他被咬的伤口感染了,但最终另一只" +" 杀了他。然后我孤身一人。" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "你觉得发生了什么?你在附近看到那些家伙了吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" +"我没什么特别的,我不知道为什么我能活到现在。我和其他几个人一起被疏散了,但是我们到得太晚了,没赶上第二趟去联邦应急管理局营地的车。然后我们就被死人袭击了……我是那里唯一一个成功逃离并活下来的人。这一路上我都没敢回头看过一眼。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" +"他们本来准备把我和一群被疏散者们送到一个难民中心,但我们的大巴被你所能见过的体型最大的丧尸给砸烂了。它忙着追赶其他乘客,所以我做了所有人都会做的一件事,那就是他妈的赶紧跑得越远越好。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" +"我的避难所里被那些蜜蜂袭击了,它们体型就像狗一样大。我用一块2x4制式木料干掉了几只,但很快我就意识到要不赶紧逃到山里,要不就得给它们叮成猪头。接下来的事你都知道了。" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "巨型蜜蜂?多和我讲讲吧。" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "但蜜蜂通常并不好斗啊……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" +"是的,我肯定你见过它们,它们到处都是。就像那些老科幻电影里的东西一样。避难所里的其他人被蜇伤了,可不是开玩笑的。不过,我并没有呆在那里看看会不会有后遗症。我毫不惭愧地承认,我像只" +" 鸡一样逃跑了。" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "但蜜蜂通常不是并不好斗啊……你是说黄蜂吗?" + +#: 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 "好吧,请你原谅我没能停下来 问问它们是哪种杀人的虫子。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "对不起。你能告诉我更多关于它们的信息吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "好吧。很抱歉。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" +"嗯,我那会正在家,手机突然开始一直响警报,告诉我去一个紧急避难所。所以我就去了紧急避难所。然后紧急避难所渐渐变得拥挤起来,人们等着被送到难民中心,但是大巴却一直没有来。你一定已经知道接下来会发生什么了。一开始是恐慌,然后变成打斗。我没有留下来看看接下来会发生什么,我带着我能从锁柜里抢到的工具逃进树林里。几天后我回去了,但那地方被完全遗弃了。不知道那些人最后怎么样了。" + +#: 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 "这可是件难事。长话短说,我被疏散到一个联邦应急管理局营地,而理由是为了我所谓的安全,但幸运的是我逃了出来。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "跟我说说关于联邦应急管理局营地的事。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "你是怎么逃出来的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" +"太可怕了。我们被一辆改装过的校车带到那里,一共大约有三十人。你可能已经猜到问题所在了。车上有几个人受伤了,某个看过太多B级电影的笨蛋试图坚持说,任何\"被咬伤\"的人都会\"转变\"。他妈的白痴,对吧?我已经被咬过十几次了,而最糟糕的一次不过是得了一次严重感染而已。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "之后发生了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" +"那家伙开始闹事。人们已经很惊慌失措了。有个带着武装的家伙负责维护车上的秩序,他看着像个警察,但实际上他只是不过是被上头塞了一把枪的 " +"孩子。他试着平息事态,我想也许确实起了一点用,但\"杀死被感染者\"的那伙人还是被 " +"吓坏了,很明显,他们准备好一旦那个手臂上受伤的老奶奶开始口吐白沫时,就会跳出来大干一场。当我们到营地的时候他们又开始闹事了。那可对他们来说不太好。几个全副武装的士兵把他们拖走了,而我再也没见过他们。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" +"那地方很混乱。我只在那待了几个小时。他们有一台巨大的挖土机在警戒区里来回跑,挖了一个巨大的坑,而他们不让我们靠近。嗯,我设法溜了进去,看到他们在坑里倾倒了一堆又一堆的死人尸体,甚至当它们苏醒过来想爬出来的时候,也把泥土倒在他们身上。即便是在那之后我又遇见过许许多多操蛋的事情,它仍然时时刻刻萦绕在我的心头。当时我就知道我必须马上离开。幸运的是,第二天早上,我们被一只巨大的恐怖怪兽袭击,之后我就再也没见过那种恐怖怪兽了。当警卫们忙着应付怪兽的时候,我带上了我在前晚偷偷储藏下的补给品,然后我就他妈的离开了那里。还有几个人想和我一起从那个鬼地方逃出来,但据我所知,我是唯一的幸运儿。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "那是下一次的故事了。我不太喜欢回想那件事。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "对不起。跟我说说关于联邦应急管理局营地的事。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "很抱歉不该问你。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "很抱歉不该问你。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm not from around here... You can probably tell from the accent, I'm from" +" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " +"conference when stopped me. I was staying at a flee-ridden " +"little motel on the side of the road. When I got up for whatever was going " +"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " +"wearing the same grubby clothes from the night before. I thought he had " +"just slept there, but when he looked at me... well, you know what those " +"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" +" on the head with my tablet." +msgstr "" +"我不是这附近的人……也许你已经从口音听出来了,我是英国人。我是达特茅斯大学的博士生。我正要去麻省理工学院参加一个会议,而 " +" " +"让我停了下来。我住在路边一家满是跳蚤的小汽车旅馆里。当我起床吃早餐时,那个胖乎乎的该死老板正坐在办公桌前,穿着前一天晚上那件肮脏的衣服。我以为在那里睡着了,但它抬起头看着我……好吧,你知道丧尸的眼睛是什么样子的。然后它冲了过来,我下意识做出了反应。用我的平板电脑砸碎了它的头。" + +#: 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 "在 之前没什么特别的。当死人开始走路的时候,我做好充分准备,并开始把它们重新放倒。" + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "进展如何?" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "酷。" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "酷。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" +"差点被杀了。对付一只 " +"很简单,但是对付十只就有点多了,而对付一百只就是一个死亡陷阱。我陷得太深了,差一点没能把肠子留在肚子里并溜出来。在一家老汽车旅馆里固守了一段时间,慢慢养伤,想我下一步要做什么。就在那时我想明白了。" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "想明白了什么?" #: lang/json/talk_topic_from_json.py -msgid "This is a u_spend_cash response" -msgstr "玩家花费现金回应。" +msgid "Never mind. " +msgstr "别放在心上。" #: lang/json/talk_topic_from_json.py -msgid "This is a multi-effect response" -msgstr "多种效果回应。" +msgid "Never mind. " +msgstr "别放在心上。" #: lang/json/talk_topic_from_json.py msgid "" -"Before this started, I had a crappy job flipping burgers at Sambal's Grille." -" Losing that isn't a big deal. Losing my mom and dad hurts a lot more. " -"Last time I saw them alive, I just came home from school, grabbed a snack " -"and went to work. I don't think I even told my mom I loved her, and I was " -"pissed at my dad for some shit that really doesn't matter. Didn't " -"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." +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." msgstr "" -"在这一切发生之前,我在叁巴烤肉店有份蹩脚的工作,负责给汉堡翻面。失去它没什么大不了的。失去我的爸爸妈妈更让人伤心。上一次看到他们活着的时候,我刚从学校回来,拿了包零食然后就去上班了。我想我甚至没有告诉我妈妈我爱她,而我那会还因为一些" -" 的毫不重要的事情生我爸爸的气。那时候不重要,现在更不重要了。当我在工作的时候,一切都开始变得疯狂……军队进城,疏散警报响起。" - -#: lang/json/talk_topic_from_json.py -msgid "So, did you evacuate?" -msgstr "那么,你疏散了吗?" +"就是它了。我是为此而生的。在大街上,砸碎怪物的头。祈祷我能逃出去?我从没那样想过。活着。很重要。所以,自从我把自己困在那一次之后,我像疯了一样,一次次又回去干它们。从那以后可能杀了一千多只丧尸,我还是毫不厌倦。" #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't evacuate. I went home... saw some freaky shit on the way, but at " -"the time I just thought it was riots or drugs. By the time I got there, my " -"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 "" -"我没有撤离。我回家了……在路上看到了一些怪异的事,但当时我还以为是暴乱或者毒品。当我回到家的时候,我的父母已经走了。没有他们的踪迹。到处都乱七八糟的,东西散落一地,就像搏斗过一样,地板上还有血迹。" +msgid "It's good you found your calling. " +msgstr "很高兴你找到了你的使命。" #: lang/json/talk_topic_from_json.py -msgid "" -"I haven't found them yet. Whenever I see a , a little part of me is" -" afraid it's going to be one of them. But then, maybe not. Maybe they " -"were evacuated, maybe they fought and tried to wait for me but the military " -"took them anyway? I've heard that sort of thing happened. I don't know if " -"I'll ever know." -msgstr "" -"我还没找到他们。每当我看到一只 " -",我都会担心也许那就是他们变的。当然,也许不是。也许他们已经被疏散了,也许他们战斗过一阵子并试图等我,但军队还是带走了他们?我听说过这种事。我不知道我是否会得到答案。" +msgid "It's good you found your calling. " +msgstr "很高兴你找到了你的使命。" #: lang/json/talk_topic_from_json.py msgid "" -"I was a cop. Small town sheriff. We got orders without even really knowing" -" what they meant. At some point one of the g-men on the phone told me it " -"was a Chinese attack, something in the water supply... I don't know if I " -"believe it now, but at the time it was the best explanation. At first it " -"was weird, a few people - - fighting like rabid animals. Then it " -"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." +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" -"我那会是个警察。一座小镇里的治安官。我们刚接到命令还不完全明白它们的意思。直到电话里的一个男的告诉我,这是一次来自中国的袭击,是供水系统里的什么东西……我不知道我现在还是否相信,但当时这是最好的解释。一开始很奇怪,有几个人————像发疯的动物一样打架。然后情况就变得更糟了。我试图控制一切,但只有我和我的副官对抗整座暴乱的城镇。然后一切都不可收拾了。" +"哦,你知道的。有过一份工作和生活,诸如此类的废话,然后每个人都死了。呜呼。不过,我得和你实话实说:老实说,我觉得我更喜欢这样。每天为生存而战?我从来没有像现在这样觉得自己更像个活人。我杀了几百个混蛋。迟早它们中的一个会干掉我,但我倒下时我知道我做的是一件真正重要的事。" #: lang/json/talk_topic_from_json.py msgid "" -"A big-ass hole opened up right in the middle of town, and a " -"crawled out, right in front of the church. We unloaded into it, but bullets" -" just bounced off. Got some civilians in the crossfire. It started just " -"devouring people like potato chips into a gullet that looked like a rotting " -"asshole with teeth, and... Well, I lost my nerve. I ran. I think I might " -"have been the only person to escape. I haven't been able to even look at my" -" badge since then." +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" -"一个巨大无比的洞在镇中心打开了,还有一只 " -"爬出来,就在教堂门口。我们朝它狂泻子弹,但子弹却被弹开了。交火波及了一些平民。它开始把人像薯片一样吞进一个看起来像长着牙齿的腐烂食道里,然后……我失去了勇气。我逃跑了。我想我可能是唯一一个逃跑的人。从那以后我再也没敢看过警徽一眼。" +"李看,我根本不系这个地方滴人。当这一切发生的时候,我刚从南方开车来看我滴儿几。我本来住在一家汽车旅馆,一对军车路过,告诉我们要撤离到联邦应急管理局营地里去。" #: lang/json/talk_topic_from_json.py -msgid "" -"I was SWAT. By all rights I should be dead. We were called to control " -"\"riots\", which we all know were the first hordes. Fat lot of " -"good we were. Pretty sure we killed more civilians. Even among my crew, " -"morale was piss poor and we were shooting wild. Then something hit us, " -"something big. Might have been a bomb, I really don't remember. I woke up " -"pinned underneath the SWAT van. I couldn't see anything... but I could " -"hear it, . I could hear everything. I spent hours, maybe days " -"under that van, not even trying to get out." -msgstr "" -"我是SWAT特警队的。按理说我早就应该已经死了。我们被叫去控制\"暴乱\",现在我们都知道这是第一批 " -"尸潮。我们一点忙都没能帮上。很确信我们杀了更多平民。即使在我的队友中,士气也都很低落,而我们依旧疯狂射击。然后有什么东西袭击了我们,一些大家伙。可能是炸弹,我真的不记得了。我醒来时被压在一辆特警队警车下面。我什么也看不见……但我能听见,。我什么都能听到。我花了无数个小时,也许几天在那辆货车下,甚至都不想出去。" +msgid "Tell me about your son." +msgstr "跟我说说你儿子吧。" #: lang/json/talk_topic_from_json.py -msgid "But you did get out." -msgstr "但你确实出来了。" +msgid "So, you went to one of the FEMA camps?" +msgstr "那,你去了联邦应急管理局的一个营地?" #: lang/json/talk_topic_from_json.py msgid "" -"Eventually yes. It had been quiet for hours. I was parched, injured, and " -"terrified. My training was maybe the only thing that kept me from freaking " -"out. I decided to try to pull myself out and see how bad my injuries were." -" It was easy. The side of the van was torn open, and it turned out " -"I was basically just lying under a little debris, with the ruins of the van " -"tented around me. I wasn't even too badly hurt. I grabbed as much gear as " -"I could, and I slipped out. It was night. I could hear fighting farther " -"away in the city, so I went the other way. I made it a few blocks before I " -"ran into any ... I ran from them. I ran, and I ran, and I ran " -"some more. And here I am." +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." msgstr "" -"最终是的。已经安静了好几个小时了。我口渴得厉害,又受伤了,而且被吓坏了。我的训练也许是唯一能让我没发疯的原因。我决定试着把自己拉出来,看看我的伤势有多严重。结果很" -" " -"简单。警车的侧面被撕开了,原来我只是躺在一小块碎片下面,警车的残骸就在我周围。我甚至没有受太严重的伤。我捡起尽可能多的装备,然后溜了出去。那是个晚上。我能听见城市更远处还在战斗,所以我选了另一条路。我刚跑了几个街区就撞到了一大群" -" ……我逃离了它们。我不断逃啊逃,逃离一群又一群。然后我就在这了。" +"他住在加拿大北部,一个鸟不拉屎的地方,与他那疯框滴妻子和我三个孙子住在一起。他是一家石油天然气公司滴环境工程师。她有点像个嬉皮士。不过,我爱他们两个人,就我所知,他们都从这个糟糕烂摊子里逃出来了,就在荒郊野外。我猜他们会以为我死了,所以他们会避开这个鬼地方,这样最好。" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "你刚刚说你去过什么?" #: lang/json/talk_topic_from_json.py msgid "" -"I was just sittin' in lockup. They took me in the night before, for a " -"bullshit parole violation. Assholes. I was stuck in my cell when the cops " -"all started yelling about an emergency, geared up, and left me in there with" -" just this robot for a guard. I was stuck in there for two god-damn " -"days, with no food and only a little water. Then this big-ass zombie busted" -" in, and started fighting the robot. I didn't know what the fuck to think, " -"but in the fighting they smashed open my cell door, and I managed to slip " -"out." +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " msgstr "" -"我当时只是呆在看守所里。他们在大灾变前晚上把我抓进去的,因为我违反了什么假释条例。一群混蛋。我被困在我的牢房里,而警察们开始大声叫喊有紧急情况,开始拿装备,把我一个人留在那里,只有一个" -" " -"机器人当警卫。我在那里呆了该死的两天,没有食物,只有一点水。然后有只巨大无比的丧尸闯进来,开始和机器人搏斗。我那会儿不知道该想些啥东西,但在战斗中,它们砸开了我的牢房门,我设法溜了出去。" +"当然不会去。如果我让一个穿着尺寸过大制服滴细佬告诉我该怎么做,我就完蛋了。我把我的悍马装好,准备出发越野,我带了很多很多汽油,我甚至在边境检查所允许范围内尽可能多带了几把枪。我不知道我为什么该逃,而我也没有逃。" #: lang/json/talk_topic_from_json.py -msgid "Lucky you. How did you get away?" -msgstr "你真幸运。你是怎么逃出来的?" +msgid "Where did you go then?" +msgstr "那你去过哪了?" #: lang/json/talk_topic_from_json.py msgid "" -"It was just chaos on the streets, man. But I'm used to chaos. You " -"don't live as long as I've lived and not know how to keep away from a fight " -"you can't win. Biggest worry wasn't the zombies and the monsters, honestly." -" It was the fuckin' police robots. They knew I was in violation, and they " -"kept trying to arrest me." +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" msgstr "" -"那时候街上已经是一片 " -"混乱,伙计。但我已经习惯了混乱。等你活到我这一把年纪的时候,就会知道如何避免被卷入一场你赢不了的战斗。老实说,最让我担心的不是丧尸和怪物。而是那些该死的警察机器人。它们知道我已经违法,所以它们一直想逮捕我。" +"起初,我只是一直往北走,但最后我遇到了一道规模巨大滴军事封锁线。他们甚至有像电视上那种巨型步行机器人。我开始想上去看看,还没等我弄明白,他们就开火了!我差点就死了,但我还反应还很快。我急转弯掉头,加速离开。不过悍马受到了狠狠打击,我是直到发现它在高速路上漏油时才发现这点。又往前开了几英里,然后被困在一处无人区。我安顿下来然后开始四处游荡。我想我还是在向北走,只是以一种相当迂回滴方式,懂吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"I was lucky for . I was squatting in a warehouse out " -"on the edge of town. I was in a real place, and my crew had mostly" -" just been arrested in a big drug bust, but I had skipped out. I was scared" -" they were gonna think I ratted 'em out and come get me, but hey, no worries" -" about that now." -msgstr "" -"我想遇到 对我而言 幸运。我当时正偷偷住在城镇边缘的一间仓库里。我那时的处境十分 " -",我的同伴们大多在一次大缉毒行动中被捕了,但我却逃了出去。我很害怕他们会认为我出卖了他们然后来抓我,但是现在不用担心了。" +msgid "That's quite a story. " +msgstr "这个故事可真棒。" #: lang/json/talk_topic_from_json.py -msgid "" -"I'm not from around here... You can probably tell from the accent, I'm from" -" the UK. I was a PhD candidate at Dartmouth. I was halfway to MIT for a " -"conference when stopped me. I was staying at a flee-ridden " -"little motel on the side of the road. When I got up for whatever was going " -"to pass for breakfast, the fat bloody proprietor was sitting at his desk, " -"wearing the same grubby clothes from the night before. I thought he had " -"just slept there, but when he looked at me... well, you know what those " -"Zed-eyes look like. He lunged, and I reacted without thinking. Smacked him" -" on the head with my tablet." -msgstr "" -"我不是这附近的人……也许你已经从口音听出来了,我是英国人。我是达特茅斯大学的博士生。我正要去麻省理工学院参加一个会议,而 " -" " -"让我停了下来。我住在路边一家满是跳蚤的小汽车旅馆里。当我起床吃早餐时,那个胖乎乎的该死老板正坐在办公桌前,穿着前一天晚上那件肮脏的衣服。我以为在那里睡着了,但它抬起头看着我……好吧,你知道丧尸的眼睛是什么样子的。然后它冲了过来,我下意识做出了反应。用我的平板电脑砸碎了它的头。" +msgid "That's quite a story. " +msgstr "这个故事可真棒。" #: lang/json/talk_topic_from_json.py msgid "" @@ -104230,6 +105169,10 @@ msgid "" msgstr "" "没,电话来得太晚了。我已经看到地平线上的云了。蘑菇云,还有那些可怕的来自地狱的云。我听说可怕的怪物从那里面爬出来。我觉得在呆在我那间锁着的房子里更安全。" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "听到这消息我很难过。" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -104255,6 +105198,14 @@ msgid "" msgstr "" "我那时候在医院工作,然后事情就这么糟了。整个事都有点模模糊糊的。一段时间以来一直都有一些奇怪的报道,那些听起来令人难以置信的关于病人死后复活的事情,但大多数人还是照常工作。然后,到了末日来临前,一切都突然出现了。我们以为这是一次来自中国的攻击,而这也是我们所获知的消息。送来急救的人都发疯了,身上满是子弹和咬伤的伤口。在我班快上到一半的时候我……我崩溃了。我曾经见过比这更可怕的伤,但我……,我甚至没法谈起它。" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "认清现实。如果我们一起并肩作战我需要了解你更多。" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "不行,我做不到。就是,不行。" @@ -104312,6 +105263,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "你在屋顶上看到了什么?" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "谢谢你告诉我这一切。" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -104384,6 +105339,10 @@ msgstr "" " " "安静。最后,我的零食吃完了,于是在一个晚上,我鼓起勇气爬出一扇窗户,到城里去看看。有一段时间,我把那个地方用作基地,但医院周围太危险了,没法呆下去,所以我出发去寻找更绿的草场。然后我就到了这。" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "谢谢你告诉我。" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -104426,6 +105385,10 @@ msgstr "" "我哥哥和我出去打猎了。我们看到头顶上有许多直升机……巨大无比,军用型号,装满了疯狂的高端军事装备,就像你在电视上看到的那样。甚至还装了激光炮。它们正朝我们父母农场的方向飞走去。看到那些玩意确实震撼了我们,然后我们开始朝着回家的方向开……车刚开出了不久,我们就看到一个巨大的漂浮眼球从不知道哪个" " 鬼地方出现了。哈。真难相信我们现在所处的时代,让我不需要多做说明就能让你相信我说的是实话。" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "接下来发生了什么?" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -104529,6 +105492,264 @@ msgstr "" "有的啊,但是都很晦涩难懂。如果我能拿到帕特的笔记,也许能够破译出来,但我敢肯定那些笔记都在 " "中被烧毁了。他们炸了那些实验室,你知道的。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" +"当一切都失控的时候我很晚才被疏散。在城里被困了几天,躲在地下室里吃女童子军饼干和喝温过的麦根沙士。最后,我设法在 不被 " +"抓住的情况下逃了出来。我在一家废弃的购物中心里呆了几天,但我需要食物,所以我又进了树林里自食其力。这活计我做得不太好,所以很高兴你及时出现了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "当世界末日到来的时候我正患流感在家休养,当我身体恢复足够时逃进了一间商店里搜寻食品杂货……从那以后我就一直在跑路。" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "别这样,话别说一半啊。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" +"好吧,刚开始的几天我就有点迷迷糊糊。我知道外面有场风暴,但我以为那是发烧而在做疯狂的梦之类的事情。老实说,我可能应该早点去医院看病,但我想如果真的去了医院那我现在应该已经是个死人了。我不知道什么是梦,什么是真的大灾变。我记得去冰箱找点喝的,才注意到冰箱灯早灭了,水也是温的,我想那会是在我发烧之前吧。当我喝光最后一罐鸡汤的时候,我还是昏昏欲睡,所以我花了好一段时间才真正意识到我所在的大楼是多么黑暗又死气沉沉。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "你出去的时候发生了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" +"你可能还记得城市以前是什么样的。我想那会大概是大灾变后第四天。我一走出家门,就立马意识到发生了什么事,或者至少说意识到了我不知道发生了什么事。我看到一群暴徒正在砸一辆车,然后我注意到其中一个人正在猛击一个女人的头。我取消了去杂货店的购物计划,在他们看到我之前就跑回了我的公寓,并尽可能地躲在那里。随着死者的数量开始超过活人,一切变得相对平静起来,所以我开始从我的邻居们那里搜刮一切物品,必要的时候再重新杀死他们一次。最后," +" 在我的大楼里泛滥成灾,我不得不翻窗逃出来,骑着一辆旧摩托往深山里走。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "谢谢你告诉我这一切。" + +#: 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 "我妻子和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" + +#: 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 "我丈夫和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "和我说说那些植物怪物。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" +"有的事就是这样,你知道吗?这是世界末日。我不想再多谈这件事了。实话实说,在旧世界里,我从来都不觉得自己有活着的意义。而现在奇怪的是,我觉得我有一个目标了。你懂我吗?" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "是的,我明白。有时我觉得我是在大灾变后不久才真正开始存在的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "我想我们这些人能活到现在这么久,一定是有原因的,或者别的什么的。我不是说宗教原因,只是……我们活下来了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" +"哈哈,是啊,我明白你为什么会这么想了。我不是说末日很好。我只是想说,至少现在我知道我每天都在做什么。我宁愿杀掉一百只丧尸来换连上互联网或是找部烂电影晚上一起和……抱歉。我们换个话题吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" +"是的,你见过它们吗?它们是一朵 行尸走肉的花,中间有根 " +"大大的刺。它们成群捕猎。它们讨厌丧尸,我们用它们作为掩护来清除尸潮。不幸的是,这些植物有比 " +"更好的追踪猎物的方式。它们表现得似乎有智力……我差点就没能逃出来,只是因为它们被,呃,分散了注意力。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "听到你失去了爱人我很难过。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "只不过是另一个 爱情与失落的故事。我现在没心情讲故事了。" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "别介意。很抱歉我又提起了它。" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "我认同你的观点,但我不会这么做。到此为止。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "哦,。这和你无关,也和我们无关。" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "好吧,好吧。我曾经有个爱人。我失去了她。" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "好吧,好吧。我曾经有个爱人。我失去了他。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"当核弹开始落下,整个世界都变成地狱时,她一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的妻子,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" +" 活着回到了家。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"当核弹开始落下,整个世界都变成地狱时,他一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的丈夫,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" +" 活着回到了家。" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "你一定见过很糟糕的情况。" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "我猜家里的情况也不怎么样。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" +"是的,我真的做到了。我花了两天的时间徒步穿过这座城市,在垃圾箱和类似的地方露营。我通常在夜晚才出发,而且学到了避开军队才是正确方法。他们就是一个 " +" 磁铁,而且他们通常驻扎在怪物会过来的方向。这座城市不少地区起初还比较安静。有几块地方的人已经被疏散或赶走,而这些地方 " +" " +"不会去。后来,很多像我这样的人开始进入这些社区,所以我换了方式,开始跑步穿过被炸过的市区。无论如何,我不得不回家。然而,当我改变方式的时候,战斗已经渐渐停止了,我主要精力花费在躲避丧尸和其他怪物的注意上。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" +"第一个先兆是我必须从城中保存完好的社区穿过被烧毁的社区才能回到家。结果比我想的还要糟糕。就在我家外面有一个警察路障,有一对完全没用的自动炮塔坐在前面,无动于衷地看着丧尸们从眼前蹒跚而过。而且有人已经把它们重新编程杀死任何人,之前它只会朝非法入侵的人类开火。可真是个好时候啊,你总是可以相信政府机关会以最令人惊叹的方式弄砸各种事情。不管怎么说,房子本身就塌了一半,一辆特警队装甲车撞上了它。我想我知道我会看到些什么,但我已经走了这么远,我不会回头。" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "你这一路上一定看到过不少糟糕的事。" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "你进到房子里了吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我妻子还活着。她一直躲在地下室里,但被倒塌的地板压住了。当我找到她的时候,她已经失血过多了。我没办法把她弄出来,所以我给了她食物和水,和她呆在一起,牵着她的手,直到她去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我丈夫还活着。他一直躲在地下室里,但被倒塌的地板压住了。当我找到他的时候,他已经失血过多了。我没办法把他弄出来,所以我给了他食物和水,和他呆在一起,牵着他的手,直到他去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -104585,10 +105806,528 @@ msgid "" msgstr "" "最后丧尸来了。我早就想过它们会来的。在网络被切断之前,网上有大量的视频,足以说明到底发生了什么事。我整理好一批不错的装备,把补给品都装了包……当它们开始敲门时,我从后面溜了出去,走到了街上。然后就到这里了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" +"在 之前?谁还在乎呢?现在是一个新世界了,虽然是个很 " +"世界。但这个世界我们所拥有的世界,所以我们不要停留在过去,当我们应该好好利用现在剩下的那点东西。" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "我可以尊重这一点。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" +"老实说……我不记得了。我只能记得世界变成现在这个样子之前生活的一些模糊细节,但关于 " +"本身呢?全都是一团浆糊。我不知道我是怎么走到现在这一步的,也不知道这一切是怎么发生的。我想一定是我遇到些特别糟糕的事。或者我的头被狠狠揍了一顿。或者两者兼而有之。大概这些都发生过吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" +"这件事听起来会很疯狂,就在遇见你的大约一周前,我醒过来时发现自己一人在荒郊野外,冻得要死。我穿着衣服,头痛欲裂,什么都记不起来了。就像,我知道一些事情。我能说话,我有各种技能和知识……但我不记得它们是从哪里来的。我口袋里有一张驾照,这是让我知道自己名字的唯一方法。" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "你觉得发生了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "听起来确实有点疯狂……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" +"还是有一些线索的。比如,我头疼得厉害,持续了几天,但身上没有任何割伤或瘀伤。我周围的树上都有烧焦的痕迹和奇怪的割痕。不管我身上发生过什么事,我觉得肯定会是些奇怪的事。" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "你试着恢复过自己的记忆吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" +"嗯,虽然失忆这件事很奇怪,但老实说:我觉得可能这样会更好?既然发生了这一切,我敢打赌我的记忆不会是开开心心的。除了我的驾照,钱包里还有些孩子的照片……没能让我迸发出任何情感反应。我没在这附近看到过孩子。也许失去记忆是上天对我的怜悯。天啊,也许是某种精神分裂,我的大脑对自己做了这件事。老实说,现在我宁愿专心活下去,而不去想它。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" +"我知道这很疯狂。听起来像是兔巴哥动画里的假健忘症。看吧,怎么我认识兔巴哥,却不记得我是什么时候认识它的?就像,我记得兔巴哥,但我不记得我什么时候坐下来看过任何一场兔巴哥的动画。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "你刚刚还说了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" +"曾经的我已经离我而去了。所有的东西都在 " +"中被烧掉了。明白吗?而现在的我才刚刚开始了两天。我当时正从一只巨大无比的丧尸身边逃跑,像我一直在做的那样,而当我突然发现一根钢制的棒球棒就躺在地上的时候。我把它当作上天的预示,于是捡起来把那个蠢货砸成了一滩烂泥……就在那时我变成了现在的我。我还会逃跑,因为谁不是呢,但我现在也会站直了干一架。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "之后你又发生了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "就这样抛弃你的过去可不太健康……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" +"我继续前进,在必要的时候逃跑,在可能的时候战斗,就像其他人一样。现在我开始了解真实的自己了。那根棒球棒在一次对抗某只变态的会射出闪电的丧尸的战斗中丢了。它不断发出电弧电击我的球棒,所以我丢下它,并换成附近的一根2x4制式木料,但我最后不得不逃跑,把那根球棒丢在那了。那天我差点死了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "听好了,我说得很清楚,如果你继续找茬,我就要发火了。曾经的我已经走了。死了。我不在乎你的\"健康\",别 再问了。" + +#: 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 "我们别谈它了,好吗?想想就头疼。我已经失去了那么多人……我相信你也有。让我们精力集中在此时,此刻。" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "我可以尊重这一点。" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "有道理。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" +"我当时还没反应过来是 " +"。我碰巧离城市很远,远离了最坏的情况。我的车在高速公路上抛锚了,我等拖车等了几个小时。我终于在路边的灌木林里搭了个帐篷野营了;还好,因为一辆由死去的司机,你懂的,驾驶的半挂卡车撞上了我的车,把它变成了一道刹车痕。我为那些大灾变时还呆在城市里的混蛋们感到难过。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "你是怎么在野外活下来的?" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "你在头几天看到了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" +"哈,我自己也不完全明白。刚开始在野外的几天是非常艰苦,这是肯定的。我遇到了一场地狱一般的暴雨,雨水让我的皮肤有些被灼伤。我设法躲在一辆汽车下,躺在我的帐篷上。但那该死的东西毁了它,但总比毁了我好。不过,据我所知,我很幸运,那是我遇到过最糟糕的事。我没有碰到那些我所听说的袭击城市的恶魔怪兽,所以我想我很幸运。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" +"除了酸雨,我主要看到人们逃离城市。我试着远离道路,但我也不想在树林里迷路,所以我沿着路边较深处的树林走。我看到各种满载着疏散人员的汽车,大巴,卡车。大多数都直接开走了,但有很多是由于没有汽油和其他原因而停了下来。有些车装满了人和装备,以致于人们踌躇不前。拖延是一项死刑判决,因为死者是沿着道路来解决掉一个个幸存者的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" +"在它发生时,我正和我的朋友出去钓鱼。我不知道那些日子是怎么排起来的……但我们最早意识到世界末日来临的线索,是当我们被某种毒风吹倒时,里面有一种酸雾,灼伤了我们的眼睛和皮肤。我们不知道该怎么做,所以我们进屋休息,而当我们在屋里休息时,一种奇怪的灰尘落在了外面所有的东西上。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "酸雾过后发生了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" +"到了早晨,湖边的区域被一种粉红色的真菌覆盖了,周围有会行走蘑菇,朝空中射出一团团灰尘。我们不知道发生了什么事,但我们都不想留下找出真相。我们收拾好我们的东西,整理好小船,然后启程前往上游。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "你朋友怎么了?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "我们离开湖边几个小时后,她就生病了。呕吐,抱怨她浑身关节疼。我带她去了河边一家我认识的小商店,希望他们能帮点忙,或者至少知道发生了什么事。" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "我猜他们也不知道发生了什么。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" +"实际上,店里没人在。不过她的情况很危急,所以我闯了进去。我从商店的收音机里知道了更多关于城镇中的混乱的信息。给我朋友找了些止痛药和晕船药,但当我回到船上的时候……对她来说太晚了。" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "她死了?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" +"我希望是那样。那样对她而言是宽恕。她发出一声可怕的、令人窒息的尖叫,她的身体被撕碎了。蘑菇从她身上的各个部位破体而出。而我……我逃跑了。现在我希望我当时能让她摆脱痛苦,但现在回去就是自杀。" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "太可怕了。" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "太可怕了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" +"哦,伙计。我早就想说了。风早就吹了这么多年。我在城外建了一座LMOE避难所。而且,当然,还有我的好运:当中国发动攻击,世界末日来临时,我刚好在镇子几里外去参加一个工作会议。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "你怎么了?" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "你的避难所呢?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" +"我们的会议是在湖边的度假村里举行的。我们都在我们的手机上看到了紧急广播,但我是唯一在字里行间了解其真正含义的人:大规模的生物恐怖主义。我不打算留下来找出我的同事中有谁是卧底探员。虽然我赌五十块钱是小李。不管怎么说,我偷了联络人的皮卡然后直接回我的避难所。" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "你到那里了吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" +"不,我只跑出了两英里。我撞上了一种来自地狱的中国佬的生物武器,一头疯狂尖叫的 " +",它是由各种生物包括人类的手臂、腿和头部组成的怪物。我想我也许杀了它,但可以肯定的是皮卡被我撞坏了。我拿起行李袋就跑了,当然离开前给那家伙额外补了几颗子弹。我希望我再也不要见到那样的东西了。" + +#: 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 "我还没到那里。我每次尝试一次,我都会被 打断。谁知道呢,也许有一天会到那里的。" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "哦,伙计。我以为我准备好了。我本来把一切都计划好了。求生背包。上膛的枪。逃生路线图。后院地堡。" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "听起来好像没成功。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "嘿,我真的很想看那些地图。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" +"那取决于你对成功的定义。起码我还活着,不是吗?当地狱从天而降,怪物开始攻击城市时,我抓起我的东西,塞进了地堡。我的地面摄像机持续工作了许多天,我可以看到地面上发生的一切。我看着那些家伙大步走过。我还会在噩梦看到它们那种移动身体的方式,就像它们只在那里就会撕裂世界一样。我没有其他能做的事情。我看着它们把警察和军队撕成碎片,看着死者复活,开始和活人战斗。我看着街那头的好心老太太把我邻居家的狗的头扯下来。我看到一个士兵的身体抽搐生长,变成某种带电的绿巨人。我看着这一切在眼前发生。" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "你为什么离开你的地堡?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" +"老实说?我本来打算死的。在我看到这些之后,我有点疯了。我以为一切都结束了,我觉得没有必要去反抗它。我想我不会在地面上活过一分钟,但我不能让自己在地堡里结束这一切。我离开地堡,打算让" +" " +"把我干掉,但我能说什么呢?生存本能是一件有趣的事,我杀了地堡外的那些家伙。我想肾上腺素是我才是我真正需要的。它让我从那以后坚持了下来。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "是的,我有。我愿意需要,嗯,1000美元来说出这个故事。直接从ATM帐户走,现金卡可不行。" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "[$2000] 成交。" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "地图上的东西对我们都有好处。" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "不如你 赶紧交出来,在我 生气之前?" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "很抱歉换了话题。你刚才说了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "好的。就在这里。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "谢谢!你刚刚说了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "想得美。你想要地图就得付钱。" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "好吧。你刚才说了什么?" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "我因 而入狱,但我逃了出来。那可真是一段故事。" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "那么告诉我这段故事吧。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "你是因为什么进去的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "那本身就是个故事,我的朋友。我曾经拥有一处在全东海岸最大的种植园。哈,我所能告诉你的故事……但我不会说的。那一切都在我身后了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "那是因为一件……东西。一开始是一次大胆的决定。最后我制造了一种生化武器。它没有被使用,但是,哦,它失控了。" + +#: 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 "逃税。我是一名会计师,我用一些非常聪明的方式帮我的老板转移了一大笔钱。但聪明得还不够,结果就这样了……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "那听起来比实际情况酷多了:拥有一台未经许可的核加速器。" + +#: 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 "我被稍稍卷入了黑市器官交易。听起来可能比实际更糟……但实际也很糟。" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "多项罪名指控。我以前真的曾经很迷恋于冰毒。" + +#: 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 "故意伤害指控。我真的不想谈这件事,这么说吧,当我在看电影的时候你不会想要在我身边说话的,好吗?" + +#: 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 "你知道吗,我真的不想再谈论它了。这一切都已经被我抛在身后了,我想保持这种状态。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" +"好吧,我在错误的时间出现在错误的地点。那儿发生了一场群殴,我没有躲开,我和其他几个人扔进了监狱禁闭室,而另几个人则被送进了医务室。有些人看上去情况很糟糕,现在我很好奇他们中是否有人变成了第一批" +" 。" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "那你是怎么从监狱逃出来的?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" +"我听到了枪声,即便是在禁闭室里都能听到的枪声。并没听到多少尖叫声什么的。我第一反应是肯定出了什么事。接着,食物不再送过来了。然后灯灭了。我在那里面呆了几个小时,甚至几天,最后一道铁栏外的手电筒几乎晃瞎了我。是个警卫。他把我放了出来,告诉我发生了什么事。我当时以为他疯了,但他那种眼神……我相信了他。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "然后你们又做了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" +"我们把禁闭室里的其他人都放了出来。我们被困在里面,守卫机器人已经失控了,不让任何人出去,而除了警卫外其余的人最终都变成了丧尸。我们花了几天的时间砸碎所有" +" " +"尸体,试图找到一条安全的路绕过机器人。食物十分短缺。最后,我们选择了一个我们唯一能想到的最糟糕的计划:我们把一些储物柜拖到入口处,用它们作为盾牌,然后把它们推到离机器人足够近的地方,然后用武器干掉机器人的传感器。" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "计划真的成功了么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" +"比我想象的要好得多。我们以为机器人会朝储物柜开火,但我想它们把我们错误的当成同伴了。我们有六个人,对面有四个机器人,最后我们有四个人活着出来了。" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "其他逃出来的人呢?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" +"警卫独自一个人走了。他不相信我们,我也不怪他。另外两个人想当绿林好汉。我没法接受,所以我们分道扬镳了。我又有几次碰见了那个警卫。那时候我想他可能会我一起走,但我不太确定。我不认为他会接受这个提议,我在他眼里将永远个坏家伙。如果你想试试,我可以告诉你我最后碰见他的地方。就在我遇见你之前不久,他发展得还行,也许还留在那里。" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -104622,6 +106361,175 @@ msgstr "很难说。我不是有机化学家,但我做过地质化学。我不 msgid "Cool. What did you say before that?" msgstr "酷,你刚刚还说了什么?" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "我的故事。哈,没什么特别的。我曾有很多人,但他们已经都和主在一起了。我不明白祂为什么不把我也带走,但我想时机合适的时候一切都会水落石出的。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "你是说在宗教意义上,还是……?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" +"当然!很清楚,不是吗?那个……当末日来临,\"被提\"会来。而我却仍然在这里,我仍然不明白为什么,但我会把耶稣留在我的心中,经历即将到来的苦难。当一切过去之后,我相信祂会欢迎我进入天国。或者……或者其他类似的东西。虽然不像我曾经所想的那样,但预言就是这样的。" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "如果你错了呢?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "那你会怎么做?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" +"什么?你怎么能说这种话?我真不敢相信你看着眼前发生的这一切,除了末日审判日之外的没有任何可能。死者已经复苏,地狱大门已经打开,魔鬼的野兽在陆上行走,正义的人都被提进了主的王国。你还想要更多的证据?" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "那你会怎么做?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" +"我会坚持所信,一直祷告,击倒我所看见的一切地狱使者。这是我们剩下所能做的少数几件事,不是吗?我想也许我们太过懦弱,只能留下来继承这个人世。但我不太看好我们的胜算。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" +"和其他人一样。我背叛了上帝,现在我要付出代价。\"被提\"来了,而我被留下了。所以现在,我想我得留在这个人间地狱里四处游荡。我真希望当初我在主日学校里上能多听点课。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"我一个人住,住在城外很远的一间老房子里。我妻子在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去她是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" +"我一个人住,住在城外很远的一间老房子里。我丈夫在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去他是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" +"嗯,渐渐累积起来的。一开始是那场酸雨,烧坏了我的一辆拖拉机。如果不是那样的话现在我还会留在那里种地的……嗯,今年是个 " +"年头,我也没有多少值得干的活。然后就是四处爆炸之类,还有头顶上的直升机。我很害怕,拉上窗帘,不停地换频道。然后,突然有一天,没有可以换的频道了。只剩下紧急广播,一遍又一遍。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" +"这是第一件真正把我摇醒的事情。我并没有什么很亲密的朋友,但镇子里有些人我还是有点关心的。我发了很多短信,但我没意识到他们已经好几天没有回复过我了。我上了我的卡车,试图回到镇上。没过多久,我就遇到了高速公路上" +" 出没阻挡道路的连环车祸,从那时起,我就开始把这一切整合在一起了。最后我也没能够回到镇上。不幸的是,我领着 " +"回到了我的农场,不得不离开那里。总有一天会回去把它们都清除掉的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" +"我住在一个小镇的边缘。除了一间街角商店和加油站外没什么别的。我们听说了城市里发生的糟糕事,但我们没能亲眼看到多少,直到军队冲进镇子里来,试图在那里建立一个营地。他们想把我们都关在镇子里,而我可不想被关起来,所以我和我的狗巴克一起出发了,让他们留在镇子里闻屁去。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" +"巴克和我溜了出去,向东,朝我朋友的农场前行。巴克这个可爱的小傻瓜以为我们只是要去趟长途旅行。我没法在不被军中男孩们顺风听见的情况下开走卡车。于是我们跑进森林里,在一间松枝棚屋里扎营。然后收拾行李继续走。起初,我们沿着高速公路走了一会儿,但看到太多的军用卡车和大巴上挤满了疏散人员,而这时我们才第一次见到了" +" 。" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "巴克现在哪去了?" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "我想我知道接下来会怎样了。" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "我想我知道接下来会怎样了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" +"我们到了我朋友的农场,但是 军队抢先一步到了那里。一切都被封锁了,门口有一个警察路障。两座 炮塔中的一座…… " +" " +"打中了巴克。我也差点被打中。我设法让我的狗……让他出来了,这……这可不容易,必须用警车门作为盾牌,还必须先杀死一个警察丧尸。然后,当我还在哭泣的时候,巴克复活了。我不得不……。我……我说不出来。你知道的。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "听到巴克的这些事我很难过。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "听到巴克的这些事我很难过。" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -104759,6 +106667,66 @@ msgid "" msgstr "" "我们根本没能到纽波特。卡车被什么巨大的东西踩翻了。我甚至没能看到它,只是看到了一根巨大的黑绿相间的带刺的腿从车顶插进来,踩死了中尉。听到轮胎的磨擦声,然后就感到卡车被吊起来了。然后我们被那腿踢脱了出去,就像一坨狗屎从球鞋上甩出去那样。我不知道我是怎么活下来的。那家伙压过了我们,杀了我们大多数人。我想我一定是晕过去了一会儿。当我离开的时候,其他人重新复活站起来。长话短说,我活着,他们没有,然后我就跑了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "哦,这可是个不错的故事。 在我的婚礼那天发生了。" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "哦,抱歉…… " + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" +"是的,事后看来,那个日子真挑的不是时候,对吧?不过,我承认我是个胆小鬼。总之我们正准备在教堂结婚。对我来说幸运的是,我迟到了……一些尸体,我想大概是墓地里刚埋下的吧,已经复活起来,开始骚扰婚礼了。" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "你接下来做了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "你对这一切似乎异常冷静。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" +"我看到所发生的一切,就立马转身,朝反方向逃跑了。我以前看过很多丧尸题材的电影。我从家里拿了些东西,在一切变糟之前,设法离开了城市。当时我以为自己是个懦夫,但现在我知道,如果那时候留下来帮忙,我只会变成另一具血淋淋的尸体。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"好吧,我有个不切实际的奢望。这可能听起来很蠢,但我看我的未婚妻和她的哥哥,我的伴郎,在一切失控前成功钻进了他的皮卡里离开了。所以,在我再次遇到他们之前,我会继续相信他们依旧在外面某处,活得很好。比我们大多数人都要好。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"好吧,我有个不切实际的奢望。这可能听起来很蠢,但我看我的未婚夫和他的姐姐,我的伴娘,在一切失控前成功钻进了她的皮卡里离开了。所以,在我再次遇到他们之前,我会继续相信他们依旧在外面某处,活得很好。比我们大多数人都要好。" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "你刚刚还说了什么?" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "你好,伙计。" @@ -106133,6 +108101,44 @@ msgstr "你相位攻击了 %s" msgid " phase-strikes %s" msgstr " 相位攻击了 %s" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "推开" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "你推开了 %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr " 推开了 %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "你熟练地绊倒了 %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "熟练地绊倒了 %s " + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "穿刺" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "你无情地穿刺了 %s" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr " 无情地穿刺了 %s" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "换位迎击" @@ -107822,7 +109828,7 @@ 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 "一大片由附近建筑搜集而来的纤维物质,上面覆盖了黏糊糊的黄蜂唾液。无论之前这里的建筑是什么模样,早就被改造消失了。你可以毫不费力地砸碎它。" +msgstr "一大片由附近建筑搜集而来的纤维物质,上面覆盖了粘乎乎的黄蜂唾液。无论之前这里的建筑是什么模样,早就被改造消失了。你可以毫不费力地砸碎它。" #: lang/json/terrain_from_json.py msgid "walnut tree" @@ -109208,7 +111214,7 @@ msgstr "重型钢管" #: lang/json/terrain_from_json.py msgid "knock!" -msgstr "嘭!" +msgstr "咚!" #: lang/json/terrain_from_json.py msgid "thud thud." @@ -109216,7 +111222,7 @@ msgstr "砰砰。" #: lang/json/terrain_from_json.py msgid "knock knock." -msgstr "嘭嘭。" +msgstr "咚咚。" #: lang/json/terrain_from_json.py msgid "open secret" @@ -109418,6 +111424,26 @@ msgstr "编织" msgid "bullet pulling" msgstr "拆弹" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "分析" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "浓缩" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "分离" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "精密蒸馏" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "层析" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "卷毯" @@ -110209,6 +112235,18 @@ msgstr "custom_empty" msgid "canoe" msgstr "独木舟" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "两栖卡车" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "独木舟" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "竞速独木舟" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "木筏" @@ -111525,9 +113563,17 @@ msgstr "一盏十分昏暗的原子灯,采用内部核能供电,开启时照 #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." -msgstr "一盏十分明亮的探照灯,开启时照亮车外大片区域。" +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "一盏十分明亮的泛光灯,开启时照亮车外大片圆形区域。" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." +msgstr "一盏十分明亮的定向泛光灯,开启时照亮车外大片半圆形区域。安装时可以选择车灯的方向。" #: lang/json/vehicle_part_from_json.py msgid "headlight" @@ -111542,6 +113588,19 @@ msgid "" "the front." msgstr "一盏明亮的探照灯,开启时照亮车外一片锥形区域。安装时可以选择车灯方向,多盏方向不同的车灯能照亮载具四周。" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "广角车头灯" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "一盏明亮的探照灯,开启时照亮车外一片广角锥形区域。安装时可以选择车灯方向,多盏方向不同的车灯能照亮载具四周。" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -111850,6 +113909,36 @@ msgstr "宽车轮(可转向)" msgid "A wooden wheel." msgstr "一个木制车轮。" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "一块木板,可以把水挡在船外。" + +#. ~ 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 "一块坚硬的塑料板,可以把水挡在船外。" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "一块金属板,可以把水挡在船外。" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "一块轻便而先进的碳素纤维板,可以把水挡在船外。" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "手桨" @@ -113528,6 +115617,12 @@ msgstr "这把工具非常好,但你还是想要用把手术刀。" msgid "You dissect the corpse with a trusty scalpel." msgstr "你使用一把可靠的手术刀解剖了这具尸体。" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "你使用一套精密的外科手术刀系统解剖了这具尸体。" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -113942,8 +116037,8 @@ msgid "Repeat once" msgstr "重复一次" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "不断重复" +msgid "Repeat until reinforced" +msgstr "重复直至强化" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -113953,11 +116048,24 @@ msgstr "重复直至修复(不强化)" msgid "Repeat until success/failure/level up" msgstr "重复直至 成功/失败/升级" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "返回物品选择" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "你的 %s 用光了能量" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "修补什么?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "你没有可以用 %s 来修理的物品。" + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "你无法从中学习到新东西。" @@ -113965,13 +116073,18 @@ msgstr "你无法从中学习到新东西。" #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" msgstr "" -"%s\n" -"成功率:%.1f%%\n" -"损坏率:%.1f%%" +"%s %s\n" +"成功率:%.1f%%\n" +"损坏率:%.1f%%" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." +msgstr "你的 %s 已经是完好的了。" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -114025,6 +116138,11 @@ msgstr "你结束了等待。" msgid "%s finishes with you..." msgstr "你结束了 %s……" +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "%s 结束了和你的闲聊。" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "你辗转反侧……" @@ -114100,6 +116218,11 @@ msgstr "你完成了%s的挖掘。" msgid "You finish filling up %s." msgstr "你完成了%s的夯填。" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "和你的 %s 一起玩耍让你觉得好过了些。" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "你打开了你的刮胡刀工具包,开始刮胡子" @@ -114108,6 +116231,20 @@ msgstr "你打开了你的刮胡刀工具包,开始刮胡子" msgid "You give your hair a trim." msgstr "你修了修你的毛发" +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "你拆解了 %s。" + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "你清空了你的 %s。" + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "你收获了所有可能的耕作区。" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "你把这里的土地翻开。" @@ -114116,6 +116253,15 @@ msgstr "你把这里的土地翻开。" msgid "You tilled every tile you could." msgstr "你耕种了所有的能够耕种的地。" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "你用光了 %s" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "你施肥了所有可能的耕作区。" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "你种下了所有能种的种子。" @@ -115335,6 +117481,10 @@ msgstr "呼吸的" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "正在非常轻微的有规律的收缩扩张,如同呼吸一般" +#: src/artifact.cpp +msgid "dead" +msgstr "死亡的" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "有刺骨的冰冷触感" @@ -116644,8 +118794,9 @@ msgstr "你静静地待着,专心注视着天花板上有趣的岩石纹路。 #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "能量:%i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "生化能量:%i/%i" #: src/bionics_ui.cpp msgid "" @@ -117675,7 +119826,7 @@ msgstr "浅灰" #: src/color.cpp msgid "dark gray" -msgstr "dark_gray" +msgstr "深灰" #: src/color.cpp msgid "light red" @@ -118122,12 +120273,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "文件损坏,请按任意键……" #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." -msgstr "" -"机器向你眼球中注射了骨浆和LSD\n" -"(一种中枢神经幻觉剂)的混合溶液。" +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "这台机器迅速地把折断的 %s 接上并固定好。" #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -119099,7 +121247,7 @@ msgstr " 吸了一口 %s。" #: src/consumption.cpp #, c-format msgid "You assimilate your %s." -msgstr "你吸了 %s 。" +msgstr "你吸了一口 %s 。" #: src/consumption.cpp #, c-format @@ -119207,6 +121355,62 @@ msgstr "你尽情享用了蜂蜜。" msgid "You can't finish it all!" msgstr "你无法将它吃完!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "暗影们越来越近了。" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "你有种不祥的预感。" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "一种强烈的恐惧感涌上了你的心头。" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "你开始起鸡皮疙瘩。" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "他们会来抓你的。" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "这也许是个坏主意……" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "你这次真的会搞砸的,不是吗?" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "你得保持警惕。他们总是会盯着你的……" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "错错错错一错再错" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "保持冷静,你这一次一定会挺过来的。" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "你开始变得非常紧张了。" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "在你视野边缘有什么东西正在抽搐。" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "他们知道你都做了些什么……" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "你觉得自己比平时更疯狂了。" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "你狼吞虎咽,为冬眠做着准备。" @@ -119696,11 +121900,11 @@ msgstr "配方是否记住" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"默认搜索制造成品名称。可添加字符及冒号(:)前缀按特定条件搜索。\n" +"默认搜索制造成品名称。可添加字符及冒号(:)前缀按特定条件搜索。多个条件间按逗号(,)分隔开。\n" "\n" "示例:\n" @@ -119989,7 +122193,7 @@ msgstr "希望传送到大地图的那个位置?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "你传送到大地图(%d,%d,%d)。" -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "你" @@ -124313,7 +126517,7 @@ msgid "" " Chopping this vehicle:\n" "%s" msgstr "" -" 拆卸载具:\n" +"拆卸载具:\n" "%s" #: src/faction_camp.cpp @@ -124786,16 +126990,16 @@ msgstr "引擎:%25s\n" #: src/faction_camp.cpp #, c-format msgid ">Status: %24d%%\n" -msgstr "> 车辆状态:%24d%%\n" +msgstr "> 状态:%24d%%\n" #: src/faction_camp.cpp #, c-format msgid ">Fuel: %25s\n" -msgstr "> 燃料类型:%25s\n" +msgstr "> 燃料:%25s\n" #: src/faction_camp.cpp msgid "---- Fuel Storage & Battery ----\n" -msgstr "---- 燃料及电池 ----\n" +msgstr "---- 燃料及电池 ----\n" #: src/faction_camp.cpp msgid "Estimated Chop Time: 5 Days\n" @@ -125968,6 +128172,10 @@ msgstr "显示调试信息" msgid "Crash game (test crash handling)" msgstr "强制游戏崩溃(测试崩溃处理)" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "生成地图事件" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "返回主菜单" @@ -126265,22 +128473,25 @@ msgid "Underground" msgstr "地下" #: src/game.cpp -msgid "Weather:" +msgid "Weather :" msgstr "天气:" #: src/game.cpp -msgid "Temperature:" +msgid "Temp :" msgstr "温度:" -#: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "月相%s" - #: src/game.cpp msgid "Lighting:" msgstr "光照:" +#: src/game.cpp +msgid "Deaf!" +msgstr "失聪!" + +#: src/game.cpp +msgid "Sound: " +msgstr "声音:" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -126584,6 +128795,11 @@ msgstr "丢下全部物品" msgid "Attach bag" msgstr "带上背包" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "和 %s 玩耍" + #: src/game.cpp msgid "Untie" msgstr "解除" @@ -126658,6 +128874,11 @@ msgstr "%1$s 已经超载了。无法转移你的 %2$s。" msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "你的 %1$s 的 %2$s 没有空间了!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "花几分钟和 %s 一起玩耍?" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "真的终结这个丧尸奴仆吗?" @@ -127414,63 +129635,6 @@ msgstr "你没有可以清空的物品。" msgid "You're not wielding anything." msgstr "你没有手持任何东西。" -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "你将 %s 放进物品栏。" - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "%s 已经空了!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "液体无法在当前状态下被倒出!" - -#: src/game.cpp -msgid "Unload what?" -msgstr "清空什么?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "你不能清空 %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "你不能清空可充电 %s 的电量!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "%s 没有充电。" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "%s 没有被装填。" - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "你拆解了 %s。" - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "你清空了你的 %s。" - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "你回收了 %i 单位的钚。" - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "你不能移除部分耗尽的钚!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -128942,10 +131106,6 @@ msgstr "是。" msgid "Yes, and save game before sleeping." msgstr "是,并且在睡觉前存档。" -#: src/handle_action.cpp -msgid "No." -msgstr "否" - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "睡觉前你可能希望关掉这些东西。" @@ -129023,6 +131183,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "将播种附近的\"农场:耕作区\"。耕作区需要设置好所播种的种子,物品栏中需要有对应种子。" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "施肥耕作区" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "施肥耕作区……你没有肥料" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "将施肥附近的\"农场:耕作区\"。" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "收获耕作区" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "将收获附近的\"农场:耕作区\"上的成熟作物。" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "你需要一个挖掘工具。" @@ -129773,10 +131953,23 @@ msgstr "种子的绽放更迅速了……" msgid "The seed blossoms into a flower-looking fungus." msgstr "种子绽放成一种花朵外形的真菌。" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "区块无作物" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "区块已施肥" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "这株 %s 已经施过肥了。" +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "准备为 %s 施肥,但没有肥料。" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "你为 %s 施肥了 %s。" #: src/iexamine.cpp #, c-format @@ -129792,6 +131985,11 @@ msgstr "给 %s 施肥" msgid "Use which fertilizer?" msgstr "使用肥料?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "这株 %s 已经施过肥了。" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "这个炭窑已经装满了木炭。" @@ -131610,6 +133808,10 @@ msgstr "装填修正:" msgid "Minimum strength required modifier: " msgstr "最低力量需求修正:" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "增加模组位置:" + #: src/item.cpp msgid "Used on: " msgstr "用于:" @@ -131618,6 +133820,10 @@ msgstr "用于:" msgid "Location: " msgstr "位置:" +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "不兼容模组位置:" + #: src/item.cpp msgid "Covers: " msgstr "覆盖部位:" @@ -132131,7 +134337,7 @@ msgstr "完成还需要 %s。" #: src/item.cpp src/iuse_actor.cpp #, c-format msgid "%1$s on the %2$s is: " -msgstr "%1$s 在 %2$s 上的是:" +msgstr "%2$s 上 %1$s 着:" #: src/item.cpp src/options.cpp msgid "Note: " @@ -132476,6 +134682,11 @@ msgstr "不兼容 弹壳收集器" msgid "must be unloaded before installing this mod" msgstr "在安装这个模组前必须退弹" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "不能被安装在有 %s 的武器上。" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -132752,7 +134963,7 @@ msgstr "你抽了一口 电子烟。" #: src/iuse.cpp msgid "You inhale some vapor from your advanced electronic cigarette." -msgstr "你从高级电子香烟里吸了一些蒸汽。" +msgstr "你吸了一口高级电子香烟中的烟雾。" #: src/iuse.cpp msgid "You don't have any nicotine liquid!" @@ -132937,7 +135148,7 @@ msgstr "你吸了一口哮喘吸入器。" #: src/iuse.cpp #, c-format msgid "You breathe deeply from the %s" -msgstr "你从 %s 里深深地吸了一大口。" +msgstr "你深深地吸了一大口 %s 。" #: src/iuse.cpp msgid "This looks unhealthy, sure you want to drink it?" @@ -135095,13 +137306,8 @@ msgid "No music on device" msgstr "设备上没有音乐" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "配方:%s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "在墨水屏上查看配方" +msgid "View recipes on E-ink screen" +msgstr "在电纸书上查看配方" #: src/iuse.cpp msgid "Your collection of monsters" @@ -135170,13 +137376,8 @@ msgid "You turned on music on your %s." msgstr "你让 %s 开始播放音乐。" #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "选择查看的配方:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "你让电子墨水屏显示出 %s 的配方。" +msgid "List recipes:" +msgstr "列出配方:" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -135232,10 +137433,6 @@ msgstr "上传照片到记忆卡" msgid "No photos in memory" msgstr "内存中没有照片" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "你决定还是不要闪坏自己眼睛了。" - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "这里实在没什么意思的东西。" @@ -135268,6 +137465,10 @@ msgstr "%s 挡住了你的拍摄角度。" msgid "This photo is better than the previous one." msgstr "这张照片比前一张好。" +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "你自拍了一张照片。" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -136242,7 +138443,7 @@ msgstr "你试着分割 %s 回收材料。" #, c-format msgid "Salvaged %1$i %2$s." msgid_plural "Salvaged %1$i %2$s." -msgstr[0] "回收了%1$i %2$s。" +msgstr[0] "回收了 %1$i %2$s。" #: src/iuse_actor.cpp #, c-format @@ -136533,15 +138734,6 @@ msgstr "光线太暗,无法进行!" msgid "Your tool does not have enough charges to do that." msgstr "工具没有足够的使用次数或能量。" -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "修补什么?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "你没有可以用 %s 来修理的物品。" - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -136823,12 +139015,6 @@ msgstr "你已经安装了该生化插件的升级版本。" msgid "Remove which modification?" msgstr "移除那个修改?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "你将 %1$s 从 %2$s 中移除。" - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "尚未被改造。" @@ -138366,6 +140552,10 @@ msgstr "可破坏 " msgid "Diggable. " msgstr "可挖掘 " +#: src/map.cpp +msgid "Plowable. " +msgstr "可耕种 " + #: src/map.cpp msgid "Rough. " msgstr "粗糙 " @@ -140473,6 +142663,21 @@ msgstr "这个MOD需要 Lua 支持" msgid "This mod requires Lua support" msgstr "这个MOD需要 Lua 支持" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "%s 朝你射出一根刺,但你躲开了。" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s 射中了你!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "%s 朝你射出一根刺,但是被装甲弹开了。" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -141098,11 +143303,6 @@ msgstr "%s 试着把你拖过去,但你避开了!" msgid " resist the %s as it tries to drag them!" msgstr "%s 试着把 拖过去,但被避开了!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s 射中了你!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "你感觉到毒素注入了你的体内!" @@ -142152,10 +144352,42 @@ msgstr "极度受创" msgid "It is nearly dead!" msgstr "濒临死亡!" +#: src/monster.cpp +msgid " Difficulty " +msgstr "难度" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "难度" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "极低威胁。" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "低威胁。" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "中威胁。" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "高威胁。" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "极高威胁。" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "致命威胁!" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "这是%s。%s" +msgid "This is a %s. %s %s" +msgstr "这是 %s。%s %s" #: src/monster.cpp #, c-format @@ -142963,12 +145195,10 @@ msgstr "点数" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(按 %s 切换)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "排序:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "排序:%1$s(按 %2$s 切换)" #: src/newcharacter.cpp msgid "Multiple pools" @@ -143536,14 +145766,10 @@ msgstr "NPC:%s" msgid "Wielding a %s" msgstr "手持着 %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "穿着:" -#: src/npc.cpp -msgid "Wielding: " -msgstr "手持:" - #: src/npc.cpp msgid "Completely untrusting" msgstr "完全不信任" @@ -144163,6 +146389,10 @@ msgstr "如果你感兴趣的话,我这里正好需要些帮手。" msgid " If you are interested, I have another job for you." msgstr "你有兴趣的话,我这还有个活。" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "交易愉快!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "你刚刚问我要过东西了,晚点再说吧。" @@ -144549,17 +146779,17 @@ msgstr "是的,让我们接着训练 。" msgid "%s ( cost $%d )" msgstr "%s (花费 $%d)" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s:%d -> %d (花费 $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "OK,谢谢。" @@ -144736,14 +146966,14 @@ msgstr "不要清除障碍物。" msgid "You can bash obstacles." msgstr "可以清除障碍物。" -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "疲倦的时候就睡觉吧。" - #: src/npctalk.cpp msgid "Stay awake." msgstr "任何时刻都保持清醒。" +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "疲倦的时候就睡觉吧。" + #: src/npctalk.cpp msgid "Stay quiet." msgstr "保持安静,不要随意跟我说话。" @@ -144760,14 +146990,14 @@ msgstr "不用理会尸体。" msgid "Smash zombie corpses." msgstr "砸碎丧尸尸体。" -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "记得随手关门。" - #: src/npctalk.cpp msgid "Leave doors open." msgstr "记得让门开着。" +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "记得随手关门。" + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "设置捡起物品的规则。" @@ -144846,7 +147076,7 @@ msgstr "没有可接管的派系营地!" msgid "%s has abandoned the camp." msgstr "%s 废弃了其所管理的营地。" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "拳头" @@ -144915,6 +147145,23 @@ msgstr "%1$s 给了你一个 %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "%1$s 给了你 %2$d 个 %3$s" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "你没有 %1$s!" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "你给了 %1$s 1 个 %2$s" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "你给了 %1$s %2$d 个 %3$s" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "我不相信你,不会吃的……" @@ -145067,6 +147314,16 @@ msgstr "%s 给你理了一个体面的发型……" msgid "%s gives you a decent shave..." msgstr "%s 给你仔细修剪了一下胡须……" +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "与 %s 进行了亲切友好的交谈……" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "与 %s 进行了亲切友好的交谈。" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -147060,13 +149317,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "举例:-pipe,chunk,steel" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" -msgstr "搜索[c]类别,[m]材料,[q]特性:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" +msgstr "搜索[c]类别,[m]材料,[q]特性或[d]拆解零件:" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "示例:c:食物,m:铁,q:锻造" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "示例:c:食物,m:铁,q:锻造,d:钢管" #: src/output.cpp msgid "unknown" @@ -147180,7 +149437,7 @@ msgstr "距离目标:%d" #: src/overmap_ui.cpp msgid "Use movement keys to pan." -msgstr "使用移动键进行平移。" +msgstr "使用方向键平移地图。" #: src/overmap_ui.cpp #, c-format @@ -147198,11 +149455,11 @@ msgstr "颜色代码:" #: src/overmap_ui.cpp msgid "Type GLYPH:TEXT to set a custom glyph." -msgstr "键入 符号:文本 来设置自定义符号。" +msgstr "输入\"符号:文本\"可自定义符号。" #: src/overmap_ui.cpp msgid "Type COLOR;TEXT to set a custom color." -msgstr "键入 颜色;文本 以设置自定义颜色。" +msgstr "输入\"颜色;文本\"可自定义颜色。" #: src/overmap_ui.cpp msgid "Examples: B:Base | g;Loot | !:R;Minefield" @@ -147401,6 +149658,10 @@ msgstr "捕捉/释放动物" msgid "Load or unload a vehicle" msgstr "装载/卸下载具" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "重新装填播种机" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -147563,6 +149824,11 @@ msgstr "为了不让里面的液体洒出来,你把 %1$s 放在 %2$s 上。" msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "为了不让里面的液体洒出来, 把 %1$s 放在 %2$s 上。" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "你" + #: src/player.cpp msgid "your" msgstr "你的" @@ -147578,7 +149844,7 @@ msgstr "装甲" #: src/player.cpp msgid "Your thick scales get in the way." -msgstr "你的厚鳞片阻碍了你。" +msgstr "你的厚重鳞片阻碍了你。" #: src/player.cpp msgid "Your chitin gets in the way." @@ -147869,8 +150135,9 @@ msgstr "全部生化插件: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "能量:%d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "生化能量:%d/%d" #: src/player.cpp msgid "Weapon:" @@ -147956,6 +150223,14 @@ msgstr "自己大声喊叫!" msgid "The sound of your voice is almost completely muffled!" msgstr "你的声音模糊得不明所以了!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "一个模糊的声音" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "自己含混的喊叫" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "你的声音明显含混不清!" @@ -148382,7 +150657,7 @@ msgstr "没有足够的 %s 可抽取。" #: src/player.cpp msgid "You cough heavily." -msgstr "你咳的很厉害。" +msgstr "你咳得很厉害。" #: src/player.cpp msgid "a hacking cough." @@ -148619,10 +150894,6 @@ msgstr "你为什么要跟着我?" msgid "This place is dangerous, you shouldn't be here." msgstr "这地方太危险了,你不该在这。" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "你到这来做什么?" - #: src/player.cpp msgid "That's not true, is it?" msgstr "那不是真的,对吧?" @@ -148915,11 +151186,6 @@ msgstr "你的视觉中枢一定是出问题了……" msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "你的辐射传感器察觉到了异常。" -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "你的辐射侦测徽章从 %1$s 变成 %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "随着你的能源系统过载,你的胸口如火烧一般。" @@ -149067,18 +151333,23 @@ msgstr "你不停颤抖的腿把自己绊倒了。" msgid "You fall over!" msgstr "你摔倒了!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "你的辐射侦测徽章从 %1$s 变成 %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format msgctxt "memorial_male" msgid "Broken %s began to mend." -msgstr "伤残的 %s 开始自愈。" +msgstr "折断的 %s 开始自愈。" #: src/player.cpp #, c-format msgctxt "memorial_female" msgid "Broken %s began to mend." -msgstr "伤残的 %s 开始自愈。" +msgstr "折断的 %s 开始自愈。" #. ~ %s is bodypart #: src/player.cpp @@ -149536,6 +151807,53 @@ msgstr "你不能将物品放在那里!" msgid " can't place items here!" msgstr " 不能将物品放在那里!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "你将 %s 放进物品栏。" + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "%s 已经空了!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "液体无法在当前状态下被倒出!" + +#: src/player.cpp +msgid "Unload what?" +msgstr "清空什么?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "你不能清空 %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "你不能清空可充电 %s 的电量!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "%s 没有充电。" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "%s 没有被装填。" + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "你回收了 %i 单位的钚。" + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "你不能移除部分耗尽的钚!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -149548,6 +151866,12 @@ msgid "Your %s has %d charge but needs %d." msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "你的 %s 有 %d 单位电量,但需要 %d 单位。" +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "你将 %1$s 从 %2$s 中移除。" + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -149978,7 +152302,7 @@ msgstr "毁坏" #: src/player.cpp #, c-format msgid "This task is too simple to train your %s beyond %d." -msgstr "这对你来说轻而易举,对把 %s 技能练过 %d 级没有任何帮助。" +msgstr "这对你来说轻而易举,无法训练 %s 技能超过 %d 级。" #: src/player.cpp #, c-format @@ -149994,6 +152318,10 @@ msgstr "你感到这个级别的 %s 工作实在是太简单了。" msgid "You resume your task." msgstr "你恢复了你的工作。" +#: src/player.cpp +msgid "Weapon : fists" +msgstr "武器:拳头" + #: src/player.cpp msgid "Wield what?" msgstr "手持什么?" @@ -150032,6 +152360,14 @@ msgstr "你停止搬运地面上的物品。" msgid "Your body strains under the weight!" msgstr "你的身体由于负重过高而感到疼痛!" +#: src/player.cpp +msgid "Wielding: " +msgstr "手持:" + +#: src/player.cpp +msgid " Traits: " +msgstr "特性:" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -150230,8 +152566,8 @@ msgstr "累赘度和保暖度" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "生化能量:%1$d" +msgid "Bionic Power: %1$d" +msgstr "生化能量:%1$d" #: src/player_display.cpp msgid "EFFECTS" @@ -150752,14 +153088,6 @@ msgstr "死于哮喘发作。" msgid "You wheeze and gasp for air." msgstr "你努力的呼吸着空气,发出呼啦呼啦的哮喘声。" -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "你觉得自己的骨头像橡胶一样,融化并重新愈合了。" - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "你感到骨头好像快碎了。" - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "你的头隐隐作痛。" @@ -151467,7 +153795,7 @@ msgstr "饱食超量" #: src/sidebar.cpp msgid "Sated" -msgstr "饱食过量" +msgstr "吃饱" #: src/sidebar.cpp msgid "Full" @@ -151532,15 +153860,6 @@ msgstr "寒冷!%s" msgid "Freezing!%s" msgstr "冻僵!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "失聪!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "声:%d" - #: src/sidebar.cpp msgid "Parched" msgstr "极度脱水!" @@ -151563,7 +153882,7 @@ msgstr "饮水超量" #: src/sidebar.cpp msgid "Hydrated" -msgstr "饮水过量" +msgstr "喝足" #: src/sidebar.cpp msgid "Slaked" @@ -152815,6 +155134,20 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "加速度:%3d %s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" +"水中安全/最高速度: %3d/%3d %s" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "水中加速度:%3d %s/t" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -152822,21 +155155,22 @@ msgstr "质量: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "载货量: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "载货量: %s/%s %s" #: src/veh_interact.cpp msgid "Status:" msgstr "车辆状态:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "损坏最重(无法修理):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "损坏最重:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "损坏最重(无法修理):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "需要修理:" @@ -152866,6 +155200,11 @@ msgstr "静态阻力:%5d" msgid "Offroad: %4d%%" msgstr "越野:%4d%%" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "吃水: %4.2f 米" + #: src/veh_interact.cpp msgid "Name: " msgstr "名字:" @@ -153076,9 +155415,9 @@ msgid "Could not find base part in requirements for %s." msgstr "未能找到安装 %s 所需的基础部件。" #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "选择新车灯的朝向。按空格键继续。" +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "选择新 %s 的朝向。按空格键继续。" #: src/veh_interact.cpp #, c-format @@ -153165,10 +155504,10 @@ msgstr "你修理好了 %1$s 的 %2$s。" msgid "Lost connection with the vehicle due to distance!" msgstr "超出距离,失去了对载具的连接!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "嘭!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "从 %s 传出一声巨响!" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -153382,13 +155721,13 @@ msgstr "追尾残骸" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s 轮胎不足,无法启动!" +msgid "The %s is too leaky!" +msgstr "%s 漏得很厉害!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s 漏得很厉害!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s 轮胎不足,无法启动!" #: src/vehicle_move.cpp #, c-format @@ -153612,6 +155951,14 @@ msgstr "关闭所有窗帘和车门" msgid "headlights" msgstr "车头灯" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "广角车头灯" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "定向车顶灯" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "车顶灯" @@ -153867,18 +156214,23 @@ msgstr "%1$s 的 %2$s 耗光了。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s 发出长久的蜂鸣声。" +msgid "the %s bang as it starts" +msgstr "%s 启动时发出一声巨响" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "%s 发出长久的蜂鸣声" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s 发出一声喀喇声。" +msgid "the %s clicking once" +msgstr "%s 发出一阵喀喇声" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s 发出急促的喀喇声。" +msgid "the %s rapidly clicking" +msgstr "%s 发出急促的喀喇声 " #: src/vehicle_use.cpp #, c-format @@ -153887,8 +156239,8 @@ msgstr "%s 突突响了几下就挂了。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s 发出可怕的铿铿声。" +msgid "the %s clanking and grinding" +msgstr "%s 发出哐当和嘎吱响声" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -153908,6 +156260,11 @@ msgstr "哔!" msgid "You honk the horn, but nothing happens." msgstr "你按下喇叭,但什么都没有发生。" +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "要移动多少? [有 %d ](0 取消)" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "一首简单的旋律从扬声器中响起。" diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index 2f8601ec2d0a0..bf59808572b92 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -11,19 +11,19 @@ # cheung wai , 2018 # Brett Dong , 2018 # 林楷翌 , 2018 -# kiddragon Chung , 2018 -# Hsinyu Chan, 2018 # Hao JK , 2018 -# xap, 2018 # Laughing Man, 2018 +# xap, 2019 +# Hsinyu Chan, 2019 +# kiddragon Chung , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-28 14:26+0800\n" +"POT-Creation-Date: 2019-01-18 10:34+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Laughing Man, 2018\n" +"Last-Translator: kiddragon Chung , 2019\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4754,6 +4754,19 @@ msgid "" "travels. It has a lot of storage space." msgstr "一件粗製的外衣, 由大災變前的衣物製成, 設計來長途旅行。它有大量的儲物空間。" +#: lang/json/ARMOR_from_json.py +msgid "light nomad gear" +msgid_plural "light nomad gears" +msgstr[0] "" + +#. ~ Description for light nomad gear +#: lang/json/ARMOR_from_json.py +msgid "" +"A light makeshift outfit made from pre-cataclysm clothing designed for long " +"summer travels. It offers less storage space and armor compared to regular " +"nomad gear." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "plated leather armor" msgid_plural "plated leather armors" @@ -5710,6 +5723,18 @@ msgid "" "from rain." msgstr "一件有兩個大口袋和兜帽的雨衣。能讓你在雨中保持乾爽。" +#: lang/json/ARMOR_from_json.py +msgid "gutskin parka" +msgid_plural "gutskin parkas" +msgstr[0] "" + +#. ~ Description for gutskin parka +#: lang/json/ARMOR_from_json.py +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 "" + #: lang/json/ARMOR_from_json.py msgid "winter coat" msgid_plural "winter coats" @@ -16105,31 +16130,31 @@ msgid "Spice" msgstr "香料" #: lang/json/COMESTIBLE_from_json.py -msgid "riesling" -msgid_plural "riesling" -msgstr[0] "雷司令葡萄酒" +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "" -#. ~ Description for riesling +#. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." msgstr "精選高級葡萄釀製, 德國美味佳釀的代表。" #: lang/json/COMESTIBLE_from_json.py -msgid "chardonnay" -msgid_plural "chardonnay" -msgstr[0] "霞多麗葡萄酒" +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "" -#. ~ Description for chardonnay +#. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." msgstr "美國最大眾化的葡萄酒。" #: lang/json/COMESTIBLE_from_json.py -msgid "cabernet sauvignon" -msgid_plural "cabernet sauvignon" -msgstr[0] "卡本內蘇維濃葡萄酒" +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "" -#. ~ Description for cabernet sauvignon +#. ~ Description for Cabernet Sauvignon #: lang/json/COMESTIBLE_from_json.py msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " @@ -16155,8 +16180,9 @@ msgstr[0] "威士忌" #. ~ Description for whiskey #: lang/json/COMESTIBLE_from_json.py -msgid "Made from, by, and for real Southern colonels!" -msgstr "真正的南方上校專屬!" +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -16165,8 +16191,10 @@ msgstr[0] "伏特加" #. ~ Description for vodka #: lang/json/COMESTIBLE_from_json.py -msgid "In Soviet Russia, vodka drinks you!" -msgstr "在蘇聯, 是伏特加喝你!" +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -16175,8 +16203,10 @@ msgstr[0] "琴酒" #. ~ Description for gin #: lang/json/COMESTIBLE_from_json.py -msgid "Smells faintly of elderberries, but mostly booze." -msgstr "聞起來淡淡的接骨木香味, 但大多數人都直接豪飲。" +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -16185,8 +16215,10 @@ msgstr[0] "蘭姆酒" #. ~ Description for rum #: lang/json/COMESTIBLE_from_json.py -msgid "Drinking this might make you feel like a pirate. Or not." -msgstr "喝這個東西會讓你覺得自己是海盜。也許吧。" +msgid "" +"An distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -16195,8 +16227,10 @@ msgstr[0] "龍舌蘭" #. ~ Description for tequila #: lang/json/COMESTIBLE_from_json.py -msgid "Don't eat the worm! Wait, there's no worm in this bottle." -msgstr "別把蟲吃下! 等等, 這酒裡面應該沒有蟲啊。" +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -16282,8 +16316,9 @@ msgstr[0] "長島冰茶" #: lang/json/COMESTIBLE_from_json.py msgid "" "A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them." -msgstr "一種融合許多烈酒的神奇調酒, 但喝起來又沒酒味。" +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" @@ -16291,8 +16326,10 @@ msgstr "螺絲起子雞尾酒" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py -msgid "The surreptitious drunkard mechanic's drink of choice." -msgstr "酒鬼技工的首選飲品。" +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" +" drink of choice." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -16322,8 +16359,9 @@ msgstr[0] "啤酒" #. ~ Description for beer #: lang/json/COMESTIBLE_from_json.py msgid "" -"Best served cold, in a glass, and with a lime - but you're not that lucky." -msgstr "最好冰鎮後倒在玻璃杯, 再加上一片檸檬… 但你沒那麼幸運。" +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -16378,9 +16416,10 @@ msgstr[0] "私釀烈酒" #. ~ Description for moonshine #: lang/json/COMESTIBLE_from_json.py msgid "" -"Only the strongest, purest, good ol' fashioned hooch. Guaranteed to make " -"you forget about the whole cataclysm thing, or you get your vision back." -msgstr "上好的、最純的、最棒的老式烈酒。保證能夠讓你忘了整個災難, 或者把你的眼睛弄瞎。" +"Only the strongest, purest, good ol' fashioned hooch, distilled from corn " +"and sugar. Guaranteed to make you forget about the whole cataclysm thing, " +"or you get your vision back." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -16390,9 +16429,9 @@ msgstr[0] "皮爾森啤酒" #. ~ Description for European pilsner #: lang/json/COMESTIBLE_from_json.py msgid "" -"A pilsner imported from Europe. Best served cold, in a glass - but you're " -"not that lucky." -msgstr "從歐洲進口的皮爾森啤酒啤酒。最好冰鎮後倒在玻璃杯… 但你沒那麼幸運。" +"A lager beer imported from Europe. Best served cold, in a glass - but " +"you're not that lucky." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -16436,9 +16475,9 @@ msgstr[0] "比利時啤酒" #. ~ Description for Belgian ale #: lang/json/COMESTIBLE_from_json.py msgid "" -"A flavorful and filling ale brewed by monks in Belgium. Best served in a " +"A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." -msgstr "比利時僧侶釀造的一種香醇又飽足的啤酒。最好用高腳杯喝。" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -16503,9 +16542,9 @@ msgstr "紅酒可樂" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py msgid "" -"Not as bad as some might imagine, this drink is pretty popular among young " -"and/or poor people in some countries." -msgstr "不是某些人想像的那麼糟糕, 這種飲料在青少年與一些國家的窮人中相當受歡迎。" +"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 "" #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" @@ -16892,7 +16931,9 @@ msgstr[0] "" #. ~ Description for scrap of meat #: lang/json/COMESTIBLE_from_json.py -msgid "It's not much, but it'll do in a pinch." +msgid "" +"This is a tiny scrap of edible meat. It's not much, but it'll do in a " +"pinch." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -16902,7 +16943,11 @@ msgstr[0] "" #. ~ Description for butchery refuse #: lang/json/COMESTIBLE_from_json.py -msgid "Eugh." +msgid "" +"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." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -16911,8 +16956,10 @@ msgstr "煮熟的肉" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Freshly cooked meat. Very nutritious." -msgstr "烹煮過的鮮肉。非常營養。" +msgid "" +"This is a chunk of freshly cooked meat. It's filling and nutritious, but " +"unseasoned and a bit bland." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -16926,9 +16973,10 @@ msgstr "生內臟" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Uncooked internal organs and entrails. Unappealing to eat but filled with " -"essential vitamins." -msgstr "未煮過的內部器官和內臟。你會不想吃它, 但充滿了人體必需的維他命。" +"Offal is uncooked internal organs and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -16938,8 +16986,10 @@ msgstr[0] "煮熟的內臟" #. ~ Description for cooked offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails. Unappetizing, but filled with essential vitamins." -msgstr "剛煮過的內臟。它引不起食慾, 但充滿了人體必需的維他命。" +"This is freshly cooked organ meat and entrails. It's filled with essential " +"vitamins, but most people consider it a bit gross unless very carefully " +"prepared." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -16949,9 +16999,10 @@ msgstr[0] "醃內臟" #. ~ Description for pickled offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" -" better than it smells." -msgstr "煮熟的內臟, 保存在鹽水中。配上必需的維他命, 味道比它嗅起來好。" +"This is a mass of entrails and organ meat, preserved in brine. Packed with " +"essential vitamins, and although it looks like a lab specimen, it actually " +"tastes pretty palatable." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -16961,9 +17012,9 @@ msgstr[0] "內臟罐頭" #. ~ Description for canned offal #: lang/json/COMESTIBLE_from_json.py msgid "" -"Freshly cooked entrails, preserved by canning. Unappetizing, but filled " -"with essential vitamins." -msgstr "剛煮過的內臟, 保存在罐頭中。它引不起食慾, 但充滿了人體必需的維他命。" +"Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," +" but filled with essential vitamins." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "stomach" @@ -17023,8 +17074,10 @@ msgstr "煙燻肉" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty meat that has been heavily smoked for long term preservation." -msgstr "經過重重燻烤的美味肉, 能夠長時間保存。" +msgid "" +"Tasty meat that has been heavily smoked for preservation. It could be " +"further smoked to dehydrate it completely." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -17033,8 +17086,10 @@ msgstr[0] "煙燻魚肉" #. ~ Description for smoked fish #: lang/json/COMESTIBLE_from_json.py -msgid "Tasty fish that has been heavily smoked for long term preservation." -msgstr "經過重重燻烤的美味魚肉, 能長期保存。" +msgid "" +"Tasty fish that has been heavily smoked for long term preservation. It " +"could be further smoked to dehydrate it completely." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" @@ -17043,26 +17098,34 @@ msgstr "煙燻人肉" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py msgid "" -"A heavily smoked portion of human flesh. Lasts for a very long time and " -"tastes pretty good, if you like that sort of thing." -msgstr "經過長時間燻烤的人肉。能夠保存非常久的時間並且嚐起來很美味, 要是你喜歡這類東西的話。" +"A heavily smoked portion of human flesh. Lasts for a long time and tastes " +"pretty good, if you like that sort of thing." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "raw lung" -msgstr "" +msgid "piece of raw lung" +msgid_plural "pieces of raw lung" +msgstr[0] "" -#. ~ Description for raw lung +#. ~ Description for piece of raw lung #: lang/json/COMESTIBLE_from_json.py -msgid "The lung from an animal. It's all spongy." +msgid "" +"A portion of lung from an animal. It's spongy and pink, and spoils very " +"quickly. It can be a delicacy if properly prepared - but if improperly " +"prepared, it's a chewy lump of flavourless connective tissue." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "cooked lung" -msgstr "" +msgid "cooked piece of lung" +msgid_plural "cooked pieces of lung" +msgstr[0] "" -#. ~ Description for cooked lung +#. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py -msgid "It doesn't look any tastier, but the parasites are all cooked out." +msgid "" +" Prepared in this way, it's a chewy grayish lump of flavourless connective " +"tissue. It doesn't look any tastier than it did raw, but the parasites are " +"all cooked out." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17071,7 +17134,10 @@ msgstr "" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py -msgid "The liver from an animal." +msgid "" +"The liver from an animal. Although many dislike the texture, it's one of " +"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 "" #: lang/json/COMESTIBLE_from_json.py @@ -17080,7 +17146,10 @@ msgstr "" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py -msgid "Chock full of B-Vitamins!" +msgid "" +"Chock full of B-Vitamins! Cooked liver isn't all that bad, depending on how" +" you feel about the texture, but this is probably the least fancy way to do " +"it." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17100,7 +17169,9 @@ msgstr[0] "" #. ~ Description for cooked brains #: lang/json/COMESTIBLE_from_json.py -msgid "Now you can emulate those zombies you love so much!" +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 "" #: lang/json/COMESTIBLE_from_json.py @@ -17109,7 +17180,9 @@ msgstr "" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py -msgid "The kidney from an animal." +msgid "" +"The kidney from an animal. Preparing it for cooking is a challenge unless " +"you want the kitchen to smell strongly of urine." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17127,7 +17200,9 @@ msgstr "" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py -msgid "Sweetbreads are the thymus or pancreas of an animal." +msgid "" +"Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " +"if prepared properly." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17204,9 +17279,9 @@ msgstr "污染的骨頭" #: lang/json/COMESTIBLE_from_json.py msgid "" "A rotten and brittle bone from some unnatural creature or other. Could be " -"used to make some stuff, like charcoal. You could eat it, but it will " -"poison you." -msgstr "一根從變異生物取下的腐爛易碎骨頭。可用來製作某些物品, 例如木炭。你可以吃了它, 但吃了之後保證中毒。" +"used to make some stuff, like charcoal or glue. You could eat it, but it " +"will poison you." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" @@ -17501,8 +17576,11 @@ msgstr[0] "咖啡" #. ~ Description for coffee #: lang/json/COMESTIBLE_from_json.py -msgid "Coffee. The morning ritual of the pre-apocalyptic world." -msgstr "咖啡。末日前世界的早晨儀式。" +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -17532,8 +17610,8 @@ msgstr[0] "煉乳" #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Baby cow food, appropriated for adult humans. This milk has been sweetened " -"and thickened, making it a sweet addition to any food." +"Cow's milk that has been partly dehydrated to vastly increase its shelf " +"life, and also sweetened." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -17593,8 +17671,10 @@ msgstr "能量飲料" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py -msgid "Popular among those who need to stay up late working." -msgstr "熬夜工作的人的必備品。" +msgid "" +"A heavily caffeinated soft drink. Energy drinks are popular among those who" +" need to stay up late working." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" @@ -17701,8 +17781,9 @@ msgstr "咖啡牛奶" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py msgid "" -"Coffee milk is pretty much the official morning drink among many countries." -msgstr "咖啡牛奶在許多國家都是常見的早晨飲料。" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -17710,9 +17791,8 @@ msgstr "奶茶" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Usually consumed in the mornings, milk tea is common among many countries." -msgstr "奶茶在許多國家都是很常見的早餐飲料。" +msgid "Hot tea with cold milk." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" @@ -17807,8 +17887,10 @@ msgstr "茶" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py -msgid "Tea, the beverage of gentlemen everywhere." -msgstr "茶, 不管在哪都是受歡迎的飲料。" +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" @@ -17856,8 +17938,8 @@ msgstr "紅醬" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py -msgid "Tomato sauce, yum yum." -msgstr "番茄沙司, 好吃。" +msgid "A minimally seasoned sauce of cooked tomatoes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -17876,8 +17958,10 @@ msgstr[0] "美乃滋醬" #. ~ Description for mayonnaise #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mayo, tastes great on sandwiches." -msgstr "老牌子的美乃滋, 搭配三明治更美味。" +msgid "" +"A gloppy mix of egg, oil, and salt that is traditionally used to moisten " +"sandwiches." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" @@ -17885,8 +17969,8 @@ msgstr "番茄沾醬" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py -msgid "Good old ketchup, tastes great on hot dogs." -msgstr "老牌番茄沾醬, 非常適合加在熱狗上。" +msgid "A viscous paste of tomato, salt, and vinegar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -17895,8 +17979,10 @@ msgstr[0] "黃芥末醬" #. ~ Description for mustard #: lang/json/COMESTIBLE_from_json.py -msgid "Good old mustard, tastes great on hamburgers." -msgstr "老牌子的黃芥末醬, 搭配漢堡更美味。" +msgid "" +"A condiment made from the seeds of a mustard plant (/Brassica/ or " +"/Sinapis/), vinegar, salt, and spices." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -17937,8 +18023,10 @@ msgstr[0] "醋" #. ~ Description for vinegar #: lang/json/COMESTIBLE_from_json.py -msgid "Shockingly tart white vinegar." -msgstr "超酸的白醋。" +msgid "" +"Shockingly tart white vinegar. This is what you get when you let your booze" +" ferment too long." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooking oil" @@ -17957,8 +18045,10 @@ msgstr[0] "糖蜜" #. ~ Description for molasses #: lang/json/COMESTIBLE_from_json.py -msgid "An extremely sugary tar-like syrup, with a slightly bitter aftertaste." -msgstr "濃的像是焦油的糖漿, 帶點苦味。" +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 "" #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -19076,8 +19166,10 @@ msgstr[0] "楓糖漿" #. ~ Description for maple syrup #: lang/json/COMESTIBLE_from_json.py -msgid "Sweet and delicious, real Vermont maple syrup." -msgstr "香甜可口, 真正的佛蒙特楓糖漿。" +msgid "" +"Boiling the sap of a maple tree has concentrated it into sweet, delicious " +"maple syrup." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -19337,13 +19429,13 @@ msgid "" msgstr "加入了一磅的肉與一磅的碳水化合物! 熱騰騰的溫度剛好。美味又很有飽足感, 不趕快吃會腐敗掉。" #: lang/json/COMESTIBLE_from_json.py -msgid "deep fried chicken" -msgstr "美式炸雞" +msgid "deep-fried chicken" +msgstr "" -#. ~ Description for deep fried chicken +#. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py -msgid "A handful of deep fried chicken. So bad it's good." -msgstr "數隻美式炸雞。這不是肯德基, 但很好吃。" +msgid "Chicken cooked while submerged in oil. It's greasy and delicious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -19490,8 +19582,8 @@ msgstr "生香腸" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw sausage, prepared for smoking." -msgstr "一條沉重的生香腸, 已準備好用於煙燻。" +msgid "A hefty raw sausage, prepared for smoking or cooking." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" @@ -19502,6 +19594,15 @@ msgstr "香腸" msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "一條又大又重的香腸, 已經過醃製和煙燻, 可長期保存。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked sausage" +msgstr "" + +#. ~ Description for cooked sausage +#: lang/json/COMESTIBLE_from_json.py +msgid "A hefty sausage that has been cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" msgstr "人肉香腸" @@ -19523,6 +19624,18 @@ msgstr[0] "甜香腸" msgid "A sweet and delicious sausage. Better eat it fresh." msgstr "香甜可口的香腸。最好趁新鮮時享用。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bratwurst" +msgid_plural "bratwursts" +msgstr[0] "" + +#. ~ Description for bratwurst +#: lang/json/COMESTIBLE_from_json.py +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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" msgstr "皇家牛肉" @@ -19676,8 +19789,10 @@ msgstr "午餐肉" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py -msgid "Delicious lunch meat. Can be eaten cold." -msgstr "美味午餐肉。能冷食。" +msgid "" +"Meat that has been cooked, preserved, and cut into thin slices for " +"convenient sandwich construction. It tastes fine cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bologna" @@ -19686,9 +19801,10 @@ msgstr "臘腸" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat that comes pre-sliced. Its first name isn't Oscar. " -"Can be eaten cold." -msgstr "午餐肉的另一種型態, 是預先切好的。發源地不是奧斯卡。能冷食。" +"Formally known as Bologna sausage, this is a finely ground preserved meat " +"that comes in circular slices. Its first name isn't Oscar. You can eat it " +"cold." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -20154,9 +20270,9 @@ msgstr "人肉臘腸" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py msgid "" -"A type of lunch meat made out of human flesh that comes pre-sliced. Its " -"first name may have been Oscar. Can be eaten cold." -msgstr "午餐肉的另一種型態, 是預先切好的人肉。也許他生前的名字是奧斯卡。能冷食。" +"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 "" #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" @@ -20364,8 +20480,33 @@ msgstr "生人肉香腸" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py -msgid "A hefty raw 'long-pork' sausage that has been prepared for smoking." -msgstr "一條沉重的生 \"人肉\" 香腸, 已準備好用於煙燻。" +msgid "" +"A hefty raw 'long-pork' sausage that has been prepared for smoking or " +"cooking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked Mannwurst" +msgstr "" + +#. ~ Description for cooked Mannwurst +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A hefty raw 'long-pork' sausage that has been cooked. It smells as " +"delicious as humanly possible." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Mannbrat" +msgstr "" + +#. ~ Description for Mannbrat +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A type of German sausage made of finely chopped humans and meant to be pan " +"fried or roasted. Better eat it hot and fresh. By the way, use any human " +"available. Germans are not mandatory." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" @@ -20414,7 +20555,7 @@ msgid "" "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." -msgstr "" +msgstr "一種醫生處方的抗菌藥物,用於預防或者阻止感染擴散。這是治療你身上的感染症狀的最快和最可靠的方法。一劑可持續十二小時。" #: lang/json/COMESTIBLE_from_json.py msgid "antifungal drug" @@ -21254,6 +21395,22 @@ msgid "" "it boosts the body's resistance against them. One dose lasts twelve hours." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "heartburn medicine" +msgstr "" + +#. ~ Use action activation_message for heartburn medicine. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take some heartburn medicine." +msgstr "" + +#. ~ Description for heartburn medicine +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " +"urges; with a twist off cap that doubles as a dosage cup." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" msgid_plural "Panaceii" @@ -22696,61 +22853,61 @@ msgid "Very sour citrus. Can be eaten if you really want." msgstr "酸不溜丟的水果。你敢直接吃的話就吃吧。" #: lang/json/COMESTIBLE_from_json.py -msgid "blueberry" -msgid_plural "blueberries" -msgstr[0] "藍莓" +msgid "handful of blueberries" +msgid_plural "handful of blueberries" +msgstr[0] "" -#. ~ Description for blueberry +#. ~ Description for handful of blueberries #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "Blue在這指的是藍色, 不是憂鬱的意思。" #: lang/json/COMESTIBLE_from_json.py -msgid "strawberry" -msgid_plural "strawberries" -msgstr[0] "草莓" +msgid "handful of strawberries" +msgid_plural "handful of strawberries" +msgstr[0] "" -#. ~ Description for strawberry +#. ~ Description for handful of strawberries #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "可口多汁的莓子, 通常在野地中生長。" #: lang/json/COMESTIBLE_from_json.py -msgid "cranberry" -msgid_plural "cranberries" -msgstr[0] "蔓越莓" +msgid "handful of cranberries" +msgid_plural "handful of cranberries" +msgstr[0] "" -#. ~ Description for cranberry +#. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." msgstr "酸的紅色莓子。對健康很好。" #: lang/json/COMESTIBLE_from_json.py -msgid "raspberry" -msgid_plural "raspberries" -msgstr[0] "覆盆子" +msgid "handful of raspberries" +msgid_plural "handful of raspberries" +msgstr[0] "" -#. ~ Description for raspberry +#. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." msgstr "紅色的甜莓果。" #: lang/json/COMESTIBLE_from_json.py -msgid "huckleberry" -msgid_plural "huckleberries" -msgstr[0] "越橘莓" +msgid "handful of huckleberries" +msgid_plural "handful of huckleberries" +msgstr[0] "" -#. ~ Description for huckleberry +#. ~ Description for handful of huckleberries #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "越橘莓, 經常被誤認為是藍莓。" #: lang/json/COMESTIBLE_from_json.py -msgid "mulberry" -msgid_plural "mulberries" -msgstr[0] "桑葚" +msgid "handful of mulberries" +msgid_plural "handful of mulberries" +msgstr[0] "" -#. ~ Description for mulberry +#. ~ Description for handful of mulberries #: lang/json/COMESTIBLE_from_json.py msgid "" "Mulberries, this red variety is unique to east North America and is " @@ -22758,21 +22915,21 @@ msgid "" msgstr "桑葚, 這是一種北美洲特有的紅色品種, 公認具有世界上所有品種中最強烈的味道。" #: lang/json/COMESTIBLE_from_json.py -msgid "elderberry" -msgid_plural "elderberries" -msgstr[0] "接骨木果" +msgid "handful of elderberries" +msgid_plural "handful of elderberries" +msgstr[0] "" -#. ~ Description for elderberry +#. ~ Description for handful of elderberries #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "接骨木果, 生吃時有毒, 煮熟後有益。" #: lang/json/COMESTIBLE_from_json.py -msgid "rose hip" -msgid_plural "rose hips" -msgstr[0] "薔薇果" +msgid "handful of rose hips" +msgid_plural "handful of rose hips" +msgstr[0] "" -#. ~ Description for rose hip +#. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." msgstr "這是授粉薔薇花的果實。" @@ -22807,11 +22964,11 @@ msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." msgstr "柑橘類水果, 其味道是半酸甜味的。" #: lang/json/COMESTIBLE_from_json.py -msgid "cherry" -msgid_plural "cherries" -msgstr[0] "櫻桃" +msgid "handful of cherries" +msgid_plural "handful of cherries" +msgstr[0] "" -#. ~ Description for cherry +#. ~ Description for handful of cherries #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "紅色甜味, 長在樹上的水果。" @@ -22827,11 +22984,11 @@ msgid "" msgstr "巴掌大的紫色李子。對健康或消化都很好。" #: lang/json/COMESTIBLE_from_json.py -msgid "grape" -msgid_plural "grapes" -msgstr[0] "葡萄" +msgid "handful of grapes" +msgid_plural "handful of grapes" +msgstr[0] "" -#. ~ Description for grape +#. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." msgstr "一串多汁的葡萄。" @@ -22883,11 +23040,11 @@ msgid "A large and very sweet fruit." msgstr "一個大又甜的水果。" #: lang/json/COMESTIBLE_from_json.py -msgid "blackberry" -msgid_plural "blackberries" -msgstr[0] "黑莓" +msgid "handful of blackberries" +msgid_plural "handful of blackberries" +msgstr[0] "" -#. ~ Description for blackberry +#. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." msgstr "覆盆子的較黑近親。" @@ -22930,10 +23087,11 @@ msgid "" msgstr "毛茸茸外皮的棕色水果。果肉是綠色的而且很美味。" #: lang/json/COMESTIBLE_from_json.py -msgid "apricot" -msgstr "杏子" +msgid "handful of apricots" +msgid_plural "handful of apricots" +msgstr[0] "" -#. ~ Description for apricot +#. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." msgstr "一種果皮光滑的水果, 桃子的近親。" @@ -22987,8 +23145,8 @@ msgstr "捲心菜" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py -msgid "A hearty head of crisp white cabbage." -msgstr "一份豐盛的脆白菜頭。" +msgid "Crisp white cabbage." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "carrot" @@ -23071,8 +23229,8 @@ msgstr "黃瓜" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py -msgid "Come from the gourd family, not tasty but very juicy." -msgstr "葫蘆科植物, 沒什麼味道但是非常多汁。" +msgid "Comes from the gourd family. Not tasty but very juicy." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" @@ -23485,6 +23643,10 @@ msgstr[0] "黑莓種子" msgid "Some blackberry seeds." msgstr "一些黑莓的種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blackberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" msgid_plural "blueberry seeds" @@ -23495,6 +23657,10 @@ msgstr[0] "藍莓種子" msgid "Some blueberry seeds." msgstr "一些藍莓的種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "blueberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" msgid_plural "cranberry seeds" @@ -23505,6 +23671,10 @@ msgstr[0] "蔓越莓種子" msgid "Some cranberry seeds." msgstr "一些蔓越莓的種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "cranberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" msgid_plural "huckleberry seeds" @@ -23515,6 +23685,10 @@ msgstr[0] "越橘莓種子" msgid "Some huckleberry seeds." msgstr "一些越橘莓種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "huckleberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" msgid_plural "mulberry seeds" @@ -23525,6 +23699,10 @@ msgstr[0] "桑葚種子" msgid "Some mulberry seeds." msgstr "一些桑葚種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "mulberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" msgid_plural "elderberry seeds" @@ -23535,6 +23713,10 @@ msgstr[0] "接骨木種子" msgid "Some elderberry seeds." msgstr "一些接骨木種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "elderberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" msgid_plural "raspberry seeds" @@ -23545,6 +23727,10 @@ msgstr[0] "覆盆子種子" msgid "Some raspberry seeds." msgstr "一些覆盆子的種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raspberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" msgid_plural "strawberry seeds" @@ -23555,6 +23741,10 @@ msgstr[0] "草莓種子" msgid "Some strawberry seeds." msgstr "一些草莓的種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "strawberry" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" msgid_plural "grape seeds" @@ -23565,6 +23755,10 @@ msgstr[0] "葡萄種子" msgid "Some grape seeds." msgstr "一些葡萄種子。" +#: lang/json/COMESTIBLE_from_json.py +msgid "grape" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" msgid_plural "rose seeds" @@ -24969,6 +25163,15 @@ msgstr "\"特製\" 布朗尼" msgid "This is definitely not how grandma used to bake them." msgstr "這絕對不是一般阿嬤的做法。" +#: lang/json/COMESTIBLE_from_json.py +msgid "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 "" + #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" msgstr "" @@ -26310,6 +26513,18 @@ msgstr[0] "危險廢料圓桶" msgid "A yellow drum meant for the storage of hazardous substances." msgstr "一個代表用作存放危險物質的黃色圓桶。" +#: lang/json/CONTAINER_from_json.py +msgid "Garden pot" +msgid_plural "Garden pots" +msgstr[0] "" + +#. ~ Description for Garden pot +#: lang/json/CONTAINER_from_json.py +msgid "" +"This is a special pot for growing plants. Sticks to maintain plants in " +"comfortable conditions for them to obtain maximum yield." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "steel bottle" msgid_plural "steel bottles" @@ -28783,6 +28998,30 @@ msgid "" "without prior connection to compatible valve." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hard steel plate" +msgid_plural "hard steel plates" +msgstr[0] "" + +#. ~ Description for hard steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"An armor plating made of a very thick steel, specifically engineered for use" +" in a bullet resistant vest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel plate" +msgid_plural "steel plates" +msgstr[0] "" + +#. ~ Description for steel plate +#: lang/json/GENERIC_from_json.py +msgid "" +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -29693,9 +29932,8 @@ msgstr[0] "裝有石頭的襪子" #. ~ Description for rock in a sock #: lang/json/GENERIC_from_json.py -msgid "" -"A sock with a rock tied into the end of it. A true weapon of desperation." -msgstr "一隻裝有石頭而末端綁緊的襪子。背水一戰時的最後武器。" +msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -31147,6 +31385,18 @@ msgid "" "without reducing its effectiveness." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" +msgstr[0] "" + +#. ~ Description for reinforced wide-angle headlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "storage battery case" msgid_plural "storage battery cases" @@ -31494,6 +31744,18 @@ msgstr[0] "泛光燈" msgid "A large and heavy light designed to illuminate wide areas." msgstr "又大又重的燈, 用來照亮大片區域。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" +msgstr[0] "" + +#. ~ Description for directed floodlight +#: lang/json/GENERIC_from_json.py +msgid "" +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "UPS-compatible recharging station" msgid_plural "UPS-compatible recharging stations" @@ -31699,6 +31961,16 @@ msgstr[0] "車頭燈" msgid "A vehicle headlight to light up the way." msgstr "一盞車頭燈, 為你照亮前路。" +#: lang/json/GENERIC_from_json.py +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" +msgstr[0] "" + +#. ~ Description for wide-angle car headlight +#: lang/json/GENERIC_from_json.py +msgid "A wide-angle vehicle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "cargo lock set" msgid_plural "cargo lock sets" @@ -32087,6 +32359,16 @@ msgstr[0] "醉拳拳法" msgid "A complete guide to Zui Quan." msgstr "一部完整的醉拳拳譜。" +#: lang/json/GENERIC_from_json.py +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" +msgstr[0] "" + +#. ~ Description for The Way of the Spear +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Sōjutsu." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "Martial art manual" msgid_plural "Martial art manuals" @@ -33769,6 +34051,44 @@ msgstr[0] "破損的新式兔子機械布偶" msgid "A broken animatronic bunny. Limp and lifeless." msgstr "一台損毀的兔子機械布偶, 癱軟在地上且毫無動靜。" +#: lang/json/GENERIC_from_json.py +msgid "wood boat hull" +msgid_plural "wood boat hulls" +msgstr[0] "" + +#. ~ Description for wood boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" +msgstr[0] "" + +#. ~ Description for plastic boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" +msgstr[0] "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/GENERIC_from_json.py +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "oars" msgid_plural "oars" @@ -33779,6 +34099,26 @@ msgstr[0] "船槳" msgid "Oars for a boat." msgstr "小船的槳。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable section" +msgid_plural "inflatable section" +msgstr[0] "充氣部件" + +#. ~ Description for inflatable section +#: lang/json/GENERIC_from_json.py +msgid "An inflatable boat section." +msgstr "一個充氣船的部件。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "inflatable airbag" +msgid_plural "inflatable airbag" +msgstr[0] "充氣氣囊" + +#. ~ Description for inflatable airbag +#: lang/json/GENERIC_from_json.py +msgid "An inflatable airbag." +msgstr "一個可充氣的安全氣囊。" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "battery charger" msgid_plural "battery chargers" @@ -33876,6 +34216,337 @@ msgid "belt ammo link" msgid_plural "belt ammo links" msgstr[0] "空彈鏈" +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing tomato)" +msgid_plural "Garden pot (growing tomatoes)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing tomato). +#: lang/json/GENERIC_from_json.py +msgid "Tomatoes are ready to harvest!" +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing tomato). +#. ~ Use action not_ready_msg for Garden pot (growing hops). +#. ~ Use action not_ready_msg for Garden pot (growing buckwheat). +#. ~ Use action not_ready_msg for Garden pot (growing broccoli). +#. ~ Use action not_ready_msg for Garden pot (growing oats). +#. ~ Use action not_ready_msg for Garden pot (growing barley). +#. ~ Use action not_ready_msg for Garden pot (growing carrot). +#. ~ Use action not_ready_msg for Garden pot (growing cotton). +#. ~ Use action not_ready_msg for Garden pot (growing cabbage). +#. ~ Use action not_ready_msg for Garden pot (growing cucumber). +#. ~ Use action not_ready_msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "It is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing tomato) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing tomatoes. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe tomatoe)" +msgid_plural "Garden pots (ripe tomatoes)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe tomatoe) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest tomato. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing wheat)" +msgid_plural "Garden pot (growing wheat)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is ready to harvest." +msgstr "" + +#. ~ Use action not_ready_msg for Garden pot (growing wheat). +#: lang/json/GENERIC_from_json.py +msgid "The wheat is growing quickly." +msgstr "" + +#. ~ Description for Garden pot (growing wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing wheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe wheat)" +msgid_plural "Garden pot (ripe wheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe wheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot with wheat ready to harvest. Disassemble for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing hops)" +msgid_plural "Garden pot (growing hops)" +msgstr[0] "" + +#. ~ Use action msg for Garden pot (growing hops). +#. ~ Use action msg for Garden pot (growing buckwheat). +#. ~ Use action msg for Garden pot (growing broccoli). +#. ~ Use action msg for Garden pot (growing oats). +#. ~ Use action msg for Garden pot (growing barley). +#. ~ Use action msg for Garden pot (growing carrot). +#. ~ Use action msg for Garden pot (growing cotton). +#. ~ Use action msg for Garden pot (growing cabbage). +#. ~ Use action msg for Garden pot (growing cucumber). +#. ~ Use action msg for Garden pot (growing garlic). +#: lang/json/GENERIC_from_json.py +msgid "Hops are ready to harvest!" +msgstr "" + +#. ~ Description for Garden pot (growing hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing hops. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe hops)" +msgid_plural "Garden pots (ripe hops)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe hops) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest hops. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing buckwheat)" +msgid_plural "Garden pot (growing buckwheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing buckwheat. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe buckwheat)" +msgid_plural "Garden pots (ripe buckwheat)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe buckwheat) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest buckwheat. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing broccoli)" +msgid_plural "Garden pot (growing broccoli)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing broccoli. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe broccoli)" +msgid_plural "Garden pots (ripe broccoli)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe broccoli) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest broccoli. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing oats)" +msgid_plural "Garden pot (growing oats)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing oats. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe oats)" +msgid_plural "Garden pots (ripe oats)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe oats) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest oats. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing barley)" +msgid_plural "Garden pot (growing barley)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing barley. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe barley)" +msgid_plural "Garden pots (ripe barley)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe barley) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest barley. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing carrot)" +msgid_plural "Garden pot (growing carrot)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing carrot. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe carrot)" +msgid_plural "Garden pots (ripe carrot)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe carrot) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest carrot. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cotton)" +msgid_plural "Garden pot (growing cotton)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cotton. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cotton)" +msgid_plural "Garden pots (ripe cotton)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cotton) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cotton. Disassemble for " +"harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cabbage)" +msgid_plural "Garden pot (growing cabbage)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cabbage. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cabbage)" +msgid_plural "Garden pots (ripe cabbage)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cabbage) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cabbage. Disassemble for" +" harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing cucumber)" +msgid_plural "Garden pot (growing cucumber)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing cucumber. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe cucumber)" +msgid_plural "Garden pots (ripe cucumber)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe cucumber) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest cucumber. Disassemble " +"for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (growing garlic)" +msgid_plural "Garden pot (growing garlic)" +msgstr[0] "" + +#. ~ Description for Garden pot (growing garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot growing garlic. When ripe you need to activate to " +"prepare for harvest." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Garden pot (ripe garlic)" +msgid_plural "Garden pots (ripe garlic)" +msgstr[0] "" + +#. ~ Description for Garden pot (ripe garlic) +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a garden pot containing a ready to harvest garlic. Disassemble for " +"harvest." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -37085,6 +37756,15 @@ msgid "" "other gun mods." msgstr "將槍枝與彈藥替換為通用版本。警告: 與其他槍械模組並用可能導致問題。" +#: lang/json/MOD_INFO_from_json.py +msgid "Growable pots" +msgstr "" + +#. ~ Description for Growable pots +#: lang/json/MOD_INFO_from_json.py +msgid "Allows you to grow some seeds in flower pots." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" msgstr "手動安裝生化插件" @@ -38774,6 +39454,10 @@ msgid "" "clumsily moves around, but attacks with a large reserve of acid." msgstr "這具軀體已經嚴重腫大, 但仍靠著身上的半凝固酸勉強保持型態。它笨拙地四處移動, 但會以大量的酸液作出攻擊。" +#: lang/json/MONSTER_from_json.py +msgid "The corrosive zombie spits a glob of acid!" +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgstr "爬行殭屍" @@ -43000,11 +43684,18 @@ msgid "fedora" msgid_plural "fedoras" msgstr[0] "軟呢帽" -#. ~ Use action activation_message for fedora. -#. ~ Use action activation_message for straw fedora. +#. ~ Use action menu_text for fedora. +#. ~ Use action menu_text for straw fedora. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Tip" +msgstr "" + +#. ~ Use action msg for fedora. +#. ~ Use action msg for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py -msgid "You tip your fedora." -msgstr "你用手碰觸了一下你的軟呢帽, 表示問好。" +#, no-python-format +msgid "You tip your %s." +msgstr "" #. ~ Description for fedora #: lang/json/TOOL_ARMOR_from_json.py @@ -44299,6 +44990,11 @@ msgid "boulder anvil" msgid_plural "boulder anvils" msgstr[0] "" +#: lang/json/TOOL_from_json.py +msgid "bionic firestarter" +msgid_plural "bionic firestarters" +msgstr[0] "" + #: lang/json/TOOL_from_json.py msgid "cash card" msgid_plural "cash cards" @@ -45535,32 +46231,6 @@ msgid "" "attached. You could use it for cooking food." msgstr "附帶點火器的小型儲煤金屬罐, 你可以用它來煮食。" -#: lang/json/TOOL_from_json.py -msgid "chemistry set" -msgid_plural "chemistry sets" -msgstr[0] "化學儀器套組" - -#. ~ Description for chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a chemistry set stored in a box. The contents include glass " -"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " -"used to craft some chemistry projects if you're so inclined." -msgstr "這是個化學儀器套組。盒內裝著許多玻璃罐、軟管、鐵絲、加熱板、與護目鏡。若你需要的話, 能夠用來製作一些化學物品。" - -#: lang/json/TOOL_from_json.py -msgid "basic chemistry set" -msgid_plural "basic chemistry sets" -msgstr[0] "基本化學儀器套組" - -#. ~ Description for basic chemistry set -#: lang/json/TOOL_from_json.py -msgid "" -"This is a basic chemistry set which includes glass containers, hoses and " -"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 "這是個基本化學儀器套組。其中包括玻璃容器、軟管、與護目鏡。若你需要的話, 能夠用來製作一些化學物品, 但是需要熱源。" - #: lang/json/TOOL_from_json.py msgid "paint chipper" msgid_plural "paint chippers" @@ -46332,7 +47002,7 @@ msgstr "一包裝有 25 發鞭炮及引線的物品。它的引線已經被點 #: lang/json/TOOL_from_json.py msgid "Rising Sun" msgid_plural "Rising Suns" -msgstr[0] "" +msgstr[0] "炎陽刀" #. ~ Use action lacks_fuel_message for Rising Sun. #: lang/json/TOOL_from_json.py @@ -50201,6 +50871,147 @@ msgid "" "Some cars can be driven remotely." msgstr "一個控制真正汽車的遙控器, 可以用來啟動或關閉車載設備, 有些車甚至可以從遠端發動。" +#: lang/json/TOOL_from_json.py +msgid "chemistry set" +msgid_plural "chemistry sets" +msgstr[0] "化學儀器套組" + +#. ~ Description for chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chemistry set stored in a box. The contents include glass " +"containers, hoses, metal wire, a hotplate, and safety glasses. It might be " +"used to craft some chemistry projects if you're so inclined." +msgstr "這是個化學儀器套組。盒內裝著許多玻璃罐、軟管、鐵絲、加熱板、與護目鏡。若你需要的話, 能夠用來製作一些化學物品。" + +#: lang/json/TOOL_from_json.py +msgid "basic chemistry set" +msgid_plural "basic chemistry sets" +msgstr[0] "基本化學儀器套組" + +#. ~ Description for basic chemistry set +#: lang/json/TOOL_from_json.py +msgid "" +"This is a basic chemistry set which includes glass containers, hoses and " +"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 "這是個基本化學儀器套組。其中包括玻璃容器、軟管、與護目鏡。若你需要的話, 能夠用來製作一些化學物品, 但是需要熱源。" + +#: lang/json/TOOL_from_json.py +msgid "basic laboratory analysis kit" +msgid_plural "basic laboratory analysis kits" +msgstr[0] "" + +#. ~ Description for basic laboratory analysis kit +#: lang/json/TOOL_from_json.py +msgid "" +"This hefty kit contains some basic things you should probably not try to do " +"precise chemistry without: namely, a small balance scale, a " +"spectrophotometer, a melting point apparatus, a pH meter, and a set of paper" +" 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 "" + +#: lang/json/TOOL_from_json.py +msgid "small weight scale" +msgid_plural "small weight scales" +msgstr[0] "" + +#. ~ Description for small weight scale +#: lang/json/TOOL_from_json.py +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 "" + +#: lang/json/TOOL_from_json.py +msgid "spectrophotometer" +msgid_plural "spectrophotometers" +msgstr[0] "" + +#. ~ Description for spectrophotometer +#: lang/json/TOOL_from_json.py +msgid "" +"This ubiquitous analytical chemistry tool measures the light absorption of a" +" liquid sample in a special tube called a cuvette." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "set of spectrometry cuvettes" +msgid_plural "sets of spectrometry cuvettes" +msgstr[0] "" + +#. ~ Description for set of spectrometry cuvettes +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small box filled with precisely calibrated square plastic tubes " +"for laboratory spectrometer use." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "pH meter" +msgid_plural "pH meters" +msgstr[0] "" + +#. ~ Description for pH meter +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a pair of glass probes on a voltmeter. By putting one " +"probe into a calibration solution (conveniently included) and the other in a" +" substance, you can calculate the acidity." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "melting point apparatus" +msgid_plural "units of melting point apparatus" +msgstr[0] "" + +#. ~ Description for melting point apparatus +#: lang/json/TOOL_from_json.py +msgid "" +"This is basically a hot plate, with a metal housing attached. The metal " +"housing has a magnification viewport and a slot into which a capillary tube " +"containing a crystallized sample is inserted. The device lets you precisely" +" measure the melting point of a crystal, a property very useful in " +"identifying what it is and how pure it is." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "light detector" +msgid_plural "light detectors" +msgstr[0] "" + +#. ~ Description for light detector +#: lang/json/TOOL_from_json.py +msgid "" +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "glass prism" +msgid_plural "glass prisms" +msgstr[0] "" + +#. ~ Description for glass prism +#: lang/json/TOOL_from_json.py +msgid "" +"This is a high quality crystal glass prism for separating and redirecting " +"light." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "small glass tube" +msgid_plural "small glass tubes" +msgstr[0] "" + +#. ~ Description for small glass tube +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "bottle jack" msgid_plural "bottle jacks" @@ -51335,6 +52146,14 @@ msgid "inactive military robot" msgid_plural "inactive military robots" msgstr[0] "" +#. ~ Description for inactive military robot +#: lang/json/TOOL_from_json.py +msgid "" +"An unpowered military robot fitted with an integrated 7.62 firearm and " +"electric prod. Activate this item, with ammo in your inventory, to load and" +" deploy the robot." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "inactive robo-gaurdian" msgid_plural "inactive robo-gaurdians" @@ -52051,39 +52870,6 @@ msgstr "包覆金屬片的木製手推車腳輪" msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "一個手工製作的木製手推車腳輪, 用金屬片包覆以增加耐用性。" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" -msgstr[0] "充氣部件" - -#. ~ Description for inflatable section -#: lang/json/WHEEL_from_json.py -msgid "An inflatable boat section." -msgstr "一個充氣船的部件。" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" -msgstr[0] "充氣氣囊" - -#. ~ Description for inflatable airbag -#: lang/json/WHEEL_from_json.py -msgid "An inflatable airbag." -msgstr "一個可充氣的安全氣囊。" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "boat board" -msgid_plural "boat board" -msgstr[0] "船板" - -#. ~ Description for boat board -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A wooden board that keeps the boat afloat. To change a vehicle into a boat," -" place as you would wheels on a car. Then attach oars or a motor to get the" -" boat to move." -msgstr "" - #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" msgstr "凝膠履帶" @@ -52278,6 +53064,10 @@ msgstr "停止與車輛的互動?" msgid "Stop training?" msgstr "停止訓練?" +#: lang/json/activity_type_from_json.py +msgid "Stop socializing?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop using first aid?" msgstr "停止使用急救箱?" @@ -52334,6 +53124,14 @@ msgstr "停止耕地?" msgid "Stop planting seeds?" msgstr "停止播種?" +#: lang/json/activity_type_from_json.py +msgid "Stop harvesting plots?" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "Stop fertilizing plots?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop interacting with inventory?" msgstr "停止與物品的互動?" @@ -52438,10 +53236,18 @@ msgstr "停止刮鬍?" msgid "Stop cutting your hair?" msgstr "停止理髮?" +#: lang/json/activity_type_from_json.py +msgid "Stop playing with your pet?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "Stop trying to fall asleep?" msgstr "停止嘗試入睡?" +#: lang/json/activity_type_from_json.py +msgid "Stop unloading?" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" msgstr ".700 Nitro Express" @@ -55315,6 +56121,17 @@ msgstr "要求訓練" msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "當你要求 NPC 訓練你時, AI 會標記這些 NPC。如果你有這個標記, 那就是 bug。" +#: lang/json/effects_from_json.py +msgid "Asked to socialize" +msgstr "" + +#. ~ Description of effect 'Asked to socialize'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag: for having recently asked an NPC to socialize. This is a bug if you" +" have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Asked Info" msgstr "要求資訊" @@ -56642,21 +57459,6 @@ msgstr "你覺得喘不過氣。" msgid "The ceiling collapses on you!" msgstr "天花板砸到你了!" -#: lang/json/effects_from_json.py -msgid "Stem cell treatment" -msgstr "幹細胞治療" - -#. ~ Description of effect 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "" -"Your insides are shifting in strange ways as the treatment takes effect." -msgstr "你的身體隨著治療發生奇怪的轉變。" - -#. ~ Apply message for effect(s) 'Stem cell treatment'. -#: lang/json/effects_from_json.py -msgid "You receive a pureed bone & enamel injection into your eyeball." -msgstr "你把骨泥及陶瓷混合物注射到你的眼球。" - #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" msgstr "吃了抗痙攣藥物" @@ -57204,6 +58006,15 @@ msgstr "" msgid "You feel incredible! You could take on the world!" msgstr "" +#: lang/json/effects_from_json.py +msgid "Soothed stomach" +msgstr "" + +#. ~ Description of effect 'Soothed stomach'. +#: lang/json/effects_from_json.py +msgid "You are under the effects of a stomach soother." +msgstr "" + #: lang/json/effects_from_json.py msgid "Discharge" msgstr "" @@ -57229,9 +58040,8 @@ msgstr "" #. ~ Description of effect 'Story Denied'. #: lang/json/effects_from_json.py msgid "" -"AI tag used when you already asked an NPC for a detail in their survival " -"story and they don't want to tell you again right now. This is a bug if you" -" have it." +"AI tag: you already asked an NPC for a detail and they don't want to tell " +"you again. This is a bug if you have it." msgstr "" #: lang/json/effects_from_json.py @@ -64230,6 +65040,39 @@ msgid "" "accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "drop-in auto sear" +msgid_plural "drop-in auto sears" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a vaguely 'U' shaped piece of metal with a vaguely 'T' shaped " +"flapper on a pin. Once tucked into an AR-15's lower receiver, the rifle " +"will become selective fire-capable. The handcrafted-sear surface isn't as " +"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" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Originally designed for the Colt SP-1, this 'reproduction' is intended to " +"convert an AR-15 into a full-auto only rifle. Once the necessary " +"modifications are made and the link is in place, semi-auto is disabled and " +"full-auto is enabled. Reliability and precision suffer greatly due to " +"questionable craftsmanship and lack of unobtainium SP-1 parts." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" msgid_plural "firearm waterproofings" @@ -64360,6 +65203,15 @@ msgid "" "other modification prevents use of the primary sights." msgstr "一個45° 傾側的偏移覘孔, 應用於被瞄準鏡或其他改造模組妨礙主瞄準具的槍械。" +#: lang/json/gunmod_from_json.py +msgid "offset sight rail" +msgid_plural "offset sight rails" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "An additional rail set at 45° for attaching a secondary optic." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "rail laser sight" msgid_plural "rail laser sights" @@ -66797,6 +67649,7 @@ 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 "" +"此物品是一個小型的生化插件模組。 你需要使用專門的機械裝置或者請求外科醫生去將它安裝在你的身體上。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -66823,7 +67676,7 @@ msgstr "這一件裝備會阻擋所有的聲音。" msgid "" "This item has a diamond coating improving its cutting or " "piercing damage." -msgstr "" +msgstr "這件物品具有鑽石塗層,能加強其砍劈或穿刺傷害。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -67385,10 +68238,9 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" -"If the center of balance of your vehicle is between all the boat boards and " -"you have no wheels, the vehicle will be able to float and move over water, " -"provided it has an active engine or motor with enough power to move the " -"vehicle." +"Each boat hull will reduce the draft of your vehicle and increase the height" +" sealed against water. If the draft is less than the sealed height, your " +"vehicle will float if placed in water." msgstr "" #. ~ Please leave anything in unchanged. @@ -68137,7 +68989,7 @@ msgstr "屠宰" msgid "Chat with NPC" msgstr "與 NPC 交談" -#: lang/json/keybinding_from_json.py +#: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" msgstr "看四周" @@ -68748,6 +69600,14 @@ msgstr "切換冰櫃" msgid "Toggle headlights" msgstr "開關車頭燈" +#: lang/json/keybinding_from_json.py +msgid "Toggle wide-angle headlights" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle directional overhead lights" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" msgstr "開關頭燈" @@ -69159,14 +70019,14 @@ msgid "Analyze blood" msgstr "分析血液" #. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Mr. Stem Cell" -msgstr "幹細胞先生" - +#. ~ Computer option +#. ~ Computer name +#. ~ Computer option +#. ~ Computer name #. ~ Computer option #: lang/json/mapgen_from_json.py -msgid "Stem Cell Treatment" -msgstr "幹細胞治療" +msgid "Bonesetting Treatment" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -69329,6 +70189,13 @@ msgstr ", , 和 在此!" msgid "it works." msgstr "有用。" +#. ~ Sign +#: lang/json/mapgen_from_json.py +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 "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" @@ -70522,6 +71389,36 @@ msgid "" "armor, +Perception fire armor." msgstr "+力量 鈍擊防護, +敏捷 酸液防護, +智力 電擊防護, +感知 火焰防護。" +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu" +msgstr "" + +#. ~ Description for martial art 'Sōjutsu' +#: lang/json/martial_art_from_json.py +msgid "" +"Sōjutsu, \"The Way of the Spear\", is the Japanese martial art of fighting " +"with a spear. Sōjutsu focuses on keeping opponents at a distance in order " +"to maintain advantage in combat." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Sōjutsu Stance" +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 "" + +#: lang/json/martial_art_from_json.py +msgid "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 "" + #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" msgstr "中世紀劍術" @@ -73748,6 +74645,10 @@ msgstr "享受 %s" msgid "Enjoyed a hot meal" msgstr "享受熱食" +#: lang/json/morale_type_from_json.py +msgid "Enjoyed a conversation" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Music" msgstr "音樂" @@ -73958,6 +74859,10 @@ msgstr "剛刮過鬍子" msgid "Barfed" msgstr "嘔吐" +#: lang/json/morale_type_from_json.py +msgid "Spent time playing with a pet" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Lit a fire" msgstr "" @@ -75066,6 +75971,18 @@ msgid "" "unique pleasure to you." msgstr "雖然你無法免除疼痛的負面影響, 你卻能從其中得到一種變態的快感。" +#: lang/json/mutation_from_json.py +msgid "Stimulant Psychosis" +msgstr "" + +#. ~ Description for Stimulant Psychosis +#: lang/json/mutation_from_json.py +msgid "" +"You have a unique history with stimulants (like coffee or amphetamines). You" +" can tolerate a lot more of them without overdosing, but if you indulge too " +"much, you start seeing things..." +msgstr "" + #. ~ Description for Stylish #: lang/json/mutation_from_json.py msgid "" @@ -75194,8 +76111,8 @@ msgstr "近戰武器訓練" #: lang/json/mutation_from_json.py msgid "" "You have practiced fighting with weapons. You start with your choice of " -"Eskrima, Fencing, Pentjak Silat or Niten Ichi-Ryu." -msgstr "你對於使用武器的格鬥術有研究。你開始時便能夠選擇菲律賓劍棍術、擊劍、印尼刀術和二天一流任一種。" +"Eskrima, Fencing, Pentjak Silat, Niten Ichi-Ryu, or Sōjutsu." +msgstr "" #: lang/json/mutation_from_json.py msgid "Weak Scent" @@ -75818,6 +76735,17 @@ msgid "" "you heal much slower. Stacks with Glass Jaw." msgstr "你的身體極度容易骨折。最大 HP 降低了 75% , 並且康復速度非常慢。搭配玻璃下巴簡直極品。" +#: lang/json/mutation_from_json.py +msgid "Genetic Downward Spiral" +msgstr "" + +#. ~ Description for Genetic Downward Spiral +#: lang/json/mutation_from_json.py +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 "" + #: lang/json/mutation_from_json.py msgid "Rough Skin" msgstr "粗皮" @@ -79709,6 +80637,24 @@ msgstr "有新的設定可供選擇!" msgid "Has Level 2 Construction Built" msgstr "完成第 2 級建設" +#: lang/json/mutation_from_json.py +msgid "Starting NPC" +msgstr "" + +#. ~ Description for Starting NPC +#: lang/json/mutation_from_json.py +msgid "Marker for starting NPCs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Static NPC" +msgstr "" + +#. ~ Description for Static NPC +#: lang/json/mutation_from_json.py +msgid "Marker for static NPCs" +msgstr "" + #: lang/json/mutation_from_json.py msgid "Debug Vision" msgstr "除錯視覺" @@ -80436,6 +81382,10 @@ msgstr "蜜蜂" msgid "I'm bugged - I shouldn't talk to you." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Beggar" +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -80755,6 +81705,30 @@ msgstr "強盜" msgid "Psycho" msgstr "精神病患" +#: lang/json/npc_from_json.py +msgid "beggar" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Reena Sandhu" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Dino Dave" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Luo Meizhen" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Brandon Garder" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "Yusuke Taylor" +msgstr "" + #: lang/json/npc_from_json.py msgid "Raider" msgstr "掠奪者" @@ -81930,8 +82904,36 @@ msgid "trailhead" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "abandoned drive-through" -msgstr "廢棄的得來速" +msgid "veterinarian clinic" +msgstr "獸醫診所" + +#: lang/json/overmap_terrain_from_json.py +msgid "museum" +msgstr "博物館" + +#: lang/json/overmap_terrain_from_json.py +msgid "mortuary" +msgstr "停屍間" + +#: lang/json/overmap_terrain_from_json.py +msgid "laundromat" +msgstr "自助洗衣房" + +#: lang/json/overmap_terrain_from_json.py +msgid "jewelry store" +msgstr "珠寶店" + +#: lang/json/overmap_terrain_from_json.py +msgid "2-story motel" +msgstr "雙層旅館" + +#: lang/json/overmap_terrain_from_json.py +msgid "Large Office Tower" +msgstr "辦公大樓" + +#: lang/json/overmap_terrain_from_json.py +msgid "home improvement store" +msgstr "家具裝飾店" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" @@ -81957,6 +82959,10 @@ msgstr "保齡球館" msgid "boxing gym" msgstr "拳擊健身房" +#: lang/json/overmap_terrain_from_json.py +msgid "fitness gym" +msgstr "健身房" + #: lang/json/overmap_terrain_from_json.py msgid "dojo" msgstr "道場" @@ -81970,37 +82976,13 @@ msgid "gardening supply" msgstr "園藝品店" #: lang/json/overmap_terrain_from_json.py -msgid "fitness gym" -msgstr "健身房" - -#: lang/json/overmap_terrain_from_json.py -msgid "home improvement store" -msgstr "家具裝飾店" - -#: lang/json/overmap_terrain_from_json.py -msgid "jewelry store" -msgstr "珠寶店" - -#: lang/json/overmap_terrain_from_json.py -msgid "laundromat" -msgstr "自助洗衣房" +msgid "abandoned drive-through" +msgstr "廢棄的得來速" #: lang/json/overmap_terrain_from_json.py msgid "noname" msgstr "無名" -#: lang/json/overmap_terrain_from_json.py -msgid "mortuary" -msgstr "停屍間" - -#: lang/json/overmap_terrain_from_json.py -msgid "museum" -msgstr "博物館" - -#: lang/json/overmap_terrain_from_json.py -msgid "veterinarian clinic" -msgstr "獸醫診所" - #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" msgstr "破產比薩店" @@ -82238,14 +83220,6 @@ msgstr "學校" msgid "projects" msgstr "國民住宅" -#: lang/json/overmap_terrain_from_json.py -msgid "2-story motel" -msgstr "雙層旅館" - -#: lang/json/overmap_terrain_from_json.py -msgid "Large Office Tower" -msgstr "辦公大樓" - #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" msgstr "汽車修理工房" @@ -82362,6 +83336,34 @@ msgstr "" msgid "regional dump" msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (male Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Vagabond" +msgstr "" + +#. ~ Profession (female Vagabond) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Circumstances left you wandering, with no home, no family, no friends. But " +"the world you knew is gone, and maybe your experiences relying on yourself " +"to survive could be useful in this new one." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" @@ -86642,6 +87644,112 @@ msgid "" "commercial robots, but you never thought your survival might depend on it." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (male Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Engineer" +msgstr "" + +#. ~ Profession (female Robotics Engineer) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You were a low-level engineer at a robotics manufacturer. The management " +"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " +"'too dangerous,' but there's nothing to stop you now." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (male Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robotics Prodigy" +msgstr "" + +#. ~ Profession (female Robotics Prodigy) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've been building robots since you could hold a soldering iron, and you " +"don't intend to let the end of the world stop that from continuing." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (male Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robot Adoptee" +msgstr "" + +#. ~ Profession (female Robot Adoptee) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"During the riots a military robot came out of nowhere to rescue you. Maybe " +"it thinks you're someone important, who knows." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (male Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Robo-hunter" +msgstr "" + +#. ~ Profession (female Robo-hunter) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You paid a local hacker to build you a robotic hunting dog. It's almost as " +"good as the real thing, but it doesn't respond well to being pet." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Spec-Op" @@ -89525,20 +90633,20 @@ msgid "Fires can spread easily, especially with abundance of fuel." msgstr "火勢可以很容易擴散, 特別是有大量燃料的時候。" #: lang/json/snippet_from_json.py -msgid "Even without electricity ovens can be useful fire containers." -msgstr "就算沒有電力, 烤箱仍是個很有用的點燃容器。" +msgid "Even without electricity, ovens can be useful fire containers." +msgstr "就算沒有電力,烤箱仍是個很有用的點燃容器。" #: lang/json/snippet_from_json.py msgid "Light itself doesn't draw zombies, it's sight, noise or smell." -msgstr "" +msgstr "光線本身不會吸引殭屍,是視覺、聲音或者氣味吸引它們。" #: lang/json/snippet_from_json.py msgid "Moose may not be your friend." -msgstr "" +msgstr "駝鹿或許不會成為你的朋友。" #: lang/json/snippet_from_json.py msgid "Turnout gear protects from fire but not from overheating." -msgstr "" +msgstr "消防戰鬥服能在火焰中保謢你,但不能在過熱中保護你。" #: lang/json/snippet_from_json.py msgid "Peek around corners. You may see your enemy before it sees you." @@ -89546,25 +90654,23 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Cold food lasts longer. Find a cool basement or make a root cellar." -msgstr "" +msgstr "冷凍食物可以保存更長時間。找一個涼快的地下室或者做一個地下儲藏室。" #: lang/json/snippet_from_json.py -msgid "" -"You died? That's a part of the experience. Try again with what you've " -"learned." +msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" #: lang/json/snippet_from_json.py -msgid "Freezing food? Put it by a fire or heat it up in a pan." -msgstr "" +msgid "Frozen food? Put it by a fire or heat it up in a pan." +msgstr "冷凍食品? 把它放在火旁或者用平底鍋加熱它。" #: lang/json/snippet_from_json.py -msgid "Underground cave or a basement is always cool, but never freezes." +msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Afraid of wild life? Yell untill it goes away. But beware of what comes " +"Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" @@ -89573,8 +90679,8 @@ msgid "Animals and zombies are not friends. You can take advantage of that." msgstr "" #: lang/json/snippet_from_json.py -msgid "Door is not the only way in. Or out if that matters." -msgstr "視乎情勢, 門不是唯一的入口。 或者是出口。" +msgid "A door is not the only way in or out of most places." +msgstr "" #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." @@ -89589,17 +90695,16 @@ msgid "Many items have special actions. Try to find out what they do." msgstr "" #: lang/json/snippet_from_json.py -msgid "Dangerous place is not always equal to good loot. Use your head." +msgid "Just because a place is dangerous doesn't mean it's worth looting." msgstr "" #: lang/json/snippet_from_json.py -msgid "Getting in is not a problem. Think of way out and don't get cornered." +msgid "If you're breaking in, be sure you also know how to get back out." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"There is often more then one way to achieve something. Think outside of the" -" box." +"There's usually more than one way to do things. Think outside the box." msgstr "" #: lang/json/snippet_from_json.py @@ -89630,12 +90735,13 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"You don't want an overgrown cockroach in your rotten food. Get rid of it." +"Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Medicine can help you survive in a pinch but avoid overdose and addictions." +"Drugs are great for quick stat boosts, but be careful of addictions or " +"overdose." msgstr "" #: lang/json/snippet_from_json.py @@ -89645,8 +90751,7 @@ msgid "" msgstr "明智地使用你的地圖。 會找到你正需要的物品的掠奪地點應優先處理。" #: lang/json/snippet_from_json.py -msgid "" -"Wounds heal over time. Bandaging and disinfecting can speed up the process." +msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" #: lang/json/snippet_from_json.py @@ -89669,15 +90774,15 @@ msgid "Nature can provide. You can live off the land if you learn how." msgstr "" #: lang/json/snippet_from_json.py -msgid "Raw food and water from unsafe sources can't be healthy? Right?" +msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" #: lang/json/snippet_from_json.py -msgid "Why walk all day to nearest town when you can adapt a vehicle?" -msgstr "當你適宜駕駛車輛的時候為甚麼要走足一整天去前往鄰近城鎮?" +msgid "Why walk when you can use a car? Or a tank?" +msgstr "" #: lang/json/snippet_from_json.py -msgid "Food from before cataclysm won't last forever. Keep that in mind." +msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" #: lang/json/snippet_from_json.py @@ -89700,7 +90805,7 @@ msgstr "" msgid "" "Windows can't stop zombies but they can stop gas, bile, and smoke. And your" " smell." -msgstr "" +msgstr "窗戶無法阻止殭屍,但可以阻隔氣體、膽汁、以及煙霧。還有你的氣味。" #: lang/json/snippet_from_json.py msgid "Wet and angry? A dry towel will bring your smile back." @@ -89730,7 +90835,7 @@ msgstr "日常殺戮。 保持警覺! 千萬別鬆懈。" #: lang/json/snippet_from_json.py msgid "" -"Most medicine doesn't work instantly, so just don't swallow whole bottle of " +"Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" @@ -89764,14 +90869,12 @@ msgid "" msgstr "耗盡資源? 破壞或者拆解物品會出現有趣的材料。" #: lang/json/snippet_from_json.py -msgid "" -"Food's shelf life is not given. Storage conditions matter, especially " -"temperature." -msgstr "食品架並沒有被給予生命。 存放環境很重要, 特別是溫度。" +msgid "Temperature affects the shelf life of foods. The colder, the better." +msgstr "" #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." -msgstr "" +msgstr "冷凍物品不會腐爛,但沒解凍之前可能不適合食用。" #: lang/json/snippet_from_json.py msgid "" @@ -89790,7 +90893,7 @@ msgstr "\"這只是一道刮痕? \" 無論如何, 消毒並包紮可以加速癒 #: lang/json/snippet_from_json.py msgid "" -"Broken limb pinned you down? Hospital might have next gen tech to get you " +"Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" @@ -89807,9 +90910,7 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "" -"Impaired movement speed through difficult terrain can be used as an " -"advantage." +msgid "Terrain that slows you down will also slow down your enemies." msgstr "" #: lang/json/snippet_from_json.py @@ -89825,17 +90926,78 @@ msgid "" msgstr "" #: lang/json/snippet_from_json.py -msgid "Survivor saved is a friend earned. Most of the time..." +msgid "A survivor saved is a friend earned. Most of the time..." msgstr "" #: lang/json/snippet_from_json.py -msgid "Learning how to play? Visit keybindings menu and learn your ropes." +msgid "" +"Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"You can throw things while peeking around corners. Perfect for taking down " +"gun turrets." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Nobody told the vending machines that the world ended. Save those cash " +"cards!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"There's got to be some cool stuff in those top-secret underground labs, " +"right?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Put a funnel over a jug or barrel to collect rainwater over time." +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Did you *only* take everything not nailed down? Go back for the nails!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "You can make your own Safe Mode rules in the pause menu." +msgstr "你可以在暫停選單中自定你的安全模式規則。" + +#: lang/json/snippet_from_json.py +msgid "The best gun in the world is useless without ammo." +msgstr "沒有子彈,連世上最好的槍都會毫無用處。" + +#: lang/json/snippet_from_json.py +msgid "" +"Most zombies go through cars, not around them. Remember that when running " +"away." +msgstr "絕大部份殭屍會直接穿過車輛,而不是繞過。在逃走時要記著這點。" + +#: lang/json/snippet_from_json.py +msgid "" +"If you're stuck inside with a broken leg, read some books to pass the time." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Certain corpses can give you bionics if you dissect them." +msgstr "解剖某些屍體會給你生化插件。" + +#: lang/json/snippet_from_json.py +msgid "Don't be too greedy. Loot doesn't matter if you're dead." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -94718,6 +95880,67 @@ msgstr "水… 附近是不是有個綠洲?" msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "你知道缺水比缺乏休息死得更快嗎?" +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "" +"Oh definitely, how about one of those beers I see on you? What's up anyway?" +msgstr "" + +#: 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 "" + +#: lang/json/snippet_from_json.py +msgid "Hey, sure thing, , I need a break anyway, how are you?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Yeah OK, , how's it going?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure, let's shoot the shit! You OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Why not? How you doing?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I'm OK with that, what's up?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I can spare a few minutes, how's things?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Sure thing , you good?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Alright, you got something to get off your chest?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Always ready for a good chat! But why, you OK?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "OK , we should get to know each other, how are you coping?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Definitely, I'm game. How you holding up?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "darn" msgstr "縫補" @@ -95182,7 +96405,7 @@ msgstr "好友" msgid "fella" msgstr "小伙子" -#: lang/json/snippet_from_json.py src/player.cpp +#: lang/json/snippet_from_json.py msgid "you" msgstr "你" @@ -96258,6 +97481,18 @@ msgstr "" msgid "You're going to pay for that, !" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Quiet down over there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Did you hear someone talking?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Who said that?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "That sounds bad." msgstr "" @@ -96274,6 +97509,10 @@ msgstr "" msgid "What's that noise?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Is something over there?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" msgstr "" @@ -96283,7 +97522,7 @@ msgid "What's that sound? I heard" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who's there? I heard" +msgid "What's there? I heard" msgstr "" #: lang/json/snippet_from_json.py @@ -96291,7 +97530,7 @@ msgid "Did you hear that? Sounded like" msgstr "" #: lang/json/snippet_from_json.py -msgid "Who is making that sound? I can hear the" +msgid "What is making that sound? I can hear the" msgstr "" #: lang/json/snippet_from_json.py @@ -96427,6 +97666,10 @@ msgstr "" msgid " " msgstr "" +#: lang/json/snippet_from_json.py +msgid "undead" +msgstr "" + #: lang/json/snippet_from_json.py msgid "living dead" msgstr "" @@ -96439,10 +97682,6 @@ msgstr "殭屍" msgid "Z's" msgstr "" -#: lang/json/snippet_from_json.py src/artifact.cpp -msgid "dead" -msgstr "死的" - #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -99502,1814 +100741,594 @@ msgid "Clothing Store" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "That sure is a shiny badge you got there!" +msgstr "你那真是一個閃亮亮的警徽啊!" #: lang/json/talk_topic_from_json.py -msgid "" -"I don't even know anymore. I have no idea what is going on." -" I'm just doing what I can to stay alive. The world ended and I bungled " -"along not dying, until I met you." -msgstr "" +msgid "Heh, you look important." +msgstr "嘿, 你看起來很重要。" #: lang/json/talk_topic_from_json.py -msgid "Huh." -msgstr "" +msgid "I'm actually new." +msgstr "我其實是新來的。" #: lang/json/talk_topic_from_json.py -msgid "" -"Before ? Who cares about that? This is a new world, and " -"yeah, it's pretty . It's the one we've got though, so let's not " -"dwell in the past when we should be making the best of what little we have " -"left." -msgstr "" +msgid "What are you doing here?" +msgstr "你在做什麼?" #: lang/json/talk_topic_from_json.py -msgid "I can respect that." -msgstr "" +msgid "Heard anything about the outside world?" +msgstr "有外面世界的新聞嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"To be honest... I don't really remember. I remember vague details of my " -"life before the world was like this, but itself? It's all a" -" blur. I don't know how I got where I am now, or how any of this happened." -" 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 "" +msgid "Is there any way I can join your group?" +msgstr "有辦法讓我加入你們的隊伍嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"My story. Huh. It's nothing special. I had people, but they've risen to " -"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 "" +msgid "What's with your ears?" +msgstr "你的耳朵上是什麼?" #: lang/json/talk_topic_from_json.py -msgid "Do you mean in a religious sense, or...?" -msgstr "" +msgid "Anything I can help with?" +msgstr "有什麼我能幫忙的嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "Well, bye." +msgstr "好吧, 再見。" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" +"Guess that makes two of us. Well, kind of. I don't think we're open, " +"though. Full up as hell; it's almost a crowd downstairs. Did you see the " +"trader at the enterance? There's the one to ask." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Of course. It's clear enough, isn't it? That... that end, was the " -"Rapture. I'm still here, and I still don't understand why, but I will keep " -"Jesus in my heart through the Tribulations to come. When they're past, I'm " -"sure He will welcome me into the Kingdom of Heaven. Or... or something " -"along those lines. It's not going exactly like I thought it would, but " -"that's prophecy for you." -msgstr "" +msgid "Sucks..." +msgstr "爛透了…" #: lang/json/talk_topic_from_json.py -msgid "What if you're wrong?" +msgid "" +"Well, there's a guy downstairs who got a working pneumatic cannon. It " +"shoots metal like... like a cannon without the bang. Cost-efficient as " +"hell. And there's no shortage of improvised weapons you can make. The big " +"thing though, seems to be continuing construction of fortifications. Very " +"few of those monsters seem to be able to break through a fence or wall " +"constructed with the stuff." msgstr "" +"嗯, 樓下有個人有個能正常使用的氣動砲。這東西射出金屬就像… " +"像個不會爆炸的大砲。簡直超有效率。而有這類拼裝武器的人還不乏少數。但是最重要的事情似乎還是建造防禦工事。只有極少數的怪物才打得破柵欄或是牆壁之類的建築。" #: lang/json/talk_topic_from_json.py -msgid "What will you do then?" -msgstr "" +msgid "Well, then..." +msgstr "好吧, 那麼…" #: lang/json/talk_topic_from_json.py msgid "" -"What? How could you say something like that? I can't believe you'd look at" -" all this and think it could be anything but the end-times. The dead are " -"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " -"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " -"What more proof could you possibly ask for?" -msgstr "" +"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 "反正不那麼樂觀。曾經有個有業餘無線電的夥伴, 但是她最後跟著她的東西一起作古了。" #: lang/json/talk_topic_from_json.py -msgid "What will you do, then?" -msgstr "" +msgid "Nothing optimistic?" +msgstr "沒有好消息?" #: lang/json/talk_topic_from_json.py msgid "" -"I will keep the faith, and keep praying, and strike down the agents of Hell " -"where I see them. That's all we few can do, isn't it? I suppose perhaps " -"we're the meek that shall inherit the Earth. Although I don't love our " -"odds." +"Most of the emergency camps have dissolved by now. The cities are mobbed, " +"the forests crawling with glowing eyes and zombies. Some insane shit out " +"there, and everyone with a radio seems to feel like documenting their last " +"awful moments." msgstr "" +"大部分的緊急營地現在都已瓦解了。城市已被圍攻, 叢林中潛伏著發光之眼與殭屍。還有些瘋子在外面, 人們都用著無線電似乎在記錄他們所剩不多的生命。" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as anyone. I turned away from God, and now I'm paying the price. The " -"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 "" +msgid "I feel bad for asking." +msgstr "這要求讓我感覺很不好。" #: lang/json/talk_topic_from_json.py msgid "" -"OK, this is gonna sound crazy but I, like, I knew this was going to happen." -" Like, before it did. You can even ask my psychic except, like, I think " -"she's dead now. I told her about my dreams a week before the world ended. " -"Serious!" +"I don't know. I mean, if you can make yourself useful. But that's become a" +" real hazy thing nowadays. It depends who you ask. The merchant definitely" +" doesn't want me here when I'm not selling, but... some people get away with" +" it." msgstr "" +"我不知道。我的意思是, 假如你能夠讓自己變得有用。但是在現在這已經變得很抽象了。這要看你問的是誰。商人絕對不想要我這沒有要交易的人在這… " +"但是有些人又沒關係。" #: lang/json/talk_topic_from_json.py -msgid "What were your dreams?" +msgid "" +"Same way you got yours, I bet. Keep quiet about it, some people here look " +"down on people like us." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, the first dream I had every night for three weeks. I dreamed that I" -" was running through the woods with a stick, fighting giant spiders. For " -"reals! Every night." -msgstr "" +msgid "Ssh. Some people in here hate... mutations. This was an accident." +msgstr "噓。這裡某些人討厭… 變種人。這是個意外。" #: lang/json/talk_topic_from_json.py -msgid "OK, that doesn't seem that unusual though." -msgstr "" +msgid "Sorry to ask" +msgstr "很抱歉我問了這樣子的問題" #: lang/json/talk_topic_from_json.py -msgid "Wow, crazy, I can't believe you really dreamed ." -msgstr "" +msgid "You're disgusting." +msgstr "你真噁心。" #: lang/json/talk_topic_from_json.py msgid "" -"OK, that's just, like, the beginning though. So, a week before it happened," -" after the spider dream, I would get up and go pee and then go back to bed " -"'cause I was kinda freaked out, right? And then I'd have this other dream, " -"like, where my boss died and came back from the dead! And then, at work a " -"few days later, my boss' husband was visiting and he had a heart attack and " -"I heard the next day that he'd come back from the dead! Just like in my " -"dream, only it was a different person!" +"I burn down buildings and sell the Free Merchants the materials. No, " +"seriously. If you've seen burned wreckage in place of suburbs or even see " +"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 "" +"我把建築燒毀並把物資賣給自由商會。不, 我認真的。假如你在郊區看到被燒毀的殘骸或是看到一些能賣的鋼筋, " +"那應該是我做的。他們已經把我當成交易大戶了。我想, 我可以賣給你一兩個汽油彈, 如果你要的話。" #: lang/json/talk_topic_from_json.py -msgid "That is kinda strange." -msgstr "" +msgid "I'll buy." +msgstr "我要買。" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! And there's more! So, a week before it happened, after the spider " -"dream, I would get up and go pee and then go back to bed 'cause I was kinda " -"freaked out, right? And then I'd have this other dream, like, where my boss" -" died and came back from the dead! And then, at work a few days later, my " -"boss' husband was visiting and he had a heart attack and 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 "" +msgid "Who needs rebar?" +msgstr "誰需要鋼筋?" #: lang/json/talk_topic_from_json.py -msgid "" -"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " -"Like, I get a lot of creepy dreams since the world ended. Like, every " -"couple nights, I dream about a field of black stars all around the Earth, " -"and for just a second they all stare at the Earth all at once like a billion" -" tiny black eyeballs. And then they blink and look away, and then in my " -"dream the Earth is a black star like all the other ones, and I'm stuck on it" -" still, all alone and freakin' out. That's the worst one. There are a few " -"others." +msgid "As if you're one to talk. Screw You." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me some more of your weird dreams." -msgstr "" +msgid "Screw You!" +msgstr "去你的!" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" -" I just act normal to myself and I see zombies as normal people and normal " -"people as zombies. When I wake up I know it's fake though because if it " -"were real, there would be way more normal people. Because they'd actually " -"be zombies. And everyone is a zombie now." -msgstr "" +msgid "Another survivor! We should travel together." +msgstr "另一個倖存者! 我們應該一起行動。" #: lang/json/talk_topic_from_json.py -msgid "I think we all have dreams like that now." -msgstr "" +msgid "What are you doing?" +msgstr "你在做什麼?" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," -" 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 "" +msgid "Care to trade?" +msgstr "需要交易嗎?" #: lang/json/talk_topic_from_json.py -msgid "Poor Filthy Dan. " -msgstr "" +msgid "&Put away weapon." +msgstr "&把武器拿開。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that stuff. " -msgstr "" +msgid "&Drop weapon." +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." +msgid "Don't worry, I'm not going to hurt you" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "How did you survive on the run?" -msgstr "" +msgid "Drop your weapon!" +msgstr "丟下你的武器!" #: lang/json/talk_topic_from_json.py -msgid "" -"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " -"forest before I found the courage to start picking off some of those dead " -"monsters. I guess I was getting desperate." -msgstr "" +msgid "Get out of here or I'll kill you." +msgstr "滾開! 不然我就殺了你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Same as most people who didn't get killed straight up during the riots. I " -"went to one of those evacuation death traps. I actually " -"lived there for a while with three others. One guy who I guess had watched " -"a lot of movies kinda ran the show, because he seemed to really know what " -"was going on. Spoiler alert: he didn't." -msgstr "" +msgid "Hey there, ." +msgstr "喂, 。" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp src/npctalk.cpp +msgid "Bye." +msgstr "再見。" #: lang/json/talk_topic_from_json.py -msgid "What happened to your original crew?" -msgstr "" +msgid "Hello there." +msgstr "哈囉你好。" #: lang/json/talk_topic_from_json.py -msgid "" -"Things went south when our fearless leader decided we had to put down one of" -" the other survivors that had been bitten. Her husband felt a bit strongly " -"against that, and I wasn't too keen on it either; by this point, he'd " -"already been wrong about a lot. Well, he took matters into his own hands " -"and killed her. Then her husband decided one good turn deserves another, " -"and killed the idiot. And then she got back up and I killed her again, and " -"pulped our former leader. Unfortunately she'd given her husband a hell of a" -" nip during the struggle, when he couldn't get his shit together enough to " -"fight back. Not that I fucking blame him. We made it out of there " -"together, but it was too much for him, he clearly wasn't in it anymore... " -"The bite got infected, but it was another that finally killed him." -" And then I was alone." -msgstr "" +msgid "Okay, no sudden movements..." +msgstr "很好, 別突然亂動…" #: lang/json/talk_topic_from_json.py -msgid "What do you think happened? You see them around anywhere?" -msgstr "" +msgid "Keep your distance!" +msgstr "保持你的距離!" #: lang/json/talk_topic_from_json.py -msgid "" -"There's nothing too special about me, I'm not sure why I survived. I got " -"evacuated with a handful of others, but we were too late to make the second " -"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 "" +msgid "Calm down. I'm not going to hurt you." +msgstr "冷靜點。我不會傷害你。" #: lang/json/talk_topic_from_json.py -msgid "" -"They were shipping me with a bunch of evacuees over to a refugee center, " -"when the bus got smashed in by the biggest zombie you ever saw. It was busy" -" with the other passengers, so I did what anyone would do and fucked right " -"out of there." -msgstr "" +msgid "Screw you, no." +msgstr "去你的, 別想。" #: lang/json/talk_topic_from_json.py -msgid "" -"My Evac shelter got swarmed by some of those bees, the ones the size of " -"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 "" +msgid "&Put hands up." +msgstr "&把手舉起來。" #: lang/json/talk_topic_from_json.py -msgid "Giant bees? Tell me more." -msgstr "" +msgid "*drops his weapon." +msgstr "*丟下他的武器。" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive..." -msgstr "" +msgid "*drops_her_weapon." +msgstr "*丟下她的武器。" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " -"an old sci-fi movie. Some of the others in the evac shelter got stung, it " -"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 "" +msgid "Now get out of here" +msgstr "快滾" #: lang/json/talk_topic_from_json.py -msgid "But bees aren't usually aggressive... Do you mean wasps?" -msgstr "" +msgid "Now get out of here, before I kill you." +msgstr "現在在我殺了你之前滾出這裡。" #: 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 "" +msgid "Okay, I'm going." +msgstr "好吧, 我走了。" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Could you tell me more about them?" -msgstr "" +msgid "About that job..." +msgstr "關於那個工作…" #: lang/json/talk_topic_from_json.py -msgid "Right. Sorry." -msgstr "" +msgid "About one of those jobs..." +msgstr "關於其中一項工作…" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, I was at home when the cell phone alert went off and told me to get to" -" an evac shelter. So I went to an evac shelter. And then the shelter got " -"too crowded, and people were waiting to get taken to the refugee center, but" -" the buses never came. You must already know about all that. It turned " -"into panic, and then fighting. I didn't stick around to see what happened " -"next; I headed into the woods with what tools I could snatch from the " -"lockers. I went back a few days later, but the place was totally abandoned." -" No idea what happened to all those people." -msgstr "" +msgid "What's the matter?" +msgstr "怎麼了?" #: 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 "" +msgid "I don't care." +msgstr "我不在乎。" #: lang/json/talk_topic_from_json.py -msgid "Tell me more about that FEMA camp." -msgstr "" +msgid "I see." +msgstr "我懂了。" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Oh, okay." +msgstr "喔, 好吧。" #: lang/json/talk_topic_from_json.py -msgid "How did you get out?" -msgstr "" +msgid "Never mind, I'm not interested." +msgstr "別在意, 我沒興趣。" + +#: lang/json/talk_topic_from_json.py src/activity_handlers.cpp +#: src/crafting.cpp src/game.cpp src/game.cpp src/handle_action.cpp +#: src/handle_action.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp src/npctalk.cpp src/npctalk.cpp src/pickup.cpp +#: src/player.cpp src/player.cpp src/player.cpp src/veh_interact.cpp +msgid "Never mind." +msgstr "沒事。" #: lang/json/talk_topic_from_json.py -msgid "" -"It was terrifying. We were shipped there on a repurposed school bus, about " -"thirty of us. You can probably see the issues right away. A few of the " -"folks on board the bus had injuries, and some schmuck who had seen too many " -"B-movies tried to insist that anyone who 'had been bitten' was going to " -"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " -"worst I got was a gross infection." -msgstr "" +msgid "I'll do it!" +msgstr "我會做的!" #: lang/json/talk_topic_from_json.py -msgid "What happened after that?" -msgstr "" +msgid "Not interested." +msgstr "沒興趣。" #: lang/json/talk_topic_from_json.py -msgid "" -"That guy started a frenzy. People were already panicked. There was an " -"armed guy overseeing the transport, acting like a cop but really he was just" -" some kid they'd handed a rifle to. He tried to calm things down, " -"and I guess it actually worked for a bit, although the 'kill the infected' " -"bunch were pretty freaked out and were clearly ready to jump the " -"moment the granny with the cut on her arm started frothing at the mouth. " -"They started acting up again when we got to the camp. That didn't go well " -"for them. A few heavily armed soldiers dragged them away, and I never saw " -"them again." -msgstr "" +msgid "Not a problem." +msgstr "不成問題。" #: lang/json/talk_topic_from_json.py -msgid "" -"That place was chaos. I only stayed a few hours. They had a big backhoe " -"running, digging a huge pit in a cordoned section they wouldn't let us near." -" Well, I managed to sneak over that way, and saw them dumping load after " -"load of the dead in the pit, pouring dirt back over them even as they " -"revived and tried to climb out. Even with all the shit I've seen since, it " -"haunts me. I knew then I had to get out. Luckily for me, we were attacked " -"the next morning by some giant horror, a kind I haven't really seen since " -"then. While the guards were busy with that, I grabbed some supplies I'd " -"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 "" +msgid "Got any advice?" +msgstr "有任何建議嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"That's a story for another day. I don't really like thinking about it." -msgstr "" +msgid "Can you share some equipment?" +msgstr "你可以分享一些裝備嗎?" #: lang/json/talk_topic_from_json.py -msgid "Sorry. Tell me more about that FEMA camp." -msgstr "" +msgid "I'll be back soon!" +msgstr "我會很快回來!" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good, thanks." +msgstr "聽起來不錯, 謝了。" #: lang/json/talk_topic_from_json.py -msgid "Sorry for asking. " -msgstr "" +msgid "Sounds good. Bye!" +msgstr "聽起來不錯。再見!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was late to evacuate when the shit hit the fan. Got stuck in town for a " -"few days, survived by hiding in basements eating girl scout cookies and " -"drinking warm root beer. Eventually I managed to weasel my way out without " -"getting caught by the . I spent a few days holed up in an " -"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 "" +msgid "I'm sorry." +msgstr "我很抱歉。" #: lang/json/talk_topic_from_json.py -msgid "" -"I was home with the flu when the world went to shit, and when I recovered " -"enough to make a run to the store for groceries... Well, I've been running " -"ever since." -msgstr "" +msgid "Whatever. Bye." +msgstr "隨便啦。掰掰。" #: lang/json/talk_topic_from_json.py -msgid "Come on, don't leave me hanging." -msgstr "" +msgid "Well, um, sorry." +msgstr "痾, 抱歉。" #: lang/json/talk_topic_from_json.py -msgid "" -"Okay, well, I was kinda out of it those first few days. I knew there were " -"storms, but I was having crazy fever dreams and stuff. Honestly I probably " -"should have gone to the hospital, except then I guess I'd be dead now. I " -"don't know what was a dream and what was the world ending. I remember " -"heading to the fridge for a drink and noticing the light was out and the " -"water was warm, I think that was a bit before my fever broke. I was still " -"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 "" +msgid "I'm sorry. I did what I could." +msgstr "我很抱歉。我已經盡力了。" #: lang/json/talk_topic_from_json.py -msgid "What happened when you went out?" -msgstr "" +msgid "Sure, here you go!" +msgstr "好的, 給你!" #: lang/json/talk_topic_from_json.py -msgid "" -"You probably remember what the cities were like. I think it was about day " -"four. Once I stepped outside I realized what was going on, or realized I " -"didn't know what was going on at least. I saw a bunch of rioters smashing a" -" car, and then I noticed one of them was bashing a woman's head in. I " -"cancelled my grocery trip, ran back to my apartment before they saw me, and " -"holed up there for as long as I could. Things got comparatively quiet as " -"the dead started to outnumber the living, so I started looting what I could " -"from my neighbors, re-killing them when I had to. Eventually the " -"overran my building and I had to climb out and head for the hills on an old " -"bike." -msgstr "" +msgid "Thank you." +msgstr "謝謝你。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Thanks, bye." +msgstr "謝謝, 再見。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me all that. " -msgstr "" +msgid "Well, I guess it's just us." +msgstr "嗯, 我想只剩我們了。" #: 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 "" +msgid "At least we've got shelter." +msgstr "至少我們還有避難所。" #: lang/json/talk_topic_from_json.py -msgid "How did that go?" -msgstr "" +msgid "What should we do now?" +msgstr "我們現在該怎麼辦?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Any tips?" +msgstr "有建議嗎?" + +#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py +#: src/npctalk.cpp +msgid "Can I do anything for you?" +msgstr "我能為你做什麼事嗎?" #: lang/json/talk_topic_from_json.py -msgid "Cool. " -msgstr "" +msgid "Want to travel with me?" +msgstr "你願意跟我一起旅行嗎?" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's trade items." +msgstr "我們來交易吧。" #: lang/json/talk_topic_from_json.py -msgid "" -"Almost got killed. One is easy pickins, but ten is a lot, and a " -"hundred is a death trap. I got myself in too deep, an' barely slipped out " -"with my guts still inside me. Holed up in an old motel for a while lickin' " -"my wounds and thinkin' about what I wanted to do next. That's when I " -"figured it out." -msgstr "" +msgid "I can't leave the shelter without equipment." +msgstr "我不能沒有裝備就離開避難所。" #: lang/json/talk_topic_from_json.py -msgid "Figured what out?" +msgid "Relax and chat with me for a while..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Never mind. " +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"This is it. This is what I was made for. There in the street, smashin' " -"monster heads and prayin' I'd make it out? I've never felt like that. " -"Alive. Important. So after I got myself all stuck back together, I nutted " -"up and went back to it. Probly killed a thousand Z since then, and I'm " -"still not tired of it." +"Yeah, this summer heat is hitting me hard, let's take a quick break, how " +"goes it ?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good you found your calling. " +msgid "Well, I'm feeling pretty sick... are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " -"hoo. I gotta be straight with you though: I honestly think I like this " -"better. Fighting for survival every day? I've never felt so alive. I've " -"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." +"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 "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well y'see, I'm not from these parts at all. I was driving up from the " -"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." +msgid "Oh you know, not bad, not bad..." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Tell me about your son." -msgstr "" +msgid "I don't know, look for supplies and other survivors I guess." +msgstr "我不知道, 我想應該就是蒐集物資以及找其他的生存者吧。" #: lang/json/talk_topic_from_json.py -msgid "So, you went to one of the FEMA camps?" -msgstr "" +msgid "Maybe we should start boarding up this place." +msgstr "也許我們要開始把這個地方用木板加固起來。" #: lang/json/talk_topic_from_json.py msgid "" -"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" -" wife and my three grandkids. He's an environmental engineer for some oil " -"and gas company out there. She's a bit of a hippy-dippy headcase. I love " -"em both though, and as far as I'm concerned they all made it out of this " -"fucked up mess safe, out there in the boondocks. I guess they think I'm " -"dead, so they'll steer clear of this hellhole, and that's the best as could " -"be." -msgstr "" +"I suppose getting a car up and running should really be useful if we have to" +" disappear quickly from here." +msgstr "如果我們要迅速從這裡消失, 我想取得一輛車來行駛應該是很有幫助。" #: lang/json/talk_topic_from_json.py -msgid "What was it you said before?" +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 "" #: lang/json/talk_topic_from_json.py msgid "" -"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " -"the hell to do. I had my Hummer loaded out and ready to go offroading, I " -"had a ton of gas, and I even had as many rifles as the border was gonna let " -"me bring over. I didn't know what I was supposed to be running from, but I " -"sure as shit didn't run. " -msgstr "" +"We should probably stay away from those cities, even if there's plenty of " +"useful stuff there." +msgstr "我們最好遠離那些城市, 即使有許多實用的東西在那裡。" #: lang/json/talk_topic_from_json.py -msgid "Where did you go then?" -msgstr "" +msgid "Hmm, okay." +msgstr "嗯, 好吧。" #: lang/json/talk_topic_from_json.py -msgid "" -"At first, I just kept going North, but I ran into a huge military blockade." -" They even had those giant walking robots like on TV. I started going up " -"to check it out, and before I knew it they were opening fire! I coulda " -"died, but I still have pretty good reactions. I turned tail and rolled out " -"of there. My Hummer had taken some bad hits though, and I found out the " -"hard way I was leaking gas all down the freeway. Made it a few miles before" -" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " -"guess I'm still kinda heading North, just by a pretty round-about way, you " -"know?" -msgstr "" +msgid "Not until I get some antibiotics..." +msgstr "我還沒找到抗生素…" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "You asked me recently; ask again later." +msgstr "你沒多久前才問過我, 晚點再說吧。" #: lang/json/talk_topic_from_json.py -msgid "That's quite a story. " -msgstr "" +msgid "Why should I travel with you?" +msgstr "為什麼我要跟著你旅行?" #: lang/json/talk_topic_from_json.py -msgid "" -"Ooooh, boy. I was ready for this. The winds were blowing this way for " -"years. I had a full last man on earth shelter set up just out of town. So," -" of course, just my luck: I was miles out of town for a work conference when" -" China attacked and the world ended." -msgstr "" +msgid "Understood. I'll get those antibiotics." +msgstr "了解。我會找到抗生素的。" #: lang/json/talk_topic_from_json.py -msgid "What happened to you?" -msgstr "" +msgid "Right, right, I'll ask later." +msgstr "好吧, 好吧, 我待會再問。" #: lang/json/talk_topic_from_json.py -msgid "What about your shelter?" -msgstr "" +msgid "I can keep you safe." +msgstr "我能保護你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Our conference was at a retreat by a lake. We all got the emergency " -"broadcast on our cells, but I was the only one to read between the lines and" -" see it for what it was: large scale bio-terrorism. I wasn't about to stay " -"and find out who of my coworkers was a sleeper agent. Although I'd bet " -"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " -"headed straight for my shelter." -msgstr "" +msgid "You can keep me safe." +msgstr "你能保護我。" #: lang/json/talk_topic_from_json.py -msgid "Did you get there?" -msgstr "" +msgid "We're friends, aren't we?" +msgstr "我們不是朋友嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"No, I barely got two miles. I crashed into some kind of hell-spawn chink " -"bio-weapon, a crazy screeching made of arms and legs and heads " -"from all sorts of creatures, humans too. I think I killed it, but I know " -"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" -" couple bullets into it for good measure. I hope I never see something like" -" that again." -msgstr "" +msgid "I'll kill you if you don't." +msgstr "你不照做我就殺了你!" #: 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 "" +msgid "You got it, I'm with you!" +msgstr "我懂了, 我跟著你!" #: lang/json/talk_topic_from_json.py -msgid "Could you tell me that story again?" -msgstr "" +msgid "Awesome!" +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 "" +msgid "Okay, let's go!" +msgstr "好, 我們走!" #: lang/json/talk_topic_from_json.py -msgid "Sounds like it didn't work out." -msgstr "" +msgid "Yeah... I don't think so." +msgstr "痾… 我不這麼覺得。" #: lang/json/talk_topic_from_json.py -msgid "Hey, I'd really be interested in seeing those maps." -msgstr "" +msgid "You're really leaving?" +msgstr "你真的要離開?" #: lang/json/talk_topic_from_json.py -msgid "" -"Depends on your definition. I'm alive, aren't I? When Hell itself came " -"down from the skies and monsters started attacking the cities, I grabbed my " -"stuff and crammed into the bunker. My surface cameras stayed online for " -"days; I could see everything happening up there. I watched those things " -"stride past. I still have nightmares about the way their bodies moved, like" -" they broke the world just to be here. I had nothing better to do. I " -"watched them rip up the cops and the military, watched the dead rise back up" -" and start fighting the living. I watched the nice old lady down the street" -" 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 "" +msgid "Yeah, I'm sure. Bye." +msgstr "耶, 我很確定。掰。" #: lang/json/talk_topic_from_json.py -msgid "Why did you leave your bunker?" -msgstr "" +msgid "Nah, I'm just kidding." +msgstr "啊, 只是開玩笑而已。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp +msgid "What is it?" +msgstr "什麼事?" #: lang/json/talk_topic_from_json.py -msgid "" -"Honestly? I was planning to die. After what I'd seen, I went a little " -"crazy. I thought it was over for sure, I figured there was no point in " -"fighting it. I thought I wouldn't last a minute out here, but I couldn't " -"bring myself to end it down there. I headed out, planning to let the " -" finish me off, but what can I say? Survival instinct is a funny " -"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 "" +msgid "How much further?" +msgstr "還有多遠?" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "" +msgid "I'd like to lead for a while." +msgstr "我要暫時帶領一會。" #: lang/json/talk_topic_from_json.py -msgid "Thanks for telling me that. " -msgstr "" +msgid "Step aside. I'm leader now." +msgstr "讓開。我現在是領隊了。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "Let's go." +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 "" +msgid "Alright. You can lead now." +msgstr "好吧。你可以帶路了。" #: lang/json/talk_topic_from_json.py -msgid "[$2000] You have a deal." -msgstr "" +msgid "Good. Something else..." +msgstr "好。還有其他的…" #: lang/json/talk_topic_from_json.py -msgid "Whatever's in that map benefits both of us." -msgstr "" +msgid "Alright, let's go." +msgstr "好吧, 我們走。" #: lang/json/talk_topic_from_json.py -msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "" +msgid "Okay, okay." +msgstr "好啦, 好啦。" #: lang/json/talk_topic_from_json.py -msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" +msgid "Not a bloody chance, I'm going to get left behind!" +msgstr "我才不要, 我會被丟在後面沒人理!" #: lang/json/talk_topic_from_json.py -msgid "All right. Here they are." -msgstr "" +msgid "Fine." +msgstr "很好。" #: lang/json/talk_topic_from_json.py -msgid "Thanks! What was it you were saying before?" -msgstr "" +msgid "I'm on watch." +msgstr "我來把風。" + +#: lang/json/talk_topic_from_json.py src/npctalk.cpp +msgid "I need you to come with me." +msgstr "我需要你跟我來。" #: lang/json/talk_topic_from_json.py -msgid "Nice try. You want the maps, you pay up." -msgstr "" +msgid "See you around." +msgstr "待會見。" #: lang/json/talk_topic_from_json.py -msgid "Fine. What was it you were saying before?" -msgstr "" +msgid "I really don't feel comfortable doing so..." +msgstr "這麼做讓我不是很舒服…" #: lang/json/talk_topic_from_json.py -msgid "" -"I didn't even know about right away. I was way out, away " -"from the worst of it. My car broke down out on the highway, and I was " -"waiting for a tow for hours. I finally wound up camping in the bushes off " -"the side of the road; good thing, too, because a semi truck whipped by - " -"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 "" +msgid "I'll give you some space." +msgstr "我會給你一些空間。" #: lang/json/talk_topic_from_json.py -msgid "How did you survive outside?" -msgstr "" +msgid "I'd prefer to keep that to myself." +msgstr "我想自己管好自己就好了。" #: lang/json/talk_topic_from_json.py -msgid "What did you see in those first few days?" -msgstr "" +msgid "I understand..." +msgstr "我了解…" #: lang/json/talk_topic_from_json.py -msgid "" -"Ha, I don't fully understand it myself. Those first few days were a tough " -"time to be outside, that's for sure. I got caught in one of those hellish " -"rainstorms, it started to burn my skin right off. I managed to take shelter" -" under a car, lying on top of my tent. Wrecked the damn thing, but better " -"it than me. From what I hear, though, I got lucky. That was pretty much " -"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 "" +msgid "Okay, here you go." +msgstr "好啦, 給你。" #: lang/json/talk_topic_from_json.py -msgid "" -"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " -"stay away from the roads, but I didn't want to get lost in the woods either," -" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" -" evacuees. Plenty went right on, but a lot stalled out of gas and other " -"stuff. Some were so full of gear and people there were folks hanging off " -"them. Stalling out was a death sentence, because the dead were coming along" -" the roads picking off the survivors." -msgstr "" +msgid "Thank you!" +msgstr "謝謝!" #: lang/json/talk_topic_from_json.py -msgid "" -"I was out on a fishing trip with my friend when it happened. I don't know " -"exactly how the days line up... our first clue that Armageddon had come was" -" when we got blasted by some kind of poison wind, with a sort of acid mist " -"in it that burnt our eyes and skin. We weren't sure what to make of it so " -"we went inside to rest up, and while we were in there a weird dust settled " -"over everything." -msgstr "" +msgid "Thanks! But can I have some more?" +msgstr "謝了! 還可以再給多點嗎?" #: lang/json/talk_topic_from_json.py -msgid "What happened after the acid mist?" -msgstr "" +msgid "Thanks, see you later!" +msgstr "謝了, 待會見!" #: lang/json/talk_topic_from_json.py -msgid "" -"By morning, the area around the lake was covered in a pinkish mold, and " -"there were walking mushrooms around shooting clouds of the dust in the air." -" We didn't know what was going on, but neither of us wanted to stay and " -"find out. We packed up our shit, scraped off the boat, and took off " -"upriver." -msgstr "" +msgid "Okay, okay, sorry." +msgstr "好吧, 好吧, 真抱歉。" #: lang/json/talk_topic_from_json.py -msgid "What happened to your friend?" -msgstr "" +msgid "Seriously, give me more stuff!" +msgstr "我說真的, 再給我東西!" #: lang/json/talk_topic_from_json.py -msgid "" -"She took sick a few hours after we left the lake. Puking, complaining about" -" her joints hurting. I took us to a little shop I knew about on the " -"riverside, hoping they might have something to help or at least know what " -"was going on." -msgstr "" +msgid "Okay, fine, bye." +msgstr "好吧, 好, 再見。" #: lang/json/talk_topic_from_json.py -msgid "I guess they didn't know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The shop was empty, actually. She was desperate though, so I broke in. I " -"found out more about the chaos in towns from the store radio. Got my friend" -" some painkillers and gravol, but when I came out to the boat, well... it " -"was too late for her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "She was dead?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I wish. That would have been a mercy. She was letting out an awful, " -"choking scream, and her body was shredding itself apart. Mushrooms were " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That's awful. " -msgstr "" - -#: 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 "" - -#: 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry to hear it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Tell me about those plant monsters." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That's how it goes, you know? These are the end times. I don't really want" -" to talk about it more than that. And honestly, I never really felt like I " -"belonged, in the old world. In a weird way, I actually feel like I have a " -"purpose now. Do you ever get that?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "No, that's messed up." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I guess those of us who made it this far have to have made it for a reason, " -"or something. I don't mean like a religious reason, just... we're " -"survivors." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Haha, yeah, I can see why you'd think that. I don't mean it's a good " -"apocalypse. I just mean that at least now I know what I'm doing every day." -" 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, have you seen them yet? They're these walking flowers with a" -" big stinger in the middle. They travel in packs. They hate the " -"zombies, and we were using them for cover to clear a horde of the dead. " -"Unfortunately, turns out the plants are better trackers than the ." -" They almost seemed intelligent... I barely made it out, only because they" -" were, uh, distracted." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry you lost someone." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Just another tale of love and loss. Not something I like to tell." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "It might help to get it off your chest." -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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind. Sorry I brought it up." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "OK." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, . This doesn't have anything to do with you, or with us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I take it home was bad." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah. I really did. It took me two days to make it across the city on " -"foot, camping out in dumpsters and places like that. I started moving more " -"by night, and I learned right away to avoid the military. They were a " -"magnet for the , and they were usually stationed where the monsters" -" were coming. Some parts of the city were pretty tame at first. There were" -" a few chunks where people had been evacuated or cleared out, and the " -" didn't really go there. Later on, others like me started moving " -"into those neighborhoods, so I switched and started running through the " -"blasted out downtown. I had to anyway, to get home. By the time I made the" -" switch though, the fighting was starting to die off, and I was mostly just " -"avoiding attention from zombies and other things." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The first warning was that I had to move from the preserved parts of the " -"city to the burnt out ones to get home. It only got worse. There was a " -"police barricade right outside my house, with a totally useless pair of " -"automated turrets sitting in front just idly watching the zombies lurch by." -" That was before someone switched them to kill everybody, back when it only" -" killed trespassing humans. Good times, you can always trust bureaucracy to" -" fuck things up in the most spectacular way possible. Anyway, the house " -"itself was half collapsed, a SWAT van had plowed into it. I think I knew " -"what I was going to see in there, but I had made it that far and I wasn't " -"going to turn back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You must have seen some shit on the way there." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Did you make it into the house?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirius by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirius by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then... well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started... cancer. If anything good " -"has come out of all this, it's that I finally see a positive to losing her " -"so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My husband " -"passed away a bit over a month before this started... cancer. If anything " -"good has come out of all this, it's that I finally see a positive to losing " -"him so young. I'd been shut in for a while anyway. When the news started " -"talking about Chinese bio weapons and sleeper agents, and showing the " -"rioting in Boston and such, I curled up with my canned soup and changed the " -"channel." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What happened next?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, it built up a bit. There was that acid rain, it burnt up one of my " -"tractors. Not that I'd been working the fields since... well, it'd been a " -" year and I hadn't done much worth doing. There were explosions and" -" things, and choppers overhead. I was scared, kept the curtains drawn, kept" -" changing the channels. Then, one day, there were no channels to change to." -" Just the emergency broadcast, over and over." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was the first thing to really shake me out of it. I didn't really have" -" any very close friends, but there were people back in town I cared about a " -"bit. I had sent some texts, but I hadn't really twigged that they hadn't " -"replied for days. I got in my truck and tried to get back to town. Didn't " -"get far before I hit a infested pileup blocking the highway, and " -"that's when I started to put it all together. Never did get to town. " -"Unfortunately I led the back to my farm, and had to bug out of " -"there. Might go back and clear it out, someday." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I lived on the edge of a small town. Corner store and a gas station " -"and not much else. We heard about the shit goin' down in the city, but we " -"didn't see much of it until the military came blazing through and tried to " -"set up a camp there. They wanted to bottle us all up in town, and I wasn't " -"having with that, so my dog Buck and I, we headed out while they were all " -"sniffin' their own farts." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " -"little dope thought we were just goin' for a real long walk. I couldn't " -"take the truck without the army boys catchin' wind of it. We made it out to" -" the forest, camped out in a lean to. Packed up and kept heading out. At " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Where's Buck now?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I see where this is headed. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We got to my buddy's ranch, but the g-men had been there first. It " -"was all boarded up and there was a police barricade out front. One of those" -" turrets... shot Buck. Almost got me too. I managed to " -"get my pup... get him outta there, that... it wasn't easy, had to use a " -"police car door as a shield, had to kill a cop-zombie first. And then, " -"well, while I was still cryin', Buck came back. I had to ... . " -"I... I can't say it. You know." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry about Buck. " -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well now, That's a hell of a story, so settle in. It all goes back to about" -" five years ago, after I retired from my job at the mill. Times was tough, " -"but we got by." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, please continue." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "On second thought, let's talk about something else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"That was when I had my old truck, the blue one. We called 'er ol' yeller. " -"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " -"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " -"fireflies to catch." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Fireflies. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "How does this relate to what I asked you?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I need to get going." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "18 gauge, the dog. Got it." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I think I see some zombies coming. We should cut this short." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Shut up, you old fart." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " -"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Now up the top o' Mount Greenwood there used to be a ranger station, that " -"woulda been before you were born. It got burnt down that one year, they " -"said it were lightnin' but you an' I both know it were college kids " -"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." -" Burnt out ol' husk looked haunted, we figgered there 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you see?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We really, really have to go." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For fuck's sake, shut UP!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " -"to be a ranger station, that woulda been before you were born. It got burnt" -" down that one year, they said it were lightnin' but you an' I both know it " -"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " -"in to check it out. Burnt out ol' husk looked haunted, we figgered there " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" -" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "I catch your drift." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Are you done yet? Seriously!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Anyway, long story short, I were headin' back up to Mount Greenwood to check" -" on th'old ranger station again when I heard them bombs fallin and choppers " -"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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the story!" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "That sure is a shiny badge you got there!" -msgstr "你那真是一個閃亮亮的警徽啊!" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "嘿, 你看起來很重要。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new." -msgstr "我其實是新來的。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing here?" -msgstr "你在做什麼?" - -#: lang/json/talk_topic_from_json.py -msgid "Heard anything about the outside world?" -msgstr "有外面世界的新聞嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Is there any way I can join your group?" -msgstr "有辦法讓我加入你們的隊伍嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "What's with your ears?" -msgstr "你的耳朵上是什麼?" - -#: lang/json/talk_topic_from_json.py -msgid "Anything I can help with?" -msgstr "有什麼我能幫忙的嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Well, bye." -msgstr "好吧, 再見。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Guess that makes two of us. Well, kind of. I don't think we're open, " -"though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sucks..." -msgstr "爛透了…" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a guy downstairs who got a working pneumatic cannon. It " -"shoots metal like... like a cannon without the bang. Cost-efficient as " -"hell. And there's no shortage of improvised weapons you can make. The big " -"thing though, seems to be continuing construction of fortifications. Very " -"few of those monsters seem to be able to break through a fence or wall " -"constructed with the stuff." -msgstr "" -"嗯, 樓下有個人有個能正常使用的氣動砲。這東西射出金屬就像… " -"像個不會爆炸的大砲。簡直超有效率。而有這類拼裝武器的人還不乏少數。但是最重要的事情似乎還是建造防禦工事。只有極少數的怪物才打得破柵欄或是牆壁之類的建築。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, then..." -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 "反正不那麼樂觀。曾經有個有業餘無線電的夥伴, 但是她最後跟著她的東西一起作古了。" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing optimistic?" -msgstr "沒有好消息?" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Most of the emergency camps have dissolved by now. The cities are mobbed, " -"the forests crawling with glowing eyes and zombies. Some insane shit out " -"there, and everyone with a radio seems to feel like documenting their last " -"awful moments." -msgstr "" -"大部分的緊急營地現在都已瓦解了。城市已被圍攻, 叢林中潛伏著發光之眼與殭屍。還有些瘋子在外面, 人們都用著無線電似乎在記錄他們所剩不多的生命。" - -#: lang/json/talk_topic_from_json.py -msgid "I feel bad for asking." -msgstr "這要求讓我感覺很不好。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know. I mean, if you can make yourself useful. But that's become a" -" real hazy thing nowadays. It depends who you ask. The merchant definitely" -" doesn't want me here when I'm not selling, but... some people get away with" -" it." -msgstr "" -"我不知道。我的意思是, 假如你能夠讓自己變得有用。但是在現在這已經變得很抽象了。這要看你問的是誰。商人絕對不想要我這沒有要交易的人在這… " -"但是有些人又沒關係。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Same way you got yours, I bet. Keep quiet about it, some people here look " -"down on people like us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "噓。這裡某些人討厭… 變種人。這是個意外。" - -#: lang/json/talk_topic_from_json.py -msgid "Sorry to ask" -msgstr "很抱歉我問了這樣子的問題" - -#: lang/json/talk_topic_from_json.py -msgid "You're disgusting." -msgstr "你真噁心。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I burn down buildings and sell the Free Merchants the materials. No, " -"seriously. If you've seen burned wreckage in place of suburbs or even see " -"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 "" -"我把建築燒毀並把物資賣給自由商會。不, 我認真的。假如你在郊區看到被燒毀的殘骸或是看到一些能賣的鋼筋, " -"那應該是我做的。他們已經把我當成交易大戶了。我想, 我可以賣給你一兩個汽油彈, 如果你要的話。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll buy." -msgstr "我要買。" - -#: lang/json/talk_topic_from_json.py -msgid "Who needs rebar?" -msgstr "誰需要鋼筋?" - -#: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "去你的!" - -#: lang/json/talk_topic_from_json.py -msgid "Another survivor! We should travel together." -msgstr "另一個倖存者! 我們應該一起行動。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing?" -msgstr "你在做什麼?" - -#: lang/json/talk_topic_from_json.py -msgid "Care to trade?" -msgstr "需要交易嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "&Put away weapon." -msgstr "&把武器拿開。" - -#: lang/json/talk_topic_from_json.py -msgid "&Drop weapon." -msgstr "&丟下武器。" - -#: lang/json/talk_topic_from_json.py -msgid "Don't worry, I'm not going to hurt you" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Drop your weapon!" -msgstr "丟下你的武器!" - -#: lang/json/talk_topic_from_json.py -msgid "Get out of here or I'll kill you." -msgstr "滾開! 不然我就殺了你。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey there, ." -msgstr "喂, 。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp src/npctalk.cpp -msgid "Bye." -msgstr "再見。" - -#: lang/json/talk_topic_from_json.py -msgid "Hello there." -msgstr "哈囉你好。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, no sudden movements..." -msgstr "很好, 別突然亂動…" - -#: lang/json/talk_topic_from_json.py -msgid "Keep your distance!" -msgstr "保持你的距離!" - -#: lang/json/talk_topic_from_json.py -msgid "Calm down. I'm not going to hurt you." -msgstr "冷靜點。我不會傷害你。" - -#: lang/json/talk_topic_from_json.py -msgid "Screw you, no." -msgstr "去你的, 別想。" - -#: lang/json/talk_topic_from_json.py -msgid "&Put hands up." -msgstr "&把手舉起來。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." -msgstr "*丟下他的武器。" - -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*丟下她的武器。" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here" -msgstr "快滾" - -#: lang/json/talk_topic_from_json.py -msgid "Now get out of here, before I kill you." -msgstr "現在在我殺了你之前滾出這裡。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, I'm going." -msgstr "好吧, 我走了。" - -#: lang/json/talk_topic_from_json.py -msgid "About that job..." -msgstr "關於那個工作…" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those jobs..." -msgstr "關於其中一項工作…" - -#: lang/json/talk_topic_from_json.py -msgid "What's the matter?" -msgstr "怎麼了?" - -#: lang/json/talk_topic_from_json.py -msgid "I don't care." -msgstr "我不在乎。" - -#: lang/json/talk_topic_from_json.py -msgid "I see." -msgstr "我懂了。" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Oh, okay." -msgstr "喔, 好吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Never mind, I'm not interested." -msgstr "別在意, 我沒興趣。" - -#: lang/json/talk_topic_from_json.py src/crafting.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/npctalk.cpp -#: src/npctalk.cpp src/pickup.cpp src/player.cpp src/player.cpp -#: src/veh_interact.cpp -msgid "Never mind." -msgstr "沒事。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll do it!" -msgstr "我會做的!" - -#: lang/json/talk_topic_from_json.py -msgid "Not interested." -msgstr "沒興趣。" - -#: lang/json/talk_topic_from_json.py -msgid "Not a problem." -msgstr "不成問題。" - -#: lang/json/talk_topic_from_json.py -msgid "Got any advice?" -msgstr "有任何建議嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you share some equipment?" -msgstr "你可以分享一些裝備嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll be back soon!" -msgstr "我會很快回來!" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good, thanks." -msgstr "聽起來不錯, 謝了。" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds good. Bye!" -msgstr "聽起來不錯。再見!" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry." -msgstr "我很抱歉。" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever. Bye." -msgstr "隨便啦。掰掰。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, um, sorry." -msgstr "痾, 抱歉。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry. I did what I could." -msgstr "我很抱歉。我已經盡力了。" - -#: lang/json/talk_topic_from_json.py -msgid "Sure, here you go!" -msgstr "好的, 給你!" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "謝謝你。" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, bye." -msgstr "謝謝, 再見。" - -#: lang/json/talk_topic_from_json.py -msgid "Well, I guess it's just us." -msgstr "嗯, 我想只剩我們了。" - -#: lang/json/talk_topic_from_json.py -msgid "At least we've got shelter." -msgstr "至少我們還有避難所。" - -#: lang/json/talk_topic_from_json.py -msgid "What should we do now?" -msgstr "我們現在該怎麼辦?" - -#: lang/json/talk_topic_from_json.py -msgid "Any tips?" -msgstr "有建議嗎?" - -#: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py -#: src/npctalk.cpp -msgid "Can I do anything for you?" -msgstr "我能為你做什麼事嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Want to travel with me?" -msgstr "你願意跟我一起旅行嗎?" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's trade items." -msgstr "我們來交易吧。" - -#: lang/json/talk_topic_from_json.py -msgid "I can't leave the shelter without equipment." -msgstr "我不能沒有裝備就離開避難所。" - -#: lang/json/talk_topic_from_json.py -msgid "I don't know, look for supplies and other survivors I guess." -msgstr "我不知道, 我想應該就是蒐集物資以及找其他的生存者吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Maybe we should start boarding up this place." -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 "如果我們要迅速從這裡消失, 我想取得一輛車來行駛應該是很有幫助。" - -#: 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 "" - -#: 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 "我們最好遠離那些城市, 即使有許多實用的東西在那裡。" - -#: lang/json/talk_topic_from_json.py -msgid "Hmm, okay." -msgstr "嗯, 好吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "我還沒找到抗生素…" - -#: lang/json/talk_topic_from_json.py -msgid "You asked me recently; ask again later." -msgstr "你沒多久前才問過我, 晚點再說吧。" - -#: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "為什麼我要跟著你旅行?" - -#: lang/json/talk_topic_from_json.py -msgid "Understood. I'll get those antibiotics." -msgstr "了解。我會找到抗生素的。" - -#: lang/json/talk_topic_from_json.py -msgid "Right, right, I'll ask later." -msgstr "好吧, 好吧, 我待會再問。" - -#: lang/json/talk_topic_from_json.py -msgid "I can keep you safe." -msgstr "我能保護你。" - -#: lang/json/talk_topic_from_json.py -msgid "You can keep me safe." -msgstr "你能保護我。" - -#: lang/json/talk_topic_from_json.py -msgid "We're friends, aren't we?" -msgstr "我們不是朋友嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "I'll kill you if you don't." -msgstr "你不照做我就殺了你!" - -#: lang/json/talk_topic_from_json.py -msgid "You got it, I'm with you!" -msgstr "我懂了, 我跟著你!" - -#: lang/json/talk_topic_from_json.py -msgid "Awesome!" -msgstr "讚啦!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, let's go!" -msgstr "好, 我們走!" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah... I don't think so." -msgstr "痾… 我不這麼覺得。" - -#: lang/json/talk_topic_from_json.py -msgid "You're really leaving?" -msgstr "你真的要離開?" - -#: lang/json/talk_topic_from_json.py -msgid "Yeah, I'm sure. Bye." -msgstr "耶, 我很確定。掰。" - -#: lang/json/talk_topic_from_json.py -msgid "Nah, I'm just kidding." -msgstr "啊, 只是開玩笑而已。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp src/npctalk.cpp -msgid "What is it?" -msgstr "什麼事?" - -#: lang/json/talk_topic_from_json.py -msgid "How much further?" -msgstr "還有多遠?" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to lead for a while." -msgstr "我要暫時帶領一會。" - -#: lang/json/talk_topic_from_json.py -msgid "Step aside. I'm leader now." -msgstr "讓開。我現在是領隊了。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "Let's go." -msgstr "我們走。" - -#: lang/json/talk_topic_from_json.py -msgid "Alright. You can lead now." -msgstr "好吧。你可以帶路了。" - -#: lang/json/talk_topic_from_json.py -msgid "Good. Something else..." -msgstr "好。還有其他的…" - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's go." -msgstr "好吧, 我們走。" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay." -msgstr "好啦, 好啦。" - -#: lang/json/talk_topic_from_json.py -msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "我才不要, 我會被丟在後面沒人理!" - -#: lang/json/talk_topic_from_json.py -msgid "Fine." -msgstr "很好。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm on watch." -msgstr "我來把風。" - -#: lang/json/talk_topic_from_json.py src/npctalk.cpp -msgid "I need you to come with me." -msgstr "我需要你跟我來。" - -#: lang/json/talk_topic_from_json.py -msgid "See you around." -msgstr "待會見。" - -#: lang/json/talk_topic_from_json.py -msgid "I really don't feel comfortable doing so..." -msgstr "這麼做讓我不是很舒服…" - -#: lang/json/talk_topic_from_json.py -msgid "I'll give you some space." -msgstr "我會給你一些空間。" - -#: lang/json/talk_topic_from_json.py -msgid "I'd prefer to keep that to myself." -msgstr "我想自己管好自己就好了。" - -#: lang/json/talk_topic_from_json.py -msgid "I understand..." -msgstr "我了解…" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, here you go." -msgstr "好啦, 給你。" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you!" -msgstr "謝謝!" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks! But can I have some more?" -msgstr "謝了! 還可以再給多點嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Thanks, see you later!" -msgstr "謝了, 待會見!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, okay, sorry." -msgstr "好吧, 好吧, 真抱歉。" - -#: lang/json/talk_topic_from_json.py -msgid "Seriously, give me more stuff!" -msgstr "我說真的, 再給我東西!" - -#: lang/json/talk_topic_from_json.py -msgid "Okay, fine, bye." -msgstr "好吧, 好, 再見。" - -#: lang/json/talk_topic_from_json.py -msgid "Alright, let's begin." -msgstr "好吧, 我們開始。" +msgid "Alright, let's begin." +msgstr "好吧, 我們開始。" #: lang/json/talk_topic_from_json.py msgid "Sounds good." @@ -102405,33 +102424,295 @@ msgid "" msgstr "你必須透過招募人才能夠真正加入。我們通常歡迎各種幫助, 不時可以來詢問我是否有工作。以承包者的身分來完成任務是累積名聲的好方法。" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" +msgid "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning sir, how can I help you?" -msgstr "早安先生, 我可以幫你做什麼嗎?" +msgid "Please, help me. I need food." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "早安小姐, 我可以幫你做什麼嗎?" +msgid "Get away from me." +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 "[任務] 難民中心的商人派我來拿取牧場創建計劃書。" +"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 "" #: lang/json/talk_topic_from_json.py -msgid "I heard you were setting up an outpost out here." +msgid "Why don't you go somewhere else?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What's your job here?" -msgstr "你在這裡的工作是什麼?" +msgid "Why don't you scavenge your own food?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "What did you do before the cataclysm?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I can't help you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Where else? I can't fight those things out there. I'm in terrible physical" +" condition, don't have any useful skills, and I'm terrified of and" +" violence. How am I supposed to find a safe place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Out there? That's suicide! People that go out there don't come back, " +"people who can hold their own... unlike me. I'd rather take my chances " +"begging for scraps and waiting for someone in the center to die and make " +"room for me, thanks." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a high school math teacher. It was a good job, I loved it. Funny " +"enough, it's not super applicable after the end of the world. I mean, at " +"some point people are going to need a teacher again, but right now they just" +" want food, shelter, and clothing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you sitting out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you seriously wearing a dinosaur costume?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I have to get going..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's so much of it now, and the zombies are afraid of it. It's kept me " +"safe so far. The beta rays come from the center point of the zombie, so it " +"hits the cardboard and can't penetrate. The reflection can stop any further" +" damage." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Building a house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py src/handle_action.cpp +msgid "No." +msgstr "否。" + +#: lang/json/talk_topic_from_json.py +msgid "What was that about cardboard?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't bother with these assholes." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ok... see ya." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They're 'too full'. Won't share fuck-all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you living here then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even without them helping, it's the safest place to squat. As long as we " +"keep it clean up here and don't cause sanitation problems, they don't mind " +"us sitting around the entryway. So kind and generous of them, to let us sit" +" here and slowly starve." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why do you ask?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry, not interested." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's wrong with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "They won't let you in because you're sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you even get here if you're so sick?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why are you camped out here if they won't let you in?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " +"since I stopped, y'know, eating regularly. Well, I assume it hasn't. Not " +"like I can check that ol' whatchamacallit, the blood test the docs used to " +"bug me about every couple months." +msgstr "" + +#: lang/json/talk_topic_from_json.py +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Came with a small group quite a while ago. The others were young and fit, " +"they got in. They were some of the last ones to get in actually. I didn't " +"make the cutoff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is a mercy. I get shelter, light, and heat, and those guards will help" +" us if any zombies show up. It ain't so bad. If I was out on my own I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there, friend." +msgstr "" + +#: lang/json/talk_topic_from_json.py src/player.cpp +msgid "What are you doing out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I couldn't help but notice, you're covered in fur." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I live here. Too mutant to join the cool kids club, but not mutant enough " +"to kill on sight." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why live out here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem like you can hold your own. Why not travel with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's safer than making my own home. I head out and forage when I have to. " +"As long as we keep it clean and do our part when a zombie comes, they let us" +" squat here as an extra defense. They don't like that I've been bringing " +"food for the other squatters though... I think they are trying to slowly " +"starve us out, and even though I can't keep everyone's bellies full, I've " +"been able to bring back enough to keep these folk in better shape. I " +"suspect they'll find an excuse kick me out eventually." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Gross, isn't it? Feels like pubes. I just started growing it everywhere a " +"little while after the cataclysm. No idea what caused it. I can't blame " +"them for hating it, I hate it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, that's quite a kind offer, and I appreciate you looking past my " +"full-body pubic hair. Sorry though. I've come to feel sort of responsible " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Can I help you, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Morning sir, how can I help you?" +msgstr "早安先生, 我可以幫你做什麼嗎?" + +#: lang/json/talk_topic_from_json.py +msgid "Morning ma'am, how can I help you?" +msgstr "早安小姐, 我可以幫你做什麼嗎?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"[MISSION] The merchant at the Refugee Center sent me to get a prospectus " +"from you." +msgstr "[任務] 難民中心的商人派我來拿取牧場創建計劃書。" + +#: lang/json/talk_topic_from_json.py +msgid "I heard you were setting up an outpost out here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's your job here?" +msgstr "你在這裡的工作是什麼?" + +#: lang/json/talk_topic_from_json.py +msgid "" "I was starting to wonder if they were really interested in the project or " "were just trying to get rid of me." msgstr "我開始懷疑他們是不是真的對這項目感興趣, 或者只是在試圖擺脫我。" @@ -102656,6 +102937,10 @@ msgid "" "time..." msgstr "我不知道你能做些什麼。我嘗試了所有方法。給我點時間就好…" +#: lang/json/talk_topic_from_json.py +msgid "OK." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " @@ -103054,6 +103339,14 @@ msgstr "" msgid "This is a npc short trait test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a trait flags test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a npc trait flags test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." msgstr "" @@ -103098,6 +103391,66 @@ msgstr "" msgid "This an error! npc allies 2 test response." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a season spring test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 30 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season summer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 120 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season autumn test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 210 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a season winter test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a days since cataclysm 300 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is day test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a is night test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 1 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is an switch default 2 test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is another basic test response." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." msgstr "" @@ -103142,6 +103495,30 @@ msgstr "" msgid "This is a multi-effect response" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is a u_sell_item plastic bottle response" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_item bottle_glass test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "This is a u_has_items beer test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Test failure! This is a u_has_items test response." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before this started, I had a crappy job flipping burgers at Sambal's Grille." @@ -103157,6 +103534,14 @@ msgstr "" msgid "So, did you evacuate?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I didn't evacuate. I went home... saw some freaky shit on the way, but at " @@ -103174,6 +103559,149 @@ msgid "" "I'll ever know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well now, That's a hell of a story, so settle in. It all goes back to about" +" five years ago, after I retired from my job at the mill. Times was tough, " +"but we got by." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Okay, please continue." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "On second thought, let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was when I had my old truck, the blue one. We called 'er ol' yeller. " +"One time me an' Marty Gumps - or, as he were known to me, Rusty G - were " +"drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " +"fireflies to catch." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fireflies. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How does this relate to what I asked you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I need to get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Rusty G - that's my ol' pal Marty Gumps - were in the passenger seat with " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "18 gauge, the dog. Got it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think I see some zombies coming. We should cut this short." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Shut up, you old fart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dammit I'm gettin' there, bite yer tongue. As I was sayin', Rusty G - " +"that's my ol' pal Marty Gumps - were in the passenger seat with 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now up the top o' Mount Greenwood there used to be a ranger station, that " +"woulda been before you were born. It got burnt down that one year, they " +"said it were lightnin' but you an' I both know it were college kids " +"partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out." +" Burnt out ol' husk looked haunted, we figgered there 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We really, really have to go." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For fuck's sake, shut UP!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Be patient! I'm almost done. Now up the top o' Mount Greenwood there used " +"to be a ranger station, that woulda been before you were born. It got burnt" +" down that one year, they said it were lightnin' but you an' I both know it " +"were college kids partyin'. Rusty G an' I left ol' yeller behind and wen' " +"in to check it out. Burnt out ol' husk looked haunted, we figgered there " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"A gorram moose! Livin' in the ol' ranger station! It near gored Rusty, but" +" he fired up that 18 gauge and blew a big hole in its hide. Ol' 18 gauge " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I catch your drift." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you done yet? Seriously!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "For the love of all that is holy, PLEASE shut the hell up!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Anyway, long story short, I were headin' back up to Mount Greenwood to check" +" on th'old ranger station again when I heard them bombs fallin and choppers " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't even know anymore. I have no idea what is going on." +" I'm just doing what I can to stay alive. The world ended and I bungled " +"along not dying, until I met you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Huh." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was a cop. Small town sheriff. We got orders without even really knowing" @@ -103185,6 +103713,10 @@ msgid "" "against a town in riot. Then things really got fucked up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "A big-ass hole opened up right in the middle of town, and a " @@ -103260,6 +103792,336 @@ msgid "" " about that now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Woah, lucky for you. How did you find out about ?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was just in a warehouse, not in Zambonia. I had the internet. Watched " +"those crazy videos on youtube in real time, scared the shit out of me. I " +"had it pretty good though, I'd lifted a bunch of canned food and shit, and I" +" had a pretty sweet little squat in that warehouse. I'd been planning on " +"spending a long time there after all, while I figured out how to get in good" +" with my crew." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Something must have driven you out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. . A bunch of them, led by this big creepy-ass jet-black " +"bastard with glowing red eyes, I shit you not. I dunno what brought them " +"way out my way but they saw me takin' a piss outside and that was that. I " +"took a few shots at them but that creepy-ass motherfucker waves his hands " +"and brings 'em back up, so I ran. Once I got my shit together again I " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any tips about the boss zombie?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I mean, if he's surrounded by buddies like that and he can just bring " +"'em back, I think he's a scary bastard. If I got him on his own I think " +"maybe I could have taken him. Also when I was running I managed to get a " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, this is gonna sound crazy but I, like, I knew this was going to happen." +" Like, before it did. You can even ask my psychic except, like, I think " +"she's dead now. I told her about my dreams a week before the world ended. " +"Serious!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were your dreams?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, the first dream I had every night for three weeks. I dreamed that I" +" was running through the woods with a stick, fighting giant spiders. For " +"reals! Every night." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "OK, that doesn't seem that unusual though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Wow, crazy, I can't believe you really dreamed ." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, that's just, like, the beginning though. So, a week before it happened," +" after the spider dream, I would get up and go pee and then go back to bed " +"'cause I was kinda freaked out, right? And then I'd have this other dream, " +"like, where my boss died and came back from the dead! And then, at work a " +"few days later, my boss' husband was visiting and he had a heart attack and " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That is kinda strange." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! And there's more! So, a week before it happened, after the spider " +"dream, I would get up and go pee and then go back to bed 'cause I was kinda " +"freaked out, right? And then I'd have this other dream, like, where my boss" +" died and came back from the dead! And then, at work a few days later, my " +"boss' husband was visiting and he had a heart attack and 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"RIGHT?! Anyway, I still get weird dreams, but not of the future anymore. " +"Like, I get a lot of creepy dreams since the world ended. Like, every " +"couple nights, I dream about a field of black stars all around the Earth, " +"and for just a second they all stare at the Earth all at once like a billion" +" tiny black eyeballs. And then they blink and look away, and then in my " +"dream the Earth is a black star like all the other ones, and I'm stuck on it" +" still, all alone and freakin' out. That's the worst one. There are a few " +"others." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me some more of your weird dreams." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, so, sometimes I dream that I am a zombie. I just don't realize it. And" +" I just act normal to myself and I see zombies as normal people and normal " +"people as zombies. When I wake up I know it's fake though because if it " +"were real, there would be way more normal people. Because they'd actually " +"be zombies. And everyone is a zombie now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I think we all have dreams like that now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, probably. Sometimes I also dream that I am just like, a mote of dust," +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Poor Filthy Dan. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that stuff. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive on the run?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spent a lot of time rummaging for rhubarb and bits of vegetables in the " +"forest before I found the courage to start picking off some of those dead " +"monsters. I guess I was getting desperate." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as most people who didn't get killed straight up during the riots. I " +"went to one of those evacuation death traps. I actually " +"lived there for a while with three others. One guy who I guess had watched " +"a lot of movies kinda ran the show, because he seemed to really know what " +"was going on. Spoiler alert: he didn't." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your original crew?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things went south when our fearless leader decided we had to put down one of" +" the other survivors that had been bitten. Her husband felt a bit strongly " +"against that, and I wasn't too keen on it either; by this point, he'd " +"already been wrong about a lot. Well, he took matters into his own hands " +"and killed her. Then her husband decided one good turn deserves another, " +"and killed the idiot. And then she got back up and I killed her again, and " +"pulped our former leader. Unfortunately she'd given her husband a hell of a" +" nip during the struggle, when he couldn't get his shit together enough to " +"fight back. Not that I fucking blame him. We made it out of there " +"together, but it was too much for him, he clearly wasn't in it anymore... " +"The bite got infected, but it was another that finally killed him." +" And then I was alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened? You see them around anywhere?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There's nothing too special about me, I'm not sure why I survived. I got " +"evacuated with a handful of others, but we were too late to make the second " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"They were shipping me with a bunch of evacuees over to a refugee center, " +"when the bus got smashed in by the biggest zombie you ever saw. It was busy" +" with the other passengers, so I did what anyone would do and fucked right " +"out of there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My Evac shelter got swarmed by some of those bees, the ones the size of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Giant bees? Tell me more." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm sure you've seen them, they're everywhere. Like something out of " +"an old sci-fi movie. Some of the others in the evac shelter got stung, it " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "But bees aren't usually aggressive... Do you mean wasps?" +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Could you tell me more about them?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Sorry." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I was at home when the cell phone alert went off and told me to get to" +" an evac shelter. So I went to an evac shelter. And then the shelter got " +"too crowded, and people were waiting to get taken to the refugee center, but" +" the buses never came. You must already know about all that. It turned " +"into panic, and then fighting. I didn't stick around to see what happened " +"next; I headed into the woods with what tools I could snatch from the " +"lockers. I went back a few days later, but the place was totally abandoned." +" No idea what happened to all those people." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was terrifying. We were shipped there on a repurposed school bus, about " +"thirty of us. You can probably see the issues right away. A few of the " +"folks on board the bus had injuries, and some schmuck who had seen too many " +"B-movies tried to insist that anyone who 'had been bitten' was going to " +"'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " +"worst I got was a gross infection." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That guy started a frenzy. People were already panicked. There was an " +"armed guy overseeing the transport, acting like a cop but really he was just" +" some kid they'd handed a rifle to. He tried to calm things down, " +"and I guess it actually worked for a bit, although the 'kill the infected' " +"bunch were pretty freaked out and were clearly ready to jump the " +"moment the granny with the cut on her arm started frothing at the mouth. " +"They started acting up again when we got to the camp. That didn't go well " +"for them. A few heavily armed soldiers dragged them away, and I never saw " +"them again." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That place was chaos. I only stayed a few hours. They had a big backhoe " +"running, digging a huge pit in a cordoned section they wouldn't let us near." +" Well, I managed to sneak over that way, and saw them dumping load after " +"load of the dead in the pit, pouring dirt back over them even as they " +"revived and tried to climb out. Even with all the shit I've seen since, it " +"haunts me. I knew then I had to get out. Luckily for me, we were attacked " +"the next morning by some giant horror, a kind I haven't really seen since " +"then. While the guards were busy with that, I grabbed some supplies I'd " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story for another day. I don't really like thinking about it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry. Tell me more about that FEMA camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for asking. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not from around here... You can probably tell from the accent, I'm from" @@ -103273,6 +104135,135 @@ msgid "" " on the head with my tablet." msgstr "" +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did that go?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Cool. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Almost got killed. One is easy pickins, but ten is a lot, and a " +"hundred is a death trap. I got myself in too deep, an' barely slipped out " +"with my guts still inside me. Holed up in an old motel for a while lickin' " +"my wounds and thinkin' about what I wanted to do next. That's when I " +"figured it out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Figured what out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is it. This is what I was made for. There in the street, smashin' " +"monster heads and prayin' I'd make it out? I've never felt like that. " +"Alive. Important. So after I got myself all stuck back together, I nutted " +"up and went back to it. Probly killed a thousand Z since then, and I'm " +"still not tired of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It's good you found your calling. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know. Blah blah blah, had a job and a life, everyone died. Boo " +"hoo. I gotta be straight with you though: I honestly think I like this " +"better. Fighting for survival every day? I've never felt so alive. I've " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well y'see, I'm not from these parts at all. I was driving up from the " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your son." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, you went to one of the FEMA camps?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He lives up in Northern Canada, way in the middle of nowhere, with his crazy" +" wife and my three grandkids. He's an environmental engineer for some oil " +"and gas company out there. She's a bit of a hippy-dippy headcase. I love " +"em both though, and as far as I'm concerned they all made it out of this " +"fucked up mess safe, out there in the boondocks. I guess they think I'm " +"dead, so they'll steer clear of this hellhole, and that's the best as could " +"be." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What was it you said before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Lord no. I'll be fucked if I let a kid in a too-big uniform tell me what " +"the hell to do. I had my Hummer loaded out and ready to go offroading, I " +"had a ton of gas, and I even had as many rifles as the border was gonna let " +"me bring over. I didn't know what I was supposed to be running from, but I " +"sure as shit didn't run. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where did you go then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"At first, I just kept going North, but I ran into a huge military blockade." +" They even had those giant walking robots like on TV. I started going up " +"to check it out, and before I knew it they were opening fire! I coulda " +"died, but I still have pretty good reactions. I turned tail and rolled out " +"of there. My Hummer had taken some bad hits though, and I found out the " +"hard way I was leaking gas all down the freeway. Made it a few miles before" +" I wound up stuck in the ass-end of nowhere. I settled in to wander. I " +"guess I'm still kinda heading North, just by a pretty round-about way, you " +"know?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's quite a story. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school. I'm a senior. We'd heard about riots... It started with " @@ -103347,6 +104338,10 @@ msgid "" "house." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry to hear it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "The military. They showed up and commandeered my land for some kind of " @@ -103370,6 +104365,14 @@ msgid "" ", I can't even talk about it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "It might help to get it off your chest." +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 "" + #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." msgstr "" @@ -103423,6 +104426,10 @@ msgstr "" msgid "What did you see, up there on the roof?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "My hospital was the tallest building in town, so I saw quite a bit. The " @@ -103487,6 +104494,10 @@ msgid "" " my way out to greener pastures. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live way out of town. I hear the small towns lasted a bit longer than the" @@ -103524,6 +104535,10 @@ msgid "" "truth." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What happened next?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "We watched the eyeball just blast one of the Apache choppers with some kind " @@ -103618,6 +104633,243 @@ msgid "" " They bombed those labs, you know." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I was late to evacuate when the shit hit the fan. Got stuck in town for a " +"few days, survived by hiding in basements eating girl scout cookies and " +"drinking warm root beer. Eventually I managed to weasel my way out without " +"getting caught by the . I spent a few days holed up in an " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was home with the flu when the world went to shit, and when I recovered " +"enough to make a run to the store for groceries... Well, I've been running " +"ever since." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Come on, don't leave me hanging." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was kinda out of it those first few days. I knew there were " +"storms, but I was having crazy fever dreams and stuff. Honestly I probably " +"should have gone to the hospital, except then I guess I'd be dead now. I " +"don't know what was a dream and what was the world ending. I remember " +"heading to the fridge for a drink and noticing the light was out and the " +"water was warm, I think that was a bit before my fever broke. I was still " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened when you went out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You probably remember what the cities were like. I think it was about day " +"four. Once I stepped outside I realized what was going on, or realized I " +"didn't know what was going on at least. I saw a bunch of rioters smashing a" +" car, and then I noticed one of them was bashing a woman's head in. I " +"cancelled my grocery trip, ran back to my apartment before they saw me, and " +"holed up there for as long as I could. Things got comparatively quiet as " +"the dead started to outnumber the living, so I started looting what I could " +"from my neighbors, re-killing them when I had to. Eventually the " +"overran my building and I had to climb out and head for the hills on an old " +"bike." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me all that. " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about those plant monsters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's how it goes, you know? These are the end times. I don't really want" +" to talk about it more than that. And honestly, I never really felt like I " +"belonged, in the old world. In a weird way, I actually feel like I have a " +"purpose now. Do you ever get that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "No, that's messed up." +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I guess those of us who made it this far have to have made it for a reason, " +"or something. I don't mean like a religious reason, just... we're " +"survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Haha, yeah, I can see why you'd think that. I don't mean it's a good " +"apocalypse. I just mean that at least now I know what I'm doing every day." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, have you seen them yet? They're these walking flowers with a" +" big stinger in the middle. They travel in packs. They hate the " +"zombies, and we were using them for cover to clear a horde of the dead. " +"Unfortunately, turns out the plants are better trackers than the ." +" They almost seemed intelligent... I barely made it out, only because they" +" were, uh, distracted." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry you lost someone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Just another tale of love and loss. Not something I like to tell." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Never mind. Sorry I brought it up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I appreciate the sentiment, but I don't think it would. Drop it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, . This doesn't have anything to do with you, or with us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I take it home was bad." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah. I really did. It took me two days to make it across the city on " +"foot, camping out in dumpsters and places like that. I started moving more " +"by night, and I learned right away to avoid the military. They were a " +"magnet for the , and they were usually stationed where the monsters" +" were coming. Some parts of the city were pretty tame at first. There were" +" a few chunks where people had been evacuated or cleared out, and the " +" didn't really go there. Later on, others like me started moving " +"into those neighborhoods, so I switched and started running through the " +"blasted out downtown. I had to anyway, to get home. By the time I made the" +" switch though, the fighting was starting to die off, and I was mostly just " +"avoiding attention from zombies and other things." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The first warning was that I had to move from the preserved parts of the " +"city to the burnt out ones to get home. It only got worse. There was a " +"police barricade right outside my house, with a totally useless pair of " +"automated turrets sitting in front just idly watching the zombies lurch by." +" That was before someone switched them to kill everybody, back when it only" +" killed trespassing humans. Good times, you can always trust bureaucracy to" +" fuck things up in the most spectacular way possible. Anyway, the house " +"itself was half collapsed, a SWAT van had plowed into it. I think I knew " +"what I was going to see in there, but I had made it that far and I wasn't " +"going to turn back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You must have seen some shit on the way there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you make it into the house?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirius by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My husband was still alive. He'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"he'd lost a ton of blood, he was delirius by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then... well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -103669,10 +104921,493 @@ msgid "" "the street. And here I am." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Before ? Who cares about that? This is a new world, and " +"yeah, it's pretty . It's the one we've got though, so let's not " +"dwell in the past when we should be making the best of what little we have " +"left." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"To be honest... I don't really remember. I remember vague details of my " +"life before the world was like this, but itself? It's all a" +" blur. I don't know how I got where I am now, or how any of this happened." +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is gonna sound crazy, but I woke up in the forest in the middle of " +"nowhere, freezing cold, about a week before I met you. I had my clothes, a " +"splitting headache, and absolutely no memory of anything. Like, I know " +"stuff. I can talk, I have skills and understanding... but I don't remember " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What do you think happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That does sound a little crazy..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"There were some clues. Like, I had a nasty headache that lasted a few days," +" but no cuts or bruises. And there were scorch marks on the trees in weird " +"slashing patterns around me. Whatever happened to me, I think it was some " +"weird shit." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you trying to get your memory back then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, not having a memory is weird as heck, but I'll be honest: I think it " +"might be better? With what's going on, I bet you my memories weren't happy " +"ones. Besides my driver's license, there were pictures of kids in my " +"wallet... not that that sparked any reaction from me. I didn't see any kids" +" around. Maybe losing my mind is a mercy. Hell, maybe it's some kind of " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I know it's nuts. It sounds like fake amnesia from a Bugs Bunny cartoon. " +"See? How can I know that, but not remember how I know it? Like, I remember" +" Bugs Bunny but I don't remember any time I sat down and watched a Bugs " +"Bunny show." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Who I was is gone. All that stuff burned away in . Got it?" +" Who I am now started two days into it. I was on the run from a big-ass " +"hell zombie, running like I'd always been doing, when I found a steel " +"baseball bat just laying on the ground. I took it as a sign and beat that " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you after that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It can't be healthy to abandon your past like that..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I went on, running when I had to and fighting when I could, like the rest of" +" us. Started learning who I am now. Lost the bat in a fight against some " +"crazy electric lightning shooting zombie. It was arcing electricity through" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I said it clearly, and if you keep picking at it I'm gonna get mad." +" Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" +" ask again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "I can respect that. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fair enough. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't even know about right away. I was way out, away " +"from the worst of it. My car broke down out on the highway, and I was " +"waiting for a tow for hours. I finally wound up camping in the bushes off " +"the side of the road; good thing, too, because a semi truck whipped by - " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you survive outside?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you see in those first few days?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ha, I don't fully understand it myself. Those first few days were a tough " +"time to be outside, that's for sure. I got caught in one of those hellish " +"rainstorms, it started to burn my skin right off. I managed to take shelter" +" under a car, lying on top of my tent. Wrecked the damn thing, but better " +"it than me. From what I hear, though, I got lucky. That was pretty much " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Besides the acid rain, I mostly saw people fleeing the cities. I tried to " +"stay away from the roads, but I didn't want to get lost in the woods either," +" so I stuck to the deep margins. I saw cars, buses, trucks loaded down with" +" evacuees. Plenty went right on, but a lot stalled out of gas and other " +"stuff. Some were so full of gear and people there were folks hanging off " +"them. Stalling out was a death sentence, because the dead were coming along" +" the roads picking off the survivors." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was out on a fishing trip with my friend when it happened. I don't know " +"exactly how the days line up... our first clue that Armageddon had come was" +" when we got blasted by some kind of poison wind, with a sort of acid mist " +"in it that burnt our eyes and skin. We weren't sure what to make of it so " +"we went inside to rest up, and while we were in there a weird dust settled " +"over everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened after the acid mist?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"By morning, the area around the lake was covered in a pinkish mold, and " +"there were walking mushrooms around shooting clouds of the dust in the air." +" We didn't know what was going on, but neither of us wanted to stay and " +"find out. We packed up our shit, scraped off the boat, and took off " +"upriver." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to your friend?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"She took sick a few hours after we left the lake. Puking, complaining about" +" her joints hurting. I took us to a little shop I knew about on the " +"riverside, hoping they might have something to help or at least know what " +"was going on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess they didn't know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The shop was empty, actually. She was desperate though, so I broke in. I " +"found out more about the chaos in towns from the store radio. Got my friend" +" some painkillers and gravol, but when I came out to the boat, well... it " +"was too late for her." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "She was dead?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I wish. That would have been a mercy. She was letting out an awful, " +"choking scream, and her body was shredding itself apart. Mushrooms were " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's awful. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ooooh, boy. I was ready for this. The winds were blowing this way for " +"years. I had a full last man on earth shelter set up just out of town. So," +" of course, just my luck: I was miles out of town for a work conference when" +" China attacked and the world ended." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your shelter?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Our conference was at a retreat by a lake. We all got the emergency " +"broadcast on our cells, but I was the only one to read between the lines and" +" see it for what it was: large scale bio-terrorism. I wasn't about to stay " +"and find out who of my coworkers was a sleeper agent. Although I'd bet " +"fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " +"headed straight for my shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Did you get there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No, I barely got two miles. I crashed into some kind of hell-spawn chink " +"bio-weapon, a crazy screeching made of arms and legs and heads " +"from all sorts of creatures, humans too. I think I killed it, but I know " +"for sure I killed the truck. Grabbed my duffel bag and ran, after putting a" +" couple bullets into it for good measure. I hope I never see something like" +" that again." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me that story again?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Sounds like it didn't work out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, I'd really be interested in seeing those maps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Depends on your definition. I'm alive, aren't I? When Hell itself came " +"down from the skies and monsters started attacking the cities, I grabbed my " +"stuff and crammed into the bunker. My surface cameras stayed online for " +"days; I could see everything happening up there. I watched those things " +"stride past. I still have nightmares about the way their bodies moved, like" +" they broke the world just to be here. I had nothing better to do. I " +"watched them rip up the cops and the military, watched the dead rise back up" +" and start fighting the living. I watched the nice old lady down the street" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Why did you leave your bunker?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Honestly? I was planning to die. After what I'd seen, I went a little " +"crazy. I thought it was over for sure, I figured there was no point in " +"fighting it. I thought I wouldn't last a minute out here, but I couldn't " +"bring myself to end it down there. I headed out, planning to let the " +" finish me off, but what can I say? Survival instinct is a funny " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for telling me that. " +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "[$2000] You have a deal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever's in that map benefits both of us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How 'bout you hand it over and I don't get pissed off?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for changing the subject. What was it you were saying?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "All right. Here they are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks! What was it you were saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice try. You want the maps, you pay up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Fine. What was it you were saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "So tell me this 'hell of a story'" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you in for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's a story in itself, my friend. I had one of the largest grow-ops on " +"the Eastern seaboard. Hah, the stories I could tell you... but I won't. " +"That's all way behind me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a bit of a ... it's a thing. It started out as a dare. I wound up " +"making a bioweapon. It didn't get used or anything, but, well, it got out " +"of hand." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This sounds a lot cooler than it is: possession of an unlicensed nuclear " +"accelerator." +msgstr "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Multiple counts of possession. I used to be really hung up on meth." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Okay, well, I was in the wrong place at the wrong time. There was a big " +"fight, I didn't stay clear of it, and me and a bunch of others got tossed in" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you get out of lockup?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard gunshots, even from down in lockup. Didn't hear much screaming or " +"anything. That was my first clue something was up. Food stopped showing up, " +"next. Then, the lights went out. I was down there for maybe hours, maybe " +"days, when finally a flashlight in the bars blinded me. It was a 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do from there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We let out the others in solitary. We were stuck in, the guard bots had " +"gone haywire and wouldn't let anyone out, and the rest of the people except " +"this one guard had turned. We spent a few days pulping and trying" +" to figure a safe way past the bots. Food was running short. Finally we " +"picked the worst, only plan we could think of: we dragged some storage " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Did that actually work?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It worked better than I'd imagined, honestly. We thought the bots would " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the others that made it?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The guard took off on his own. Didn't trust us, and I don't blame him. The" +" other two wanted to set up a bandit gig. Didn't sit right with me, so I " +"split on pretty good terms. I ran into the guard a couple more times. " +"Thought of seeing if he'd travel with me, but I dunno. I don't think he'd " +"take the offer, I'll always be a con to him. If you want to try, I can tell" +" 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 "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm actually a chemistry professor at Harvard. I'd been on sabbatical for " @@ -103703,6 +105438,158 @@ msgstr "" msgid "Cool. What did you say before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"My story. Huh. It's nothing special. I had people, but they've risen to " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you mean in a religious sense, or...?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Of course. It's clear enough, isn't it? That... that end, was the " +"Rapture. I'm still here, and I still don't understand why, but I will keep " +"Jesus in my heart through the Tribulations to come. When they're past, I'm " +"sure He will welcome me into the Kingdom of Heaven. Or... or something " +"along those lines. It's not going exactly like I thought it would, but " +"that's prophecy for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What if you're wrong?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What? How could you say something like that? I can't believe you'd look at" +" all this and think it could be anything but the end-times. The dead are " +"walking, the gates of Hell itself have opened, the Beasts of the Devil walk " +"the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " +"What more proof could you possibly ask for?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What will you do, then?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I will keep the faith, and keep praying, and strike down the agents of Hell " +"where I see them. That's all we few can do, isn't it? I suppose perhaps " +"we're the meek that shall inherit the Earth. Although I don't love our " +"odds." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same as anyone. I turned away from God, and now I'm paying the price. The " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started... cancer. If anything good " +"has come out of all this, it's that I finally see a positive to losing her " +"so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My husband " +"passed away a bit over a month before this started... cancer. If anything " +"good has come out of all this, it's that I finally see a positive to losing " +"him so young. I'd been shut in for a while anyway. When the news started " +"talking about Chinese bio weapons and sleeper agents, and showing the " +"rioting in Boston and such, I curled up with my canned soup and changed the " +"channel." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it built up a bit. There was that acid rain, it burnt up one of my " +"tractors. Not that I'd been working the fields since... well, it'd been a " +" year and I hadn't done much worth doing. There were explosions and" +" things, and choppers overhead. I was scared, kept the curtains drawn, kept" +" changing the channels. Then, one day, there were no channels to change to." +" Just the emergency broadcast, over and over." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That was the first thing to really shake me out of it. I didn't really have" +" any very close friends, but there were people back in town I cared about a " +"bit. I had sent some texts, but I hadn't really twigged that they hadn't " +"replied for days. I got in my truck and tried to get back to town. Didn't " +"get far before I hit a infested pileup blocking the highway, and " +"that's when I started to put it all together. Never did get to town. " +"Unfortunately I led the back to my farm, and had to bug out of " +"there. Might go back and clear it out, someday." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I lived on the edge of a small town. Corner store and a gas station " +"and not much else. We heard about the shit goin' down in the city, but we " +"didn't see much of it until the military came blazing through and tried to " +"set up a camp there. They wanted to bottle us all up in town, and I wasn't " +"having with that, so my dog Buck and I, we headed out while they were all " +"sniffin' their own farts." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Buck and I slipped out and went East, headin' for my friend's ranch. Cute " +"little dope thought we were just goin' for a real long walk. I couldn't " +"take the truck without the army boys catchin' wind of it. We made it out to" +" the forest, camped out in a lean to. Packed up and kept heading out. At " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Where's Buck now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I see where this is headed. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We got to my buddy's ranch, but the g-men had been there first. It " +"was all boarded up and there was a police barricade out front. One of those" +" turrets... shot Buck. Almost got me too. I managed to " +"get my pup... get him outta there, that... it wasn't easy, had to use a " +"police car door as a shield, had to kill a cop-zombie first. And then, " +"well, while I was still cryin', Buck came back. I had to ... . " +"I... I can't say it. You know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry about Buck. " +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Before I worked in a lab. Don't look at me like that, it " @@ -103828,6 +105715,62 @@ msgid "" "I lived, they didn't, and I ran." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, that's quite the story. happened on my wedding day." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, I'm sorry..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, in hindsight it maybe wasn't the best choice of dates, huh? I admit I" +" had cold feet though. Anyway we were getting hitched at the church. Lucky" +" 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 "" + +#: lang/json/talk_topic_from_json.py +msgid "What did you do next?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You seem surprisingly calm about all this." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"After I saw what was going on, I turned around and headed out in the " +"opposite direction. I've seen zombie movies before. I picked up some stuff" +" from home and I managed to get out of town before things went really bad. " +"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 "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What were you saying before that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -105201,6 +107144,44 @@ msgstr "你對 %s 發動 相位打擊" msgid " phase-strikes %s" msgstr "對 %s 發動 相位打擊" +#: lang/json/technique_from_json.py +msgid "Push" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You push %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " pushes %s away" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You deftly trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " deftly trips %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Skewer" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You brutally skewer %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " brutally skewers %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "displace and counter" msgstr "移位並反擊" @@ -108463,6 +110444,26 @@ msgstr "編織" msgid "bullet pulling" msgstr "卸彈" +#: lang/json/tool_quality_from_json.py +msgid "analysis" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "concentration" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "separation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "fine distillation" +msgstr "" + +#: lang/json/tool_quality_from_json.py +msgid "chromatography" +msgstr "" + #: lang/json/trap_from_json.py msgid "roll mat" msgstr "睡墊" @@ -109264,6 +111265,18 @@ msgstr "custom_empty" msgid "canoe" msgstr "獨木舟" +#: lang/json/vehicle_from_json.py +msgid "Amphibious Truck" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "kayak" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "racing kayak" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "raft" msgstr "筏" @@ -110573,8 +112586,16 @@ msgstr "" #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py msgid "" -"A very bright, wide-angle light that illuminates the area outside the " -"vehicle when turned on." +"A very bright, circular light that illuminates the area outside the vehicle " +"when turned on." +msgstr "" + +#. ~ Description for directed floodlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A very bright, directed light that illuminates a half-circular area outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light." msgstr "" #: lang/json/vehicle_part_from_json.py @@ -110590,6 +112611,19 @@ msgid "" "the front." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wide angle headlight" +msgstr "" + +#. ~ Description for wide angle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A bright light that illuminates a wide cone outside the vehicle when turned " +"on. During installation, you can choose what direction to point the light, " +"so multiple headlights can illuminate the sides or rear, as well as the " +"front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "Emergency lights, like a police car's or ambulance's, mounted on the " @@ -110896,6 +112930,36 @@ msgstr "寬輪胎 (轉向輪)" msgid "A wooden wheel." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "wooden boat hull" +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 "" + +#. ~ 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 "" + +#: lang/json/vehicle_part_from_json.py +msgid "metal boat hull" +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 "" + +#. ~ Description for carbon fiber boat hull +#: lang/json/vehicle_part_from_json.py +msgid "" +"A light weight, advanced carbon fiber rigid sheet that keeps the water out " +"of your boat." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "hand paddles" msgstr "划水板" @@ -112568,6 +114632,12 @@ msgstr "這個工具很棒, 但你仍然想要一把手術刀。" msgid "You dissect the corpse with a trusty scalpel." msgstr "你用一把可靠的手術刀解剖屍體。" +#: src/activity_handlers.cpp +msgid "" +"You dissect the corpse with a sophisticated system of surgical grade " +"scalpels." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You need to suspend this corpse to butcher it, you have a rope to lift the " @@ -112982,8 +115052,8 @@ msgid "Repeat once" msgstr "重複一次" #: src/activity_handlers.cpp -msgid "Repeat as long as you can" -msgstr "不斷重複" +msgid "Repeat until reinforced" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" @@ -112993,11 +115063,24 @@ msgstr "重複直至完全修復, 但不強化" msgid "Repeat until success/failure/level up" msgstr "重複直到 成功/失敗/升級" +#: src/activity_handlers.cpp +msgid "Back to item selection" +msgstr "" + #: src/activity_handlers.cpp #, c-format msgid "Your %s ran out of charges" msgstr "你的 %s 電量耗盡了。" +#: src/activity_handlers.cpp +msgid "Repair what?" +msgstr "修理什麼?" + +#: src/activity_handlers.cpp +#, c-format +msgid "You have no items that could be repaired with a %s." +msgstr "你沒有可以用 %s 來修理的物品。" + #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." msgstr "你這樣做不會學到更多東西。" @@ -113005,13 +115088,15 @@ msgstr "你這樣做不會學到更多東西。" #: src/activity_handlers.cpp #, c-format msgid "" -"%s\n" -"Success chance: %.1f%%\n" -"Damage chance: %.1f%%" +"%s %s\n" +"Success chance: %.1f%%\n" +"Damage chance: %.1f%%" +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "Your %s is already fully repaired." msgstr "" -"%s\n" -"成功機率: %.1f%%\n" -"損傷機率: %.1f%%" #: src/activity_handlers.cpp src/player.cpp #, c-format @@ -113065,6 +115150,11 @@ msgstr "你結束等待了。" msgid "%s finishes with you..." msgstr "%s 與你一同完成…" +#: src/activity_handlers.cpp +#, c-format +msgid "%s finishes chatting with you." +msgstr "" + #: src/activity_handlers.cpp msgid "You toss and turn..." msgstr "你輾轉反側…" @@ -113140,6 +115230,11 @@ msgstr "你完成了挖掘 %s。" msgid "You finish filling up %s." msgstr "你完成了填蓋 %s。" +#: src/activity_handlers.cpp +#, c-format +msgid "Playing with your %s has lifted your spirits a bit." +msgstr "" + #: src/activity_handlers.cpp msgid "You open up your kit and shave." msgstr "你打開了工具包開始刮鬍子。" @@ -113148,6 +115243,20 @@ msgstr "你打開了工具包開始刮鬍子。" msgid "You give your hair a trim." msgstr "你修剪你的頭髮。" +#: src/activity_handlers.cpp +#, c-format +msgid "You disassemble your %s." +msgstr "你拆解了你的 %s。" + +#: src/activity_handlers.cpp src/player.cpp +#, c-format +msgid "You unload your %s." +msgstr "你清空你的 %s。" + +#: src/activity_handlers.cpp +msgid "You harvested all the plots you could." +msgstr "" + #: src/activity_handlers.cpp src/iuse.cpp src/mutation.cpp msgid "You churn up the earth here." msgstr "你翻動這裡的土壤。" @@ -113156,6 +115265,15 @@ msgstr "你翻動這裡的土壤。" msgid "You tilled every tile you could." msgstr "你盡可能整地了每一塊格子。" +#: src/activity_handlers.cpp +#, c-format +msgid "You have run out of %s" +msgstr "" + +#: src/activity_handlers.cpp +msgid "You fertilized every plot you could." +msgstr "" + #: src/activity_handlers.cpp msgid "You planted all seeds you could." msgstr "你盡可能種植了所有種子。" @@ -114390,6 +116508,10 @@ msgstr "呼吸的" msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "有規律的收縮和增長, 就像在呼吸一樣" +#: src/artifact.cpp +msgid "dead" +msgstr "死的" + #: src/artifact.cpp msgid "is icy cold to the touch" msgstr "冰冷的觸覺" @@ -115700,8 +117822,9 @@ msgstr "" #: src/bionics_ui.cpp #, c-format -msgid "Power: %i/%i" -msgstr "能量: %i/%i" +msgid "" +"Bionic Power: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -117173,12 +119296,9 @@ msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "檔案已損毀, 請按任意鍵…" #: src/computer.cpp -msgid "" -"The machine injects your eyeball with the solution \n" -"of pureed bone & LSD." +#, c-format +msgid "The machine rapidly sets and splints your broken %s." msgstr "" -"這個機器注射了一些東西到你的眼球:\n" -"骨粉 & LSD。" #: src/computer.cpp msgid "--ACCESS GRANTED--" @@ -118216,6 +120336,62 @@ msgstr "你享受了一頓蜂蜜盛宴。" msgid "You can't finish it all!" msgstr "你的胃裝不下了!" +#: src/consumption.cpp +msgid "The shadows are getting ever closer." +msgstr "" + +#: src/consumption.cpp +msgid "You have a bad feeling about this." +msgstr "" + +#: src/consumption.cpp +msgid "A powerful sense of dread comes over you." +msgstr "" + +#: src/consumption.cpp +msgid "Your skin starts crawling." +msgstr "" + +#: src/consumption.cpp +msgid "They're coming to get you." +msgstr "" + +#: src/consumption.cpp +msgid "This might've been a bad idea..." +msgstr "" + +#: src/consumption.cpp +msgid "You've really done it this time, haven't you?" +msgstr "" + +#: src/consumption.cpp +msgid "You have to stay vigilant. They're always watching..." +msgstr "" + +#: src/consumption.cpp +msgid "mistake mistake mistake mistake mistake" +msgstr "" + +#: src/consumption.cpp +msgid "Just gotta stay calm, and you'll make it through this." +msgstr "" + +#: src/consumption.cpp +msgid "You're starting to feel very jumpy." +msgstr "" + +#: src/consumption.cpp +msgid "Something is twitching at the edge of your vision." +msgstr "" + +#: src/consumption.cpp +msgid "They know what you've done..." +msgstr "" + +#: src/consumption.cpp +msgid "You're feeling even more paranoid than usual." +msgstr "" + #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." msgstr "你飽餐了一頓, 準備冬眠。" @@ -118705,14 +120881,10 @@ msgstr "配方是否被記住" #: src/crafting_gui.cpp msgid "" -"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways.\n" +"The default is to search result names. Some single-character prefixes can be used with a colon (:) to search in other ways. Additional filters are separated by commas (,).\n" "\n" "Examples:\n" msgstr "" -"預設為搜尋配方製品的名稱。\n" -"可以使用字母前綴搭配帽號 (:) 以啟用特殊的搜尋方式。\n" -"\n" -"範例:\n" #: src/crafting_gui.cpp msgid "shirt" @@ -118999,7 +121171,7 @@ msgstr "想要的大地圖在哪呢?" msgid "You teleport to overmap (%d,%d,%d)." msgstr "你傳送到大地圖 (%d,%d,%d)。" -#: src/debug_menu.cpp +#: src/debug_menu.cpp src/iuse.cpp msgid "You" msgstr "你" @@ -124698,6 +126870,10 @@ msgstr "" msgid "Crash game (test crash handling)" msgstr "" +#: src/game.cpp +msgid "Spawn Map Extra" +msgstr "" + #: src/game.cpp msgid "Quit to Main Menu" msgstr "回到主選單" @@ -124984,22 +127160,25 @@ msgid "Underground" msgstr "地下" #: src/game.cpp -msgid "Weather:" -msgstr "天氣:" - -#: src/game.cpp -msgid "Temperature:" -msgstr "溫度:" +msgid "Weather :" +msgstr "天氣 :" #: src/game.cpp -#, c-format -msgid "Moon %s" -msgstr "月亮 %s" +msgid "Temp :" +msgstr "氣溫 :" #: src/game.cpp msgid "Lighting:" msgstr "光線:" +#: src/game.cpp +msgid "Deaf!" +msgstr "聽不見!" + +#: src/game.cpp +msgid "Sound: " +msgstr "聲響 :" + #: src/game.cpp #, c-format msgid "%s, day %d" @@ -125303,6 +127482,11 @@ msgstr "丟棄全部物品" msgid "Attach bag" msgstr "連接袋子" +#: src/game.cpp +#, c-format +msgid "Play with %s" +msgstr "" + #: src/game.cpp msgid "Untie" msgstr "解開" @@ -125377,6 +127561,11 @@ msgstr "%1$s 超重了。你不能轉移你的 %2$s。" msgid "There's no room in your %1$s's %2$s for that, it's too bulky!" msgstr "你的 %1$s 的 %2$s 沒有空間來容納它, 它太龐大了!" +#: src/game.cpp +#, c-format +msgid "Spend a few minutes to play with your %s?" +msgstr "" + #: src/game.cpp msgid "Really kill the zombie slave?" msgstr "確定殺掉屍奴?" @@ -126133,63 +128322,6 @@ msgstr "你沒東西可卸下。" msgid "You're not wielding anything." msgstr "你沒有手持任何東西。" -#: src/game.cpp -#, c-format -msgid "You put the %s in your inventory." -msgstr "你把 %s 放到物品欄。" - -#: src/game.cpp -#, c-format -msgid "The %s is already empty!" -msgstr "%s 已經空了!" - -#: src/game.cpp -msgid "The liquid can't be unloaded in its current state!" -msgstr "這液體因為它目前的狀態而無法卸載。" - -#: src/game.cpp -msgid "Unload what?" -msgstr "清空什麼?" - -#: src/game.cpp -#, c-format -msgid "You can't unload a %s!" -msgstr "你不能清空 %s!" - -#: src/game.cpp -#, c-format -msgid "You can't unload a rechargeable %s!" -msgstr "你無法卸下可充電的 %s!" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't charged." -msgstr "你的 %s 沒有電。" - -#: src/game.cpp -#, c-format -msgid "Your %s isn't loaded." -msgstr "你的 %s 沒有裝填。" - -#: src/game.cpp -#, c-format -msgid "You disassemble your %s." -msgstr "你拆解了你的 %s。" - -#: src/game.cpp -#, c-format -msgid "You unload your %s." -msgstr "你清空你的 %s。" - -#: src/game.cpp -#, c-format -msgid "You recover %i unused plutonium." -msgstr "你回收 %i 未使用過的鈽。" - -#: src/game.cpp -msgid "You can't remove partially depleted plutonium!" -msgstr "你不能移除耗用到一半的鈽!" - #: src/game.cpp #, c-format msgid "You are being laser-targeted, %s to ignore." @@ -127660,10 +129792,6 @@ msgstr "是。" msgid "Yes, and save game before sleeping." msgstr "是, 睡覺前先存檔。" -#: src/handle_action.cpp -msgid "No." -msgstr "否。" - #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." msgstr "你也許應該在你睡覺前把這個關閉。" @@ -127741,6 +129869,26 @@ msgid "" "specific plant seed and you must have seeds in your inventory." msgstr "" +#: src/handle_action.cpp +msgid "Fertilize plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize plots... you don't have any fertilizer" +msgstr "" + +#: src/handle_action.cpp +msgid "Fertilize any nearby Farm: Plot zones." +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest plots" +msgstr "" + +#: src/handle_action.cpp +msgid "Harvest any full-grown plants from nearby Farm: Plot zones" +msgstr "" + #: src/handle_action.cpp msgid "You need a tool to dig with." msgstr "你需要一個工具來挖掘。" @@ -128486,10 +130634,23 @@ msgstr "種子開花的速度相當快…" msgid "The seed blossoms into a flower-looking fungus." msgstr "種子綻放成了像花一般的真菌。" +#: src/iexamine.cpp +msgid "Tile isn't a plant" +msgstr "" + +#: src/iexamine.cpp +msgid "Tile is already fertilized" +msgstr "" + #: src/iexamine.cpp #, c-format -msgid "This %s has already been fertilized." -msgstr "%s 已經施過肥了。" +msgid "Tried to fertilize with %s, but player doesn't have any." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "You fertilize the %s with the %s." +msgstr "" #: src/iexamine.cpp #, c-format @@ -128505,6 +130666,11 @@ msgstr "對 %s 施肥" msgid "Use which fertilizer?" msgstr "使用哪種肥料?" +#: src/iexamine.cpp +#, c-format +msgid "This %s has already been fertilized." +msgstr "%s 已經施過肥了。" + #: src/iexamine.cpp msgid "This kiln already contains charcoal." msgstr "這個爐子裡己經裝有木炭了。" @@ -129843,7 +132009,7 @@ msgstr "黑" msgid "" "* This food looks as fresh as it can be. It still has " "%s until it spoils." -msgstr "" +msgstr "* 這食物看起來非常新鮮。 距離變質還有 %s。" #: src/item.cpp msgid "* This food looks as fresh as it can be." @@ -129874,7 +132040,7 @@ msgstr "" msgid "" "* This food looks quite fresh. It has %s until it" " spoils." -msgstr "" +msgstr "* 這食物看起來很新鮮, 距離變質還有 %s。" #. ~ here, %s is an approximate time span, e.g., "over 2 weeks" or "about 1 #. season" @@ -129883,7 +132049,7 @@ msgstr "" msgid "" "* This food looks like it is reaching its midlife. " "There's %s before it spoils." -msgstr "" +msgstr "* 這食物看起來快剩下一半的鮮度, 還有 %s 就會變質。" #. ~ here, %s is an approximate time span, e.g., "over 2 weeks" or "about 1 #. season" @@ -130023,15 +132189,15 @@ msgstr "享受: " #: src/item.cpp msgid "Stimulation:" -msgstr "" +msgstr "刺激性 :" #: src/item.cpp msgid "Downer" -msgstr "" +msgstr "鎮定劑" #: src/item.cpp msgid "Upper" -msgstr "" +msgstr "興奮劑" #: src/item.cpp msgid "Portions: " @@ -130320,6 +132486,10 @@ msgstr "" msgid "Minimum strength required modifier: " msgstr "" +#: src/item.cpp +msgid "Adds mod locations: " +msgstr "" + #: src/item.cpp msgid "Used on: " msgstr "使用在: " @@ -130328,6 +132498,10 @@ msgstr "使用在: " msgid "Location: " msgstr "位置: " +#: src/item.cpp +msgid "Incompatible with mod location: " +msgstr "" + #: src/item.cpp msgid "Covers: " msgstr "覆蓋部位: " @@ -131185,6 +133359,11 @@ msgstr "無法安裝彈殼收集器" msgid "must be unloaded before installing this mod" msgstr "必須先清空彈藥才能安裝這個模組" +#: src/item.cpp +#, c-format +msgid "cannot be installed on a weapon with \"%s\"" +msgstr "" + #: src/item.cpp #, c-format msgid "Eject %s from %s?" @@ -133804,13 +135983,8 @@ msgid "No music on device" msgstr "裝置沒有音樂" #: src/iuse.cpp -#, c-format -msgid "Recipe: %s" -msgstr "配方: %s" - -#: src/iuse.cpp -msgid "View recipe on E-ink screen" -msgstr "在平板螢幕上檢視配方" +msgid "View recipes on E-ink screen" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" @@ -133879,13 +136053,8 @@ msgid "You turned on music on your %s." msgstr "你把 %s 的音樂打開。" #: src/iuse.cpp -msgid "Choose recipe to view:" -msgstr "選擇要檢視的配方:" - -#: src/iuse.cpp -#, c-format -msgid "You change the e-ink screen to show a recipe for %s." -msgstr "你切換平板螢幕為顯示 %s 的配方。" +msgid "List recipes:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" @@ -133941,10 +136110,6 @@ msgstr "上傳照片到記憶卡" msgid "No photos in memory" msgstr "記憶卡沒有照片" -#: src/iuse.cpp -msgid "You decide not to flash yourself." -msgstr "你決定不要閃到自己。" - #: src/iuse.cpp msgid "There's nothing particularly interesting there." msgstr "這裡沒有甚麼特別的東西。" @@ -133977,6 +136142,10 @@ msgstr "%s 在中間擋住了你的鏡頭。" msgid "This photo is better than the previous one." msgstr "這張照片比前一張照的好。" +#: src/iuse.cpp +msgid "You took a selfie." +msgstr "" + #. ~ 1s - thing being photographed, 2s - photo quality (adjective). #: src/iuse.cpp #, c-format @@ -135242,15 +137411,6 @@ msgstr "你無法在看不清楚時那麼做!" msgid "Your tool does not have enough charges to do that." msgstr "你的工具沒有足夠的電量。" -#: src/iuse_actor.cpp -msgid "Repair what?" -msgstr "修理什麼?" - -#: src/iuse_actor.cpp -#, c-format -msgid "You have no items that could be repaired with a %s." -msgstr "你沒有可以用 %s 來修理的物品。" - #: src/iuse_actor.cpp #, c-format msgid "Your %s is not made of any of:" @@ -135532,12 +137692,6 @@ msgstr "你已經安裝更高等級的元件了。" msgid "Remove which modification?" msgstr "移除哪個改造模組?" -#. ~ %1$s - gunmod, %2$s - gun. -#: src/iuse_actor.cpp -#, c-format -msgid "You remove your %1$s from your %2$s." -msgstr "你把 %1$s 自你的 %2$s 移除。" - #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." msgstr "沒有被改造" @@ -137076,6 +139230,10 @@ msgstr "可砸毀。" msgid "Diggable. " msgstr "可挖掘。" +#: src/map.cpp +msgid "Plowable. " +msgstr "" + #: src/map.cpp msgid "Rough. " msgstr "粗糙的。" @@ -139165,6 +141323,21 @@ msgstr "這個模組需要 Lua 支援" msgid "This mod requires Lua support" msgstr "這個模組需要 Lua 支援" +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but you dodge it." +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart into you!" +msgstr "%s 的鏢射中你了!" + +#: src/monattack.cpp +#, c-format +msgid "The %s shoots a dart but it bounces off your armor." +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %1$s feeds an %2$s and it grows!" @@ -139790,11 +141963,6 @@ msgstr "%s 試著把你拖行, 但你抵抗了!" msgid " resist the %s as it tries to drag them!" msgstr "%s 試著把拖行, 但他抵抗了!" -#: src/monattack.cpp -#, c-format -msgid "The %s shoots a dart into you!" -msgstr "%s 的鏢射中你了!" - #: src/monattack.cpp msgid "You feel poison enter your body!" msgstr "你感覺到毒素進入你的身體!" @@ -140843,10 +143011,42 @@ msgstr "它嚴重受創。" msgid "It is nearly dead!" msgstr "它瀕臨死亡!" +#: src/monster.cpp +msgid " Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Difficulty " +msgstr "" + +#: src/monster.cpp +msgid "Minimal threat." +msgstr "" + +#: src/monster.cpp +msgid "Mildly dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Very dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Extremely dangerous." +msgstr "" + +#: src/monster.cpp +msgid "Fatally dangerous!" +msgstr "" + #: src/monster.cpp #, c-format -msgid "This is a %s. %s" -msgstr "這是 %s。 %s" +msgid "This is a %s. %s %s" +msgstr "" #: src/monster.cpp #, c-format @@ -141657,12 +143857,10 @@ msgstr "點數" #: src/newcharacter.cpp #, c-format -msgid "(Press %s to change)" -msgstr "(按 %s 改變)" - -#: src/newcharacter.cpp -msgid "Sort by:" -msgstr "排序模式:" +msgid "" +"Sort by: %1$s (Press %2$s to" +" change)" +msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" @@ -142237,14 +144435,10 @@ msgstr "NPC: %s" msgid "Wielding a %s" msgstr "手持 %s" -#: src/npc.cpp +#: src/npc.cpp src/player.cpp msgid "Wearing: " msgstr "穿著: " -#: src/npc.cpp -msgid "Wielding: " -msgstr "手持: " - #: src/npc.cpp msgid "Completely untrusting" msgstr "完全不信任" @@ -142864,6 +145058,10 @@ msgstr " 如果你有興趣的話, 我需要一個幫手。" msgid " If you are interested, I have another job for you." msgstr " 我有另一件工作給你。想要聽看看嗎?" +#: src/npctalk.cpp +msgid "Pleasure doing business!" +msgstr "開張大吉!" + #: src/npctalk.cpp msgid "You just asked me for stuff; ask later." msgstr "你沒多久前才跟我要東西, 晚點再說吧。" @@ -143250,17 +145448,17 @@ msgstr "好, 繼續訓練 " msgid "%s ( cost $%d )" msgstr "%s (花費 $%d)" -#: src/npctalk.cpp -#, c-format -msgid "%s: %d -> %d" -msgstr "%s: %d -> %d" - #. ~Skill name: current level -> next level (cost in dollars) #: src/npctalk.cpp #, c-format msgid "%s: %d -> %d (cost $%d)" msgstr "%s: %d -> %d (花費 $%d)" +#: src/npctalk.cpp +#, c-format +msgid "%s: %d -> %d" +msgstr "%s: %d -> %d" + #: src/npctalk.cpp msgid "Okay, thanks." msgstr "好啦, 謝了。" @@ -143437,14 +145635,14 @@ msgstr "不要打壞障礙物。" msgid "You can bash obstacles." msgstr "你可以打壞障礙物了。" -#: src/npctalk.cpp -msgid "Sleep when you feel tired." -msgstr "累的時候就去睡吧。" - #: src/npctalk.cpp msgid "Stay awake." msgstr "保持醒著。" +#: src/npctalk.cpp +msgid "Sleep when you feel tired." +msgstr "累的時候就去睡吧。" + #: src/npctalk.cpp msgid "Stay quiet." msgstr "保持安靜。" @@ -143461,14 +145659,14 @@ msgstr "不理會屍體" msgid "Smash zombie corpses." msgstr "砸爛殭屍屍體。" -#: src/npctalk.cpp -msgid "Close the doors." -msgstr "把門關上。" - #: src/npctalk.cpp msgid "Leave doors open." msgstr "不要關門。" +#: src/npctalk.cpp +msgid "Close the doors." +msgstr "把門關上。" + #: src/npctalk.cpp msgid "Set up pickup rules." msgstr "設定撿取規則。" @@ -143545,7 +145743,7 @@ msgstr "" msgid "%s has abandoned the camp." msgstr "" -#: src/npctalk.cpp src/player.cpp +#: src/npctalk.cpp msgid "fists" msgstr "拳頭" @@ -143614,6 +145812,23 @@ msgstr "%1$s 給了你 %2$s" msgid "%1$s gives you %2$d %3$s" msgstr "" +#: src/npctalk.cpp +#, c-format +msgid "You don't have a %1$s!" +msgstr "" + +#. ~ %1%s is the NPC name, %2$s is an item +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s a %2$s" +msgstr "" + +#. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items +#: src/npctalk.cpp +#, c-format +msgid "You give %1$s %2$d %3$s" +msgstr "" + #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." msgstr "我還沒 相信你到要吃那個東西…" @@ -143766,6 +145981,16 @@ msgstr "%s 替你剪了一頭體面的髮型…" msgid "%s gives you a decent shave..." msgstr "%s 替你刮了一臉體面的鬍子…" +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s..." +msgstr "" + +#: src/npctalk_funcs.cpp +#, c-format +msgid "That was a pleasant conversation with %s." +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s drops the logs off in the garage..." @@ -145771,15 +147996,13 @@ msgid "Example: -pipe,-chunk,-steel" msgstr "範例: -pipe, -chunk, -steel" #: src/output.cpp -msgid "Search [c]ategory, [m]aterial, or [q]uality:" +msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" msgstr "" -"特殊前綴符號 c:分類, m:材質, " -"q:特性。" #. ~ An example of how to filter items based on category or material. #: src/output.cpp -msgid "Example: c:food,m:iron,q:hammering" -msgstr "範例: c:食物, m:鐵, q:敲擊" +msgid "Examples: c:food,m:iron,q:hammering,d:pipe" +msgstr "" #: src/output.cpp msgid "unknown" @@ -146117,6 +148340,10 @@ msgstr "捕捉或釋放生物" msgid "Load or unload a vehicle" msgstr "" +#: src/pickup.cpp +msgid "Reload seed drill with seeds" +msgstr "" + #: src/pickup.cpp #, c-format msgid "Purify water in tank" @@ -146279,6 +148506,11 @@ msgstr "為了避免裡面的東西灑出來, 你把 %1$s 放在 %2$s 上。" msgid "To avoid spilling its contents, sets their %1$s on the %2$s." msgstr "為了避免裡面的東西灑出來, 把 %1$s 放在 %2$s 上。" +#: src/player.cpp +msgctxt "not possessive" +msgid "you" +msgstr "你" + #: src/player.cpp msgid "your" msgstr "你的" @@ -146585,8 +148817,9 @@ msgstr "生化插件總數: %d" #: src/player.cpp #, c-format -msgid "Power: %d/%d" -msgstr "能量: %d/%d" +msgid "" +"Bionic Power: %d/%d" +msgstr "" #: src/player.cpp msgid "Weapon:" @@ -146672,6 +148905,14 @@ msgstr "你發出一聲大叫!" msgid "The sound of your voice is almost completely muffled!" msgstr "你的聲音幾乎被完全阻隔了!" +#: src/player.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/player.cpp +msgid "your muffled shout" +msgstr "" + #: src/player.cpp msgid "The sound of your voice is significantly muffled!" msgstr "你的聲音被大幅阻隔了!" @@ -147335,10 +149576,6 @@ msgstr "" msgid "This place is dangerous, you shouldn't be here." msgstr "" -#: src/player.cpp -msgid "What are you doing out here?" -msgstr "" - #: src/player.cpp msgid "That's not true, is it?" msgstr "" @@ -147631,11 +149868,6 @@ msgstr "你的視覺中樞必須動起來了…" msgid "You feel an anomalous sensation coming from your radiation sensors." msgstr "你身上的輻射感測器傳來了一陣反常的感覺。" -#: src/player.cpp -#, c-format -msgid "Your radiation badge changes from %1$s to %2$s!" -msgstr "你的輻射偵測徽章從 %1$s 變成 %2$s!" - #: src/player.cpp msgid "Your chest burns as your power systems overload!" msgstr "你的電源系統過載, 胸腔像被火燒一樣!" @@ -147783,6 +150015,11 @@ msgstr "你的顫抖的雙腿使你蹣跚而行。" msgid "You fall over!" msgstr "你跌倒了!" +#: src/player.cpp +#, c-format +msgid "Your radiation badge changes from %1$s to %2$s!" +msgstr "你的輻射偵測徽章從 %1$s 變成 %2$s!" + #. ~ %s is bodypart #: src/player.cpp #, c-format @@ -148252,6 +150489,53 @@ msgstr "你不能把物品放到那!" msgid " can't place items here!" msgstr "不能把物品放到那!" +#: src/player.cpp +#, c-format +msgid "You put the %s in your inventory." +msgstr "你把 %s 放到物品欄。" + +#: src/player.cpp +#, c-format +msgid "The %s is already empty!" +msgstr "%s 已經空了!" + +#: src/player.cpp +msgid "The liquid can't be unloaded in its current state!" +msgstr "這液體因為它目前的狀態而無法卸載。" + +#: src/player.cpp +msgid "Unload what?" +msgstr "清空什麼?" + +#: src/player.cpp +#, c-format +msgid "You can't unload a %s!" +msgstr "你不能清空 %s!" + +#: src/player.cpp +#, c-format +msgid "You can't unload a rechargeable %s!" +msgstr "你無法卸下可充電的 %s!" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't charged." +msgstr "你的 %s 沒有電。" + +#: src/player.cpp +#, c-format +msgid "Your %s isn't loaded." +msgstr "你的 %s 沒有裝填。" + +#: src/player.cpp +#, c-format +msgid "You recover %i unused plutonium." +msgstr "你回收 %i 未使用過的鈽。" + +#: src/player.cpp +msgid "You can't remove partially depleted plutonium!" +msgstr "你不能移除耗用到一半的鈽!" + #: src/player.cpp #, c-format msgid "Your %s needs %d charge from some UPS." @@ -148264,6 +150548,12 @@ msgid "Your %s has %d charge but needs %d." msgid_plural "Your %s has %d charges but needs %d." msgstr[0] "你的 %s 有 %d 電量, 但需要 %d 電量。" +#. ~ %1$s - gunmod, %2$s - gun. +#: src/player.cpp +#, c-format +msgid "You remove your %1$s from your %2$s." +msgstr "你把 %1$s 自你的 %2$s 移除。" + #: src/player.cpp #, c-format msgid "Permanently install your %1$s in your %2$s?" @@ -148710,6 +151000,10 @@ msgstr "你覺得在這個等級的 %s 工作變得沒挑戰性了。" msgid "You resume your task." msgstr "你繼續工作。" +#: src/player.cpp +msgid "Weapon : fists" +msgstr "武器 : 赤手空拳" + #: src/player.cpp msgid "Wield what?" msgstr "手持什麼?" @@ -148748,6 +151042,14 @@ msgstr "你停止搬運物品。" msgid "Your body strains under the weight!" msgstr "你的身體被超重拖累!" +#: src/player.cpp +msgid "Wielding: " +msgstr "手持: " + +#: src/player.cpp +msgid " Traits: " +msgstr "" + #: src/player.cpp #, c-format msgid "You (%s)" @@ -148946,8 +151248,8 @@ msgstr "累贅與保暖" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" -msgstr "生化能量: %1$d" +msgid "Bionic Power: %1$d" +msgstr "" #: src/player_display.cpp msgid "EFFECTS" @@ -149475,14 +151777,6 @@ msgstr "死於氣喘發作。" msgid "You wheeze and gasp for air." msgstr "你喘息並渴求著空氣。" -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like rubber as they melt and remend." -msgstr "你的骨頭像橡膠似的融化再重合。" - -#: src/player_hardcoded_effects.cpp -msgid "Your bones feel like they're crumbling." -msgstr "你的骨頭好像快碎了。" - #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." msgstr "你的頭隱隱作痛。" @@ -150256,15 +152550,6 @@ msgstr "非常寒冷!%s" msgid "Freezing!%s" msgstr "酷寒!%s" -#: src/sidebar.cpp -msgid "Deaf!" -msgstr "聽不見!" - -#: src/sidebar.cpp -#, c-format -msgid "Sound %d" -msgstr "聲響 %d" - #: src/sidebar.cpp msgid "Parched" msgstr "脫水" @@ -151535,6 +153820,19 @@ msgstr "" msgid "Acceleration: %3d %s/t" msgstr "加速: %3d %s/t" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Water Safe/Top Speed: " +"%3d/%3d %s" +msgstr "" + +#. ~ /t means per turn +#: src/veh_interact.cpp +#, c-format +msgid "Water Acceleration: %3d %s/t" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" @@ -151542,21 +153840,22 @@ msgstr "車重: %5.0f %s" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" -msgstr "載貨量: %s/%s %s" +msgid "" +"Cargo Volume: %s / %s %s" +msgstr "" #: src/veh_interact.cpp msgid "Status:" msgstr "狀態:" -#: src/veh_interact.cpp -msgid "Most damaged (can't repair):" -msgstr "受損最重 (無法修理):" - #: src/veh_interact.cpp msgid "Most damaged:" msgstr "受損最重:" +#: src/veh_interact.cpp +msgid "Most damaged (can't repair):" +msgstr "受損最重 (無法修理):" + #: src/veh_interact.cpp msgid "Needs repair:" msgstr "需要修理:" @@ -151586,6 +153885,11 @@ msgstr "" msgid "Offroad: %4d%%" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "Draft: %4.2fm" +msgstr "" + #: src/veh_interact.cpp msgid "Name: " msgstr "名稱: " @@ -151796,9 +154100,9 @@ msgid "Could not find base part in requirements for %s." msgstr "你找不到 %s 要求的基礎零件。" #: src/veh_interact.cpp -msgid "" -"Choose a facing direction for the new headlight. Press space to continue." -msgstr "設定新車頭燈的照射方向。請按空白鍵繼續。" +#, c-format +msgid "Choose a facing direction for the new %s. Press space to continue." +msgstr "" #: src/veh_interact.cpp #, c-format @@ -151885,10 +154189,10 @@ msgstr "你修理了 %1$s 的 %2$s。" msgid "Lost connection with the vehicle due to distance!" msgstr "距離過遠, 失去與車輛的連線!" -#. ~ backfire sound #: src/vehicle.cpp -msgid "BANG!" -msgstr "砰!" +#, c-format +msgid "a loud BANG! from the %s" +msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." @@ -152102,13 +154406,13 @@ msgstr "殘骸堆" #: src/vehicle_move.cpp #, c-format -msgid "The %s doesn't have enough wheels to move!" -msgstr "%s 沒有足夠的輪胎用於移動!" +msgid "The %s is too leaky!" +msgstr "%s 漏很大!" #: src/vehicle_move.cpp #, c-format -msgid "The %s is too leaky!" -msgstr "%s 漏很大!" +msgid "The %s doesn't have enough wheels to move!" +msgstr "%s 沒有足夠的輪胎用於移動!" #: src/vehicle_move.cpp #, c-format @@ -152332,6 +154636,14 @@ msgstr "關閉所有窗簾與門" msgid "headlights" msgstr "車頭燈" +#: src/vehicle_use.cpp +msgid "wide angle headlights" +msgstr "" + +#: src/vehicle_use.cpp +msgid "directed overhead lights" +msgstr "" + #: src/vehicle_use.cpp msgid "overhead lights" msgstr "頭燈" @@ -152587,18 +154899,23 @@ msgstr "%1$s 似乎缺少了 %2$s。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a long beeping sound." -msgstr "%s 發出很長的嗶嗶響聲。" +msgid "the %s bang as it starts" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "the %s making a long beep" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a single clicking sound." -msgstr "%s 發出單一的咔嚓聲。" +msgid "the %s clicking once" +msgstr "" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a rapid clicking sound." -msgstr "%s 發出急促的咔嚓聲。" +msgid "the %s rapidly clicking" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -152607,8 +154924,8 @@ msgstr "%s 很快就熄火了。" #: src/vehicle_use.cpp #, c-format -msgid "The %s makes a terrible clanking sound." -msgstr "%s 發出可怕的叮噹聲。" +msgid "the %s clanking and grinding" +msgstr "" #: src/vehicle_use.cpp msgid "You honk the horn!" @@ -152628,6 +154945,11 @@ msgstr "嗶嗶!" msgid "You honk the horn, but nothing happens." msgstr "你按了喇叭, 但沒有事發生。" +#: src/vehicle_use.cpp +#, c-format +msgid "Move how many? [Have %d] (0 to cancel)" +msgstr "" + #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." msgstr "喇叭發出響亮刺耳的簡單旋律" diff --git a/lua/class_definitions.lua b/lua/class_definitions.lua index 2d6b70bc0a62b..d78759fee1a94 100644 --- a/lua/class_definitions.lua +++ b/lua/class_definitions.lua @@ -1345,7 +1345,7 @@ classes = { { name = "i_rem", rval = nil, args = { "tripoint", "item" } }, { name = "impassable", rval = "bool", args = { "tripoint" } }, { name = "impassable_ter_furn", rval = "bool", args = { "tripoint" } }, - { name = "inbounds", rval = "bool", args = { "int", "int", "int" } }, + { name = "inbounds", rval = "bool", args = { "point" } }, { name = "inbounds", rval = "bool", args = { "tripoint" } }, { name = "is_bashable", rval = "bool", args = { "tripoint" }, optional_args = { "bool" } }, { name = "is_bashable_furn", rval = "bool", args = { "tripoint" } }, diff --git a/src/action.cpp b/src/action.cpp index 9873920326fbb..4db3b614a404e 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -23,8 +23,6 @@ #include "vehicle.h" #include "vpart_position.h" -extern bool tile_iso; - void parse_keymap( std::istream &keymap_txt, std::map &kmap, std::set &unbound_keymap ); @@ -97,7 +95,7 @@ action_id action_from_key( char ch ) { input_context ctxt = get_default_mode_input_context(); input_event event( static_cast( ch ), CATA_INPUT_KEYBOARD ); - const std::string action = ctxt.input_to_action( event ); + const std::string &action = ctxt.input_to_action( event ); return look_up_action( action ); } diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 908b1059c9f5d..fb25b5c6746b8 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -4,6 +4,7 @@ #include #include "action.h" +#include "advanced_inv.h" #include "catalua.h" #include "clzones.h" #include "construction.h" @@ -79,6 +80,7 @@ activity_handlers::do_turn_functions = { { activity_id( "ACT_BUTCHER" ), butcher_do_turn }, { activity_id( "ACT_BUTCHER_FULL" ), butcher_do_turn }, { activity_id( "ACT_FIELD_DRESS" ), butcher_do_turn }, + { activity_id( "ACT_SKIN" ), butcher_do_turn }, { activity_id( "ACT_QUARTER" ), butcher_do_turn }, { activity_id( "ACT_DISSECT" ), butcher_do_turn }, { activity_id( "ACT_HACKSAW" ), hacksaw_do_turn }, @@ -100,6 +102,7 @@ activity_handlers::finish_functions = { { activity_id( "ACT_BUTCHER" ), butcher_finish }, { activity_id( "ACT_BUTCHER_FULL" ), butcher_finish }, { activity_id( "ACT_FIELD_DRESS" ), butcher_finish }, + { activity_id( "ACT_SKIN" ), butcher_finish }, { activity_id( "ACT_QUARTER" ), butcher_finish }, { activity_id( "ACT_DISSECT" ), butcher_finish }, { activity_id( "ACT_FIRSTAID" ), firstaid_finish }, @@ -128,6 +131,7 @@ activity_handlers::finish_functions = { { activity_id( "ACT_WAIT" ), wait_finish }, { activity_id( "ACT_WAIT_WEATHER" ), wait_weather_finish }, { activity_id( "ACT_WAIT_NPC" ), wait_npc_finish }, + { activity_id( "ACT_SOCIALIZE" ), socialize_finish }, { activity_id( "ACT_TRY_SLEEP" ), try_sleep_finish }, { activity_id( "ACT_CRAFT" ), craft_finish }, { activity_id( "ACT_LONGCRAFT" ), longcraft_finish }, @@ -145,8 +149,11 @@ activity_handlers::finish_functions = { { activity_id( "ACT_JACKHAMMER" ), jackhammer_finish }, { activity_id( "ACT_DIG" ), dig_finish }, { activity_id( "ACT_FILL_PIT" ), fill_pit_finish }, + { activity_id( "ACT_PLAY_WITH_PET" ), play_with_pet_finish }, { activity_id( "ACT_SHAVE" ), shaving_finish }, - { activity_id( "ACT_HAIRCUT" ), haircut_finish } + { activity_id( "ACT_HAIRCUT" ), haircut_finish }, + { activity_id( "ACT_UNLOAD_MAG" ), unload_mag_finish }, + { activity_id( "ACT_ROBOT_CONTROL" ), robot_control_finish } }; void messages_in_process( const player_activity &act, const player &p ) @@ -376,6 +383,12 @@ void set_up_butchery( player_activity &act, player &u, butcher_type action ) return; } + if( action == SKIN && corpse_item.has_flag( "SKINNED" ) ) { + u.add_msg_if_player( m_info, _( "This corpse is already skinned." ) ); + act.index = -1; + return; + } + if( action == QUARTER ) { if( corpse.size == MS_TINY ) { u.add_msg_if_player( m_bad, _( "This corpse is too small to quarter without damaging." ), @@ -471,6 +484,9 @@ int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher case F_DRESS: time_to_cut *= 2; break; + case SKIN: + time_to_cut *= 2; + break; case QUARTER: time_to_cut /= 4; if( time_to_cut < 200 ) { @@ -577,7 +593,7 @@ harvest_id butchery_flags_deprecate( const mtype &mt ) } // this function modifies the input weight by its damage level, depending on the bodypart -int corpse_damage_effect( int weight, std::string entry_type, int damage_level ) +int corpse_damage_effect( int weight, const std::string &entry_type, int damage_level ) { float slight_damage = 0.9; float damage = 0.75; @@ -647,6 +663,9 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons _( "You salvage what you can from the corpse, but it is badly damaged." ) ); } } + if( corpse_item->has_flag( "SKINNED" ) ) { + monster_weight = round( 0.85 * monster_weight ); + } int monster_weight_remaining = monster_weight; int practice = 4 + roll_butchery(); @@ -668,7 +687,7 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons roll = std::max( corpse_damage_effect( roll, entry.type, corpse_item->damage_level( 4 ) ), entry.base_num.first ); } - const itype *drop = NULL; + const itype *drop = nullptr; if( entry.type != "bionic_group" ) { drop = item::find_type( entry.drop ); } @@ -712,6 +731,10 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons roll /= 2; } + if( corpse_item->has_flag( "SKINNED" ) && entry.type == "skin" ) { + roll = 0; + } + // QUICK BUTCHERY if( action == BUTCHER ) { if( entry.type == "flesh" ) { @@ -739,6 +762,14 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons } } + // you only get the skin from skinning + if( action == SKIN ) { + if( entry.type != "skin" ) { + roll = 0; + continue; + } + } + // field dressing removed innards and bones from meatless limbs if( ( action == BUTCHER_FULL || action == BUTCHER ) && corpse_item->has_flag( "FIELD_DRESS" ) ) { if( entry.type == "offal" ) { @@ -811,6 +842,8 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons if( action == F_DRESS ) { // 25% of the corpse weight is what's removed during field dressing monster_weight_remaining -= monster_weight * 3 / 4; + } else if( action == SKIN ) { + monster_weight_remaining -= monster_weight * 0.85; } else { // a carcass is 75% of the weight of the unmodified creature's weight if( ( corpse_item->has_flag( "FIELD_DRESS" ) || corpse_item->has_flag( "FIELD_DRESS_FAILED" ) ) && @@ -819,11 +852,17 @@ void butchery_drops_harvest( item *corpse_item, const mtype &mt, player &p, cons } else if( corpse_item->has_flag( "QUARTERED" ) ) { monster_weight_remaining -= ( monster_weight - ( monster_weight * 3 / 4 / 4 ) ); } + if( corpse_item->has_flag( "SKINNED" ) ) { + monster_weight_remaining -= monster_weight * 0.15; + } + } + const int item_charges = monster_weight_remaining / to_gram( ( + item::find_type( "ruined_chunks" ) )->weight ); + if( item_charges > 0 ) { + item ruined_parts( "ruined_chunks", bday, item_charges ); + ruined_parts.set_mtype( &mt ); + g->m.add_item_or_charges( p.pos(), ruined_parts ); } - item ruined_parts( "ruined_chunks", bday, - monster_weight_remaining / to_gram( ( item::find_type( "ruined_chunks" ) )->weight ) ); - ruined_parts.set_mtype( &mt ); - g->m.add_item_or_charges( p.pos(), ruined_parts ); } if( action == DISSECT ) { @@ -857,6 +896,8 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) action = QUARTER; } else if( act->id() == activity_id( "ACT_DISSECT" ) ) { action = DISSECT; + } else if( act->id() == activity_id( "ACT_SKIN" ) ) { + action = SKIN; } //Negative index means try to start next item @@ -959,7 +1000,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) butchery_drops_harvest( &corpse_item, *corpse, *p, bday, roll_butchery, action, roll_drops ); // reveal hidden items / hidden content - if( action != F_DRESS ) { + if( action != F_DRESS && action != SKIN ) { for( auto &content : contents ) { if( ( roll_butchery() + 10 ) * 5 > rng( 0, 100 ) ) { //~ %1$s - item name, %2$s - monster name @@ -1041,6 +1082,27 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) } break; + case SKIN: + switch( rng( 1, 4 ) ) { + case 1: + p->add_msg_if_player( m_good, _( "You skin the %s." ), corpse->nname().c_str() ); + break; + case 2: + p->add_msg_if_player( m_good, _( "You carefully remove the hide from the %s" ), + corpse->nname().c_str() ); + break; + case 3: + p->add_msg_if_player( m_good, + _( "The %s is challenging to skin, but you get a good hide from it." ), + corpse->nname().c_str() ); + break; + case 4: + p->add_msg_if_player( m_good, _( "With a few deft slices you take the skin from the %s" ), + corpse->nname().c_str() ); + break; + } + corpse_item.set_flag( "SKINNED" ); + break; case DISSECT: p->add_msg_if_player( m_good, _( "You finish dissecting the %s." ), corpse_item.tname().c_str() ); g->m.i_rem( p->pos(), act->index ); @@ -1120,18 +1182,18 @@ void serialize_liquid_target( player_activity &act, const monster &mon ) act.coords.push_back( mon.pos() ); } -void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) +void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) { - player_activity &act = *act_; + player_activity &act_ref = *act; try { // 1. Gather the source item. vehicle *source_veh = nullptr; - const tripoint source_pos = act.coords.at( 0 ); + const tripoint source_pos = act_ref.coords.at( 0 ); map_stack source_stack = g->m.i_at( source_pos ); std::list::iterator on_ground; monster *source_mon = nullptr; item liquid; - const auto source_type = static_cast( act.values.at( 0 ) ); + const auto source_type = static_cast( act_ref.values.at( 0 ) ); int part_num = -1; long veh_charges = 0; switch( source_type ) { @@ -1140,20 +1202,20 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) if( source_veh == nullptr ) { throw std::runtime_error( "could not find source vehicle for liquid transfer" ); } - deserialize( liquid, act.str_values.at( 0 ) ); - part_num = static_cast( act.values.at( 1 ) ); + deserialize( liquid, act_ref.str_values.at( 0 ) ); + part_num = static_cast( act_ref.values.at( 1 ) ); veh_charges = liquid.charges; break; case LST_INFINITE_MAP: - deserialize( liquid, act.str_values.at( 0 ) ); + deserialize( liquid, act_ref.str_values.at( 0 ) ); liquid.charges = item::INFINITE_CHARGES; break; case LST_MAP_ITEM: - if( static_cast( act.values.at( 1 ) ) >= source_stack.size() ) { + if( static_cast( act_ref.values.at( 1 ) ) >= source_stack.size() ) { throw std::runtime_error( "could not find source item on ground for liquid transfer" ); } on_ground = source_stack.begin(); - std::advance( on_ground, act.values.at( 1 ) ); + std::advance( on_ground, act_ref.values.at( 1 ) ); liquid = *on_ground; break; case LST_MONSTER: @@ -1161,9 +1223,9 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) source_mon = dynamic_cast( c ); if( source_mon == nullptr ) { debugmsg( "could not find source creature for liquid transfer" ); - act.set_to_null(); + act_ref.set_to_null(); } - deserialize( liquid, act.str_values.at( 0 ) ); + deserialize( liquid, act_ref.str_values.at( 0 ) ); liquid.charges = 1; break; } @@ -1174,22 +1236,22 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) const long original_charges = liquid.charges; // 2. Transfer charges. - switch( static_cast( act.values.at( 2 ) ) ) { + switch( static_cast( act_ref.values.at( 2 ) ) ) { case LTT_VEHICLE: - if( const optional_vpart_position vp = g->m.veh_at( act.coords.at( 1 ) ) ) { + if( const optional_vpart_position vp = g->m.veh_at( act_ref.coords.at( 1 ) ) ) { p->pour_into( vp->vehicle(), liquid ); } else { throw std::runtime_error( "could not find target vehicle for liquid transfer" ); } break; case LTT_CONTAINER: - p->pour_into( p->i_at( act.values.at( 3 ) ), liquid ); + p->pour_into( p->i_at( act_ref.values.at( 3 ) ), liquid ); break; case LTT_MAP: - if( iexamine::has_keg( act.coords.at( 1 ) ) ) { - iexamine::pour_into_keg( act.coords.at( 1 ), liquid ); + if( iexamine::has_keg( act_ref.coords.at( 1 ) ) ) { + iexamine::pour_into_keg( act_ref.coords.at( 1 ), liquid ); } else { - g->m.add_item_or_charges( act.coords.at( 1 ), liquid ); + g->m.add_item_or_charges( act_ref.coords.at( 1 ), liquid ); p->add_msg_if_player( _( "You pour %1$s onto the ground." ), liquid.tname().c_str() ); liquid.charges = 0; } @@ -1202,7 +1264,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) const long removed_charges = original_charges - liquid.charges; if( removed_charges == 0 ) { // Nothing has been transferred, target must be full. - act.set_to_null(); + act_ref.set_to_null(); return; } @@ -1217,15 +1279,15 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) // many charges are actually left for the next time we come // around this loop. if( !liquid.charges ) { - act.set_to_null(); + act_ref.set_to_null(); } else { - act.str_values.at( 0 ) = serialize( liquid ); + act_ref.str_values.at( 0 ) = serialize( liquid ); } } else { source_veh->drain( liquid.typeId(), removed_charges ); } if( source_veh->fuel_left( liquid.typeId() ) <= 0 ) { - act.set_to_null(); + act_ref.set_to_null(); } break; case LST_MAP_ITEM: @@ -1240,7 +1302,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) add_msg( _( "You squeeze the last drops of %s from the vat." ), liquid.type_name( 1 ).c_str() ); } - act.set_to_null(); + act_ref.set_to_null(); } break; case LST_INFINITE_MAP: @@ -1249,19 +1311,19 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act_, player *p ) case LST_MONSTER: // liquid source charges handled in monexamine::milk_source if( liquid.charges == 0 ) { - act.set_to_null(); + act_ref.set_to_null(); } break; } if( removed_charges < original_charges ) { // Transferred less than the available charges -> target must be full - act.set_to_null(); + act_ref.set_to_null(); } } catch( const std::runtime_error &err ) { debugmsg( "error in activity data: \"%s\"", err.what() ); - act.set_to_null(); + act_ref.set_to_null(); return; } } @@ -1458,11 +1520,11 @@ void activity_handlers::game_do_turn( player_activity *act, player *p ) } } -void activity_handlers::hotwire_finish( player_activity *act, player *pl ) +void activity_handlers::hotwire_finish( player_activity *act, player *p ) { //Grab this now, in case the vehicle gets shifted if( const optional_vpart_position vp = g->m.veh_at( tripoint( act->values[0], act->values[1], - pl->posz() ) ) ) { + p->posz() ) ) ) { vehicle *const veh = &vp->vehicle(); int mech_skill = act->values[2]; if( mech_skill > static_cast( rng( 1, 6 ) ) ) { @@ -1509,9 +1571,9 @@ void activity_handlers::longsalvage_finish( player_activity *act, player *p ) return; } - for( auto it = items.begin(); it != items.end(); ++it ) { - if( actor->valid_to_cut_up( *it ) ) { - item_location item_loc( map_cursor( p->pos() ), &*it ); + for( auto &item : items ) { + if( actor->valid_to_cut_up( item ) ) { + item_location item_loc( map_cursor( p->pos() ), &item ); actor->cut_up( *p, *salvage_tool, item_loc ); return; } @@ -1528,9 +1590,9 @@ void activity_handlers::make_zlave_finish( player_activity *act, player *p ) std::string corpse_name = act->str_values[0]; item *body = nullptr; - for( auto it = items.begin(); it != items.end(); ++it ) { - if( it->display_name() == corpse_name ) { - body = &*it; + for( auto &item : items ) { + if( item.display_name() == corpse_name ) { + body = &item; } } @@ -1763,7 +1825,7 @@ void activity_handlers::reload_finish( player_activity *act, player *p ) if( reloadable.type->gun->reload_noise_volume > 0 ) { sfx::play_variant_sound( "reload", reloadable.typeId(), sfx::get_heard_volume( p->pos() ) ); sounds::ambient_sound( p->pos(), reloadable.type->gun->reload_noise_volume, - reloadable.type->gun->reload_noise ); + sounds::sound_t::activity, reloadable.type->gun->reload_noise ); } } else if( reloadable.is_watertight_container() ) { msg = _( "You refill the %s." ); @@ -1842,11 +1904,11 @@ void activity_handlers::train_finish( player_activity *act, player *p ) return; } -void activity_handlers::vehicle_finish( player_activity *act, player *pl ) +void activity_handlers::vehicle_finish( player_activity *act, player *p ) { //Grab this now, in case the vehicle gets shifted const optional_vpart_position vp = g->m.veh_at( tripoint( act->values[0], act->values[1], - pl->posz() ) ); + p->posz() ) ); veh_interact::complete_vehicle(); // complete_vehicle set activity type to NULL if the vehicle // was completely dismantled, otherwise the vehicle still exist and @@ -2046,8 +2108,8 @@ void activity_handlers::oxytorch_finish( player_activity *act, player *p ) void activity_handlers::cracking_finish( player_activity *act, player *p ) { - p->add_msg_if_player( m_good, _( "The safe opens!" ) ); - g->m.furn_set( act->placement, f_safe_o ); + p->add_msg_if_player( m_good, _( "With a satisfying click, the lock on the safe opens!" ) ); + g->m.furn_set( act->placement, f_safe_c ); act->set_to_null(); } @@ -2510,6 +2572,12 @@ void activity_handlers::wait_npc_finish( player_activity *act, player *p ) act->set_to_null(); } +void activity_handlers::socialize_finish( player_activity *act, player *p ) +{ + p->add_msg_if_player( _( "%s finishes chatting with you." ), act->str_values[0].c_str() ); + act->set_to_null(); +} + void activity_handlers::try_sleep_do_turn( player_activity *act, player *p ) { if( !p->has_effect( effect_sleep ) ) { @@ -2806,6 +2874,14 @@ void activity_handlers::fill_pit_finish( player_activity *act, player *p ) act->set_to_null(); } +void activity_handlers::play_with_pet_finish( player_activity *act, player *p ) +{ + p->add_morale( MORALE_PLAY_WITH_PET, rng( 3, 10 ), 10, 5_hours, 25_minutes ); + p->add_msg_if_player( m_good, _( "Playing with your %s has lifted your spirits a bit." ), + act->str_values[0].c_str() ); + act->set_to_null(); +} + void activity_handlers::shaving_finish( player_activity *act, player *p ) { p->add_msg_if_player( _( "You open up your kit and shave." ) ); @@ -2820,7 +2896,40 @@ void activity_handlers::haircut_finish( player_activity *act, player *p ) act->set_to_null(); } -std::vector get_sorted_tiles_by_distance( const tripoint abspos, +void activity_handlers::unload_mag_finish( player_activity *act, player *p ) +{ + long qty = 0; + item &it = *act->targets[ 0 ]; + + // remove the ammo leads in the belt + it.contents.erase( std::remove_if( it.contents.begin(), + it.contents.end(), [&]( item & e ) { + if( !p->add_or_drop_with_msg( e, true ) ) { + return false; + } + qty += e.charges; + return true; + } ), it.contents.end() ); + + // remove the belt linkage + if( it.is_ammo_belt() ) { + if( it.type->magazine->linkage ) { + item link( *it.type->magazine->linkage, calendar::turn, qty ); + p->add_or_drop_with_msg( link, true ); + } + add_msg( _( "You disassemble your %s." ), it.tname().c_str() ); + } else { + add_msg( _( "You unload your %s." ), it.tname().c_str() ); + } + + if( it.has_flag( "MAG_DESTROY" ) && it.ammo_remaining() == 0 ) { + act->targets[ 0 ].remove_item(); + } + + act->set_to_null(); +} + +std::vector get_sorted_tiles_by_distance( const tripoint &abspos, const std::unordered_set &tiles ) { auto cmp = [abspos]( tripoint a, tripoint b ) { @@ -2907,7 +3016,7 @@ void activity_handlers::harvest_plot_do_turn( player_activity *, player *p ) void activity_handlers::till_plot_do_turn( player_activity *, player *p ) { auto reject_tile = [p]( const tripoint & tile ) { - return !p->sees( tile ) || !g->m.has_flag( "DIGGABLE", tile ) || g->m.has_flag( "PLANT", tile ) || + return !p->sees( tile ) || !g->m.has_flag( "PLOWABLE", tile ) || g->m.has_flag( "PLANT", tile ) || g->m.ter( tile ) == t_dirtmound; }; @@ -2943,7 +3052,7 @@ void activity_handlers::fertilize_plot_do_turn( player_activity *act, player *p } }; - auto have_fertilizer = [&]( void ) { + auto have_fertilizer = [&]() { return !fertilizer.empty() && p->has_charges( fertilizer, 1 ); }; @@ -3035,3 +3144,75 @@ void activity_handlers::plant_plot_do_turn( player_activity *, player *p ) plant_appropriate_seed, _( "You planted all seeds you could." ) ); } + +void activity_handlers::robot_control_finish( player_activity *act, player *p ) +{ + uilist pick_robot; + pick_robot.text = _( "Override ready, choose an endpoint to hack." ); + // Build a list of all unfriendly robots in range. + std::vector< monster * > mons; // @todo: change into vector + std::vector< tripoint > locations; + int entry_num = 0; + for( monster &candidate : g->all_monsters() ) { + if( candidate.type->in_species( species_id( "ROBOT" ) ) && candidate.friendly == 0 && + rl_dist( p->pos(), candidate.pos() ) <= 10 ) { + mons.push_back( &candidate ); + pick_robot.addentry( entry_num++, true, MENU_AUTOASSIGN, candidate.name() ); + tripoint seen_loc; + // Show locations of seen robots, center on player if robot is not seen + if( p->sees( candidate ) ) { + seen_loc = candidate.pos(); + } else { + seen_loc = p->pos(); + } + locations.push_back( seen_loc ); + } + } + if( mons.empty() ) { + p->add_msg_if_player( m_info, _( "No enemy robots in range." ) ); + act->set_to_null(); + return; + } + pointmenu_cb callback( locations ); + pick_robot.callback = &callback; + pick_robot.query(); + if( pick_robot.ret < 0 || static_cast( pick_robot.ret ) >= mons.size() ) { + p->add_msg_if_player( m_info, _( "Never mind" ) ); + act->set_to_null(); + return; + } + const size_t mondex = pick_robot.ret; + monster *z = mons[mondex]; + p->add_msg_if_player( _( "You unleash your override attack on the %s." ), z->name().c_str() ); + + /** @EFFECT_INT increases chance of successful robot reprogramming, vs difficulty */ + /** @EFFECT_COMPUTER increases chance of successful robot reprogramming, vs difficulty */ + 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().c_str() ); + z->friendly = -1; + } else if( success >= -2 ) { //A near success + p->add_msg_if_player( _( "The %s short circuits as you attempt to reprogram it!" ), + z->name().c_str() ); + z->apply_damage( p, bp_torso, rng( 1, 10 ) ); //damage it a little + if( z->is_dead() ) { + p->practice( skill_id( "computer" ), 10 ); + act->set_to_null(); + return; // Do not do the other effects if the robot died + } + if( one_in( 3 ) ) { + p->add_msg_if_player( _( "...and turns friendly!" ) ); + if( one_in( 3 ) ) { //did the robot became friendly permanently? + z->friendly = -1; //it did + } else { + z->friendly = rng( 5, 40 ); // it didn't + } + } + } else { + p->add_msg_if_player( _( "...but the robot refuses to acknowledge you as an ally!" ) ); + } + p->practice( skill_id( "computer" ), 10 ); + act->set_to_null(); +} diff --git a/src/activity_handlers.h b/src/activity_handlers.h index 6ebcf602b9d93..bcce59db9ca1a 100644 --- a/src/activity_handlers.h +++ b/src/activity_handlers.h @@ -11,13 +11,15 @@ class player; -std::vector get_sorted_tiles_by_distance( const tripoint abspos, +std::vector get_sorted_tiles_by_distance( const tripoint &abspos, const std::unordered_set &tiles ); +std::vector route_adjacent( const player &p, const tripoint &dest ); enum butcher_type : int { BUTCHER, // quick butchery BUTCHER_FULL, // full workshop butchery F_DRESS, // field dressing a corpse + SKIN, // skinning a corpse QUARTER, // quarter a corpse DISSECT // dissect a corpse for CBMs }; @@ -43,12 +45,6 @@ void put_into_vehicle_or_drop( Character &c, item_drop_reason, const std::list &items, const tripoint &where ); -// advanced_inv.cpp -void advanced_inv(); - -// veh_interact.cpp -void complete_vehicle(); - namespace activity_handlers { @@ -118,6 +114,7 @@ void read_finish( player_activity *act, player *p ); void wait_finish( player_activity *act, player *p ); void wait_weather_finish( player_activity *act, player *p ); void wait_npc_finish( player_activity *act, player *p ); +void socialize_finish( player_activity *act, player *p ); void try_sleep_finish( player_activity *act, player *p ); void craft_finish( player_activity *act, player *p ); void longcraft_finish( player_activity *act, player *p ); @@ -135,8 +132,11 @@ void chop_logs_finish( player_activity *act, player *p ); void jackhammer_finish( player_activity *act, player *p ); void dig_finish( player_activity *act, player *p ); void fill_pit_finish( player_activity *act, player *p ); +void play_with_pet_finish( player_activity *act, player *p ); void shaving_finish( player_activity *act, player *p ); void haircut_finish( player_activity *act, player *p ); +void unload_mag_finish( player_activity *act, player *p ); +void robot_control_finish( player_activity *act, player *p ); // defined in activity_handlers.cpp extern const std::map< activity_id, std::function > diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index df6719d5308e5..f2214abef4f80 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -176,8 +176,7 @@ void put_into_vehicle( Character &c, item_drop_reason reason, const std::list &items, monster &pet ) { - units::volume remaining_volume = pet.inv.empty() ? units::volume( 0 ) : - pet.inv.front().get_storage(); + units::volume remaining_volume = pet.inv.empty() ? 0_ml : pet.inv.front().get_storage(); units::mass remaining_weight = pet.weight_capacity(); for( const auto &it : pet.inv ) { @@ -399,7 +398,7 @@ std::list reorder_for_dropping( const player &p, const drop_indexes &d && !second.it->is_worn_only_with( *first.it ) ); } ); - units::volume storage_loss = 0; // Cumulatively increases + units::volume storage_loss = 0_ml; // Cumulatively increases units::volume remaining_storage = p.volume_capacity(); // Cumulatively decreases while( !worn.empty() && !inv.empty() ) { @@ -469,7 +468,7 @@ std::list obtain_activity_items( player_activity &act, player &p ) } // Avoid tumbling to the ground. Unload cleanly. const units::volume excessive_volume = p.volume_carried() - p.volume_capacity(); - if( excessive_volume > 0 ) { + if( excessive_volume > 0_ml ) { const auto excess = p.inv.remove_randomly_by_volume( excessive_volume ); res.insert( res.begin(), excess.begin(), excess.end() ); } @@ -481,11 +480,11 @@ std::list obtain_activity_items( player_activity &act, player &p ) act.values.push_back( drop.second ); } } - // And either cancel if it's empty, or restart if it's not. + // And cancel if its empty. If its not, we modified in place and we will continue + // to resolve the drop next turn. This is different from the pickup logic which + // creates a brand new activity every turn and cancels the old activity if( act.values.empty() ) { p.cancel_activity(); - } else { - p.assign_activity( act ); } return res; @@ -504,7 +503,7 @@ void activity_handlers::washing_finish( player_activity *act, player *p ) // Check again that we have enough water and soap incase the amount in our inventory changed somehow // Consume the water and soap - units::volume total_volume = 0; + units::volume total_volume = 0_ml; for( const act_item &filthy_item : items ) { total_volume += filthy_item.it->volume(); @@ -875,7 +874,7 @@ static void move_item( item &it, int quantity, const tripoint &src, const tripoi } } -static std::vector route_adjacent( const player &p, const tripoint &dest ) +std::vector route_adjacent( const player &p, const tripoint &dest ) { auto passable_tiles = std::unordered_set(); @@ -916,6 +915,10 @@ void activity_on_turn_move_loot( player_activity &, player &p ) // sort source tiles by distance const auto &src_sorted = get_sorted_tiles_by_distance( abspos, src_set ); + if( !mgr.is_sorting() ) { + mgr.start_sort( src_sorted ); + } + for( auto &src : src_sorted ) { const auto &src_loc = g->m.getlocal( src ); bool is_adjacent_or_closer = square_dist( p.pos(), src_loc ) <= 1; @@ -952,8 +955,12 @@ void activity_on_turn_move_loot( player_activity &, player &p ) } } - for( auto it : items ) { - const auto id = mgr.get_near_zone_type_for_item( *it, abspos ); + //Skip items that have already been processed + for( auto it = items.begin() + mgr.get_num_processed( src ); it < items.end(); it++ ) { + + mgr.increment_num_processed( src ); + + const auto id = mgr.get_near_zone_type_for_item( **it, abspos ); // checks whether the item is already on correct loot zone or not // if it is, we can skip such item, if not we move the item to correct pile @@ -987,7 +994,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) free_space = g->m.free_volume( dest_loc ); } // check free space at destination - if( free_space > it->volume() ) { + if( free_space >= ( *it )->volume() ) { // before we move any item, check if player is at or adjacent to the loot source tile if( !is_adjacent_or_closer ) { std::vector route; @@ -1017,9 +1024,16 @@ void activity_on_turn_move_loot( player_activity &, player &p ) // we don't need to check for safe mode, activity will be restarted only if // player arrives on destination tile p.set_destination( route, player_activity( activity_id( "ACT_MOVE_LOOT" ) ) ); + + // didn't actually process so decrement + mgr.decrement_num_processed( src ); return; } - move_item( *it, it->count(), src_loc, dest_loc, src_veh, src_part ); + move_item( **it, ( *it )->count(), src_loc, dest_loc, src_veh, src_part ); + + // moved item away from source so decrement + mgr.decrement_num_processed( src ); + break; } } @@ -1034,6 +1048,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) // If we got here without restarting the activity, it means we're done add_msg( m_info, _( "You sorted out every item you could." ) ); + mgr.end_sort(); } cata::optional find_best_fire( const std::vector &from, const tripoint ¢er ) diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index bc2a2863c5aae..46f9bc0992793 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -231,12 +231,12 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active std::string volume_carried = format_volume( g->u.volume_carried() ); std::string volume_capacity = format_volume( g->u.volume_capacity() ); // align right, so calculate formatted head length - const std::string head = string_format( "%.1f/%.1f %s %s/%s %s", + const std::string formatted_head = string_format( "%.1f/%.1f %s %s/%s %s", weight_carried, weight_capacity, weight_units(), volume_carried.c_str(), volume_capacity.c_str(), volume_units_abbr() ); - const int hrightcol = columns - 1 - head.length(); + const int hrightcol = columns - 1 - formatted_head.length(); nc_color color = weight_carried > weight_capacity ? c_red : c_light_green; mvwprintz( window, 4, hrightcol, color, "%.1f", weight_carried ); wprintz( window, c_light_gray, "/%.1f %s ", weight_capacity, weight_units() ); @@ -244,15 +244,15 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active wprintz( window, color, volume_carried.c_str() ); wprintz( window, c_light_gray, "/%s %s", volume_capacity.c_str(), volume_units_abbr() ); } else { //print square's current and total weight + volume - std::string head; + std::string formatted_head; if( pane.get_area() == AIM_ALL ) { - head = string_format( "%3.1f %s %s %s", + formatted_head = string_format( "%3.1f %s %s %s", convert_weight( squares[pane.get_area()].weight ), weight_units(), format_volume( squares[pane.get_area()].volume ).c_str(), volume_units_abbr() ); } else { - units::volume maxvolume = 0; + units::volume maxvolume = 0_ml; auto &s = squares[pane.get_area()]; if( pane.get_area() == AIM_CONTAINER && s.get_container( pane.in_vehicle() ) != nullptr ) { maxvolume = s.get_container( pane.in_vehicle() )->get_container_capacity(); @@ -261,14 +261,14 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active } else { maxvolume = g->m.max_volume( s.pos ); } - head = string_format( "%3.1f %s %s/%s %s", + formatted_head = string_format( "%3.1f %s %s/%s %s", convert_weight( s.weight ), weight_units(), format_volume( s.volume ).c_str(), format_volume( maxvolume ).c_str(), volume_units_abbr() ); } - mvwprintz( window, 4, columns - 1 - head.length(), norm, head ); + mvwprintz( window, 4, columns - 1 - formatted_head.length(), norm, formatted_head ); } //print header row and determine max item name length @@ -314,7 +314,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active if( selected ) { thiscolor = ( inCategoryMode && - pane.sortby == SORTBY_CATEGORY ) ? c_white_red : hilite( thiscolor ); + pane.sortby == SORTBY_CATEGORY ) ? c_white_red : hilite( c_white ); thiscolordark = hilite( thiscolordark ); if( compact ) { mvwprintz( window, 6 + x, 1, thiscolor, " %s", spaces.c_str() ); @@ -594,8 +594,8 @@ void advanced_inv_area::init() pos = g->u.pos() + off; veh = nullptr; vstor = -1; - volume = 0; // must update in main function - weight = 0; // must update in main function + volume = 0_ml; // must update in main function + weight = 0_gram; // must update in main function switch( id ) { case AIM_INVENTORY: case AIM_WORN: @@ -703,7 +703,7 @@ void advanced_inv_area::init() {t_water_dp, t_water_pool, t_swater_dp, t_water_sh, t_swater_sh, t_sewage} }; auto ter_check = [this] - (const ter_id id) { + (const ter_id &id) { return g->m.ter(this->pos) == id; }; if(std::any_of(ter_water.begin(), ter_water.end(), ter_check)) { @@ -755,9 +755,9 @@ void advanced_inventory::init() } advanced_inv_listitem::advanced_inv_listitem( item *an_item, int index, int count, - aim_location _area, bool from_veh ) + aim_location area, bool from_vehicle ) : idx( index ) - , area( _area ) + , area( area ) , id( an_item->typeId() ) , name( an_item->tname( count ) ) , name_without_prefix( an_item->tname( 1, false ) ) @@ -766,16 +766,16 @@ advanced_inv_listitem::advanced_inv_listitem( item *an_item, int index, int coun , volume( an_item->volume() * stacks ) , weight( an_item->weight() * stacks ) , cat( &an_item->get_category() ) - , from_vehicle( from_veh ) + , from_vehicle( from_vehicle ) { items.push_back( an_item ); assert( stacks >= 1 ); } advanced_inv_listitem::advanced_inv_listitem( const std::list &list, int index, - aim_location loc, bool veh ) : + aim_location area, bool from_vehicle ) : idx( index ), - area( loc ), + area( area ), id( list.front()->typeId() ), items( list ), name( list.front()->tname( list.size() ) ), @@ -785,7 +785,7 @@ advanced_inv_listitem::advanced_inv_listitem( const std::list &list, int volume( list.front()->volume() * stacks ), weight( list.front()->weight() * stacks ), cat( &list.front()->get_category() ), - from_vehicle( veh ) + from_vehicle( from_vehicle ) { assert( stacks >= 1 ); } @@ -800,14 +800,14 @@ advanced_inv_listitem::advanced_inv_listitem() { } -advanced_inv_listitem::advanced_inv_listitem( const item_category *category ) +advanced_inv_listitem::advanced_inv_listitem( const item_category *cat ) : idx() , area() , id( "null" ) - , name( category->name() ) + , name( cat->name() ) , autopickup() , stacks() - , cat( category ) + , cat( cat ) { } @@ -887,8 +887,8 @@ void advanced_inventory_pane::add_items_from_area( advanced_inv_area &square, bool vehicle_override ) { assert( square.id != AIM_ALL ); - square.volume = 0; - square.weight = 0; + square.volume = 0_ml; + square.weight = 0_gram; if( !square.canputitems() ) { return; } @@ -984,8 +984,8 @@ void advanced_inventory::recalc_pane( side p ) auto &alls = squares[AIM_ALL]; auto &there = panes[-p + 1]; auto &other = squares[there.get_area()]; - alls.volume = 0; - alls.weight = 0; + alls.volume = 0_ml; + alls.weight = 0_gram; for( auto &s : squares ) { // All the surrounding squares, nothing else if( s.id < AIM_SOUTHWEST || s.id > AIM_NORTHEAST ) { @@ -1570,7 +1570,6 @@ void advanced_inventory::display() } aim_location destarea = dpane.get_area(); aim_location srcarea = sitem->area; - int distance = std::max( rl_dist( aim_vector( srcarea ), aim_vector( destarea ) ), 1 ); bool restore_area = ( destarea == AIM_ALL ); if( !query_destination( destarea ) ) { continue; @@ -1597,7 +1596,6 @@ void advanced_inventory::display() // but are potentially at a different place). recalc = true; assert( amount_to_move > 0 ); - int move_cost = 0; if( destarea == AIM_CONTAINER ) { if( !move_content( *sitem->items.front(), *squares[destarea].get_container( dpane.in_vehicle() ) ) ) { @@ -1605,91 +1603,75 @@ void advanced_inventory::display() continue; } } else if( srcarea == AIM_INVENTORY || srcarea == AIM_WORN ) { - // from inventory: remove all items first, then try to put them - // onto the map/vehicle, if it fails, put them back into the inventory. - // If no item has actually been moved, continue. + + // make sure advanced inventory is reopend after activity completion. + 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 ); - if( by_charges ) { - item moving_item = g->u.reduce_charges( idx, amount_to_move ); - assert( !moving_item.is_null() ); - move_cost = Pickup::cost_to_move_item( g->u, moving_item ); - int items_left = add_item( destarea, moving_item ); - // take care of charging back any items as well - if( items_left > 0 ) { - add_item( srcarea, moving_item, items_left ); - continue; - } - } else { - std::list moving_items; - if( srcarea == AIM_INVENTORY ) { - moving_items = g->u.inv.reduce_stack( idx, amount_to_move ); - } else if( srcarea == AIM_WORN ) { - g->u.takeoff( *sitem->items.front(), &moving_items ); - } - int items_left = 0; - int moved = 0; - for( auto &elem : moving_items ) { - assert( !elem.is_null() ); - move_cost += Pickup::cost_to_move_item( g->u, elem ); - items_left = add_item( destarea, elem ); - if( items_left > 0 ) { - // chargeback the items if adding them failed - add_item( srcarea, elem, items_left ); - } else { - ++moved; - } - } - if( moved == 0 ) { - continue; + + std::list> dropped; + dropped.emplace_back( idx, amount_to_move ); + + g->u.drop( dropped, g->u.pos() + squares[destarea].off ); + + // exit so that the activity can be carried out + exit = true; + + } else { // from map/vehicle: start ACT_PICKUP or ACT_MOVE_ITEMS as necessary + + // Make sure advanced inventory is reopend after activity completion. + do_return_entry(); + + if( destarea == AIM_INVENTORY || destarea == AIM_WORN ) { + g->u.assign_activity( activity_id( "ACT_PICKUP" ) ); + g->u.activity.values.push_back( spane.in_vehicle() ); + if( destarea == AIM_WORN ) { + g->u.activity.str_values.push_back( "equip" ); } + } else { // Vehicle and map destinations are handled similarly. + + g->u.assign_activity( activity_id( "ACT_MOVE_ITEMS" ) ); + // store whether the source is from a vehicle (first entry) + g->u.activity.values.push_back( spane.in_vehicle() ); + // store whether the destination is a vehicle + g->u.activity.values.push_back( dpane.in_vehicle() ); + // Stash the destination + g->u.activity.coords.push_back( squares[destarea].off ); } - // from map/vehicle: add the item to the destination. - // if that worked, remove it from the source, else continue. - } else { - // create a new copy of the old item being manipulated - item new_item( *sitem->items.front() ); + g->u.activity.placement = squares[srcarea].off; + if( by_charges ) { - // set the new item's charge amount - new_item.charges = amount_to_move; - } - // add the item, and note any items that might be leftover - int items_left = add_item( destarea, new_item, ( by_charges ) ? 1 : amount_to_move ); - move_cost = ( by_charges ? 1 : amount_to_move ) * Pickup::cost_to_move_item( g->u, new_item ); - // only remove item or charges if the add succeeded - if( items_left == 0 ) { - if( by_charges ) { - item *it = sitem->items.front(); - if( it->charges <= amount_to_move ) { - remove_item( *sitem, 1 ); - } else { - it->mod_charges( -amount_to_move ); - } - } else { - remove_item( *sitem, amount_to_move ); - } - // note to the player (and possibly debug) that the item transfer failed somehow + g->u.activity.values.push_back( sitem->idx ); + g->u.activity.values.push_back( amount_to_move ); } else { - const char *msg = nullptr; - int items_unmoved = amount_to_move - items_left; - if( by_charges ) { - msg = ( items_unmoved > 0 ) ? - _( "Only moved %d of %d charges." ) : - _( "Moved no charges." ); + std::list::iterator begin, end; + if( spane.in_vehicle() ) { + begin = squares[srcarea].veh->get_items( squares[srcarea].vstor ).begin(); + end = squares[srcarea].veh->get_items( squares[srcarea].vstor ).end(); } else { - msg = ( items_unmoved > 0 ) ? - _( "Only moved %d of %d items." ) : - _( "Moved no items." ); + begin = g->m.i_at( squares[srcarea].pos ).begin(); + end = g->m.i_at( squares[srcarea].pos ).end(); } - assert( msg != nullptr ); - g->u.add_msg_if_player( msg, amount_to_move - items_left, amount_to_move ); - // redraw the screen if moving to AIM_WORN, so we can see that it didn't work - redraw = ( destarea == AIM_WORN ); + + int index = 0; + for( auto item_it = begin; amount_to_move > 0 && item_it != end; ++item_it, ++index ) { + + if( item_it->typeId() == sitem->id ) { + g->u.activity.values.push_back( index ); + g->u.activity.values.push_back( 1 ); + + sitem->items.erase( sitem->items.begin() ); + + --amount_to_move; + } + } + } + + // exit so that the activity can be carried out + exit = true; } - // This is only reached when at least one item has been moved. - g->u.mod_moves( -move_cost * distance ); // Just in case the items have moved from/to the inventory g->u.inv.restack( g->u ); // if dest was AIM_ALL then we used query_destination and should undo that @@ -1954,17 +1936,16 @@ bool advanced_inventory::query_destination( aim_location &def ) for( int i = AIM_SOUTHWEST; i <= AIM_NORTHEAST; i++ ) { ordered_locs.push_back( screen_relative_location( static_cast ( i ) ) ); } - for( std::vector ::iterator iter = ordered_locs.begin(); iter != ordered_locs.end(); - ++iter ) { - auto &s = squares[*iter]; + for( auto &ordered_loc : ordered_locs ) { + auto &s = squares[ordered_loc]; const int size = s.get_item_count(); std::string prefix = string_format( "%2d/%d", size, MAX_ITEM_IN_SQUARE ); if( size >= MAX_ITEM_IN_SQUARE ) { prefix += _( " (FULL)" ); } - menu.addentry( *iter, + menu.addentry( ordered_loc, ( s.canputitems() && s.id != panes[src].get_area() ), - get_location_key( *iter ), + get_location_key( ordered_loc ), prefix + " " + s.name + " " + ( s.veh != nullptr ? s.veh->name : "" ) ); } } @@ -1989,91 +1970,6 @@ bool advanced_inventory::query_destination( aim_location &def ) return false; } -int advanced_inventory::remove_item( advanced_inv_listitem &sitem, int count ) -{ - // quick bail for no count - if( count <= 0 ) { - return 0; - } - - assert( sitem.area != AIM_ALL ); // should be a specific location instead - assert( sitem.area != AIM_INVENTORY ); // does not work for inventory - assert( !sitem.items.empty() ); - bool rc = true; - - while( count > 0 ) { - auto &s = squares[sitem.area]; - if( s.id == AIM_CONTAINER ) { - const auto cont = s.get_container( panes[src].in_vehicle() ); - assert( cont != nullptr ); - assert( !cont->contents.empty() ); - assert( &cont->contents.front() == sitem.items.front() ); - cont->contents.erase( cont->contents.begin() ); - } else if( sitem.area == AIM_WORN ) { - rc &= g->u.takeoff( sitem.idx ); - } else if( sitem.from_vehicle ) { - rc &= s.veh->remove_item( s.vstor, sitem.items.front() ); - } else { - g->m.i_rem( s.pos, sitem.items.front() ); - } - if( !rc ) { - break; - } - sitem.items.erase( sitem.items.begin() ); - --count; - } - return count; -} - -int advanced_inventory::add_item( aim_location destarea, item &new_item, int count ) -{ - // quick bail for no count - if( count <= 0 ) { - return 0; - } - - assert( destarea != AIM_ALL ); // should be a specific location instead - const char *msg = nullptr; - - while( count > 0 ) { - // @todo: Make it use same exact methods as regular pickup - if( ( destarea == AIM_INVENTORY || destarea == AIM_WORN || panes[dest].in_vehicle() ) && - new_item.is_bucket_nonempty() && - !query_yn( _( "Spill contents of %s?" ), new_item.tname().c_str() ) ) { - break; - } else if( destarea == AIM_INVENTORY ) { - const item &added = g->u.i_add( new_item ); - g->u.moves -= 100; - if( added.is_null() ) { - msg = _( "You don't have enough room for that!" ); - } - } else if( destarea == AIM_WORN ) { - if( !g->u.wear_item( new_item ) ) { - msg = _( "You can't wear any more of that!" ); - } - } else { - advanced_inv_area &p = squares[destarea]; - bool added = true; - if( panes[dest].in_vehicle() ) { - added = p.veh->add_item( p.vstor, new_item ); - } else { - added = !g->m.add_item_or_charges( p.pos, new_item, false ).is_null(); - } - - if( !added ) { - msg = _( "Destination area is full. Remove some items first." ); - } - } - // show a message to why we can't add the item - if( msg != nullptr ) { - popup( msg ); - break; - } - --count; - } - return count; -} - bool advanced_inventory::move_content( item &src_container, item &dest_container ) { if( !src_container.is_container() ) { @@ -2085,31 +1981,31 @@ bool advanced_inventory::move_content( item &src_container, item &dest_container return false; } - item &src = src_container.contents.front(); + item &src_contents = src_container.contents.front(); - if( !src.made_of( LIQUID ) ) { + if( !src_contents.made_of( LIQUID ) ) { popup( _( "You can unload only liquids into target container." ) ); return false; } std::string err; // @todo: Allow buckets here, but require them to be on the ground or wielded - const long amount = dest_container.get_remaining_capacity_for_liquid( src, false, &err ); + const long amount = dest_container.get_remaining_capacity_for_liquid( src_contents, false, &err ); if( !err.empty() ) { popup( err.c_str() ); return false; } if( src_container.is_non_resealable_container() ) { - if( src.charges > amount ) { + if( src_contents.charges > amount ) { popup( _( "You can't partially unload liquids from unsealable container." ) ); return false; } src_container.on_contents_changed(); } - dest_container.fill_with( src, amount ); + dest_container.fill_with( src_contents, amount ); uistate.adv_inv_container_content_type = dest_container.contents.front().typeId(); - if( src.charges <= 0 ) { + if( src_contents.charges <= 0 ) { src_container.contents.clear(); } @@ -2183,7 +2079,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 && ( unitweight * amount > max_weight ) ) { + if( unitweight > 0_gram && ( unitweight * amount > max_weight ) ) { const long weightmax = max_weight / unitweight; if( weightmax <= 0 ) { popup( _( "This is too heavy!" ) ); diff --git a/src/advanced_inv.h b/src/advanced_inv.h index 65335e8c52baa..76c4c8d260811 100644 --- a/src/advanced_inv.h +++ b/src/advanced_inv.h @@ -55,6 +55,8 @@ struct sort_case_insensitive_less : public std::binary_function< char, char, boo } }; +void advanced_inv(); + /** * Cancels ongoing move all action. * @todo: Make this not needed. @@ -99,7 +101,7 @@ struct advanced_inv_area { advanced_inv_area( aim_location id, int hscreenx, int hscreeny, tripoint off, std::string name, std::string shortname ) : id( id ), hscreenx( hscreenx ), hscreeny( hscreeny ), off( off ), name( name ), shortname( shortname ), pos( 0, 0, 0 ), - canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0 ), weight( 0 ), + canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), weight( 0_gram ), max_size( 0 ) { } @@ -210,12 +212,12 @@ struct advanced_inv_listitem { aim_location area, bool from_vehicle ); /** * Create a normal item entry. - * @param items The list of item pointers. + * @param list The list of item pointers. * @param index The index * @param area The source area. Must not be AIM_ALL. * @param from_vehicle Is the item from a vehicle cargo space? */ - advanced_inv_listitem( const std::list &items, int index, + advanced_inv_listitem( const std::list &list, int index, aim_location area, bool from_vehicle ); }; @@ -433,28 +435,12 @@ class advanced_inventory * actual location has been queried). */ bool query_destination( aim_location &def ); - /** - * Add the item to the destination area. - * @param destarea Where add the item to. This must not be AIM_ALL. - * @param new_item The item to add. - * @param count The amount to add items to add. - * @return Returns the amount of items that weren't addable, 0 if everything went fine. - */ - int add_item( aim_location destarea, item &new_item, int count = 1 ); - /** - * Remove the item from source area. Must not be used on items with area - * AIM_ALL or AIM_INVENTORY! - * @param sitem The item reference that should be removed, along with the source area. - * @param count The amount to move of said item. - * @return Returns the amount of items that weren't removable, 0 if everything went fine. - */ - int remove_item( advanced_inv_listitem &sitem, int count = 1 ); /** * Move content of source container into destination container (destination pane = AIM_CONTAINER) - * @param src Source container - * @param dest Destination container + * @param src_container Source container + * @param dest_container Destination container */ - bool move_content( item &src, item &dest ); + bool move_content( item &src_container, item &dest_container ); /** * Setup how many items/charges (if counted by charges) should be moved. * @param destarea Where to move to. This must not be AIM_ALL. diff --git a/src/animation.cpp b/src/animation.cpp index ae3fad8abd325..c64331c983e26 100644 --- a/src/animation.cpp +++ b/src/animation.cpp @@ -109,7 +109,7 @@ tripoint relative_view_pos( const game &g, const tripoint &p ) noexcept p.z - g.ter_view_z }; } -void draw_explosion_curses( game &g, const tripoint ¢er, const int r, nc_color const col ) +void draw_explosion_curses( game &g, const tripoint ¢er, const int r, const nc_color &col ) { if( !is_radius_visible( center, r ) ) { return; @@ -217,7 +217,7 @@ void draw_custom_explosion_curses( game &g, } // namespace #if defined(TILES) -void game::draw_explosion( const tripoint &p, const int r, nc_color const col ) +void game::draw_explosion( const tripoint &p, const int r, const nc_color &col ) { if( test_mode ) { return; // avoid segfault from null tilecontext in tests @@ -247,7 +247,7 @@ void game::draw_explosion( const tripoint &p, const int r, nc_color const col ) } } #else -void game::draw_explosion( const tripoint &p, const int r, nc_color const col ) +void game::draw_explosion( const tripoint &p, const int r, const nc_color &col ) { draw_explosion_curses( *this, p, r, col ); } diff --git a/src/armor_layers.cpp b/src/armor_layers.cpp index 38e1de7950e46..1d4e642ac7596 100644 --- a/src/armor_layers.cpp +++ b/src/armor_layers.cpp @@ -540,13 +540,13 @@ void player::sort_armor() mvwprintz( w_sort_left, drawindex + 1, 0, c_yellow, ">>" ); } - std::string name = tmp_worn[itemindex]->tname(); + std::string worn_armor_name = tmp_worn[itemindex]->tname(); item_penalties const penalties = get_item_penalties( tmp_worn[itemindex], *this, tabindex ); const int offset_x = ( itemindex == selected ) ? 3 : 2; trim_and_print( w_sort_left, drawindex + 1, offset_x, left_w - offset_x - 3, - penalties.color_for_stacking_badness(), name ); + penalties.color_for_stacking_badness(), worn_armor_name ); right_print( w_sort_left, drawindex + 1, 0, c_light_gray, format_volume( tmp_worn[itemindex]->get_storage() ) ); } @@ -698,7 +698,9 @@ void player::sort_armor() } } else if( action == "CHANGE_SIDE" ) { if( leftListIndex < static_cast( tmp_worn.size() ) && tmp_worn[leftListIndex]->is_sided() ) { - if( g->u.query_yn( _( "Swap side for %s?" ), tmp_worn[leftListIndex]->tname().c_str() ) ) { + if( g->u.query_yn( _( "Swap side for %s?" ), + colorize( tmp_worn[leftListIndex]->tname(), + tmp_worn[leftListIndex]->color_in_inventory() ) ) ) { change_side( *tmp_worn[leftListIndex] ); wrefresh( w_sort_armor ); } diff --git a/src/artifact.cpp b/src/artifact.cpp index 84017462d15b1..ba91dd41775e7 100644 --- a/src/artifact.cpp +++ b/src/artifact.cpp @@ -827,13 +827,13 @@ std::string new_artifact() const artifact_armor_mod mod = random_entry_ref( info.available_mods ); if( mod != ARMORMOD_NULL ) { const artifact_armor_form_datum &modinfo = artifact_armor_mod_data[mod]; - if( modinfo.volume >= 0 || def.volume > -modinfo.volume ) { + if( modinfo.volume >= 0_ml || def.volume > -modinfo.volume ) { def.volume += modinfo.volume; } else { def.volume = 250_ml; } - if( modinfo.weight >= 0 || def.weight.value() > std::abs( modinfo.weight.value() ) ) { + if( modinfo.weight >= 0_gram || def.weight.value() > std::abs( modinfo.weight.value() ) ) { def.weight += modinfo.weight; } else { def.weight = 1_gram; @@ -860,10 +860,10 @@ std::string new_artifact() } def.armor->warmth += modinfo.warmth; - if( modinfo.storage > 0 || def.armor->storage > -modinfo.storage ) { + if( modinfo.storage > 0_ml || def.armor->storage > -modinfo.storage ) { def.armor->storage += modinfo.storage; } else { - def.armor->storage = 0; + def.armor->storage = 0_ml; } description << string_format( info.plural ? @@ -1095,9 +1095,9 @@ std::string artifact_name( const std::string &type ) /* Json Loading and saving */ -void load_artifacts( const std::string &artfilename ) +void load_artifacts( const std::string &path ) { - read_from_file_optional_json( artfilename, []( JsonIn & artifact_json ) { + read_from_file_optional_json( path, []( JsonIn & artifact_json ) { artifact_json.start_array(); while( !artifact_json.end_array() ) { JsonObject jo = artifact_json.get_object(); diff --git a/src/artifact.h b/src/artifact.h index 9aaa382ab7b46..33959a294ad1b 100644 --- a/src/artifact.h +++ b/src/artifact.h @@ -109,7 +109,7 @@ std::string new_natural_artifact( artifact_natural_property prop ); std::string architects_cube(); // note: needs to be called by main() before MAPBUFFER.load -void load_artifacts( const std::string &filename ); +void load_artifacts( const std::string &path ); // save artifact definitions to json, path must be the same as for loading. bool save_artifacts( const std::string &path ); diff --git a/src/auto_pickup.cpp b/src/auto_pickup.cpp index 26b6356c9ffeb..e3aad65720e17 100644 --- a/src/auto_pickup.cpp +++ b/src/auto_pickup.cpp @@ -377,7 +377,6 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) void auto_pickup::test_pattern( const int iTab, const int iRow ) { std::vector vMatchingItems; - std::string sItemName; if( vRules[iTab][iRow].sRule.empty() ) { return; @@ -386,7 +385,7 @@ void auto_pickup::test_pattern( const int iTab, const int iRow ) //Loop through all itemfactory items //APU now ignores prefixes, bottled items and suffix combinations still not generated for( const itype *e : item_controller->all() ) { - sItemName = e->nname( 1 ); + const std::string sItemName = e->nname( 1 ); if( !check_special_rule( e->materials, vRules[iTab][iRow].sRule ) && !wildcard_match( sItemName, vRules[iTab][iRow].sRule ) ) { continue; @@ -617,13 +616,13 @@ void auto_pickup::refresh_map_items() const } else { //only re-exclude items from the existing mapping for now //new exclusions will process during pickup attempts - for( auto iter = map_items.begin(); iter != map_items.end(); ++iter ) { - if( !check_special_rule( temp_items[ iter->first ]->materials, elem.sRule ) && - !wildcard_match( iter->first, elem.sRule ) ) { + for( auto &map_item : map_items ) { + if( !check_special_rule( temp_items[ map_item.first ]->materials, elem.sRule ) && + !wildcard_match( map_item.first, elem.sRule ) ) { continue; } - map_items[ iter->first ] = RULE_BLACKLISTED; + map_items[ map_item.first ] = RULE_BLACKLISTED; } } } diff --git a/src/auto_pickup.h b/src/auto_pickup.h index 72ecf1337d23f..7ca847fa070c9 100644 --- a/src/auto_pickup.h +++ b/src/auto_pickup.h @@ -18,7 +18,7 @@ class item; class auto_pickup { private: - void test_pattern( const int iCurrentPage, const int iCurrentLine ); + void test_pattern( const int iTab, const int iRow ); void load( const bool bCharacter ); bool save( const bool bCharacter ); bool load_legacy( const bool bCharacter ); diff --git a/src/ballistics.h b/src/ballistics.h index 086b0a7600f1a..034c56015446f 100644 --- a/src/ballistics.h +++ b/src/ballistics.h @@ -2,8 +2,9 @@ #ifndef BALLISTICS_H #define BALLISTICS_H +#include "dispersion.h" + class Creature; -class dispersion_sources; class vehicle; struct dealt_projectile_attack; struct projectile; @@ -27,8 +28,8 @@ projectile_attack_aim projectile_attack_roll( const dispersion_sources &dispersi * dispersion. * Returns the rolled dispersion of the shot and the actually hit point. */ -dealt_projectile_attack projectile_attack( const projectile &proj, const tripoint &source, - const tripoint &target, const dispersion_sources &dispersion, +dealt_projectile_attack projectile_attack( const projectile &proj_arg, const tripoint &source, + const tripoint &target_arg, const dispersion_sources &dispersion, Creature *origin = nullptr, const vehicle *in_veh = nullptr ); #endif diff --git a/src/basecamp.h b/src/basecamp.h index 17d43f70bb545..628039782354f 100644 --- a/src/basecamp.h +++ b/src/basecamp.h @@ -113,7 +113,7 @@ class basecamp void start_fortifications( std::string &bldg_exp, npc &p ); void start_combat_mission( const std::string &miss, npc &p ); /// Called when a companion starts a chop shop @ref task mission - bool start_garage_chop( npc &p, const std::string dir, const tripoint &omt_tgt ); + bool start_garage_chop( npc &p, const std::string &dir, const tripoint &omt_tgt ); void start_farm_op( npc &p, const std::string &dir, const tripoint &omt_tgt, farm_ops op ); // mission return functions @@ -141,7 +141,7 @@ class basecamp * @param p NPC companion * @param task * @param omt_trg the overmap pos3 of the farm_ops - * @param ops whether to plow, plant, or harvest + * @param op whether to plow, plant, or harvest */ bool farm_return( npc &p, const std::string &task, const tripoint &omt_trg, farm_ops op ); void fortifications_return( npc &p ); diff --git a/src/bionics.cpp b/src/bionics.cpp index b61e31f76c25d..a4c501d008b32 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -33,6 +33,7 @@ #include "vehicle.h" #include "vpart_position.h" #include "weather.h" +#include "weather_gen.h" const skill_id skilll_electronics( "electronics" ); const skill_id skilll_firstaid( "firstaid" ); @@ -76,6 +77,11 @@ const efftype_id effect_weed_high( "weed_high" ); static const trait_id trait_PROF_MED( "PROF_MED" ); static const trait_id trait_PROF_AUTODOC( "PROF_AUTODOC" ); +static const trait_id trait_THRESH_MEDICAL( "THRESH_MEDICAL" ); +static const trait_id trait_MASOCHIST( "MASOCHIST" ); +static const trait_id trait_MASOCHIST_MED( "MASOCHIST_MED" ); +static const trait_id trait_CENOBITE( "CENOBITE" ); + namespace { std::map bionics; @@ -406,7 +412,9 @@ bool player::activate_bionic( int b, bool eff_only ) static const auto volume_per_water_charge = units::from_milliliter( 500 ); if( it->is_corpse() ) { const int avail = it->get_var( "remaining_water", it->volume() / volume_per_water_charge ); - if( avail > 0 && query_yn( _( "Extract water from the %s" ), it->tname().c_str() ) ) { + if( avail > 0 && + query_yn( _( "Extract water from the %s" ), + colorize( it->tname(), it->color_in_inventory() ) ) ) { item water( "water_clean", calendar::turn, avail ); if( g->consume_liquid( water ) ) { extracted = true; @@ -501,7 +509,8 @@ bool player::activate_bionic( int b, bool eff_only ) add_msg_if_player( m_info, _( "Feels Like: %s." ), print_temperature( get_local_windchill( weatherPoint.temperature, weatherPoint.humidity, - windpower ) + player_local_temp ).c_str() ); + windpower / 100 ) + player_local_temp ).c_str() ); + add_msg_if_player( m_info, _( "Wind Direction: From the %s." ), weatherPoint.dirstring ); } else if( bio.id == "bio_remote" ) { int choice = uilist( _( "Perform which function:" ), { _( "Control vehicle" ), _( "RC radio" ) @@ -1213,7 +1222,7 @@ int player::get_used_bionics_slots( const body_part bp ) const std::map player::bionic_installation_issues( const bionic_id &bioid ) { std::map issues; - if( !has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) ) { + if( !get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { return issues; } for( auto &elem : bioid->occupied_bodyparts ) { @@ -1503,14 +1512,14 @@ void finalize_bionics() } } -int bionic::get_quality( const quality_id &q ) const +int bionic::get_quality( const quality_id &quality ) const { const auto &i = info(); if( i.fake_item.empty() ) { return INT_MIN; } - return item( i.fake_item ).get_quality( q ); + return item( i.fake_item ).get_quality( quality ); } void bionic::serialize( JsonOut &json ) const @@ -1543,15 +1552,34 @@ void player::introduce_into_anesthesia( const time_duration &duration, player &i _( "You settle into position, sliding your right wrist into the couch's strap." ), _( " settles into position, sliding their wrist into the couch's strap." ) ); if( anesthetic ) { + //post-threshold medical mutants do not fear operations. + if( has_trait( trait_THRESH_MEDICAL ) ) { + add_msg_if_player( m_mixed, + _( "You feel excited as the operation starts." ) ); + } + add_msg_if_player( m_mixed, _( "You feel a tiny pricking sensation in your right arm, and lose all sensation before abruptly blacking out." ) ); //post-threshold medical mutants with Deadened don't need anesthesia due to their inability to feel pain } else { + //post-threshold medical mutants do not fear operations. + if( has_trait( trait_THRESH_MEDICAL ) ) { + add_msg_if_player( m_mixed, + _( "You feel excited as the Autodoc slices painlessly into you. You enjoy the sight of scalpels slicing you apart, but as operation proceeds you suddenly feel tired and pass out." ) ); + } else { + add_msg_if_player( m_mixed, + _( "You stay very, very still, focusing intently on an interesting rock on the ceiling, as the Autodoc slices painlessly into you. Mercifully, you pass out when the blades reach your line of sight." ) ); + } + } + + //Pain junkies feel sorry about missed pain from operation. + if( has_trait( trait_MASOCHIST ) || has_trait( trait_MASOCHIST_MED ) || + has_trait( trait_CENOBITE ) ) { add_msg_if_player( m_mixed, - _( "You stay very, very still, focusing intently on an interesting rock on the ceiling, as the Autodoc slices painlessly into you. Mercifully, you pass out when the blades reach your line of sight." ) ) - ; + _( "As your conciousness slips away, you feel regret that you won't be able to enjoy the operation." ) ); } + add_effect( effect_narcosis, duration ); fall_asleep( duration ); } diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index a0e05fa09b54a..2bb3d1cf423ea 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -10,6 +10,7 @@ #include "output.h" #include "string_formatter.h" #include "translations.h" +#include "options.h" // '!', '-' and '=' are uses as default bindings in the menu const invlet_wrapper @@ -141,7 +142,7 @@ void draw_description( const catacurses::window &win, const bionic &bio ) ypos += 1 + fold_and_print( win, ypos, 0, width, c_light_blue, bio.id->description ); // @todo: Unhide when enforcing limits - if( g->u.has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) ) { + if( get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { const bool each_bp_on_new_line = ypos + static_cast( num_bp ) + 1 < getmaxy( win ); ypos += fold_and_print( win, ypos, 0, width, c_light_gray, list_occupied_bps( bio.id, _( "This bionic occupies the following body parts:" ), @@ -159,7 +160,7 @@ void draw_connectors( const catacurses::window &win, const int start_y, const in for( const auto &elem : bio_id->occupied_bodyparts ) { pos_and_num.emplace_back( static_cast( elem.first ) + LIST_START_Y, elem.second ); } - if( pos_and_num.empty() || !g->u.has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) ) { + if( pos_and_num.empty() || !get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { return; } @@ -405,7 +406,7 @@ void player::power_bionics() max_width = std::max( max_width, utf8_width( s ) ); } const int pos_x = WIDTH - 2 - max_width; - if( g->u.has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) ) { + if( get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { for( size_t i = 0; i < bps.size(); ++i ) { mvwprintz( wBio, i + list_start_y, pos_x, c_light_gray, bps[i] ); } @@ -435,7 +436,7 @@ void player::power_bionics() *( *current_bionic_list )[i] ).c_str() ); trim_and_print( wBio, list_start_y + i - scroll_position, 2, WIDTH - 3, col, desc ); - if( is_highlighted && menu_mode != EXAMINING && g->u.has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) ) { + if( is_highlighted && menu_mode != EXAMINING && get_option < bool >( "CBM_SLOTS_ENABLED" ) ) { const bionic_id bio_id = ( *current_bionic_list )[i]->id; draw_connectors( wBio, list_start_y + i - scroll_position, utf8_width( desc ) + 3, pos_x - 2, bio_id ); diff --git a/src/bodypart.cpp b/src/bodypart.cpp index 0ac6f9bf37b03..dd85188d65e77 100644 --- a/src/bodypart.cpp +++ b/src/bodypart.cpp @@ -115,7 +115,7 @@ body_part get_body_part_token( const std::string &id ) return legacy_id_to_enum( id ); } -const bodypart_ids &convert_bp( body_part token ) +const bodypart_ids &convert_bp( body_part bp ) { static const std::vector body_parts = { bodypart_ids( "torso" ), @@ -132,12 +132,12 @@ const bodypart_ids &convert_bp( body_part token ) bodypart_ids( "foot_r" ), bodypart_ids( "num_bp" ), }; - if( token > num_bp || token < bp_torso ) { - debugmsg( "Invalid body part token %d", token ); + if( bp > num_bp || bp < bp_torso ) { + debugmsg( "Invalid body part token %d", bp ); return body_parts[ num_bp ]; } - return body_parts[static_cast( token )]; + return body_parts[static_cast( bp )]; } const body_part_struct &get_bp( body_part bp ) diff --git a/src/bonuses.cpp b/src/bonuses.cpp index bc50ea486dfb6..d62dddde2af5d 100644 --- a/src/bonuses.cpp +++ b/src/bonuses.cpp @@ -90,9 +90,7 @@ std::string string_from_scaling_stat( const scaling_stat &s ) return iter != scaling_stat_map_translation.end() ? _( iter->second.c_str() ) : ""; } -bonus_container::bonus_container() -{ -} +bonus_container::bonus_container() = default; void effect_scaling::load( JsonArray &jarr ) { diff --git a/src/bonuses.h b/src/bonuses.h index e323abbe8e980..720ff77fe5222 100644 --- a/src/bonuses.h +++ b/src/bonuses.h @@ -70,12 +70,12 @@ class bonus_container public: bonus_container(); void load( JsonObject &jo ); - void load( JsonArray &jo, bool mult ); + void load( JsonArray &jarr, bool mult ); - float get_flat( const Character &u, affected_stat stat, damage_type type ) const; + float get_flat( const Character &u, affected_stat stat, damage_type dt ) const; float get_flat( const Character &u, affected_stat stat ) const; - float get_mult( const Character &u, affected_stat stat, damage_type type ) const; + float get_mult( const Character &u, affected_stat stat, damage_type dt ) const; float get_mult( const Character &u, affected_stat stat ) const; std::string get_description() const; diff --git a/src/calendar.cpp b/src/calendar.cpp index 02b3d0bf726f5..4d86fcbafcd0d 100644 --- a/src/calendar.cpp +++ b/src/calendar.cpp @@ -405,7 +405,7 @@ std::string to_string( const time_duration &d ) divider = 24_hours; } - if( d % divider != 0 ) { + if( d % divider != 0_turns ) { //~ %1$s - greater units of time (e.g. 3 hours), %2$s - lesser units of time (e.g. 11 minutes). return string_format( _( "%1$s and %2$s" ), to_string_clipped( d ), @@ -414,10 +414,10 @@ std::string to_string( const time_duration &d ) return to_string_clipped( d ); } -std::string to_string_approx( const time_duration &d_, const bool verbose ) +std::string to_string_approx( const time_duration &dur, const bool verbose ) { - time_duration d = d_; - const auto make_result = [verbose]( const time_duration d, const char *verbose_str, + time_duration d = dur; + const auto make_result = [verbose]( const time_duration & d, const char *verbose_str, const char *short_str ) { return string_format( verbose ? verbose_str : short_str, to_string_clipped( d ) ); }; @@ -433,7 +433,7 @@ std::string to_string_approx( const time_duration &d_, const bool verbose ) vicinity = 5_minutes; } // Minutes and seconds can be estimated precisely. - if( divider != 0 ) { + if( divider != 0_turns ) { const time_duration remainder = d % divider; if( remainder >= divider - vicinity ) { diff --git a/src/calendar.h b/src/calendar.h index 8156d45802cf8..db08f60a8bf66 100644 --- a/src/calendar.h +++ b/src/calendar.h @@ -251,29 +251,29 @@ class calendar }; template -constexpr T to_turns( const time_duration duration ); +constexpr T to_turns( const time_duration &duration ); template -constexpr T to_minutes( const time_duration duration ); +constexpr T to_minutes( const time_duration &duration ); template -constexpr T to_hours( const time_duration duration ); +constexpr T to_hours( const time_duration &duration ); template -constexpr T to_days( const time_duration duration ); +constexpr T to_days( const time_duration &duration ); template -constexpr T to_weeks( const time_duration duration ); +constexpr T to_weeks( const time_duration &duration ); template -constexpr T to_moves( const time_duration duration ); +constexpr T to_moves( const time_duration &duration ); template -constexpr T to_turn( const time_point point ); +constexpr T to_turn( const time_point &point ); template -constexpr time_duration operator/( const time_duration lhs, const T rhs ); +constexpr time_duration operator/( const time_duration &lhs, const T rhs ); template inline time_duration &operator/=( time_duration &lhs, const T rhs ); template -constexpr time_duration operator*( const time_duration lhs, const T rhs ); +constexpr time_duration operator*( const time_duration &lhs, const T rhs ); template -constexpr time_duration operator*( const T lhs, const time_duration rhs ); +constexpr time_duration operator*( const T lhs, const time_duration &rhs ); template inline time_duration &operator*=( time_duration &lhs, const T rhs ); @@ -356,71 +356,71 @@ class time_duration */ /**@{*/ template - friend constexpr T to_turns( const time_duration duration ) { + friend constexpr T to_turns( const time_duration &duration ) { return duration.turns_; } template - friend constexpr T to_minutes( const time_duration duration ) { + friend constexpr T to_minutes( const time_duration &duration ) { return static_cast( duration.turns_ ) / static_cast( 10 ); } template - friend constexpr T to_hours( const time_duration duration ) { + friend constexpr T to_hours( const time_duration &duration ) { return static_cast( duration.turns_ ) / static_cast( 10 * 60 ); } template - friend constexpr T to_days( const time_duration duration ) { + friend constexpr T to_days( const time_duration &duration ) { return static_cast( duration.turns_ ) / static_cast( 10 * 60 * 24 ); } template - friend constexpr T to_weeks( const time_duration duration ) { + friend constexpr T to_weeks( const time_duration &duration ) { return static_cast( duration.turns_ ) / static_cast( 10 * 60 * 24 * 7 ); } template - friend constexpr T to_moves( const time_duration duration ) { + friend constexpr T to_moves( const time_duration &duration ) { return to_turns( duration ) * 100; } /**@{*/ - constexpr bool operator<( const time_duration rhs ) const { + constexpr bool operator<( const time_duration &rhs ) const { return turns_ < rhs.turns_; } - constexpr bool operator<=( const time_duration rhs ) const { + constexpr bool operator<=( const time_duration &rhs ) const { return turns_ <= rhs.turns_; } - constexpr bool operator>( const time_duration rhs ) const { + constexpr bool operator>( const time_duration &rhs ) const { return turns_ > rhs.turns_; } - constexpr bool operator>=( const time_duration rhs ) const { + constexpr bool operator>=( const time_duration &rhs ) const { return turns_ >= rhs.turns_; } - constexpr bool operator==( const time_duration rhs ) const { + constexpr bool operator==( const time_duration &rhs ) const { return turns_ == rhs.turns_; } - constexpr bool operator!=( const time_duration rhs ) const { + constexpr bool operator!=( const time_duration &rhs ) const { return turns_ != rhs.turns_; } - friend constexpr time_duration operator-( const time_duration duration ) { + friend constexpr time_duration operator-( const time_duration &duration ) { return time_duration( -duration.turns_ ); } - friend constexpr time_duration operator+( const time_duration lhs, const time_duration rhs ) { + friend constexpr time_duration operator+( const time_duration &lhs, const time_duration &rhs ) { return time_duration( lhs.turns_ + rhs.turns_ ); } - friend time_duration &operator+=( time_duration &lhs, const time_duration rhs ) { + friend time_duration &operator+=( time_duration &lhs, const time_duration &rhs ) { return lhs = time_duration( lhs.turns_ + rhs.turns_ ); } - friend constexpr time_duration operator-( const time_duration lhs, const time_duration rhs ) { + friend constexpr time_duration operator-( const time_duration &lhs, const time_duration &rhs ) { return time_duration( lhs.turns_ - rhs.turns_ ); } - friend time_duration &operator-=( time_duration &lhs, const time_duration rhs ) { + friend time_duration &operator-=( time_duration &lhs, const time_duration &rhs ) { return lhs = time_duration( lhs.turns_ - rhs.turns_ ); } // Using double here because it has the highest precision. Callers can cast it to whatever they want. - friend double operator/( const time_duration lhs, const time_duration rhs ) { + friend double operator/( const time_duration &lhs, const time_duration &rhs ) { return static_cast( lhs.turns_ ) / static_cast( rhs.turns_ ); } template - friend constexpr time_duration operator/( const time_duration lhs, const T rhs ) { + friend constexpr time_duration operator/( const time_duration &lhs, const T rhs ) { return time_duration( lhs.turns_ / rhs ); } template @@ -428,11 +428,11 @@ class time_duration return lhs = time_duration( lhs.turns_ / rhs ); } template - friend constexpr time_duration operator*( const time_duration lhs, const T rhs ) { + friend constexpr time_duration operator*( const time_duration &lhs, const T rhs ) { return time_duration( lhs.turns_ * rhs ); } template - friend constexpr time_duration operator*( const T lhs, const time_duration rhs ) { + friend constexpr time_duration operator*( const T lhs, const time_duration &rhs ) { return time_duration( lhs * rhs.turns_ ); } template @@ -520,7 +520,7 @@ std::string to_string_clipped( const time_duration &d, clipped_align align = cli * Returns approximate duration. * @param verbose If true, 'less than' and 'more than' will be printed instead of '<' and '>' respectively. */ -std::string to_string_approx( const time_duration &d, bool verbose = true ); +std::string to_string_approx( const time_duration &dur, bool verbose = true ); /** * A point in the game time. Use `calendar::turn` to get the current point. @@ -558,55 +558,55 @@ class time_point //@todo: try to get rid of this template - friend constexpr T to_turn( const time_point point ) { + friend constexpr T to_turn( const time_point &point ) { return point.turn_; } //@todo: implement minutes_of_hour and so on and use it. }; -constexpr inline bool operator<( const time_point lhs, const time_point rhs ) +constexpr inline bool operator<( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) < to_turn( rhs ); } -constexpr inline bool operator<=( const time_point lhs, const time_point rhs ) +constexpr inline bool operator<=( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) <= to_turn( rhs ); } -constexpr inline bool operator>( const time_point lhs, const time_point rhs ) +constexpr inline bool operator>( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) > to_turn( rhs ); } -constexpr inline bool operator>=( const time_point lhs, const time_point rhs ) +constexpr inline bool operator>=( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) >= to_turn( rhs ); } -constexpr inline bool operator==( const time_point lhs, const time_point rhs ) +constexpr inline bool operator==( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) == to_turn( rhs ); } -constexpr inline bool operator!=( const time_point lhs, const time_point rhs ) +constexpr inline bool operator!=( const time_point &lhs, const time_point &rhs ) { return to_turn( lhs ) != to_turn( rhs ); } -constexpr inline time_duration operator-( const time_point lhs, const time_point rhs ) +constexpr inline time_duration operator-( const time_point &lhs, const time_point &rhs ) { return time_duration::from_turns( to_turn( lhs ) - to_turn( rhs ) ); } -constexpr inline time_point operator+( const time_point lhs, const time_duration rhs ) +constexpr inline time_point operator+( const time_point &lhs, const time_duration &rhs ) { return time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); } -time_point inline &operator+=( time_point &lhs, const time_duration rhs ) +time_point inline &operator+=( time_point &lhs, const time_duration &rhs ) { return lhs = time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); } -constexpr inline time_point operator-( const time_point lhs, const time_duration rhs ) +constexpr inline time_point operator-( const time_point &lhs, const time_duration &rhs ) { return time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); } -time_point inline &operator-=( time_point &lhs, const time_duration rhs ) +time_point inline &operator-=( time_point &lhs, const time_duration &rhs ) { return lhs = time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); } diff --git a/src/cata_tiles.cpp b/src/cata_tiles.cpp index e7035b01aebb1..e44ac3d6a5e30 100644 --- a/src/cata_tiles.cpp +++ b/src/cata_tiles.cpp @@ -15,6 +15,7 @@ #include "debug.h" #include "field.h" #include "game.h" +#include "input.h" #include "item.h" #include "item_factory.h" #include "itype.h" @@ -26,7 +27,6 @@ #include "monstergenerator.h" #include "mtype.h" #include "npc.h" -#include "options.h" #include "output.h" #include "overlay_ordering.h" #include "path_info.h" @@ -59,8 +59,8 @@ static const std::array multitile_keys = {{ } }; -extern int fontwidth, fontheight; -extern bool tile_iso; +extern int fontwidth; +extern int fontheight; SDL_Color cursesColorToSDL( const nc_color &color ); ///@throws std::exception upon errors. @@ -96,11 +96,6 @@ float get_animation_phase( int phase_length_ms ) return std::fmod( SDL_GetTicks(), phase_length_ms ) / phase_length_ms; } -int divide_rounded_up( const int v, const int div ) -{ - return ( v / div ) + ( v % div == 0 ? 0 : 1 ); -} - std::string get_ascii_tile_id( const uint32_t sym, const int FG, const int BG ) { return std::string( { 'A', 'S', 'C', 'I', 'I', '_', static_cast( sym ), static_cast( FG ), static_cast( BG ) } ); @@ -432,7 +427,7 @@ void tileset_loader::load_tileset( std::string img_path ) if( R >= 0 && R <= 255 && G >= 0 && G <= 255 && B >= 0 && B <= 255 ) { const Uint32 key = SDL_MapRGB( tile_atlas->format, 0, 0, 0 ); throwErrorIf( SDL_SetColorKey( tile_atlas.get(), SDL_TRUE, key ) != 0, "SDL_SetColorKey failed" ); - throwErrorIf( SDL_SetSurfaceRLE( tile_atlas.get(), true ), "SDL_SetSurfaceRLE failed" ); + throwErrorIf( SDL_SetSurfaceRLE( tile_atlas.get(), 1 ), "SDL_SetSurfaceRLE failed" ); } SDL_RendererInfo info; @@ -483,8 +478,8 @@ void tileset_loader::load_tileset( std::string img_path ) const rect_range output_range( max_tile_xcount * sprite_width, max_tile_ycount * sprite_height, - divide_rounded_up( tile_atlas->w, info.max_texture_width ), - divide_rounded_up( tile_atlas->h, info.max_texture_height ) ); + divide_round_up( tile_atlas->w, info.max_texture_width ), + divide_round_up( tile_atlas->h, info.max_texture_height ) ); const int expected_tilecount = ( tile_atlas->w / sprite_width ) * ( tile_atlas->h / sprite_height ); extend_vector_by( ts.tile_values, expected_tilecount ); @@ -1022,8 +1017,7 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, "SDL_RenderSetClipRect failed" ); //fill render area with black to prevent artifacts where no new pixels are drawn - SetRenderDrawColor( renderer, 0, 0, 0, 255 ); - RenderFillRect( renderer, &clipRect ); + handle_draw_rect( renderer, clipRect, 0, 0, 0 ); } int posx = center.x; @@ -1045,8 +1039,8 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, op_x = destx; op_y = desty; // Rounding up to include incomplete tiles at the bottom/right edges - screentile_width = divide_rounded_up( width, tile_width ); - screentile_height = divide_rounded_up( height, tile_height ); + screentile_width = divide_round_up( width, tile_width ); + screentile_height = divide_round_up( height, tile_height ); const int min_col = 0; const int max_col = sx; @@ -1337,7 +1331,7 @@ void cata_tiles::process_minimap_cache_updates() rectangle.x = p.x * minimap_tile_size.x; rectangle.y = p.y * minimap_tile_size.y; - RenderFillRect( renderer, &rectangle ); + handle_draw_rect( renderer, rectangle, c.r, c.g, c.b ); } } mcp.second.update_list.clear(); @@ -1419,9 +1413,9 @@ void cata_tiles::init_minimap( int destx, int desty, int width, int height ) previous_submap_view = tripoint_min; //allocate the textures for the texture pool - for( int i = 0; i < static_cast( tex_pool.texture_pool.size() ); i++ ) { - tex_pool.texture_pool[i] = create_minimap_cache_texture( minimap_tile_size.x * SEEX, - minimap_tile_size.y * SEEY ); + for( auto &i : tex_pool.texture_pool ) { + i = create_minimap_cache_texture( minimap_tile_size.x * SEEX, + minimap_tile_size.y * SEEY ); } } @@ -1629,7 +1623,7 @@ void cata_tiles::get_window_tile_counts( const int width, const int height, int static_cast( height ) / tile_height ); } -bool cata_tiles::draw_from_id_string( std::string id, tripoint pos, int subtile, int rota, +bool cata_tiles::draw_from_id_string( std::string id, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles ) { int nullint = 0; @@ -1638,7 +1632,7 @@ bool cata_tiles::draw_from_id_string( std::string id, tripoint pos, int subtile, } bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, - const std::string &subcategory, tripoint pos, + const std::string &subcategory, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles ) { @@ -1647,7 +1641,7 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, ll, apply_night_vision_goggles, nullint ); } -bool cata_tiles::draw_from_id_string( std::string id, tripoint pos, int subtile, int rota, +bool cata_tiles::draw_from_id_string( std::string id, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles, int &height_3d ) { return cata_tiles::draw_from_id_string( std::move( id ), C_NONE, empty_string, pos, subtile, rota, @@ -1734,6 +1728,7 @@ bool cata_tiles::find_overlay_looks_like( const bool male, const std::string &ov std::string looks_like; std::string over_type; + if( overlay.substr( 0, 5 ) == "worn_" ) { looks_like = overlay.substr( 5 ); over_type = "worn_"; @@ -1755,6 +1750,10 @@ bool cata_tiles::find_overlay_looks_like( const bool male, const std::string &ov exists = true; break; } + if( looks_like.substr( 0, 16 ) == "mutation_active_" ) { + looks_like = "mutation_" + looks_like.substr( 16 ); + continue; + } if( !item::type_is_defined( looks_like ) ) { break; } @@ -1765,7 +1764,7 @@ bool cata_tiles::find_overlay_looks_like( const bool male, const std::string &ov } bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, - const std::string &subcategory, tripoint pos, + const std::string &subcategory, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles, int &height_3d ) { @@ -1835,7 +1834,12 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, col = t.color; } } else if( category == C_ITEM ) { - const auto tmp = item( id, 0 ); + item tmp; + if( 0 == id.compare( 0, 7, "corpse_" ) ) { + tmp = item( "corpse", 0 ); + } else { + tmp = item( id, 0 ); + } sym = tmp.symbol().empty() ? ' ' : tmp.symbol().front(); col = tmp.color(); } @@ -1885,6 +1889,12 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, const bool isBold = col.is_bold(); const int FG = colorpair.FG + ( isBold ? 8 : 0 ); std::string generic_id = get_ascii_tile_id( sym, FG, -1 ); + + // do not rotate fallback tiles! + if( sym != LINE_XOXO_C && sym != LINE_OXOX_C ) { + rota = 0; + } + if( tileset_ptr->find_tile_type( generic_id ) ) { return draw_from_id_string( generic_id, pos, subtile, rota, ll, apply_night_vision_goggles ); @@ -1936,12 +1946,10 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, category, subcategory, pos, -1, rota, ll, apply_night_vision_goggles, height_3d ); } } - // make sure we aren't going to rotate the tile if it shouldn't be rotated - if( !display_tile.rotates ) { + if( !display_tile.rotates && !( category == C_NONE ) && !( category == C_MONSTER ) ) { rota = 0; } - // translate from player-relative to screen relative tile position const point screen_pos = player_to_screen( pos.x, pos.y ); @@ -1962,7 +1970,9 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, { // new scope for variable declarations const optional_vpart_position vp = g->m.veh_at( pos ); - seed = vp->mount().x + vp->mount().y * 65536; + if( vp ) { + seed = vp->mount().x + vp->mount().y * 65536; + } } break; case C_ITEM: @@ -2127,6 +2137,9 @@ bool cata_tiles::draw_sprite_at( const tile_type &tile, #endif ret = sprite_tex->render_copy_ex( renderer, &destination, 90, NULL, SDL_FLIP_NONE ); break; + case 4: // flip horizontaly + 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, NULL, SDL_FLIP_NONE ); @@ -2240,8 +2253,7 @@ bool cata_tiles::draw_terrain_below( const tripoint &p, lit_level /*ll*/, int &/ if( tile_iso ) { belowRect.y += tile_height / 8; } - SetRenderDrawColor( renderer, tercol.r, tercol.g, tercol.b, 255 ); - RenderFillRect( renderer, &belowRect ); + handle_draw_rect( renderer, belowRect, tercol.r, tercol.g, tercol.b ); return true; } @@ -2267,7 +2279,9 @@ bool cata_tiles::draw_terrain( const tripoint &p, lit_level ll, int &height_3d ) } const std::string &tname = t.obj().id.str(); - g->u.memorize_tile( g->m.getabs( p ), tname, subtile, rotation ); + if( !g->m.check_and_set_seen_cache( p ) ) { + g->u.memorize_tile( g->m.getabs( p ), tname, subtile, rotation ); + } return draw_from_id_string( tname, C_TERRAIN, empty_string, p, subtile, rotation, ll, nv_goggles_activated, height_3d ); @@ -2283,8 +2297,25 @@ bool cata_tiles::draw_terrain_from_memory( const tripoint &p, int &height_3d ) return false; } - return draw_from_id_string( t.tile, C_TERRAIN, empty_string, p, t.subtile, t.rotation, LL_MEMORIZED, - nv_goggles_activated, height_3d ); + TILE_CATEGORY category = C_NONE; + + switch( t.tile[0] ) { + case 't': + category = C_TERRAIN; + break; + case 'f': + category = C_FURNITURE; + break; + case 'v': + category = C_VEHICLE_PART; + break; + default: + debugmsg( "Could not infer category for memorized tile %s", t.tile ); + break; + } + + return draw_from_id_string( t.tile, category, empty_string, p, t.subtile, t.rotation, + LL_MEMORIZED, nv_goggles_activated, height_3d ); } bool cata_tiles::draw_furniture( const tripoint &p, lit_level ll, int &height_3d ) @@ -2311,7 +2342,9 @@ bool cata_tiles::draw_furniture( const tripoint &p, lit_level ll, int &height_3d // get the name of this furniture piece const std::string &f_name = f_id.obj().id.str(); - g->u.memorize_tile( g->m.getabs( p ), f_name, subtile, rotation ); + if( !g->m.check_and_set_seen_cache( p ) ) { + g->u.memorize_tile( g->m.getabs( p ), f_name, subtile, rotation ); + } bool ret = draw_from_id_string( f_name, C_FURNITURE, empty_string, p, subtile, rotation, ll, nv_goggles_activated, height_3d ); @@ -2339,7 +2372,9 @@ bool cata_tiles::draw_trap( const tripoint &p, lit_level ll, int &height_3d ) int rotation = 0; get_tile_values( tr.loadid, neighborhood, subtile, rotation ); - g->u.memorize_tile( g->m.getabs( p ), tr.id.str(), subtile, rotation ); + if( !g->m.check_and_set_seen_cache( p ) ) { + g->u.memorize_tile( g->m.getabs( p ), tr.id.str(), subtile, rotation ); + } return draw_from_id_string( tr.id.str(), C_TRAP, empty_string, p, subtile, rotation, ll, nv_goggles_activated, height_3d ); @@ -2481,7 +2516,9 @@ bool cata_tiles::draw_vpart( const tripoint &p, lit_level ll, int &height_3d ) bool draw_highlight = cargopart && !veh->get_items( cargopart->part_index() ).empty(); if( !veh->forward_velocity() ) { - g->u.memorize_tile( g->m.getabs( p ), vpid, subtile, veh_dir ); + if( !g->m.check_and_set_seen_cache( p ) ) { + g->u.memorize_tile( g->m.getabs( p ), vpid, subtile, veh_dir ); + } } bool ret = draw_from_id_string( vpid, C_VEHICLE_PART, subcategory, p, subtile, veh_dir, @@ -2542,8 +2579,14 @@ bool cata_tiles::draw_entity( const Creature &critter, const tripoint &p, lit_le ent_subcategory = m->type->species.begin()->str(); } const int subtile = corner; - return draw_from_id_string( ent_name.str(), ent_category, ent_subcategory, p, subtile, - 0, ll, false, height_3d ); + // depending on the toggle flip sprite left or right + if( m->facing == FD_LEFT ) { + return draw_from_id_string( ent_name.str(), ent_category, ent_subcategory, p, subtile, + 4, ll, false, height_3d ); + } else if( m->facing == FD_RIGHT ) { + return draw_from_id_string( ent_name.str(), ent_category, ent_subcategory, p, subtile, + 0, ll, false, height_3d ); + } } const player *pl = dynamic_cast( &critter ); if( pl != nullptr ) { @@ -2566,7 +2609,13 @@ void cata_tiles::draw_entity_with_overlays( const player &pl, const tripoint &p, // first draw the character itself(i guess this means a tileset that // takes this seriously needs a naked sprite) int prev_height_3d = height_3d; - draw_from_id_string( ent_name, C_NONE, "", p, corner, 0, ll, false, height_3d ); + + // depending on the toggle flip sprite left or right + if( pl.facing == FD_LEFT ) { + draw_from_id_string( ent_name, C_NONE, "", p, corner, 4, ll, false, height_3d ); + } else if( pl.facing == FD_RIGHT ) { + draw_from_id_string( ent_name, C_NONE, "", p, corner, 0, ll, false, height_3d ); + } // next up, draw all the overlays std::vector overlays = pl.get_overlay_ids(); @@ -2574,7 +2623,11 @@ void cata_tiles::draw_entity_with_overlays( const player &pl, const tripoint &p, std::string draw_id = overlay; if( find_overlay_looks_like( pl.male, overlay, draw_id ) ) { int overlay_height_3d = prev_height_3d; - draw_from_id_string( draw_id, C_NONE, "", p, corner, 0, ll, false, overlay_height_3d ); + if( pl.facing == FD_LEFT ) { + draw_from_id_string( draw_id, C_NONE, "", p, corner, 4, ll, false, overlay_height_3d ); + } else if( pl.facing == FD_RIGHT ) { + draw_from_id_string( draw_id, C_NONE, "", p, corner, 0, ll, false, overlay_height_3d ); + } // the tallest height-having overlay is the one that counts height_3d = std::max( height_3d, overlay_height_3d ); } @@ -2868,18 +2921,17 @@ void cata_tiles::draw_cursor() void cata_tiles::draw_weather_frame() { - for( auto weather_iterator = anim_weather.vdrops.begin(); - weather_iterator != anim_weather.vdrops.end(); ++weather_iterator ) { + for( auto &vdrop : anim_weather.vdrops ) { // TODO: Z-level awareness if weather ever happens on anything but z-level 0. int x = 0; int y = 0; if( tile_iso ) { - x = weather_iterator->first; - y = weather_iterator->second; + x = vdrop.first; + y = vdrop.second; } else { // currently in ASCII screen coordinates - x = weather_iterator->first + o_x; - y = weather_iterator->second + o_y; + x = vdrop.first + o_x; + y = vdrop.second + o_y; } draw_from_id_string( weather_name, C_WEATHER, empty_string, {x, y, 0}, 0, 0, LL_LIT, nv_goggles_activated ); @@ -2913,8 +2965,8 @@ void cata_tiles::draw_sct_frame( std::multimap &overlay_s player_to_screen( iDX + direction_offset, iDY ), formatted_text( sText, FG, direction ) ); } else { - for( std::string::iterator it = sText.begin(); it != sText.end(); ++it ) { - const std::string generic_id = get_ascii_tile_id( *it, FG, -1 ); + for( auto &it : sText ) { + const std::string generic_id = get_ascii_tile_id( it, FG, -1 ); if( tileset_ptr->find_tile_type( generic_id ) ) { draw_from_id_string( generic_id, C_NONE, empty_string, @@ -3183,4 +3235,51 @@ void cata_tiles::tile_loading_report( const arraytype &array, int array_length, return v->id; }, label, prefix ); } + +inline void cata_tiles::handle_draw_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, + Uint32 r, Uint32 g, Uint32 b ) +{ + if( alt_rect_tex_enabled ) { + SetTextureColorMod( alt_rect_tex, r, g, b ); + RenderCopy( renderer, alt_rect_tex, NULL, &rect ); + } else { + SetRenderDrawColor( renderer, r, g, b, 255 ); + RenderFillRect( renderer, &rect ); + } +} + +std::vector cata_tiles::build_renderer_list() +{ + std::vector renderer_names; + std::vector default_renderer_names = { +#if (defined TILES) +# if (defined _WIN32 || defined WINDOWS) + { "direct3d", translate_marker( "direct3d" ) }, +# endif + { "software", translate_marker( "software" ) }, + { "opengl", translate_marker( "opengl" ) }, + { "opengles2", translate_marker( "opengles2" ) }, +#else + { "software", translate_marker( "software" ) } +#endif + + }; + int numRenderDrivers = SDL_GetNumRenderDrivers(); + DebugLog( D_INFO, DC_ALL ) << "Number of render drivers on your system: " << numRenderDrivers; + for( int ii = 0; ii < numRenderDrivers; ii++ ) { + SDL_RendererInfo ri; + SDL_GetRenderDriverInfo( ii, &ri ); + DebugLog( D_INFO, DC_ALL ) << "Render driver: " << ii << "/" << ri.name; + // First default renderer name we will put first on the list. We can use it later as default value. + if( ri.name == default_renderer_names.front().first ) { + renderer_names.emplace( renderer_names.begin(), default_renderer_names.front() ); + } else { + renderer_names.emplace_back( ri.name, ri.name ); + } + + } + + return renderer_names.empty() ? default_renderer_names : renderer_names; +} + #endif // SDL_TILES diff --git a/src/cata_tiles.h b/src/cata_tiles.h index 6e04ecd256694..6844f0365862a 100644 --- a/src/cata_tiles.h +++ b/src/cata_tiles.h @@ -5,14 +5,15 @@ #include #include #include -#include #include +#include #include #include "sdl_wrappers.h" #include "animation.h" #include "lightmap.h" #include "line.h" +#include "options.h" #include "game_constants.h" #include "weather.h" #include "enums.h" @@ -92,6 +93,11 @@ class texture } }; +extern SDL_Texture_Ptr alt_rect_tex; +extern bool alt_rect_tex_enabled; +extern void draw_alt_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, + Uint32 r, Uint32 g, Uint32 b ); + struct pixel { int r; int g; @@ -405,15 +411,15 @@ class cata_tiles const tile_type *find_tile_looks_like( std::string &id, TILE_CATEGORY category ); bool find_overlay_looks_like( const bool male, const std::string &overlay, std::string &draw_id ); - bool draw_from_id_string( std::string id, tripoint pos, int subtile, int rota, lit_level ll, + bool draw_from_id_string( std::string id, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles ); bool draw_from_id_string( std::string id, TILE_CATEGORY category, - const std::string &subcategory, tripoint pos, int subtile, int rota, + const std::string &subcategory, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles ); - bool draw_from_id_string( std::string id, tripoint pos, int subtile, int rota, lit_level ll, + bool draw_from_id_string( std::string id, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles, int &height_3d ); bool draw_from_id_string( std::string id, TILE_CATEGORY category, - const std::string &subcategory, tripoint pos, int subtile, int rota, + const std::string &subcategory, const tripoint &pos, int subtile, int rota, lit_level ll, bool apply_night_vision_goggles, int &height_3d ); bool draw_sprite_at( const tile_type &tile, const weighted_int_list> &svlist, int x, int y, unsigned int loc_rand, bool rota_fg, int rota, lit_level ll, @@ -525,6 +531,7 @@ class cata_tiles } void do_tile_loading_report(); point player_to_screen( int x, int y ) const; + static std::vector build_renderer_list(); protected: template void tile_loading_report( const maptype &tiletypemap, const std::string &label, @@ -640,6 +647,9 @@ class cata_tiles //place all submaps on this texture before rendering to screen //replaces clipping rectangle usage while SDL still has a flipped y-coordinate bug SDL_Texture_Ptr main_minimap_tex; + // SDL_RenderFillRect replacement handler + void handle_draw_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, + Uint32 r, Uint32 g, Uint32 b ); }; #endif diff --git a/src/cata_utility.cpp b/src/cata_utility.cpp index e0d33ae8c4240..dc2ae5b722d87 100644 --- a/src/cata_utility.cpp +++ b/src/cata_utility.cpp @@ -228,7 +228,7 @@ double convert_weight( const units::mass &weight ) double convert_volume( int volume ) { - return convert_volume( volume, NULL ); + return convert_volume( volume, nullptr ); } double convert_volume( int volume, int *out_scale ) @@ -264,7 +264,7 @@ double temp_to_kelvin( double fahrenheit ) double clamp_to_width( double value, int width, int &scale ) { - return clamp_to_width( value, width, scale, NULL ); + return clamp_to_width( value, width, scale, nullptr ); } double clamp_to_width( double value, int width, int &scale, bool *out_truncated ) diff --git a/src/cata_utility.h b/src/cata_utility.h index 4f6cac30ebcc6..171c5b276d95f 100644 --- a/src/cata_utility.h +++ b/src/cata_utility.h @@ -8,16 +8,11 @@ #include #include +#include "units.h" + class item; class Creature; struct tripoint; -namespace units -{ -template -class quantity; -class mass_in_gram_tag; -using mass = quantity; -} class JsonIn; class JsonOut; diff --git a/src/catacharset.cpp b/src/catacharset.cpp index 7ab0ba5d718f9..b540b9f2135a7 100644 --- a/src/catacharset.cpp +++ b/src/catacharset.cpp @@ -222,7 +222,7 @@ std::string utf8_truncate( std::string s, size_t length ) return s; } - int last_pos = cursorx_to_position( s.c_str(), length, NULL, -1 ); + int last_pos = cursorx_to_position( s.c_str(), length, nullptr, -1 ); return s.substr( 0, last_pos ); } @@ -359,7 +359,7 @@ static void strip_trailing_nulls( std::string &str ) std::wstring utf8_to_wstr( const std::string &str ) { #if defined(_WIN32) || defined(WINDOWS) - int sz = MultiByteToWideChar( CP_UTF8, 0, str.c_str(), -1, NULL, 0 ) + 1; + int sz = MultiByteToWideChar( CP_UTF8, 0, str.c_str(), -1, nullptr, 0 ) + 1; std::wstring wstr( sz, '\0' ); MultiByteToWideChar( CP_UTF8, 0, str.c_str(), -1, &wstr[0], sz ); strip_trailing_nulls( wstr ); diff --git a/src/catacharset.h b/src/catacharset.h index db3232420c52f..b7d54e81d7512 100644 --- a/src/catacharset.h +++ b/src/catacharset.h @@ -15,7 +15,7 @@ uint32_t UTF8_getch( const char **src, int *srclen ); // from wcwidth.c, return "cell" width of a Unicode char int mk_wcwidth( uint32_t ucs ); // convert cursorx value to byte position -int cursorx_to_position( const char *line, int cursorx, int *prevppos = NULL, int maxlen = -1 ); +int cursorx_to_position( const char *line, int cursorx, int *prevpos = NULL, int maxlen = -1 ); int utf8_width( const char *s, const bool ignore_tags = false ); int utf8_width( const std::string &str, const bool ignore_tags = false ); int utf8_width( const utf8_wrapper &str, const bool ignore_tags = false ); diff --git a/src/catalua.cpp b/src/catalua.cpp index c193f7d3178cd..a4af4b89bdd0a 100644 --- a/src/catalua.cpp +++ b/src/catalua.cpp @@ -7,7 +7,6 @@ #include "game.h" #include "item.h" #include "item_factory.h" -#include "line.h" #include "map.h" #include "mapgen.h" #include "mapgen_functions.h" @@ -20,30 +19,35 @@ #include "player.h" #include "pldata.h" #include "requirements.h" -#include "rng.h" #include "string_formatter.h" #include "translations.h" #include "weather_gen.h" #ifdef LUA -#include "activity_type.h" -#include "bionics.h" -#include "field.h" +// Many pragmas here for headers which IWYU doesn't realise we need because +// they are used only inside src/lua/catabindings.cpp (the autogenerated file) + +#include "activity_type.h" // IWYU pragma: keep +#include "bionics.h" // IWYU pragma: keep +#include "field.h" // IWYU pragma: keep #include "filesystem.h" #include "gun_mode.h" #include "itype.h" +#include "line.h" // IWYU pragma: keep #include "mapdata.h" #include "mongroup.h" -#include "morale_types.h" +#include "morale_types.h" // IWYU pragma: keep #include "mtype.h" -#include "mutation.h" -#include "npc.h" +#include "mutation.h" // IWYU pragma: keep +#include "npc.h" // IWYU pragma: keep #include "optional.h" #include "overmap.h" -#include "overmap_ui.h" +#include "overmap_ui.h" // IWYU pragma: keep +#include "requirements.h" // IWYU pragma: keep +#include "rng.h" // IWYU pragma: keep #include "string_input_popup.h" -#include "trap.h" +#include "trap.h" // IWYU pragma: keep #include "ui.h" extern "C" { @@ -1064,7 +1068,7 @@ monster *create_monster( const mtype_id &mon_type, const tripoint &p ) { monster new_monster( mon_type, p ); if( !g->add_zombie( new_monster ) ) { - return NULL; + return nullptr; } else { return g->critter_at( p ); } @@ -1311,7 +1315,7 @@ static const struct luaL_Reg global_funcs [] = { {"dofile", game_dofile}, {"get_monster_types", game_get_monster_types}, {"get_item_groups", game_get_item_groups}, - {NULL, NULL} + {nullptr, nullptr} }; // Lua initialization. @@ -1342,7 +1346,7 @@ void game::init_lua() for( auto x = global_funcs; x->name != nullptr; ++x ) { lib_funcs.push_back( *x ); } - lib_funcs.push_back( luaL_Reg { NULL, NULL } ); + lib_funcs.push_back( luaL_Reg { nullptr, nullptr } ); luaL_newmetatable( lua_state, "game" ); lua_pushvalue( lua_state, -1 ); luaL_setfuncs( lua_state, &lib_funcs.front(), 0 ); diff --git a/src/cellular_automata.h b/src/cellular_automata.h new file mode 100644 index 0000000000000..4f11bd409078b --- /dev/null +++ b/src/cellular_automata.h @@ -0,0 +1,110 @@ +#pragma once +#ifndef CELLULAR_AUTOMATA_H +#define CELLULAR_AUTOMATA_H + +#include + +#include "rng.h" + +namespace CellularAutomata +{ +/** +* Calculates the number of alive neighbors by looking at the Moore neighborhood (3x3 grid of cells). +* @param cells The cells to look at. Assumed to be of a consistent width/height equal to the specified +* values. +* @param width The width of the cells. Specified up front to avoid checked it each time. +* @param width The height of the cells. Specified up front to avoid checked it each time. +* @param x +* @param y +* @returns The number of neighbors that are alive, a value between 0 and 8. +*/ +inline int neighbor_count( const std::vector> &cells, const int width, + const int height, + const int x, const int y ) +{ + int neighbors = 0; + for( int ni = -1; ni <= 1; ni++ ) { + for( int nj = -1; nj <= 1; nj++ ) { + const int nx = x + ni; + const int ny = y + nj; + + // These neighbors are outside the bounds, so they can't contribute. + if( nx < 0 || nx >= width || ny < 0 || ny >= height ) { + continue; + } + + neighbors += cells[nx][ny]; + } + } + // Because we included ourself in the loop above, subtract ourselves back out. + neighbors -= cells[x][y]; + + return neighbors; +} + +/** +* Generate a cellular automaton using the provided parameters. +* Basic rules are as follows: +* - alive% of cells start alive +* - Run for specified number of iterations +* - Dead cells with > birth_limit neighbors become alive +* - Alive cells with > statis_limit neighbors stay alive +* - The rest die +* @param width Dimensions of the grid. +* @param height Dimensions of the grid. +* @param alive Number between 0 and 100, used to roll an x_in_y check for the cell to start alive. +* @param iterations Number of iterations to run the cellular automaton. +* @param birth_limit Dead cells with > birth_limit neighbors become alive. +* @param stasis_limit Alive cells with > statis_limit neighbors stay alive +* @returns The width x height grid of cells. Each cell is a 0 if dead or a 1 if alive. +*/ +inline std::vector> generate_cellular_automaton( const int width, const int height, + const int alive, const int iterations, const int birth_limit, const int stasis_limit ) +{ + std::vector> current( width, std::vector( height, 0 ) ); + std::vector> next( width, std::vector( height, 0 ) ); + + // Initialize our initial set of cells. + for( int i = 0; i < width; i++ ) { + for( int j = 0; j < height; j++ ) { + current[i][j] = x_in_y( alive, 100 ); + } + } + + for( int iteration = 0; iteration < iterations; iteration++ ) { + for( int i = 0; i < width; i++ ) { + for( int j = 0; j < height; j++ ) { + // Skip the edges--no need to complicate this with more complex neighbor + // calculations, just keep them constant. + if( i == 0 || i == width - 1 || j == 0 || j == height - 1 ) { + next[i][j] = 0; + continue; + } + + // Count our neighors. + const int neighbors = neighbor_count( current, width, height, i, j ); + + // Dead and > birth_limit neighbors, so become alive. + if( ( current[i][j] == 0 ) && ( neighbors > birth_limit ) ) { + next[i][j] = 1; + } + // Alive and > statis_limit neighbors, so stay alive. + else if( ( current[i][j] == 1 ) && ( neighbors > stasis_limit ) ) { + next[i][j] = 1; + } + // Else, die. + else { + next[i][j] = 0; + } + } + } + + // Swap our current and next vectors and repeat. + std::swap( current, next ); + } + + return current; +} +} + +#endif diff --git a/src/character.cpp b/src/character.cpp index 6b532ada46d28..500ce45982804 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -731,12 +731,12 @@ long int Character::i_add_to_container( const item &it, const bool unloading ) return charges; } -item &Character::i_add( item it ) +item &Character::i_add( item it, bool should_stack ) { itype_id item_type_id = it.typeId(); last_item = item_type_id; - if( it.is_food() || it.is_ammo() || it.is_gun() || it.is_armor() || + if( it.is_food() || it.is_ammo() || it.is_gun() || it.is_armor() || it.is_book() || it.is_tool() || it.is_melee() || it.is_food_container() ) { inv.unsort(); } @@ -752,7 +752,7 @@ item &Character::i_add( item it ) } } - auto &item_in_inv = inv.add_item( it, keep_invlet ); + auto &item_in_inv = inv.add_item( it, keep_invlet, true, should_stack ); item_in_inv.on_pickup( *this ); return item_in_inv; } @@ -1024,7 +1024,7 @@ units::mass Character::weight_carried_with_tweaks( const item_tweaks &tweaks ) c const std::map empty; const auto &without = tweaks.without_items ? tweaks.without_items->get() : empty; - units::mass ret = 0; + units::mass ret = 0_gram; if( !without.count( &weapon ) ) { ret += weapon.weight(); } @@ -1088,15 +1088,15 @@ units::mass Character::weight_capacity() const if( has_bionic( bionic_id( "bio_weight" ) ) ) { ret += 20_kilogram; } - if( ret < 0 ) { - ret = 0; + if( ret < 0_gram ) { + ret = 0_gram; } return ret; } units::volume Character::volume_capacity() const { - return volume_capacity_reduced_by( 0 ); + return volume_capacity_reduced_by( 0_ml ); } units::volume Character::volume_capacity_reduced_by( @@ -1501,8 +1501,8 @@ std::array Character::calc_encumbrance( const item &ne units::mass Character::get_weight() const { - units::mass ret = 0; - units::mass wornWeight = std::accumulate( worn.begin(), worn.end(), units::mass( 0 ), + units::mass ret = 0_gram; + units::mass wornWeight = std::accumulate( worn.begin(), worn.end(), 0_gram, []( units::mass sum, const item &itm ) { return sum + itm.weight(); } ); @@ -2109,7 +2109,7 @@ hp_part Character::body_window( const std::string &menu_header, max_bp_name_len = std::max( max_bp_name_len, utf8_width( e.name ) ); } - const auto color_name = []( const nc_color col ) { + const auto color_name = []( const nc_color &col ) { return get_all_colors().get_name( col ); }; @@ -2430,8 +2430,7 @@ bool Character::is_immune_field( const field_id fid ) const return has_trait( trait_id( "WEB_WALKER" ) ); case fd_fire: case fd_flame_burst: - return has_trait( trait_id( "M_SKIN2" ) ) || has_active_bionic( bionic_id( "bio_heatsink" ) ) || - is_wearing( "rm13_armor_on" ); + return has_active_bionic( bionic_id( "bio_heatsink" ) ) || is_wearing( "rm13_armor_on" ); default: // Suppress warning break; @@ -2672,7 +2671,7 @@ body_part Character::get_random_body_part( bool main ) const return random_body_part( main ); } -std::vector Character::get_all_body_parts( bool main ) const +std::vector Character::get_all_body_parts( bool only_main ) const { // @todo: Remove broken parts, parts removed by mutations etc. static const std::vector all_bps = {{ @@ -2701,7 +2700,7 @@ std::vector Character::get_all_body_parts( bool main ) const } }; - return main ? main_bps : all_bps; + return only_main ? main_bps : all_bps; } std::string Character::extended_description() const diff --git a/src/character.h b/src/character.h index 25097d6c555c4..c2bf6f59a5f8e 100644 --- a/src/character.h +++ b/src/character.h @@ -63,6 +63,13 @@ enum fatigue_levels { EXHAUSTED = 575, MASSIVE_FATIGUE = 1000 }; +const std::unordered_map fatigue_level_strs = { { + { "TIRED", TIRED }, + { "DEAD_TIRED", DEAD_TIRED }, + { "EXHAUSTED", EXHAUSTED }, + { "MASSIVE_FATIGUE", MASSIVE_FATIGUE } + } +}; // Sleep deprivation is defined in minutes, and although most calculations scale linearly, // maluses are bestowed only upon reaching the tiers defined below. @@ -148,7 +155,7 @@ class Character : public Creature, public visitable field_id bloodType() const override; field_id gibType() const override; bool is_warm() const override; - virtual const std::string &symbol() const override; + const std::string &symbol() const override; // Character stats // TODO: Make those protected @@ -270,7 +277,7 @@ class Character : public Creature, public visitable /** Picks a random body part, adjusting for mutations, broken body parts etc. */ body_part get_random_body_part( bool main ) const override; /** Returns all body parts this character has, in order they should be displayed. */ - std::vector get_all_body_parts( bool main = false ) const override; + std::vector get_all_body_parts( bool only_main = false ) const override; /** Recalculates encumbrance cache. */ void reset_encumbrance(); @@ -418,7 +425,7 @@ class Character : public Creature, public visitable // @todo: Cache this, it's kinda expensive to compute resistances mutation_armor( body_part bp ) const; float mutation_armor( body_part bp, damage_type dt ) const; - float mutation_armor( body_part bp, const damage_unit &dt ) const; + float mutation_armor( body_part bp, const damage_unit &du ) const; // --------------- Bionic Stuff --------------- /** Returns true if the player has the entered bionic id */ @@ -488,7 +495,7 @@ class Character : public Creature, public visitable * @return Remaining charges which could not be stored in a container. */ long int i_add_to_container( const item &it, const bool unloading ); - item &i_add( item it ); + item &i_add( item it, bool should_stack = true ); /** * Try to pour the given liquid into the given container/vehicle. The transferred charges are @@ -698,7 +705,7 @@ class Character : public Creature, public visitable /** Color's character's tile's background */ nc_color symbol_color() const override; - virtual std::string extended_description() const override; + std::string extended_description() const override; // In newcharacter.cpp void empty_skills(); @@ -746,6 +753,8 @@ class Character : public Creature, public visitable Character &operator=( const Character & ) = delete; Character &operator=( Character && ); struct trait_data { + /** Whether the mutation is activated. */ + bool powered = false; /** Key to select the mutation in the UI. */ char key = ' '; /** @@ -754,8 +763,6 @@ class Character : public Creature, public visitable * is reset to @ref mutation_branch::cooldown. */ int charge = 0; - /** Whether the mutation is activated. */ - bool powered = false; void serialize( JsonOut &json ) const; void deserialize( JsonIn &jsin ); }; diff --git a/src/clzones.cpp b/src/clzones.cpp index bbf605bf3d20f..d39104ffbcde8 100644 --- a/src/clzones.cpp +++ b/src/clzones.cpp @@ -157,7 +157,7 @@ plot_options::query_seed_result plot_options::query_seed() if( seed_index > 0 && seed_index < static_cast( seed_entries.size() ) ) { const auto &seed_entry = seed_entries[seed_index]; - const auto new_seed = std::get<0>( seed_entry ); + const auto &new_seed = std::get<0>( seed_entry ); std::string new_mark; item it = item( itype_id( new_seed ) ); @@ -308,7 +308,7 @@ bool zone_data::set_type() return false; } -void zone_data::set_position( const std::pair position, +void zone_data::set_position( const std::pair &position, const bool manual ) { if( is_vehicle && manual ) { @@ -321,15 +321,15 @@ void zone_data::set_position( const std::pair position, zone_manager::get_manager().cache_data(); } -void zone_data::set_enabled( const bool _enabled ) +void zone_data::set_enabled( const bool enabled_arg ) { zone_manager::get_manager().zone_edited( *this ); - enabled = _enabled; + enabled = enabled_arg; } -void zone_data::set_is_vehicle( const bool _is_vehicle ) +void zone_data::set_is_vehicle( const bool is_vehicle_arg ) { - is_vehicle = _is_vehicle; + is_vehicle = is_vehicle_arg; } tripoint zone_data::get_center_point() const @@ -436,15 +436,19 @@ bool zone_manager::has_near( const zone_type_id &type, const tripoint &where ) c { const auto &point_set = get_point_set( type ); for( auto &point : point_set ) { - if( square_dist( point, where ) <= MAX_DISTANCE ) { - return true; + if( point.z == where.z ) { + if( square_dist( point, where ) <= MAX_DISTANCE ) { + return true; + } } } const auto &vzone_set = get_vzone_set( type ); for( auto &point : vzone_set ) { - if( square_dist( point, where ) <= MAX_DISTANCE ) { - return true; + if( point.z == where.z ) { + if( square_dist( point, where ) <= MAX_DISTANCE ) { + return true; + } } } @@ -458,15 +462,19 @@ std::unordered_set zone_manager::get_near( const zone_type_id &type, auto near_point_set = std::unordered_set(); for( auto &point : point_set ) { - if( square_dist( point, where ) <= MAX_DISTANCE ) { - near_point_set.insert( point ); + if( point.z == where.z ) { + if( square_dist( point, where ) <= MAX_DISTANCE ) { + near_point_set.insert( point ); + } } } const auto &vzone_set = get_vzone_set( type ); for( auto &point : vzone_set ) { - if( square_dist( point, where ) <= MAX_DISTANCE ) { - near_point_set.insert( point ); + if( point.z == where.z ) { + if( square_dist( point, where ) <= MAX_DISTANCE ) { + near_point_set.insert( point ); + } } } @@ -690,6 +698,45 @@ void zone_manager::swap( zone_data &a, zone_data &b ) std::swap( a, b ); } +void zone_manager::start_sort( const std::vector &src_sorted ) +{ + for( auto &src : src_sorted ) { + num_processed[src] = 0; + } +} + +void zone_manager::end_sort() +{ + num_processed.clear(); +} + +bool zone_manager::is_sorting() const +{ + return !num_processed.empty(); +} + +int zone_manager::get_num_processed( const tripoint &src ) const +{ + auto it = num_processed.find( src ); + if( it != num_processed.end() ) { + return it->second; + } + return 0; +} + +void zone_manager::increment_num_processed( const tripoint &src ) +{ + num_processed[src]++; +} + +void zone_manager::decrement_num_processed( const tripoint &src ) +{ + num_processed[src]--; + if( num_processed[src] < 0 ) { + num_processed[src] = 0; + } +} + std::vector zone_manager::get_zones() { auto zones = std::vector(); @@ -733,9 +780,10 @@ void zone_manager::deserialize( JsonIn &jsin ) { jsin.read( zones ); for( auto it = zones.begin(); it != zones.end(); ++it ) { - if( !has_type( it->get_type() ) ) { + const zone_type_id zone_type = it->get_type(); + if( !has_type( zone_type ) ) { zones.erase( it ); - debugmsg( "Invalid zone type: %s", it->get_type().c_str() ); + debugmsg( "Invalid zone type: %s", zone_type.c_str() ); } } } @@ -822,8 +870,8 @@ void zone_manager::zone_edited( zone_data &zone ) { if( zone.get_is_vehicle() ) { //Check if this zone has already been stored - for( auto it = changed_vzones.begin(); it != changed_vzones.end(); ++it ) { - if( &zone == it->second ) { + for( auto &changed_vzone : changed_vzones ) { + if( &zone == changed_vzone.second ) { return; } } diff --git a/src/clzones.h b/src/clzones.h index d7be07331f0fc..73c3b6d6fb312 100644 --- a/src/clzones.h +++ b/src/clzones.h @@ -167,9 +167,9 @@ class zone_data bool set_name(); // returns true if name is changed bool set_type(); // returns true if type is changed - void set_position( const std::pair position, const bool manual = true ); - void set_enabled( const bool enabled ); - void set_is_vehicle( const bool is_vehicle ); + void set_position( const std::pair &position, const bool manual = true ); + void set_enabled( const bool enabled_arg ); + void set_is_vehicle( const bool is_vehicle_arg ); std::string get_name() const { return name; @@ -234,6 +234,9 @@ class zone_manager std::unordered_set get_point_set( const zone_type_id &type ) const; std::unordered_set get_vzone_set( const zone_type_id &type ) const; + //Cache number of items already checked on each source tile when sorting + std::unordered_map num_processed; + public: zone_manager(); ~zone_manager() = default; @@ -274,6 +277,13 @@ class zone_manager cata::optional query_type() const; void swap( zone_data &a, zone_data &b ); + void start_sort( const std::vector &src_sorted ); + void end_sort(); + bool is_sorting() const; + int get_num_processed( const tripoint &src ) const; + void increment_num_processed( const tripoint &src ); + void decrement_num_processed( const tripoint &src ); + // 'direct' access to zone_manager::zones, giving direct access was nono std::vector get_zones(); std::vector get_zones() const; diff --git a/src/color.cpp b/src/color.cpp index ab0308371c148..400404a4efd4c 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -44,9 +44,7 @@ void color_manager::finalize() } }; - for( size_t i = 0; i < color_array.size(); i++ ) { - color_struct &entry = color_array[i]; - + for( auto &entry : color_array ) { entry.invert = get( entry.invert_id ); if( !entry.name_custom.empty() ) { @@ -67,8 +65,7 @@ void color_manager::finalize() } // Highlights in a next run, to make sure custom colors are set - for( size_t i = 0; i < color_array.size(); i++ ) { - color_struct &entry = color_array[i]; + for( auto &entry : color_array ) { const std::string my_name = get_name( entry.color ); const std::string root = my_name.substr( 2, my_name.length() - 2 ); const size_t underscore_num = std::count( root.begin(), root.end(), '_' ) - @@ -107,7 +104,7 @@ std::string color_manager::id_to_name( const color_id id ) const return color_array[id].name; } -color_id color_manager::color_to_id( const nc_color color ) const +color_id color_manager::color_to_id( const nc_color &color ) const { auto iter = inverted_map.find( color ); if( iter != inverted_map.end() ) { @@ -115,10 +112,10 @@ color_id color_manager::color_to_id( const nc_color color ) const } // Optimally this shouldn't happen, but allow for now - for( size_t i = 0; i < color_array.size(); i++ ) { - if( color_array[i].color == color ) { + for( const auto &entry : color_array ) { + if( entry.color == color ) { debugmsg( "Couldn't find color %d", color.operator int() ); - return color_array[i].col_id; + return entry.col_id; } } @@ -126,28 +123,28 @@ color_id color_manager::color_to_id( const nc_color color ) const return def_c_unset; } -nc_color color_manager::get( const color_id col ) const +nc_color color_manager::get( const color_id id ) const { - if( col >= num_colors ) { - debugmsg( "Invalid color index: %d. Color array size: %ld", col, + if( id >= num_colors ) { + debugmsg( "Invalid color index: %d. Color array size: %ld", id, static_cast( color_array.size() ) ); return nc_color(); } - auto &entry = color_array[col]; + auto &entry = color_array[id]; return entry.custom > 0 ? entry.custom : entry.color; } -std::string color_manager::get_name( const nc_color color ) const +std::string color_manager::get_name( const nc_color &color ) const { color_id id = color_to_id( color ); return id_to_name( id ); } -nc_color color_manager::get_invert( const nc_color col ) const +nc_color color_manager::get_invert( const nc_color &color ) const { - const color_id id = color_to_id( col ); + const color_id id = color_to_id( color ); auto &entry = color_array[id]; return entry.invert_custom > 0 ? entry.invert_custom : entry.invert; @@ -162,7 +159,7 @@ nc_color color_manager::get_random() const } void color_manager::add_color( const color_id col, const std::string &name, - const nc_color color_pair, const color_id inv_id ) + const nc_color &color_pair, const color_id inv_id ) { color_struct st = {color_pair, nc_color(), nc_color(), nc_color(), {{nc_color(), nc_color(), nc_color(), nc_color(), nc_color(), nc_color(), nc_color()}}, col, inv_id, name, "", "" }; color_array[col] = st; @@ -170,7 +167,7 @@ void color_manager::add_color( const color_id col, const std::string &name, name_map[name] = col; } -nc_color color_manager::get_highlight( const nc_color color, const hl_enum bg ) const +nc_color color_manager::get_highlight( const nc_color &color, const hl_enum bg ) const { const color_id id = color_to_id( color ); const color_struct &st = color_array[id]; @@ -484,49 +481,49 @@ void init_colors() }; } -nc_color invert_color( nc_color c ) +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; } -nc_color hilite( nc_color c ) +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; } -nc_color red_background( nc_color c ) +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; } -nc_color white_background( nc_color c ) +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; } -nc_color green_background( nc_color c ) +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; } -nc_color yellow_background( nc_color c ) +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; } -nc_color magenta_background( nc_color c ) +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; } -nc_color cyan_background( nc_color c ) +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; @@ -552,13 +549,13 @@ nc_color color_from_string( const std::string &color ) } const std::pair pSearch[2] = { { "light_", "lt" }, { "dark_", "dk" } }; - for( int i = 0; i < 2; ++i ) { + for( const auto &i : pSearch ) { size_t pos = 0; - while( ( pos = new_color.find( pSearch[i].second, pos ) ) != std::string::npos ) { - new_color.replace( pos, pSearch[i].second.length(), pSearch[i].first ); - pos += pSearch[i].first.length(); + while( ( pos = new_color.find( i.second, pos ) ) != std::string::npos ) { + new_color.replace( pos, i.second.length(), i.first ); + pos += i.first.length(); DebugLog( D_WARNING, DC_ALL ) << "Deprecated foreground color suffix was used: (" << - pSearch[i].second << ") in (" << color << "). Please update mod that uses that."; + i.second << ") in (" << color << "). Please update mod that uses that."; } } @@ -573,7 +570,7 @@ nc_color color_from_string( const std::string &color ) /** * The reverse of color_from_string. */ -std::string string_from_color( const nc_color color ) +std::string string_from_color( const nc_color &color ) { std::string sColor = all_colors.get_name( color ); @@ -597,13 +594,13 @@ nc_color bgcolor_from_string( const std::string &color ) std::string new_color = "i_" + color; const std::pair pSearch[2] = { { "light_", "lt" }, { "dark_", "dk" } }; - for( int i = 0; i < 2; ++i ) { + for( const auto &i : pSearch ) { size_t pos = 0; - while( ( pos = new_color.find( pSearch[i].second, pos ) ) != std::string::npos ) { - new_color.replace( pos, pSearch[i].second.length(), pSearch[i].first ); - pos += pSearch[i].first.length(); + while( ( pos = new_color.find( i.second, pos ) ) != std::string::npos ) { + new_color.replace( pos, i.second.length(), i.first ); + pos += i.first.length(); DebugLog( D_WARNING, DC_ALL ) << "Deprecated background color suffix was used: (" << - pSearch[i].second << ") in (" << color << "). Please update mod that uses that."; + i.second << ") in (" << color << "). Please update mod that uses that."; } } @@ -615,28 +612,31 @@ nc_color bgcolor_from_string( const std::string &color ) return i_white; } -nc_color get_color_from_tag( const std::string &s, const nc_color base_color ) +color_tag_parse_result get_color_from_tag( const std::string &s ) { - if( s.empty() || s[0] != '<' || s.substr( 0, 8 ) == "" ) { - return base_color; + if( s.empty() || s[0] != '<' ) { + return { color_tag_parse_result::non_color_tag, {} }; + } + if( s.substr( 0, 8 ) == "" ) { + return { color_tag_parse_result::close_color_tag, {} }; } if( s.substr( 0, 7 ) != "' ); if( tag_close == std::string::npos ) { - return base_color; + return { color_tag_parse_result::non_color_tag, {} }; } std::string color_name = s.substr( 7, tag_close - 7 ); - return color_from_string( color_name ); + return { color_tag_parse_result::open_color_tag, color_from_string( color_name ) }; } -std::string get_tag_from_color( const nc_color color ) +std::string get_tag_from_color( const nc_color &color ) { return ""; } -std::string colorize( const std::string &text, const nc_color color ) +std::string colorize( const std::string &text, const nc_color &color ) { return get_tag_from_color( color ) + text + ""; } diff --git a/src/color.h b/src/color.h index 304ba6b6b6ad6..9df45377632f2 100644 --- a/src/color.h +++ b/src/color.h @@ -389,7 +389,7 @@ class color_manager { private: void add_color( const color_id col, const std::string &name, - const nc_color color_pair, const color_id inv_enum ); + const nc_color &color_pair, const color_id inv_id ); void clear(); void finalize(); // Caches colors properly @@ -419,14 +419,14 @@ class color_manager nc_color get( const color_id id ) const; - nc_color get_invert( const nc_color color ) const; - nc_color get_highlight( const nc_color color, const hl_enum bg ) const; + nc_color get_invert( const nc_color &color ) const; + nc_color get_highlight( const nc_color &color, const hl_enum bg ) const; nc_color get_random() const; - color_id color_to_id( const nc_color color ) const; + color_id color_to_id( const nc_color &color ) const; color_id name_to_id( const std::string &name ) const; - std::string get_name( const nc_color color ) const; + std::string get_name( const nc_color &color ) const; std::string id_to_name( const color_id id ) const; nc_color name_to_color( const std::string &name ) const; @@ -468,24 +468,34 @@ struct note_color { std::string name; }; +struct color_tag_parse_result { + enum tag_type { + open_color_tag, + close_color_tag, + non_color_tag, + }; + tag_type type; + nc_color color; +}; + extern std::unordered_map color_by_string_map; extern std::unordered_map color_shortcuts; -nc_color hilite( nc_color c ); -nc_color invert_color( nc_color c ); -nc_color red_background( nc_color c ); -nc_color white_background( nc_color c ); -nc_color green_background( nc_color c ); -nc_color yellow_background( nc_color c ); -nc_color magenta_background( nc_color c ); -nc_color cyan_background( nc_color c ); +nc_color hilite( const nc_color &c ); +nc_color invert_color( const nc_color &c ); +nc_color red_background( const nc_color &c ); +nc_color white_background( const nc_color &c ); +nc_color green_background( const nc_color &c ); +nc_color yellow_background( const nc_color &c ); +nc_color magenta_background( const nc_color &c ); +nc_color cyan_background( const nc_color &c ); nc_color color_from_string( const std::string &color ); -std::string string_from_color( const nc_color color ); +std::string string_from_color( const nc_color &color ); nc_color bgcolor_from_string( const std::string &color ); -nc_color get_color_from_tag( const std::string &s, const nc_color base_color ); -std::string get_tag_from_color( const nc_color color ); -std::string colorize( const std::string &text, const nc_color color ); +color_tag_parse_result get_color_from_tag( const std::string &s ); +std::string get_tag_from_color( const nc_color &color ); +std::string colorize( const std::string &text, const nc_color &color ); nc_color get_note_color( const std::string ¬e_id ); std::list> get_note_color_names(); diff --git a/src/computer.cpp b/src/computer.cpp index 80272b937818a..e26d181dd0950 100644 --- a/src/computer.cpp +++ b/src/computer.cpp @@ -6,6 +6,7 @@ #include "coordinate_conversions.h" #include "debug.h" +#include "effect.h" #include "event.h" #include "field.h" #include "game.h" @@ -42,7 +43,7 @@ const species_id ZOMBIE( "ZOMBIE" ); const species_id HUMAN( "HUMAN" ); const efftype_id effect_amigara( "amigara" ); -const efftype_id effect_stemcell_treatment( "stemcell_treatment" ); +const efftype_id effect_mending( "mending" ); int alerts = 0; @@ -92,9 +93,9 @@ void computer::add_option( const computer_option &opt ) } void computer::add_option( const std::string &opt_name, computer_action action, - int Security ) + int security ) { - add_option( computer_option( opt_name, action, Security ) ); + add_option( computer_option( opt_name, action, security ) ); } void computer::add_failure( const computer_failure &failure ) @@ -402,13 +403,12 @@ void computer::activate_function( computer_action action ) bool found_item = false; item sewage( "sewage", calendar::turn ); auto candidates = g->m.i_at( x1, y1 ); - for( auto candidate = candidates.begin(); - candidate != candidates.end(); ++candidate ) { - long capa = candidate->get_remaining_capacity_for_liquid( sewage ); + for( auto &candidate : candidates ) { + long capa = candidate.get_remaining_capacity_for_liquid( sewage ); if( capa <= 0 ) { continue; } - item &elem = *candidate; + item &elem = candidate; capa = std::min( sewage.charges, capa ); if( elem.contents.empty() ) { elem.put_in( sewage ); @@ -812,13 +812,39 @@ INITIATING STANDARD TREMOR TEST..." ) ); remove_option( COMPACT_AMIGARA_START ); break; - case COMPACT_STEMCELL_TREATMENT: - g->u.moves -= 70; - g->u.add_effect( effect_stemcell_treatment, 12_minutes ); - print_line( _( "The machine injects your eyeball with the solution \n\ -of pureed bone & LSD." ) ); + case COMPACT_BONESETTING: + for( int i = 0; i < num_hp_parts; i++ ) { + const bool broken = g->u.get_hp( static_cast( i ) ) <= 0; + body_part part = g->u.hp_to_bp( static_cast( i ) ); + effect &existing_effect = g->u.get_effect( effect_mending, part ); + if( !broken || ( !existing_effect.is_null() && + existing_effect.get_duration() < + existing_effect.get_max_duration() - 5_days ) ) { + continue; + } + g->u.moves -= 500; + print_line( _( "The machine rapidly sets and splints your broken %s." ), + body_part_name( part ).c_str() ); + // TODO: fail here if unable to perform the action, i.e. can't wear more, trait mismatch. + if( !g->u.worn_with_flag( "SPLINT", part ) ) { + item splint; + if( i == hp_arm_l || i == hp_arm_r ) { + splint = item( "arm_splint", 0 ); + } else if( i == hp_leg_l || i == hp_leg_r ) { + splint = item( "leg_splint", 0 ); + } + item &equipped_splint = g->u.i_add( splint ); + cata::optional::iterator> worn_item = + g->u.wear( equipped_splint, false ); + if( worn_item && !g->u.worn_with_flag( "SPLINT", part ) ) { + g->u.change_side( **worn_item, false ); + } + } + g->u.add_effect( effect_mending, 0, part, true ); + effect &mending_effect = g->u.get_effect( effect_mending, part ); + mending_effect.set_duration( mending_effect.get_max_duration() - 5_days ); + } query_any( _( "Press any key..." ) ); - g->u.mod_pain( rng( 40, 90 ) ); break; case COMPACT_COMPLETE_DISABLE_EXTERNAL_POWER: @@ -1487,10 +1513,10 @@ TO WRITE US A LETTER PLEASE SEND IT TO...\n" ), rl_dist( g->u.pos(), mission_tar } template -bool computer::query_bool( const char *const mes, Args &&... args ) +bool computer::query_bool( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); - print_line( "%s (Y/N/Q)", text.c_str() ); + const std::string formatted_text = string_format( text, std::forward( args )... ); + print_line( "%s (Y/N/Q)", formatted_text.c_str() ); char ret; #ifdef __ANDROID__ input_context ctxt( "COMPUTER_YESNO" ); @@ -1507,19 +1533,19 @@ bool computer::query_bool( const char *const mes, Args &&... args ) } template -bool computer::query_any( const char *const mes, Args &&... args ) +bool computer::query_any( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); - print_line( "%s", text.c_str() ); + const std::string formatted_text = string_format( text, std::forward( args )... ); + print_line( "%s", formatted_text .c_str() ); inp_mngr.wait_for_any_key(); return true; } template -char computer::query_ynq( const char *const mes, Args &&... args ) +char computer::query_ynq( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); - print_line( "%s (Y/N/Q)", text.c_str() ); + const std::string formatted_text = string_format( text, std::forward( args )... ); + print_line( "%s (Y/N/Q)", formatted_text.c_str() ); char ret; #ifdef __ANDROID__ input_context ctxt( "COMPUTER_YESNO" ); @@ -1536,30 +1562,30 @@ char computer::query_ynq( const char *const mes, Args &&... args ) } template -void computer::print_line( const char *const mes, Args &&... args ) +void computer::print_line( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); - wprintz( w_terminal, c_green, text ); + const std::string formatted_text = string_format( text, std::forward( args )... ); + wprintz( w_terminal, c_green, formatted_text ); print_newline(); wrefresh( w_terminal ); } template -void computer::print_error( const char *const mes, Args &&... args ) +void computer::print_error( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); - wprintz( w_terminal, c_red, text ); + const std::string formatted_text = string_format( text, std::forward( args )... ); + wprintz( w_terminal, c_red, formatted_text ); print_newline(); wrefresh( w_terminal ); } template -void computer::print_text( const char *const mes, Args &&... args ) +void computer::print_text( const char *const text, Args &&... args ) { - const std::string text = string_format( mes, std::forward( args )... ); + const std::string formated_text = string_format( text, std::forward( args )... ); int y = getcury( w_terminal ); int w = getmaxx( w_terminal ) - 2; - fold_and_print( w_terminal, y, 1, w, c_green, text ); + fold_and_print( w_terminal, y, 1, w, c_green, formated_text ); print_newline(); print_newline(); wrefresh( w_terminal ); @@ -1648,7 +1674,7 @@ computer_action computer_action_from_string( const std::string &str ) { "blood_anal", COMPACT_BLOOD_ANAL }, { "data_anal", COMPACT_DATA_ANAL }, { "disconnect", COMPACT_DISCONNECT }, - { "stemcell_treatment", COMPACT_STEMCELL_TREATMENT }, + { "bonesetting", COMPACT_BONESETTING }, { "emerg_mess", COMPACT_EMERG_MESS }, { "emerg_ref_center", COMPACT_EMERG_REF_CENTER }, { "tower_unresponsive", COMPACT_TOWER_UNRESPONSIVE }, diff --git a/src/computer.h b/src/computer.h index 683b9f83684ba..75ecafc054fe7 100644 --- a/src/computer.h +++ b/src/computer.h @@ -42,7 +42,7 @@ enum computer_action { COMPACT_BLOOD_ANAL, COMPACT_DATA_ANAL, COMPACT_DISCONNECT, - COMPACT_STEMCELL_TREATMENT, + COMPACT_BONESETTING, COMPACT_EMERG_MESS, COMPACT_EMERG_REF_CENTER, //Points to the refugee center COMPACT_TOWER_UNRESPONSIVE, @@ -106,7 +106,7 @@ struct computer_failure { class computer { public: - computer( const std::string &name, int Security ); + computer( const std::string &new_name, int new_security ); computer( const computer &rhs ); ~computer(); diff --git a/src/construction.cpp b/src/construction.cpp index 4df7e3bf8dd8d..05d48c521e3a9 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -80,7 +80,7 @@ void failure_deconstruct( const tripoint & ); static bool can_construct( const std::string &desc ); static bool can_construct( const construction &con ); static bool player_can_build( player &p, const inventory &inv, const construction &con ); -static bool player_can_build( player &p, const inventory &pinv, const std::string &desc ); +static bool player_can_build( player &p, const inventory &inv, const std::string &desc ); static void place_construction( const std::string &desc ); std::vector constructions; @@ -683,12 +683,12 @@ void construction_menu() g->refresh_all(); } -bool player_can_build( player &p, const inventory &pinv, const std::string &desc ) +bool player_can_build( player &p, const inventory &inv, const std::string &desc ) { // check all with the same desc to see if player can build any std::vector cons = constructions_by_desc( desc ); for( auto &con : cons ) { - if( player_can_build( p, pinv, *con ) ) { + if( player_can_build( p, inv, *con ) ) { return true; } } @@ -703,7 +703,7 @@ bool character_has_skill_for( const Character &c, const construction &con ) } ); } -bool player_can_build( player &p, const inventory &pinv, const construction &con ) +bool player_can_build( player &p, const inventory &inv, const construction &con ) { if( p.has_trait( trait_DEBUG_HS ) ) { return true; @@ -712,7 +712,7 @@ bool player_can_build( player &p, const inventory &pinv, const construction &con if( !character_has_skill_for( p, con ) ) { return false; } - return con.requirements->can_make_with_inventory( pinv ); + return con.requirements->can_make_with_inventory( inv ); } bool can_construct( const std::string &desc ) diff --git a/src/construction.h b/src/construction.h index e1b47aa850912..e3935ad01ca57 100644 --- a/src/construction.h +++ b/src/construction.h @@ -63,7 +63,7 @@ struct construction { //! Set all constructions to take the specified time. void standardize_construction_times( int time ); -void load_construction( JsonObject &jsobj ); +void load_construction( JsonObject &jo ); void reset_constructions(); void construction_menu(); void complete_construction(); diff --git a/src/consumption.cpp b/src/consumption.cpp index 86faddef4ef0f..dc95fb2aee616 100644 --- a/src/consumption.cpp +++ b/src/consumption.cpp @@ -35,6 +35,7 @@ const efftype_id effect_brainworms( "brainworms" ); const efftype_id effect_paincysts( "paincysts" ); const efftype_id effect_nausea( "nausea" ); const efftype_id effect_hallu( "hallu" ); +const efftype_id effect_visuals( "visuals" ); const mtype_id mon_player_blob( "mon_player_blob" ); @@ -97,7 +98,19 @@ int player::nutrition_for( const item &comest ) const } // As float to avoid rounding too many times - float nutr = comest.type->comestible->nutr; + float nutr = 0; + + // if item has components, will derive calories from that instead. + if( comest.components.size() > 0 && !comest.has_flag( "NUTRIENT_OVERRIDE" ) ) { + int byproduct_multiplier; + for( item component : comest.components ) { + component.has_flag( "BYPRODUCT" ) ? byproduct_multiplier = -1 : byproduct_multiplier = 1; + nutr += this->nutrition_for( component ) * component.charges * byproduct_multiplier; + } + nutr /= comest.recipe_charges; + } else { + nutr = comest.type->comestible->nutr; + } if( has_trait( trait_GIZZARD ) ) { nutr *= 0.6f; @@ -206,14 +219,27 @@ std::map player::vitamins_from( const item &it ) const return res; } - // food to which the player is allergic to never contains any vitamins - if( allergy_type( it ) != MORALE_NULL ) { - return res; - } - // @todo: bionics and mutations can affect vitamin absorption - for( const auto &e : it.type->comestible->vitamins ) { - res.emplace( e.first, e.second ); + if( it.components.size() > 0 && !it.has_flag( "NUTRIENT_OVERRIDE" ) ) { + // if an item is a byproduct, it should subtract the calories and vitamins instead of add + int byproduct_multiplier = 1; + for( const auto &comp : it.components ) { + comp.has_flag( "BYPRODUCT" ) ? byproduct_multiplier = -1 : byproduct_multiplier = 1; + std::map component_map = this->vitamins_from( comp ); + for( const auto &vit : component_map ) { + res.operator[]( vit.first ) += byproduct_multiplier * ceil( static_cast + ( vit.second ) / static_cast + ( it.type->charges_default() ) ); + } + } + } else { + // food to which the player is allergic to never contains any vitamins + if( allergy_type( it ) != MORALE_NULL ) { + return res; + } + for( const auto &e : it.type->comestible->vitamins ) { + res.emplace( e ); + } } return res; @@ -485,12 +511,14 @@ ret_val player::will_eat( const item &food, bool interactive ) co } const bool eat_verb = food.has_flag( "USE_EAT_VERB" ); + std::string food_tame = food.tname(); + const nc_color food_color = food.color_in_inventory(); if( eat_verb || comest->comesttype == "FOOD" ) { - req << string_format( _( "Eat your %s anyway?" ), food.tname().c_str() ); + req << string_format( _( "Eat your %s anyway?" ), colorize( food_tame, food_color ) ); } else if( !eat_verb && comest->comesttype == "DRINK" ) { - req << string_format( _( "Drink your %s anyway?" ), food.tname().c_str() ); + req << string_format( _( "Drink your %s anyway?" ), colorize( food_tame, food_color ) ); } else { - req << string_format( _( "Consume your %s anyway?" ), food.tname().c_str() ); + req << string_format( _( "Consume your %s anyway?" ), colorize( food_tame, food_color ) ); } if( !query_yn( req.str() ) ) { @@ -605,9 +633,9 @@ bool player::eat( item &food, bool force ) const bool spiritual = has_trait( trait_id( "SPIRITUAL" ) ); if( food.has_flag( "HIDDEN_HALLU" ) ) { if( spiritual ) { - add_morale( MORALE_FOOD_GOOD, 36, 72, 12_minutes, 6_minutes, false ); + add_morale( MORALE_FOOD_GOOD, 36, 72, 2_hours, 1_hours, false ); } else { - add_morale( MORALE_FOOD_GOOD, 18, 36, 6_minutes, 3_minutes, false ); + add_morale( MORALE_FOOD_GOOD, 18, 36, 1_hours, 30_minutes, false ); } if( !has_effect( effect_hallu ) ) { add_effect( effect_hallu, 6_hours ); @@ -863,6 +891,26 @@ void player::consume_effects( const item &food ) stim = std::min( comest.stim * 3, stim + comest.stim ); } } + if( has_trait( trait_id( "STIMBOOST" ) ) && ( stim > 30 ) && ( ( comest.add == ADD_CAFFEINE ) + || ( comest.add == ADD_SPEED ) || ( comest.add == ADD_COKE ) || ( comest.add == ADD_CRACK ) ) ) { + int hallu_duration = ( stim - comest.stim < 30 ) ? stim - 30 : comest.stim; + add_effect( effect_visuals, hallu_duration * 30_minutes ); + std::vector stimboost_msg{ _( "The shadows are getting ever closer." ), + _( "You have a bad feeling about this." ), + _( "A powerful sense of dread comes over you." ), + _( "Your skin starts crawling." ), + _( "They're coming to get you." ), + _( "This might've been a bad idea..." ), + _( "You've really done it this time, haven't you?" ), + _( "You have to stay vigilant. They're always watching..." ), + _( "mistake mistake mistake mistake mistake" ), + _( "Just gotta stay calm, and you'll make it through this." ), + _( "You're starting to feel very jumpy." ), + _( "Something is twitching at the edge of your vision." ), + _( "They know what you've done..." ), + _( "You're feeling even more paranoid than usual." ) }; + add_msg_if_player( m_bad, random_entry_ref( stimboost_msg ) ); + } add_addiction( comest.add, comest.addict ); if( addiction_craving( comest.add ) != MORALE_NULL ) { rem_morale( addiction_craving( comest.add ) ); diff --git a/src/coordinates.h b/src/coordinates.h index 8cb30ac38d16f..65e0a5e2dc621 100644 --- a/src/coordinates.h +++ b/src/coordinates.h @@ -31,8 +31,7 @@ struct real_coords { point om_pos; // overmap tile: 2x2 submaps. point om_sub; // submap (0-359) in overmap / abs_sub constrained to % 360. equivalent to g->levx - real_coords() { - } + real_coords() = default; real_coords( point ap ) { fromabs( ap.x, ap.y ); diff --git a/src/crafting.cpp b/src/crafting.cpp index c6efe74d5cfde..5b1ce13862c9c 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -706,9 +706,29 @@ void player::complete_craft() making.is_reversible() ) { // Setting this for items counted by charges gives only problems: // those items are automatically merged everywhere (map/vehicle/inventory), - // which would either loose this information or merge it somehow. + // which would either lose this information or merge it somehow. set_components( newit.components, used, batch_size, newit_counter ); newit_counter++; + } else if( newit.is_food() && !newit.has_flag( "NUTRIENT_OVERRIDE" ) ) { + // if a component item has "cooks_like" it will be replaced by that item as a component + for( item &comp : used ) { + // only comestibles have cooks_like. any other type of item will throw an exception, so filter those out + if( comp.is_comestible() && !comp.type->comestible->cooks_like.empty() ) { + comp = item( comp.type->comestible->cooks_like, comp.birthday(), comp.charges ); + } + } + // byproducts get stored as a "component" but with a byproduct flag for consumption purposes + if( making.has_byproducts() ) { + for( item &byproduct : making.create_byproducts( batch_size ) ) { + byproduct.set_flag( "BYPRODUCT" ); + used.push_back( byproduct ); + } + } + // store components for food recipes that do not have the override flag + set_components( newit.components, used, batch_size, newit_counter ); + // store the number of charges the recipe creates + newit.recipe_charges = newit.charges / batch_size; + newit_counter++; } if( newit.goes_bad() ) { @@ -801,7 +821,8 @@ comp_selection player::select_item_component( const std::vector player::select_item_component( const std::vector= count ) { + if( !found && amount_of( type, false ) + map_inv.amount_of( type, false ) >= count ) { mixed.push_back( component ); } } @@ -1177,6 +1198,8 @@ bool player::disassemble() return false; } + loc.set_should_stack( false ); + return disassemble( loc.obtain( *this ) ); } @@ -1199,22 +1222,22 @@ bool player::disassemble( item &obj, int pos, bool ground, bool interactive ) const auto &r = recipe_dictionary::get_uncraft( obj.typeId() ); // last chance to back out if( interactive && get_option( "QUERY_DISASSEMBLE" ) ) { - const auto components( r.disassembly_requirements().get_components() ); std::ostringstream list; + const auto components = obj.get_uncraft_components(); for( const auto &component : components ) { - list << "- " << component.front().to_string() << std::endl; + list << "- " << component.to_string() << std::endl; } if( !r.learn_by_disassembly.empty() && !knows_recipe( &r ) && can_decomp_learn( r ) ) { if( !query_yn( _( "Disassembling the %s may yield:\n%s\nReally disassemble?\nYou feel you may be able to understand this object's construction.\n" ), - obj.tname().c_str(), - list.str().c_str() ) ) { + colorize( obj.tname(), obj.color_in_inventory() ), + list.str() ) ) { return false; } } else if( !query_yn( _( "Disassembling the %s may yield:\n%s\nReally disassemble?" ), - obj.tname().c_str(), - list.str().c_str() ) ) { + colorize( obj.tname(), obj.color_in_inventory() ), + list.str() ) ) { return false; } } diff --git a/src/crafting_gui.cpp b/src/crafting_gui.cpp index e95c998b416fd..ca493a10324e6 100644 --- a/src/crafting_gui.cpp +++ b/src/crafting_gui.cpp @@ -258,68 +258,89 @@ const recipe *select_crafting_recipe( int &batch_size ) std::vector picking; if( !filterstring.empty() ) { auto qry = trim( filterstring ); - if( qry.size() > 2 && qry[1] == ':' ) { - switch( qry[0] ) { - case 't': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::tool ); - break; - - case 'c': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::component ); - break; - - case 's': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::skill ); - break; - - case 'p': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::primary_skill ); - break; - - case 'Q': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::quality ); - break; - - case 'q': - picking = available_recipes.search( qry.substr( 2 ), recipe_subset::search_type::quality_result ); - break; - - case 'd': - picking = available_recipes.search( qry.substr( 2 ), - recipe_subset::search_type::description_result ); - break; - - case 'm': { - auto &learned = g->u.get_learned_recipes(); - if( query_is_yes( qry ) ) { - std::set_intersection( available_recipes.begin(), available_recipes.end(), learned.begin(), - learned.end(), std::back_inserter( picking ) ); - } else { - std::set_difference( available_recipes.begin(), available_recipes.end(), learned.begin(), - learned.end(), - std::back_inserter( picking ) ); + size_t qry_begin = 0; + size_t qry_end = 0; + recipe_subset filtered_recipes = available_recipes; + do { + // Find next ',' + qry_end = qry.find_first_of( ',', qry_begin ); + + auto qry_filter_str = trim( qry.substr( qry_begin, qry_end - qry_begin ) ); + // Process filter + if( qry_filter_str.size() > 2 && qry_filter_str[1] == ':' ) { + switch( qry_filter_str[0] ) { + case 't': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::tool ); + break; + + case 'c': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::component ); + break; + + case 's': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::skill ); + break; + + case 'p': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::primary_skill ); + break; + + case 'Q': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::quality ); + break; + + case 'q': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::quality_result ); + break; + + case 'd': + filtered_recipes = filtered_recipes.reduce( qry_filter_str.substr( 2 ), + recipe_subset::search_type::description_result ); + break; + + case 'm': { + auto &learned = g->u.get_learned_recipes(); + recipe_subset temp_subset; + if( query_is_yes( qry_filter_str ) ) { + temp_subset = available_recipes.intersection( learned ); + } else { + temp_subset = available_recipes.difference( learned ); + } + filtered_recipes = filtered_recipes.intersection( temp_subset ); + break; } - break; - } - case 'h': { - std::copy( available_recipes.begin(), available_recipes.end(), std::back_inserter( picking ) ); - if( query_is_yes( qry ) ) { - show_hidden = true; + case 'h': { + filtered_recipes = filtered_recipes.intersection( available_recipes ); + if( query_is_yes( qry_filter_str ) ) { + show_hidden = true; + } + break; } - break; - } - default: - current.clear(); + default: + current.clear(); + } + } else { + filtered_recipes = filtered_recipes.reduce( qry_filter_str ); } - } else { - picking = available_recipes.search( qry ); - } + + qry_begin = qry_end + 1; + } while( qry_end != std::string::npos ); + picking.insert( picking.end(), filtered_recipes.begin(), filtered_recipes.end() ); } else if( subtab.cur() == "CSC_*_FAVORITE" ) { picking = available_recipes.favorite(); } else if( subtab.cur() == "CSC_*_RECENT" ) { picking = available_recipes.recent(); + } else if( subtab.cur() == "CSC_*_HIDDEN" ) { + picking.insert( picking.end(), available_recipes.begin(), available_recipes.end() ); + show_hidden = true; } else { picking = available_recipes.in_category( tab.cur(), subtab.cur() != "CSC_ALL" ? subtab.cur() : "" ); } @@ -507,7 +528,6 @@ const recipe *select_crafting_recipe( int &batch_size ) enumerate_as_string( books_with_recipe.begin(), books_with_recipe.end(), []( itype_id type_id ) { return colorize( item::find_type( type_id )->nname( 1 ), c_cyan ); - return item::find_type( type_id )->nname( 1 ); } ); const std::string text = string_format( _( "Written in: %s" ), enumerated_books.c_str() ); std::vector folded_lines = foldstring( text, pane ); @@ -538,26 +558,23 @@ const recipe *select_crafting_recipe( int &batch_size ) if( display_mode == 0 ) { const int width = getmaxx( w_data ) - xpos - item_info_x; - print_colored_text( - w_data, ypos++, xpos, col, col, - string_format( _( "Primary skill used: %s" ), - ( !current[line]->skill_used ? _( "N/A" ) : - current[line]->skill_used.obj().name() ) ) ); + auto player_skill = g->u.get_skill_level( current[line]->skill_used ); std::string difficulty_color = current[ line ]->difficulty > player_skill ? "yellow" : "green"; + std::string primary_skill_level = string_format( "(%s/%s)", player_skill, + current[ line ]->difficulty ); print_colored_text( w_data, ypos++, xpos, col, col, - string_format( _( "Difficulty: %d" ), - difficulty_color, current[ line ]->difficulty ) ); - std::string skill_level_string = - current[line]->skill_used ? - string_format( _( "Your skill level: %d" ), - difficulty_color, player_skill ) : - _( "Your skill level: N/A" ); - print_colored_text( w_data, ypos++, xpos, col, col, skill_level_string ); + string_format( _( "Primary skill: %s %s" ), + ( !current[line]->skill_used ? _( "N/A" ) : + current[line]->skill_used.obj().name() ), + difficulty_color, + ( !current[line]->skill_used ? "" : primary_skill_level ) + ) ); + ypos += fold_and_print( w_data, ypos, xpos, width, col, - _( "Other skills used: %s" ), + _( "Other skills: %s" ), current[line]->required_skills_string( &g->u ) ); const int expected_turns = g->u.expected_time_to_craft( *current[line], @@ -566,6 +583,10 @@ const recipe *select_crafting_recipe( int &batch_size ) _( "Time to complete: %s" ), to_string( time_duration::from_turns( expected_turns ) ) ); + ypos += fold_and_print( w_data, ypos, xpos, pane, col, + _( "Batch time savings: %s" ), + current[line]->batch_savings_string() ); + print_colored_text( w_data, ypos++, xpos, col, col, string_format( _( "Dark craftable? %s" ), @@ -703,7 +724,8 @@ const recipe *select_crafting_recipe( int &batch_size ) std::string description = _( "The default is to search result names. Some single-character prefixes " - "can be used with a colon (:) to search in other ways.\n" + "can be used with a colon (:) to search in other ways. Additional filters " + "are separated by commas (,).\n" "\n" "Examples:\n" ); @@ -723,11 +745,16 @@ const recipe *select_crafting_recipe( int &batch_size ) prefix.key, prefix.example, padding, spaces, prefix.description ); } + description += + _( "\nYou can use arrow keys to go through search history\n\n" ); + string_input_popup() .title( _( "Search:" ) ) .width( 85 ) .description( description ) .desc_color( c_light_gray ) + .identifier( "craft_recipe_filter" ) + .hist_use_uilist( false ) .edit( filterstring ); redraw = true; } else if( action == "QUIT" ) { diff --git a/src/creature.cpp b/src/creature.cpp index 7ef8bd2c43d69..bf7ee98116685 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -172,7 +172,10 @@ bool Creature::sees( const Creature &critter ) const return true; } else if( ( wanted_range > 1 && critter.digging() ) || ( critter.has_flag( MF_NIGHT_INVISIBILITY ) && g->m.light_at( critter.pos() ) <= LL_LOW ) || - ( critter.is_underwater() && !is_underwater() && g->m.is_divable( critter.pos() ) ) ) { + ( critter.is_underwater() && !is_underwater() && g->m.is_divable( critter.pos() ) ) || + ( g->m.has_flag_ter_or_furn( TFLAG_HIDE_PLACE, critter.pos() ) && + !( abs( posx() - critter.posx() ) <= 1 && abs( posy() - critter.posy() ) <= 1 && + abs( posz() - critter.posz() ) <= 1 ) ) ) { return false; } @@ -899,7 +902,7 @@ void Creature::add_effect( const efftype_id &eff_id, const time_duration dur, bo } } bool Creature::add_env_effect( const efftype_id &eff_id, body_part vector, int strength, - const time_duration dur, body_part bp, bool permanent, int intensity, bool force ) + const time_duration &dur, body_part bp, bool permanent, int intensity, bool force ) { if( !force && is_immune_effect( eff_id ) ) { return false; @@ -1425,19 +1428,19 @@ units::mass Creature::weight_capacity() const /* * Drawing-related functions */ -void Creature::draw( const catacurses::window &w, int player_x, int player_y, bool inverted ) const +void Creature::draw( const catacurses::window &w, int origin_x, int origin_y, bool inverted ) const { - draw( w, tripoint( player_x, player_y, posz() ), inverted ); + draw( w, tripoint( origin_x, origin_y, posz() ), inverted ); } -void Creature::draw( const catacurses::window &w, const tripoint &p, bool inverted ) const +void Creature::draw( const catacurses::window &w, const tripoint &origin, bool inverted ) const { if( is_draw_tiles_mode() ) { return; } - int draw_x = getmaxx( w ) / 2 + posx() - p.x; - int draw_y = getmaxy( w ) / 2 + posy() - p.y; + int draw_x = getmaxx( w ) / 2 + posx() - origin.x; + int draw_y = getmaxy( w ) / 2 + posy() - origin.y; if( inverted ) { mvwputch_inv( w, draw_y, draw_x, basic_symbol_color(), symbol() ); } else if( is_symbol_highlighted() ) { diff --git a/src/creature.h b/src/creature.h index 401b7948ca8b8..051513c5b3b19 100644 --- a/src/creature.h +++ b/src/creature.h @@ -12,6 +12,7 @@ #include "pimpl.h" #include "string_formatter.h" #include "string_id.h" +#include "units.h" enum game_message_type : int; class nc_color; @@ -48,15 +49,6 @@ struct mutation_branch; using trait_id = string_id; class ma_technique; using matec_id = string_id; -namespace units -{ -template -class quantity; -class mass_in_gram_tag; -using mass = quantity; -class volume_in_milliliter_tag; -using volume = quantity; -} enum m_size : int { MS_TINY = 0, // Squirrel @@ -66,6 +58,12 @@ enum m_size : int { MS_HUGE // TAAAANK }; +enum FacingDirection { + FD_NONE = 0, + FD_LEFT = 1, + FD_RIGHT = 2 +}; + class Creature { public: @@ -87,7 +85,8 @@ class Creature virtual bool is_monster() const { return false; } - + /** 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. */ virtual bool is_fake() const; /** Sets a Creature's fake boolean. */ @@ -204,8 +203,8 @@ class Creature // completes a melee attack against the creature // dealt_dam is overwritten with the values of the damage dealt - virtual void deal_melee_hit( Creature *source, int hit_spread, bool crit, - const damage_instance &d, dealt_damage_instance &dealt_dam ); + virtual void deal_melee_hit( Creature *source, int hit_spread, bool critical_hit, + const damage_instance &dam, dealt_damage_instance &dealt_dam ); // Makes a ranged projectile attack against the creature // Sets relevant values in `attack`. @@ -222,10 +221,10 @@ class Creature * Does not call @ref check_dead_state. * @param source The attacking creature, can be null. * @param bp The attacked body part - * @param d The damage dealt + * @param dam The damage dealt */ virtual dealt_damage_instance deal_damage( Creature *source, body_part bp, - const damage_instance &d ); + const damage_instance &dam ); // for each damage type, how much gets through and how much pain do we // accrue? mutates damage and pain virtual void deal_damage_handle_type( const damage_unit &du, @@ -305,7 +304,8 @@ class Creature virtual void add_effect( const efftype_id &eff_id, time_duration dur, body_part bp = num_bp, bool permanent = false, int intensity = 0, bool force = false, bool deferred = false ); /** Gives chance to save via environmental resist, returns false if resistance was successful. */ - bool add_env_effect( const efftype_id &eff_id, body_part vector, int strength, time_duration dur, + bool add_env_effect( const efftype_id &eff_id, body_part vector, int strength, + const time_duration &dur, body_part bp = num_bp, bool permanent = false, int intensity = 1, bool force = false ); /** Removes a listed effect, adding the removal memorial log if needed. bp = num_bp means to remove @@ -408,9 +408,9 @@ class Creature virtual body_part get_random_body_part( bool main = false ) const = 0; /** * Returns body parts in order in which they should be displayed. - * @param main If true, only displays parts that can have hit points + * @param only_main If true, only displays parts that can have hit points */ - virtual std::vector get_all_body_parts( bool main = false ) const = 0; + virtual std::vector get_all_body_parts( bool only_main = false ) const = 0; virtual int get_speed_base() const; virtual int get_speed_bonus() const; @@ -476,8 +476,8 @@ class Creature int moves; bool underwater; - void draw( const catacurses::window &w, int plx, int ply, bool inv ) const; - void draw( const catacurses::window &w, const tripoint &plp, bool inv ) 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. * @param w the window to print the text into. diff --git a/src/creature_tracker.cpp b/src/creature_tracker.cpp index b6b673c07760e..290e70ca47708 100644 --- a/src/creature_tracker.cpp +++ b/src/creature_tracker.cpp @@ -11,9 +11,7 @@ #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " -Creature_tracker::Creature_tracker() -{ -} +Creature_tracker::Creature_tracker() = default; Creature_tracker::~Creature_tracker() = default; @@ -214,13 +212,15 @@ bool Creature_tracker::kill_marked_for_death() // been removed, the dying creature could still have a pointer (the killer) to another creature. bool monster_is_dead = false; for( const auto &mon_ptr : monsters_list ) { - monster &critter = *mon_ptr; - if( critter.is_dead() ) { - dbg( D_INFO ) << string_format( "cleanup_dead: critter %d,%d,%d hp:%d %s", - critter.posx(), critter.posy(), critter.posz(), - critter.get_hp(), critter.name().c_str() ); - critter.die( nullptr ); - monster_is_dead = true; + if( mon_ptr != nullptr ) { + monster &critter = *mon_ptr; + if( critter.is_dead() ) { + dbg( D_INFO ) << string_format( "cleanup_dead: critter %d,%d,%d hp:%d %s", + critter.posx(), critter.posy(), critter.posz(), + critter.get_hp(), critter.name().c_str() ); + critter.die( nullptr ); + monster_is_dead = true; + } } } diff --git a/src/damage.cpp b/src/damage.cpp index 64e1e1134841c..1d5c17cb5dace 100644 --- a/src/damage.cpp +++ b/src/damage.cpp @@ -20,7 +20,7 @@ bool damage_unit::operator==( const damage_unit &other ) const damage_multiplier == other.damage_multiplier; } -damage_instance::damage_instance() { } +damage_instance::damage_instance() = default; damage_instance damage_instance::physical( float bash, float cut, float stab, float arpen ) { damage_instance d; @@ -85,9 +85,9 @@ bool damage_instance::empty() const return damage_units.empty(); } -void damage_instance::add( const damage_instance &b ) +void damage_instance::add( const damage_instance &added_di ) { - for( auto &added_du : b.damage_units ) { + for( auto &added_du : added_di.damage_units ) { add( added_du ); } } diff --git a/src/damage.h b/src/damage.h index bc85c5689eb88..4c36595fafca3 100644 --- a/src/damage.h +++ b/src/damage.h @@ -72,8 +72,8 @@ struct damage_instance { */ /*@{*/ void add_damage( damage_type dt, float a, float rp = 0.0f, float rm = 1.0f, float mul = 1.0f ); - void add( const damage_instance &b ); - void add( const damage_unit &b ); + void add( const damage_instance &added_di ); + void add( const damage_unit &added_du ); /*@}*/ void deserialize( JsonIn & ); diff --git a/src/debug.cpp b/src/debug.cpp index 5347d9373a7c0..888ae89f0a238 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -292,9 +292,7 @@ static std::ostream nullStream( &nullBuf ); static DebugFile debugFile; -DebugFile::DebugFile() -{ -} +DebugFile::DebugFile() = default; DebugFile::~DebugFile() { diff --git a/src/debug.h b/src/debug.h index 4bc22f20fa1af..f9e69dca42ae0 100644 --- a/src/debug.h +++ b/src/debug.h @@ -68,7 +68,7 @@ // Don't use this, use debugmsg instead. void realDebugmsg( const char *filename, const char *line, const char *funcname, - const std::string &mes ); + const std::string &text ); template inline void realDebugmsg( const char *const filename, const char *const line, const char *const funcname, const char *const mes, Args &&... args ) diff --git a/src/debug_menu.cpp b/src/debug_menu.cpp index 95d765da437eb..78d9846be5208 100644 --- a/src/debug_menu.cpp +++ b/src/debug_menu.cpp @@ -1,6 +1,7 @@ #include "debug_menu.h" #include +#include #include #include "action.h" @@ -11,6 +12,7 @@ #include "morale_types.h" #include "npc.h" #include "npc_class.h" +#include "options.h" #include "output.h" #include "overmap.h" #include "overmap_ui.h" @@ -607,4 +609,38 @@ void mission_debug::edit_mission( mission &m ) } } +void draw_benchmark( const int max_difference ) +{ + // call the draw procedure as many times as possible in max_difference milliseconds + auto start_tick = std::chrono::steady_clock::now(); + auto end_tick = std::chrono::steady_clock::now(); + long difference = 0; + int draw_counter = 0; + while( true ) { + end_tick = std::chrono::steady_clock::now(); + difference = std::chrono::duration_cast( end_tick - start_tick ).count(); + if( difference >= max_difference ) { + break; + } + g->draw(); + draw_counter++; + } + + DebugLog( D_INFO, DC_ALL ) << "Draw benchmark:\n" << + "\n| USE_TILES | RENDERER | FRAMEBUFFER_ACCEL | USE_COLOR_MODULATED_TEXTURES | FPS |" << + "\n|:---:|:---:|:---:|:---:|:---:|\n| " << + get_option( "USE_TILES" ) << " | " << +#ifndef __ANDROID__ + get_option( "RENDERER" ) << " | " << +#else + get_option( "SOFTWARE_RENDERING" ) << " | " << +#endif + get_option( "FRAMEBUFFER_ACCEL" ) << " | " << + get_option( "USE_COLOR_MODULATED_TEXTURES" ) << " | " << + int( 1000.0 * draw_counter / ( double )difference ) << " |\n"; + + add_msg( m_info, _( "Drew %d times in %.3f seconds. (%.3f fps average)" ), draw_counter, + difference / 1000.0, 1000.0 * draw_counter / ( double )difference ); +} + } diff --git a/src/debug_menu.h b/src/debug_menu.h index aac4e3f1e9398..c4c967cdefb3c 100644 --- a/src/debug_menu.h +++ b/src/debug_menu.h @@ -21,10 +21,11 @@ void teleport_overmap(); void character_edit_menu(); void wishitem( player *p = nullptr, int x = -1, int y = -1, int z = -1 ); -void wishmonster( const cata::optional p ); +void wishmonster( const cata::optional &p ); void wishmutate( player *p ); void wishskill( player *p ); void mutation_wish(); +void draw_benchmark( const int max_difference ); class mission_debug; diff --git a/src/defense.cpp b/src/defense.cpp index 6cd61abab0739..7384a7819e6b1 100644 --- a/src/defense.cpp +++ b/src/defense.cpp @@ -145,29 +145,29 @@ void defense_game::pre_action( action_id &act ) } // Big ugly block for movement - if( ( act == ACTION_MOVE_N && g->u.posy() == SEEX * int( MAPSIZE / 2 ) && + if( ( act == ACTION_MOVE_N && g->u.posy() == HALF_MAPSIZE_X && g->get_levy() <= 93 ) || - ( act == ACTION_MOVE_NE && ( ( g->u.posy() == SEEY * int( MAPSIZE / 2 ) && + ( act == ACTION_MOVE_NE && ( ( g->u.posy() == HALF_MAPSIZE_Y && g->get_levy() <= 93 ) || - ( g->u.posx() == SEEX * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( g->u.posx() == HALF_MAPSIZE_X + SEEX - 1 && g->get_levx() >= 98 ) ) ) || - ( act == ACTION_MOVE_E && g->u.posx() == SEEX * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( act == ACTION_MOVE_E && g->u.posx() == HALF_MAPSIZE_X + SEEX - 1 && g->get_levx() >= 98 ) || - ( act == ACTION_MOVE_SE && ( ( g->u.posy() == SEEY * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( act == ACTION_MOVE_SE && ( ( g->u.posy() == HALF_MAPSIZE_Y + SEEY - 1 && g->get_levy() >= 98 ) || - ( g->u.posx() == SEEX * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( g->u.posx() == HALF_MAPSIZE_X + SEEX - 1 && g->get_levx() >= 98 ) ) ) || - ( act == ACTION_MOVE_S && g->u.posy() == SEEY * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( act == ACTION_MOVE_S && g->u.posy() == HALF_MAPSIZE_Y + SEEY - 1 && g->get_levy() >= 98 ) || - ( act == ACTION_MOVE_SW && ( ( g->u.posy() == SEEY * ( 1 + int( MAPSIZE / 2 ) ) - 1 && + ( act == ACTION_MOVE_SW && ( ( g->u.posy() == HALF_MAPSIZE_Y + SEEY - 1 && g->get_levy() >= 98 ) || - ( g->u.posx() == SEEX * int( MAPSIZE / 2 ) && + ( g->u.posx() == HALF_MAPSIZE_X && g->get_levx() <= 93 ) ) ) || - ( act == ACTION_MOVE_W && g->u.posx() == SEEX * int( MAPSIZE / 2 ) && + ( act == ACTION_MOVE_W && g->u.posx() == HALF_MAPSIZE_X && g->get_levx() <= 93 ) || - ( act == ACTION_MOVE_NW && ( ( g->u.posy() == SEEY * int( MAPSIZE / 2 ) && + ( act == ACTION_MOVE_NW && ( ( g->u.posy() == HALF_MAPSIZE_Y && g->get_levy() <= 93 ) || - ( g->u.posx() == SEEX * int( MAPSIZE / 2 ) && + ( g->u.posx() == HALF_MAPSIZE_X && g->get_levx() <= 93 ) ) ) ) { add_msg( m_info, _( "You cannot leave the %s behind!" ), defense_location_name( location ).c_str() ); @@ -1419,14 +1419,14 @@ void defense_game::spawn_wave_monster( const mtype_id &type ) while( true ) { if( location == DEFLOC_HOSPITAL || location == DEFLOC_MALL ) { // Always spawn to the north! - pnt = point( rng( SEEX * ( MAPSIZE / 2 ), SEEX * ( 1 + MAPSIZE / 2 ) ), SEEY ); + pnt = point( rng( HALF_MAPSIZE_X, HALF_MAPSIZE_X + SEEX ), SEEY ); } else if( one_in( 2 ) ) { - pnt = point( rng( SEEX * ( MAPSIZE / 2 ), SEEX * ( 1 + MAPSIZE / 2 ) ), rng( 1, SEEY ) ); + pnt = point( rng( HALF_MAPSIZE_X, HALF_MAPSIZE_X + SEEX ), rng( 1, SEEY ) ); if( one_in( 2 ) ) { pnt = point( pnt.x, MAPSIZE_Y - 1 - pnt.y ); } } else { - pnt = point( rng( 1, SEEX ), rng( SEEY * ( MAPSIZE / 2 ), SEEY * ( 1 + MAPSIZE / 2 ) ) ); + pnt = point( rng( 1, SEEX ), rng( HALF_MAPSIZE_Y, HALF_MAPSIZE_Y + SEEY ) ); if( one_in( 2 ) ) { pnt = point( MAPSIZE_X - 1 - pnt.x, pnt.y ); } diff --git a/src/dialogue.h b/src/dialogue.h index 74402230aa6b8..b15dbf491fdd0 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -28,6 +28,7 @@ enum talk_trial_type : unsigned char { TALK_TRIAL_LIE, // Straight up lying TALK_TRIAL_PERSUADE, // Convince them TALK_TRIAL_INTIMIDATE, // Physical intimidation + TALK_TRIAL_CONDITION, // Some other condition NUM_TALK_TRIALS }; @@ -52,6 +53,7 @@ using trial_mod = std::pair; struct talk_trial { talk_trial_type type = TALK_TRIAL_NONE; int difficulty = 0; + std::function condition; int calc_chance( const dialogue &d ) const; /** @@ -102,6 +104,11 @@ struct talk_effect_fun_t { void set_u_sell_item( const std::string &new_trait, int cost, int count ); void set_npc_change_faction( const std::string &faction_name ); void set_change_faction_rep( int amount ); + void set_add_debt( const std::vector debt_modifiers ); + void set_toggle_npc_rule( const std::string &rule ); + void set_npc_engagement_rule( const std::string &setting ); + void set_npc_aim_rule( const std::string &setting ); + void operator()( const dialogue &d ) const { if( !function ) { return; @@ -116,9 +123,15 @@ struct talk_effect_fun_t { */ struct talk_effect_t { /** - * How (if at all) the NPCs opinion of the player character (@ref npc::op_of_u) will change. + * How (if at all) the NPCs opinion of the player character (@ref npc::op_of_u) + * will change. */ npc_opinion opinion; + /** + * How (if at all) the NPCs opinion of the player character (@ref npc::op_of_u) + * will change. These values are divisors of the mission value. + */ + npc_opinion mission_opinion; /** * Topic to switch to. TALK_DONE ends the talking, TALK_NONE keeps the current topic. */ @@ -131,7 +144,7 @@ struct talk_effect_t { * Sets an effect and consequence based on function pointer. */ void set_effect( talkfunction_ptr effect ); - void set_effect( talk_effect_fun_t effect ); + void set_effect( const talk_effect_fun_t &effect ); /** * Sets an effect to a function object and consequence to explicitly given one. */ @@ -163,6 +176,13 @@ struct talk_response { * displayed. */ std::string text; + /* + * Optional responses from a true/false test that defaults to true. + */ + std::string truetext; + std::string falsetext; + std::function truefalse_condition; + talk_trial trial; /** * The following values are forwarded to the chatbin of the NPC (see @ref npc_chatbin). @@ -177,7 +197,7 @@ struct talk_response { talk_data create_option_line( const dialogue &d, char letter ); std::set get_consequences( const dialogue &d ) const; - talk_response() = default; + talk_response(); talk_response( JsonObject ); }; @@ -297,6 +317,9 @@ struct dynamic_line_t { } }; +// 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 @@ -312,7 +335,6 @@ struct conditional_t { conditional_t() = default; conditional_t( const std::string &type ); conditional_t( JsonObject jo ); - static conditional_t from_member( JsonObject &jo, const std::string &member_name ); bool operator()( const dialogue &d ) const { if( !condition ) { diff --git a/src/dump.cpp b/src/dump.cpp index f99ddb7e6f6d0..64c4ed1df3e08 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -127,7 +127,7 @@ bool game::dump_stats( const std::string &what, dump_mode mode, } auto dump = [&rows]( const item & obj ) { std::vector r; - r.push_back( obj.tname( false ) ); + r.push_back( obj.tname( 1, false ) ); r.push_back( to_string( obj.volume() / units::legacy_volume_factor ) ); r.push_back( to_string( to_gram( obj.weight() ) ) ); r.push_back( to_string( obj.type->stack_size ) ); @@ -204,7 +204,7 @@ bool game::dump_stats( const std::string &what, dump_mode mode, dump( test_npcs[ "S1" ], gun ); - if( gun.type->gun->barrel_length > 0 ) { + if( gun.type->gun->barrel_length > 0_ml ) { gun.emplace_back( "barrel_small" ); dump( test_npcs[ "S1" ], gun ); } diff --git a/src/editmap.cpp b/src/editmap.cpp index f3c2ad866ce9e..a2689d59220fd 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -41,20 +41,19 @@ #include "vpart_position.h" #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " -#define maplim 132 -#define pinbounds(p) ( p.x >= 0 && p.x < maplim && p.y >= 0 && p.y < maplim) + +static constexpr tripoint editmap_boundary_min( 0, 0, -OVERMAP_DEPTH ); +static constexpr tripoint editmap_boundary_max( MAPSIZE_X, MAPSIZE_Y, OVERMAP_HEIGHT ); +static constexpr tripoint editmap_clearance_min( tripoint_zero ); +static constexpr tripoint editmap_clearance_max( 1, 1, 0 ); + +static constexpr box editmap_boundaries( editmap_boundary_min, editmap_boundary_max ); +static constexpr box editmap_clearance( editmap_clearance_min, editmap_clearance_max ); static const ter_id undefined_ter_id( -1 ); static const furn_id undefined_furn_id( -1 ); static const trap_id undefined_trap_id( -1 ); -bool inbounds( const int x, const int y, const int z ) -{ - return x >= 0 && x < maplim && - y >= 0 && y < maplim && - z >= -OVERMAP_DEPTH && z <= OVERMAP_HEIGHT; -} - std::vector fld_string( const std::string &str, int width ) { std::vector lines; @@ -226,7 +225,7 @@ editmap::editmap() editmap::~editmap() = default; -void editmap_hilight::draw( editmap &hm, bool update ) +void editmap_hilight::draw( editmap &em, bool update ) { cur_blink++; if( cur_blink >= static_cast( blink_interval.size() ) ) { @@ -258,7 +257,7 @@ void editmap_hilight::draw( editmap &hm, bool update ) if( blink_interval[ cur_blink ] ) { t_col = getbg( t_col ); } - tripoint scrpos = hm.pos2screen( p ); + tripoint scrpos = em.pos2screen( p ); mvwputch( g->w_terrain, scrpos.y, scrpos.x, t_col, t_sym ); } } @@ -1416,9 +1415,10 @@ tripoint editmap::recalc_target( shapetype shape ) int radius = rl_dist( origin, target ); for( int x = origin.x - radius; x <= origin.x + radius; x++ ) { for( int y = origin.y - radius; y <= origin.y + radius; y++ ) { - if( rl_dist( {x, y, z}, origin ) <= radius ) { - if( inbounds( x, y, z ) ) { - target_list.push_back( tripoint( x, y, z ) ); + const tripoint p( x, y, z ); + if( rl_dist( p, origin ) <= radius ) { + if( generic_inbounds( p, editmap_boundaries, editmap_clearance ) ) { + target_list.push_back( p ); } } } @@ -1448,8 +1448,9 @@ tripoint editmap::recalc_target( shapetype shape ) for( int x = sx; x <= ex; x++ ) { for( int y = sy; y <= ey; y++ ) { if( shape == editmap_rect_filled || x == sx || x == ex || y == sy || y == ey ) { - if( inbounds( x, y, z ) ) { - target_list.push_back( tripoint( x, y, z ) ); + const tripoint p( x, y, z ); + if( generic_inbounds( p, editmap_boundaries, editmap_clearance ) ) { + target_list.push_back( p ); } } } @@ -1488,8 +1489,8 @@ bool editmap::move_target( const std::string &action, int moveorigin ) tripoint mp; bool move_origin = ( moveorigin == 1 ? true : ( moveorigin == 0 ? false : moveall ) ); if( eget_direction( mp, action ) ) { - target.x = limited_shift( target.x, mp.x, 0, maplim ); - target.y = limited_shift( target.y, mp.y, 0, maplim ); + target.x = limited_shift( target.x, mp.x, 0, MAPSIZE_X ); + target.y = limited_shift( target.y, mp.y, 0, MAPSIZE_Y ); target.z = limited_shift( target.z, mp.z, -OVERMAP_DEPTH, OVERMAP_HEIGHT + 1 ); if( move_origin ) { origin += mp; @@ -1868,8 +1869,7 @@ bool editmap::mapgen_set( std::string om_name, tripoint &omt_tgt, int r, bool ch } destsm->delete_vehicles(); - for( size_t i = 0; i < srcsm->vehicles.size(); i++ ) { // copy vehicles to real map - vehicle *veh1 = srcsm->vehicles[i]; + for( auto veh1 : srcsm->vehicles ) { // copy vehicles to real map veh1->smx = target_sub.x + x; veh1->smy = target_sub.y + y; veh1->smz = target.z; @@ -1880,8 +1880,8 @@ bool editmap::mapgen_set( std::string om_name, tripoint &omt_tgt, int r, bool ch g->m.update_vehicle_list( destsm, target.z ); int spawns_todo = 0; - for( size_t i = 0; i < srcsm->spawns.size(); i++ ) { // copy spawns - destsm->spawns.push_back( srcsm->spawns[i] ); + for( const auto &spawn : srcsm->spawns ) { // copy spawns + destsm->spawns.push_back( spawn ); spawns_todo++; } @@ -1951,8 +1951,8 @@ vehicle *editmap::mapgen_veh_query( const tripoint &omt_tgt ) 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 } ); - for( size_t z = 0; z < destsm->vehicles.size(); z++ ) { - possible_vehicles.push_back( destsm->vehicles[z] ); + for( auto vehicle : destsm->vehicles ) { + possible_vehicles.push_back( vehicle ); } } } @@ -1997,9 +1997,9 @@ bool editmap::mapgen_veh_destroy( const tripoint &omt_tgt, vehicle *car_target ) 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 } ); - for( size_t z = 0; z < destsm->vehicles.size(); z++ ) { - if( destsm->vehicles[z] == car_target ) { - auto veh = destsm->vehicles[z]; + for( auto &z : destsm->vehicles ) { + if( z == car_target ) { + auto veh = z; std::unique_ptr old_veh = target_bay.detach_vehicle( veh ); g->m.clear_vehicle_cache( omt_tgt.z ); g->m.reset_vehicle_cache( omt_tgt.z ); @@ -2039,12 +2039,14 @@ int editmap::mapgen_retarget() if( const cata::optional vec = ctxt.get_direction( action ) ) { tripoint ptarget = tripoint( target.x + ( vec->x * SEEX * 2 ), target.y + ( vec->y * SEEY * 2 ), target.z ); - if( pinbounds( ptarget ) && inbounds( ptarget.x + SEEX * 2, ptarget.y + SEEY * 2, ptarget.z ) ) { + if( generic_inbounds( ptarget, editmap_boundaries, editmap_clearance ) && + generic_inbounds( { ptarget.x + SEEX, ptarget.y + SEEY, ptarget.z }, + editmap_boundaries, editmap_clearance ) ) { target = ptarget; target_list.clear(); - for( int x = target.x - SEEX + 1; x < target.x + SEEX + 1; x++ ) { - for( int y = target.y - SEEY + 1; y < target.y + SEEY + 1; y++ ) { + for( int x = target.x - SEEX - 1; x < target.x + SEEX + 1; x++ ) { + for( int y = target.y - SEEY - 1; y < target.y + SEEY + 1; y++ ) { target_list.push_back( tripoint( x, y, target.z ) ); } } diff --git a/src/editmap.h b/src/editmap.h index e6301c9cb1c08..a769198f83d16 100644 --- a/src/editmap.h +++ b/src/editmap.h @@ -24,7 +24,7 @@ struct editmap_hilight { int cur_blink; nc_color color; std::map points; - nc_color( *getbg )( nc_color ); + nc_color( *getbg )( const nc_color & ); void setup() { getbg = ( color == c_red ? &red_background : ( color == c_magenta ? &magenta_background : diff --git a/src/effect.cpp b/src/effect.cpp index d6e1277d6d7d7..ae766ea701af6 100644 --- a/src/effect.cpp +++ b/src/effect.cpp @@ -195,10 +195,10 @@ static void extract_effect( JsonObject &j, } } -bool effect_type::load_mod_data( JsonObject &jsobj, const std::string &member ) +bool effect_type::load_mod_data( JsonObject &jo, const std::string &member ) { - if( jsobj.has_object( member ) ) { - JsonObject j = jsobj.get_object( member ); + if( jo.has_object( member ) ) { + JsonObject j = jo.get_object( member ); // Stats first // json field type key arg key @@ -712,7 +712,7 @@ time_duration effect::get_max_duration() const { return eff_type->max_duration; } -void effect::set_duration( const time_duration dur, bool alert ) +void effect::set_duration( const time_duration &dur, bool alert ) { duration = dur; // Cap to max_duration if it exists @@ -728,7 +728,7 @@ void effect::set_duration( const time_duration dur, bool alert ) add_msg( m_debug, "ID: %s, Duration %d", get_id().c_str(), to_turns( duration ) ); } -void effect::mod_duration( const time_duration dur, bool alert ) +void effect::mod_duration( const time_duration &dur, bool alert ) { set_duration( duration + dur, alert ); } @@ -1082,7 +1082,8 @@ bool effect::activated( const time_point &when, std::string arg, int val, bool r // mod multiplies the overall percentage chances // has to be an && here to avoid undefined behavior of turn % 0 - if( tick > 0 && ( when - calendar::time_of_cataclysm ) % time_duration::from_turns( tick ) == 0 ) { + if( tick > 0 && + ( 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" diff --git a/src/effect.h b/src/effect.h index 5dd9fdbdd6d39..9b7f6db6c04e9 100644 --- a/src/effect.h +++ b/src/effect.h @@ -76,9 +76,9 @@ class effect_type bool is_show_in_info() const; /** Loading helper functions */ - bool load_mod_data( JsonObject &jsobj, const std::string &member ); - bool load_miss_msgs( JsonObject &jsobj, const std::string &member ); - bool load_decay_msgs( JsonObject &jsobj, const std::string &member ); + bool load_mod_data( JsonObject &jo, const std::string &member ); + bool load_miss_msgs( JsonObject &jo, const std::string &member ); + bool load_decay_msgs( JsonObject &jo, const std::string &member ); /** Registers the effect in the global map */ static void register_ma_buff_effect( const effect_type &eff ); @@ -142,7 +142,7 @@ class effect 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, + effect( const effect_type *peff_type, const time_duration &dur, body_part part, bool perm, int nintensity, const time_point &nstart_time ) : eff_type( peff_type ), duration( dur ), bp( part ), permanent( perm ), intensity( nintensity ), start_time( nstart_time ) { @@ -179,9 +179,9 @@ class effect /** Returns the maximum duration of an effect. */ time_duration get_max_duration() const; /** Sets the duration, capping at max_duration if it exists. */ - void set_duration( time_duration dur, bool alert = false ); + void set_duration( const time_duration &dur, bool alert = false ); /** Mods the duration, capping at max_duration if it exists. */ - void mod_duration( time_duration dur, bool alert = false ); + void mod_duration( const time_duration &dur, bool alert = false ); /** Multiplies the duration, capping at max_duration if it exists. */ void mult_duration( double dur, bool alert = false ); diff --git a/src/enums.h b/src/enums.h index 0c9ed7e86124a..e27f5b0d34090 100644 --- a/src/enums.h +++ b/src/enums.h @@ -312,11 +312,55 @@ inline bool operator<( const tripoint &a, const tripoint &b ) return false; } +struct rectangle { + point p_min; + point p_max; + constexpr rectangle() = default; + constexpr rectangle( const point &P_MIN, const point &P_MAX ) : p_min( P_MIN ), p_max( P_MAX ) {} +}; + +struct box { + tripoint p_min; + tripoint p_max; + constexpr box() = default; + constexpr box( const tripoint &P_MIN, const tripoint &P_MAX ) : p_min( P_MIN ), p_max( P_MAX ) {} + explicit constexpr box( const rectangle &R, int Z1, int Z2 ) : + p_min( tripoint( R.p_min, Z1 ) ), p_max( tripoint( R.p_max, Z2 ) ) {} +}; + static constexpr tripoint tripoint_min { INT_MIN, INT_MIN, INT_MIN }; static constexpr tripoint tripoint_zero { 0, 0, 0 }; +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 box box_zero( tripoint_zero, tripoint_zero ); +static constexpr rectangle rectangle_zero( point_zero, point_zero ); + +/** Checks if given tripoint is inbounds of given min and max tripoints using given clearance **/ +inline bool generic_inbounds( const tripoint &p, + const box &boundaries, + const box &clearance = box_zero ) +{ + return p.x >= boundaries.p_min.x + clearance.p_min.x && + p.x <= boundaries.p_max.x - clearance.p_max.x && + p.y >= boundaries.p_min.y + clearance.p_min.y && + p.y <= boundaries.p_max.y - clearance.p_max.y && + p.z >= boundaries.p_min.z + clearance.p_min.z && + p.z <= boundaries.p_max.z - clearance.p_max.z; +} + +/** Checks if given point is inbounds of given min and max point using given clearance **/ +inline bool generic_inbounds( const point &p, + const rectangle &boundaries, + const rectangle &clearance = rectangle_zero ) +{ + return generic_inbounds( tripoint( p, 0 ), + box( boundaries, 0, 0 ), + box( clearance, 0, 0 ) ); +} struct sphere { int radius = 0; diff --git a/src/event.cpp b/src/event.cpp index 9e96fbc95e970..f8a5238dfbac1 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -319,9 +319,9 @@ void event_manager::add( const event_type type, const time_point &when, const in } void event_manager::add( const event_type type, const time_point &when, const int faction_id, - const tripoint center ) + const tripoint &where ) { - events.emplace_back( type, when, faction_id, center ); + events.emplace_back( type, when, faction_id, where ); } bool event_manager::queued( const event_type type ) const diff --git a/src/event.h b/src/event.h index 29aaf797de166..4c03b01742412 100644 --- a/src/event.h +++ b/src/event.h @@ -33,7 +33,7 @@ struct event { /** 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 map_point ); + event( event_type e_t, const time_point &w, int f_id, tripoint p ); void actualize(); // When the time runs out void per_turn(); // Every turn @@ -54,7 +54,7 @@ class event_manager * 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, tripoint where ); + 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` diff --git a/src/explosion.cpp b/src/explosion.cpp index bd0589325de96..ef7ae5dbb6782 100644 --- a/src/explosion.cpp +++ b/src/explosion.cpp @@ -12,6 +12,7 @@ #include "game.h" #include "item_factory.h" #include "json.h" +#include "math_defines.h" #include "map.h" #include "messages.h" #include "output.h" @@ -23,9 +24,6 @@ #include "vehicle.h" #include "vpart_position.h" -// For M_PI -#define _USE_MATH_DEFINES -#include #include #include @@ -321,7 +319,9 @@ void game::explosion( const tripoint &p, const explosion_data &ex ) int qty = shr.casing_mass * std::min( 1.0, shr.recovery / 100.0 ) / to_gram( fragment_drop->weight ); // Truncate to a random selection - std::random_shuffle( tiles.begin(), tiles.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( tiles.begin(), tiles.end(), eng ); tiles.resize( std::min( int( tiles.size() ), qty ) ); for( const auto &e : tiles ) { diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index c7d346415c946..9d9e0a39425fa 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -151,7 +151,7 @@ void om_range_mark( const tripoint &origin, int range, bool add_notes = true, const std::string &message = "Y;X: MAX RANGE" ); void om_line_mark( const tripoint &origin, const tripoint &dest, bool add_notes = true, const std::string &message = "R;X: PATH" ); -std::vector om_companion_path( const tripoint &start, int range = 90, +std::vector om_companion_path( const tripoint &start, int range_start = 90, bool bounce = true ); /** * Can be used to calculate total trip time for an NPC mission or just the traveling portion. @@ -181,15 +181,16 @@ std::string camp_trip_description( time_duration total_time, time_duration worki std::string om_upgrade_description( const std::string &bldg ); /// Returns the description of a camp crafting options. converts fire charges to charcoal, /// allows dark crafting -std::string om_craft_description( const std::string &bldg ); +std::string om_craft_description( const std::string &itm ); /// Provides a "guess" for some of the things your gatherers will return with to upgrade the camp std::string om_gathering_description( npc &p, const std::string &bldg ); /// Returns a string for the number of plants that are harvestable, plots ready to plany, and /// ground that needs tilling -std::string camp_farm_description( const tripoint &omt_pos, size_t &plots, farm_ops operation ); +std::string camp_farm_description( const tripoint &omt_pos, size_t &plots_count, + farm_ops operation ); /// Returns a string for display of the selected car so you don't chop shop the wrong one std::string camp_car_description( vehicle *car ); -std::string camp_farm_act( const tripoint &omt_tgt, size_t &plots, farm_ops op ); +std::string camp_farm_act( const tripoint &omt_pos, size_t &plots_count, farm_ops operation ); /** * spawn items or corpses based on search attempts @@ -300,6 +301,7 @@ void talk_function::camp_missions( mission_data &mission_key, npc &p ) if( !bcp ) { return; } + g->u.camps.insert( bcp->camp_pos() ); const std::string camp_ctr = "camp"; const std::string base_dir = "[B]"; @@ -1015,7 +1017,8 @@ bool basecamp::handle_mission( npc &p, const std::string &miss_id, const std::st craft_construction( p, miss_id, miss_dir, "BASE", "_faction_camp_crafting_" ); if( miss_id == base_dir + " (Finish) Crafting" ) { const std::string msg = _( "returns to you with something..." ); - mission_return( p, "_faction_camp_crafting", 15_minutes, true, msg, "construction", 2 ); + mission_return( p, "_faction_camp_crafting_" + miss_dir, 15_minutes, true, msg, + "construction", 2 ); } for( const std::string &dir : directions ) { @@ -1030,23 +1033,23 @@ bool basecamp::handle_mission( npc &p, const std::string &miss_id, const std::st craft_construction( p, miss_id, miss_dir, "FARM", "_faction_exp_farm_crafting_" ); if( miss_id == miss_dir + " (Finish) Crafting" && miss_dir != base_dir ) { const std::string msg = _( "returns from your farm with something..." ); - mission_return( p, "_faction_exp_farm_crafting", 15_minutes, true, msg, + mission_return( p, "_faction_exp_farm_crafting_" + miss_dir, 15_minutes, true, msg, "construction", 2 ); } craft_construction( p, miss_id, miss_dir, "COOK", "_faction_exp_kitchen_cooking_" ); if( miss_id == miss_dir + " (Finish) Cooking" ) { const std::string msg = _( "returns from your kitchen with something..." ); - mission_return( p, "_faction_exp_kitchen_crafting", 15_minutes, true, msg, - "cooking", 2 ); + mission_return( p, "_faction_exp_kitchen_cooking_" + miss_dir, 15_minutes, + true, msg, "cooking", 2 ); } craft_construction( p, miss_id, miss_dir, "SMITH", "_faction_exp_blacksmith_crafting_" ); if( miss_id == miss_dir + " (Finish) Smithing" ) { const std::string msg = _( "returns from your blacksmith shop with something..." ); - mission_return( p, "_faction_exp_blacksmith_crafting", 15_minutes, true, msg, - "fabrication", 2 ); + mission_return( p, "_faction_exp_blacksmith_crafting_" + miss_dir, 15_minutes, + true, msg, "fabrication", 2 ); } if( miss_id == miss_dir + " Plow Fields" ) { @@ -1072,7 +1075,8 @@ bool basecamp::handle_mission( npc &p, const std::string &miss_id, const std::st start_garage_chop( p, miss_dir, omt_trg ); } else if( miss_id == miss_dir + " (Finish) Chop Shop" ) { const std::string msg = _( "returns from your garage..." ); - mission_return( p, "_faction_exp_chop_shop", 5_days, true, msg, "mechanics", 2 ); + mission_return( p, "_faction_exp_chop_shop_" + miss_dir, 5_days, true, msg, + "mechanics", 2 ); } break; } @@ -1441,11 +1445,11 @@ void basecamp::craft_construction( npc &p, const std::string &cur_id, const std: const std::string &type, const std::string &miss_id ) { std::map recipes = recipe_deck( type ); - for( auto it = recipes.begin(); it != recipes.end(); ++it ) { - if( cur_id != cur_dir + it->first ) { + for( auto &r : recipes ) { + if( cur_id != cur_dir + r.first ) { continue; } - const recipe &making = recipe_id( it->second ).obj(); + const recipe &making = recipe_id( r.second ).obj(); inventory total_inv = g->u.crafting_inventory(); if( !making.requirements().can_make_with_inventory( total_inv, 1 ) ) { @@ -1498,11 +1502,7 @@ static std::pair farm_action( const tripoint &omt_tgt, farm }; const auto is_unplowed = []( const tripoint & pos, tinymap & farm_map ) { const ter_id &farm_ter = farm_map.ter( pos ); - return farm_ter == t_dirt || farm_ter == t_grass || - farm_ter == ter_str_id( "t_grass_long" ) || - farm_ter == ter_str_id( "t_grass_tall" ) || - farm_ter == ter_str_id( "t_grass_tall" ) || - farm_ter == ter_str_id( "t_grass_dead" ) ; + return farm_ter->has_flag( "PLOWABLE" ); }; std::set plant_names; @@ -1544,7 +1544,7 @@ static std::pair farm_action( const tripoint &omt_tgt, farm seed_inv.push_back( tmp_seed ); } } - used_seed.front().set_age( 0 ); + used_seed.front().set_age( 0_turns ); farm_map.add_item_or_charges( pos, used_seed.front() ); farm_map.set( pos, t_dirt, f_plant_seed ); } @@ -1619,9 +1619,8 @@ void basecamp::start_farm_op( npc &p, const std::string &dir, const tripoint &om popup( _( "You have no additional seeds to give your companions..." ) ); return; } - std::vector plant_these; - plant_these = talk_function::individual_mission_give_equipment( seed_inv, - _( "Which seeds do you wish to have planted?" ) ); + std::vector plant_these = talk_function::individual_mission_give_equipment( seed_inv, + _( "Which seeds do you wish to have planted?" ) ); size_t seed_cnt = 0; for( item *seeds : plant_these ) { seed_cnt += seeds->count(); @@ -1645,7 +1644,7 @@ void basecamp::start_farm_op( npc &p, const std::string &dir, const tripoint &om } } -bool basecamp::start_garage_chop( npc &p, const std::string dir, const tripoint &omt_tgt ) +bool basecamp::start_garage_chop( npc &p, const std::string &dir, const tripoint &omt_tgt ) { editmap edit; vehicle *car = edit.mapgen_veh_query( omt_tgt ); @@ -1814,9 +1813,9 @@ bool basecamp::menial_return( npc &p ) tripoint p_ammo = sort_points[ static_cast( sort_pt_ids::ammo ) ]; //This prevents the loop from getting stuck on the piles in the open - for( size_t spi = 0; spi < sort_points.size() ; spi++ ) { - if( g->m.furn( sort_points[ spi ] ) == f_null ) { - g->m.furn_set( sort_points[ spi ], f_ash ); + for( tripoint &sort_point : sort_points ) { + if( g->m.furn( sort_point ) == f_null ) { + g->m.furn_set( sort_point, f_ash ); } } for( const tripoint &tmp : g->m.points_in_radius( g->u.pos(), 72 ) ) { @@ -1858,9 +1857,9 @@ bool basecamp::menial_return( npc &p ) g->m.i_clear( tmp ); } //Undo our hack! - for( size_t spi = 0; spi < sort_points.size() ; spi++ ) { - if( g->m.furn( sort_points[ spi ] ) == f_ash ) { - g->m.furn_set( sort_points[ spi ], f_null ); + for( tripoint &sort_point : sort_points ) { + if( g->m.furn( sort_point ) == f_ash ) { + g->m.furn_set( sort_point, f_null ); } } return true; @@ -1958,7 +1957,7 @@ void basecamp::fortifications_return( npc &p ) if( om_i == "forest_thick" ) { om_i = "forest"; } - edit.mapgen_set( om_i, pt, false ); + edit.mapgen_set( om_i, pt, 0, false ); } } //Add fences @@ -2527,10 +2526,10 @@ mass_volume om_harvest_itm( npc_ptr comp, const tripoint &omt_tgt, int chance, b { tinymap target_bay; target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); - units::mass harvested_m = 0; - units::volume harvested_v = 0; - units::mass total_m = 0; - units::volume total_v = 0; + units::mass harvested_m = 0_gram; + units::volume harvested_v = 0_ml; + units::mass total_m = 0_gram; + units::volume total_v = 0_ml; tripoint mapmin = tripoint( 0, 0, omt_tgt.z ); tripoint mapmax = tripoint( 2 * SEEX - 1, 2 * SEEY - 1, omt_tgt.z ); for( const tripoint &p : target_bay.points_in_rectangle( mapmin, mapmax ) ) { @@ -2747,8 +2746,8 @@ int om_carry_weight_to_trips( units::mass mass, units::volume volume, int om_carry_weight_to_trips( const std::vector &itms, npc_ptr comp ) { - units::mass total_m = 0; - units::volume total_v = 0; + units::mass total_m = 0_gram; + units::volume total_v = 0_ml; for( auto &i : itms ) { total_m += i->weight( true ); total_v += i->volume( true ); @@ -3100,20 +3099,21 @@ std::string om_gathering_description( npc &p, const std::string &bldg ) return output; } -std::string camp_farm_description( const tripoint &omt_tgt, size_t &plots_cnt, farm_ops op ) +std::string camp_farm_description( const tripoint &omt_pos, size_t &plots_count, + farm_ops operation ) { - std::pair farm_data = farm_action( omt_tgt, op ); + std::pair farm_data = farm_action( omt_pos, operation ); std::string entry; - plots_cnt = farm_data.first; - switch( op ) { + plots_count = farm_data.first; + switch( operation ) { case farm_ops::harvest: - entry += _( "Harvestable: " ) + to_string( plots_cnt ) + " \n" + farm_data.second; + entry += _( "Harvestable: " ) + to_string( plots_count ) + " \n" + farm_data.second; break; case farm_ops::plant: - entry += _( "Ready for Planting: " ) + to_string( plots_cnt ) + " \n"; + entry += _( "Ready for Planting: " ) + to_string( plots_count ) + " \n"; break; case farm_ops::plow: - entry += _( "Needs Plowing: " ) + to_string( plots_cnt ) + " \n"; + entry += _( "Needs Plowing: " ) + to_string( plots_count ) + " \n"; break; default: debugmsg( "Farm operations called with no operation" ); @@ -3136,11 +3136,11 @@ std::string camp_car_description( vehicle *car ) } std::map fuels = car->fuels_left(); entry += _( "---- Fuel Storage & Battery ----\n" ); - for( std::map::iterator it = fuels.begin(); it != fuels.end(); ++it ) { - std::string fuel_entry = string_format( "%d/%d", car->fuel_left( it->first ), - car->fuel_capacity( it->first ) ); - entry += string_format( ">%s:%*s\n", item( it->first ).tname(), - 33 - item( it->first ).tname().length(), fuel_entry ); + for( auto &fuel : fuels ) { + std::string fuel_entry = string_format( "%d/%d", car->fuel_left( fuel.first ), + car->fuel_capacity( fuel.first ) ); + entry += string_format( ">%s:%*s\n", item( fuel.first ).tname(), + 33 - item( fuel.first ).tname().length(), fuel_entry ); } for( auto &pt : car->parts ) { if( pt.is_battery() ) { diff --git a/src/faction_camp.h b/src/faction_camp.h index 92d815a6713c8..50695f69e0593 100644 --- a/src/faction_camp.h +++ b/src/faction_camp.h @@ -58,7 +58,7 @@ void recover_camp( npc & ); void remove_overseer( npc & ); void draw_camp_tabs( const catacurses::window &win, camp_tab_mode cur_tab, - std::vector> &mission_key_vectors ); + std::vector> &entries ); std::string name_mission_tabs( npc &p, const std::string &id, const std::string &cur_title, camp_tab_mode cur_tab ); diff --git a/src/field.cpp b/src/field.cpp index 33c5edd3d5ae9..b2a1569a9ac82 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -46,9 +46,7 @@ const efftype_id effect_webbed( "webbed" ); static const trait_id trait_ELECTRORECEPTORS( "ELECTRORECEPTORS" ); static const trait_id trait_M_SKIN2( "M_SKIN2" ); - -#define INBOUNDS(x, y) \ - (x >= 0 && x < SEEX * my_MAPSIZE && y >= 0 && y < SEEY * my_MAPSIZE) +static const trait_id trait_M_SKIN3( "M_SKIN3" ); /** ID, {name}, symbol, priority, {color}, {transparency}, {dangerous}, half-life, {move_cost}, phase_id (of matter), accelerated_decay (decay outside of reality bubble) **/ const std::array fieldlist = { { @@ -479,7 +477,7 @@ field_id field_from_ident( const std::string &field_ident ) return fd_null; } -void map::create_burnproducts( const tripoint p, const item &fuel, const units::mass &burned_mass ) +void map::create_burnproducts( const tripoint &p, const item &fuel, const units::mass &burned_mass ) { std::vector all_mats = fuel.made_of(); if( all_mats.empty() ) { @@ -614,7 +612,7 @@ bool map::process_fields_in_submap( submap *const current_submap, const auto spread_gas = [this, &get_neighbors]( field_entry & cur, const tripoint & p, field_id curtype, - int percent_spread, const time_duration outdoor_age_speedup ) { + int percent_spread, const time_duration & outdoor_age_speedup ) { // Reset nearby scents to zero for( const tripoint &tmp : points_in_radius( p, 1 ) ) { g->scent.set( tmp, 0 ); @@ -1081,8 +1079,8 @@ bool map::process_fields_in_submap( submap *const current_submap, if( cur.getFieldAge() < -500_minutes ) { maximum_density = 3; } else { - for( size_t i = 0; i < neighs.size(); i++ ) { - if( neighs[i].get_field().findField( fd_fire ) != nullptr ) { + for( auto &neigh : neighs ) { + if( neigh.get_field().findField( fd_fire ) != nullptr ) { adjacent_fires++; } } @@ -1682,8 +1680,8 @@ void map::player_in_field( player &u ) // Iterate through all field effects on this tile. // Do not remove the field with removeField, instead set it's density to 0. It will be removed // later by the field processing, which will also adjust field_count accordingly. - for( auto field_list_it = curfield.begin(); field_list_it != curfield.end(); ++field_list_it ) { - field_entry &cur = field_list_it->second; + for( auto &field_list_it : curfield ) { + field_entry &cur = field_list_it.second; if( !cur.isAlive() ) { continue; } @@ -1802,9 +1800,8 @@ void map::player_in_field( player &u ) break; case fd_fire: - if( u.has_active_bionic( bionic_id( "bio_heatsink" ) ) || u.is_wearing( "rm13_armor_on" ) || - u.has_trait( trait_M_SKIN2 ) ) { - //heatsink, suit, or internal restructuring prevents ALL fire damage. + if( u.has_active_bionic( bionic_id( "bio_heatsink" ) ) || u.is_wearing( "rm13_armor_on" ) ) { + //heatsink or suit prevents ALL fire damage. break; } //Burn the player. Less so if you are in a car or ON a car. @@ -1980,8 +1977,8 @@ void map::player_in_field( player &u ) if( inside ) { break; //fireballs can't touch you inside a car. } - if( !u.has_active_bionic( bionic_id( "bio_heatsink" ) ) && !u.is_wearing( "rm13_armor_on" ) && - !u.has_trait( trait_M_SKIN2 ) ) { //heatsink, suit, or Mycus fireproofing stops fire. + if( !u.has_active_bionic( bionic_id( "bio_heatsink" ) ) && + !u.is_wearing( "rm13_armor_on" ) ) { //heatsink or suit stops fire. u.add_msg_player_or_npc( m_bad, _( "You're torched by flames!" ), _( " is torched by flames!" ) ); u.deal_damage( nullptr, bp_leg_l, damage_instance( DT_HEAT, rng( 2, 6 ) ) ); @@ -2093,7 +2090,9 @@ void map::player_in_field( player &u ) case fd_incendiary: // Mysterious incendiary substance melts you horribly. - if( u.has_trait( trait_M_SKIN2 ) || cur.getFieldDensity() == 1 ) { + if( u.has_trait( trait_M_SKIN2 ) || + u.has_trait( trait_M_SKIN3 ) || + cur.getFieldDensity() == 1 ) { u.add_msg_player_or_npc( m_bad, _( "The incendiary burns you!" ), _( "The incendiary burns !" ) ); u.hurtall( rng( 1, 3 ), nullptr ); @@ -2162,8 +2161,8 @@ void map::monster_in_field( monster &z ) // Iterate through all field effects on this tile. // Do not remove the field with removeField, instead set it's density to 0. It will be removed // later by the field processing, which will also adjust field_count accordingly. - for( auto field_list_it = curfield.begin(); field_list_it != curfield.end(); ++field_list_it ) { - field_entry &cur = field_list_it->second; + for( auto &field_list_it : curfield ) { + field_entry &cur = field_list_it.second; if( !cur.isAlive() ) { continue; } @@ -2488,7 +2487,7 @@ int field_entry::setFieldDensity( const int new_density ) return density = std::max( std::min( new_density, MAX_FIELD_DENSITY ), 1 ); } -time_duration field_entry::setFieldAge( const time_duration new_age ) +time_duration field_entry::setFieldAge( const time_duration &new_age ) { return age = new_age; } @@ -2535,7 +2534,7 @@ If you wish to modify an already existing field use findField and modify the res Density defaults to 1, and age to 0 (permanent) if not specified. */ bool field::addField( const field_id field_to_add, const int new_density, - const time_duration new_age ) + const time_duration &new_age ) { auto it = field_list.find( field_to_add ); if( fieldlist[field_to_add].priority >= fieldlist[draw_symbol].priority ) { @@ -2647,7 +2646,7 @@ void map::emit_field( const tripoint &pos, const emit_id &src, float mul ) } } -void map::propagate_field( const tripoint ¢er, field_id fid, int amount, +void map::propagate_field( const tripoint ¢er, const field_id type, int amount, int max_density ) { using gas_blast = std::pair; @@ -2655,7 +2654,7 @@ void map::propagate_field( const tripoint ¢er, field_id fid, int amount, std::set closed; open.push( { 0.0f, center } ); - const bool not_gas = fieldlist[ fid ].phase != GAS; + const bool not_gas = fieldlist[ type ].phase != GAS; while( amount > 0 && !open.empty() ) { if( closed.count( open.top().second ) ) { @@ -2666,9 +2665,9 @@ void map::propagate_field( const tripoint ¢er, field_id fid, int amount, // All points with equal gas density should propagate at the same time std::list gas_front; gas_front.push_back( open.top() ); - int cur_intensity = get_field_strength( open.top().second, fid ); + int cur_intensity = get_field_strength( open.top().second, type ); open.pop(); - while( !open.empty() && get_field_strength( open.top().second, fid ) == cur_intensity ) { + while( !open.empty() && get_field_strength( open.top().second, type ) == cur_intensity ) { if( closed.count( open.top().second ) == 0 ) { gas_front.push_back( open.top() ); } @@ -2681,10 +2680,10 @@ void map::propagate_field( const tripoint ¢er, field_id fid, int amount, while( amount > 0 && !gas_front.empty() ) { auto gp = random_entry_removed( gas_front ); closed.insert( gp.second ); - int cur_strength = get_field_strength( gp.second, fid ); + int cur_strength = get_field_strength( gp.second, type ); if( cur_strength < max_density ) { int bonus = std::min( max_density - cur_strength, increment ); - adjust_field_strength( gp.second, fid, bonus ); + adjust_field_strength( gp.second, type, bonus ); amount -= bonus; } else { amount--; diff --git a/src/field.h b/src/field.h index 7b565ba3bb7bc..63e3e0766e7e8 100644 --- a/src/field.h +++ b/src/field.h @@ -132,7 +132,7 @@ class field_entry { public: field_entry() : type( fd_null ), density( 1 ), age( 0_turns ), is_alive( false ) { } - field_entry( const field_id t, const int d, const time_duration a ) : type( t ), density( d ), + field_entry( const field_id t, const int d, const time_duration &a ) : type( t ), density( d ), age( a ), is_alive( true ) { } nc_color color() const; @@ -160,10 +160,10 @@ class field_entry time_duration getFieldAge() const; /// Sets @ref age to the given value. /// @returns New value of @ref age. - time_duration setFieldAge( time_duration new_age ); + time_duration setFieldAge( const time_duration &new_age ); /// Adds given value to @ref age. /// @returns New value of @ref age. - time_duration mod_age( const time_duration mod ) { + time_duration mod_age( const time_duration &mod ) { return setFieldAge( getFieldAge() + mod ); } @@ -230,7 +230,7 @@ class field * The density is added to an existing field entry, but the age is only used for newly added entries. * @return false if the field_id already exists, true otherwise. */ - bool addField( field_id field_to_add, int new_density = 1, time_duration new_age = 0_turns ); + bool addField( field_id field_to_add, int new_density = 1, const time_duration &new_age = 0_turns ); /** * Removes the field entry with a type equal to the field_id parameter. diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 9370efc17996b..53fe066b06af6 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -268,7 +268,7 @@ bool name_contains( const dirent &entry, const std::string &match, const bool at // Return every file at root_path matching predicate. // // If root_path is empty, search the current working directory. -// If recurse is true, search breadth-first into the directory hierarchy. +// If recursive_search is true, search breadth-first into the directory hierarchy. // // Results are ordered depth-first with directories searched in lexically order. Furthermore, // regular files at each level are also ordered lexically by file name. @@ -276,7 +276,8 @@ bool name_contains( const dirent &entry, const std::string &match, const bool at // Files ending in ~ are excluded. //-------------------------------------------------------------------------------------------------- template -std::vector find_file_if_bfs( const std::string &root_path, const bool recurse, +std::vector find_file_if_bfs( const std::string &root_path, + const bool recursive_search, Predicate predicate ) { std::deque directories {!root_path.empty() ? root_path : "."}; @@ -302,9 +303,9 @@ std::vector find_file_if_bfs( const std::string &root_path, const b return; } - // add sub directories to recurse if requested + // add sub directories to recursive_search if requested const auto is_dir = is_directory( entry, full_path ); - if( recurse && is_dir ) { + if( recursive_search && is_dir ) { directories.emplace_back( full_path ); } @@ -329,9 +330,9 @@ std::vector find_file_if_bfs( const std::string &root_path, const b //-------------------------------------------------------------------------------------------------- std::vector get_files_from_path( const std::string &pattern, - const std::string &root_path, const bool recurse, const bool match_extension ) + const std::string &root_path, const bool recursive_search, const bool match_extension ) { - return find_file_if_bfs( root_path, recurse, [&]( const dirent & entry, bool ) { + return find_file_if_bfs( root_path, recursive_search, [&]( const dirent & entry, bool ) { return name_contains( entry, pattern, match_extension ); } ); } @@ -340,17 +341,17 @@ std::vector get_files_from_path( const std::string &pattern, * Find directories which containing pattern. * @param pattern Search pattern. * @param root_path Search root. - * @param recurse Be recurse or not. + * @param recursive_search Be recurse or not. * @return vector or directories without pattern filename at end. */ std::vector get_directories_with( const std::string &pattern, - const std::string &root_path, const bool recurse ) + const std::string &root_path, const bool recursive_search ) { if( pattern.empty() ) { return std::vector(); } - auto files = find_file_if_bfs( root_path, recurse, [&]( const dirent & entry, bool ) { + auto files = find_file_if_bfs( root_path, recursive_search, [&]( const dirent & entry, bool ) { return name_contains( entry, pattern, true ); } ); @@ -368,11 +369,11 @@ std::vector get_directories_with( const std::string &pattern, * Find directories which containing pattern. * @param patterns Search patterns. * @param root_path Search root. - * @param recurse Be recurse or not. + * @param recursive_search Be recurse or not. * @return vector or directories without pattern filename at end. */ std::vector get_directories_with( const std::vector &patterns, - const std::string &root_path, const bool recurse ) + const std::string &root_path, const bool recursive_search ) { if( patterns.empty() ) { return std::vector(); @@ -381,7 +382,7 @@ std::vector get_directories_with( const std::vector &p const auto ext_beg = std::begin( patterns ); const auto ext_end = std::end( patterns ); - auto files = find_file_if_bfs( root_path, recurse, [&]( const dirent & entry, bool ) { + auto files = find_file_if_bfs( root_path, recursive_search, [&]( const dirent & entry, bool ) { return std::any_of( ext_beg, ext_end, [&]( const std::string & ext ) { return name_contains( entry, ext, true ); } ); diff --git a/src/filesystem.h b/src/filesystem.h index 4e793f27bd362..58a93b6d1ef03 100644 --- a/src/filesystem.h +++ b/src/filesystem.h @@ -47,7 +47,7 @@ std::vector get_directories_with( const std::vector &p const std::string &root_path = "", bool recursive_search = false ); std::vector get_directories_with( const std::string &pattern, - const std::string &root_path = "", const bool recurse = false ); + const std::string &root_path = "", const bool recursive_search = false ); bool copy_file( const std::string &source_path, const std::string &dest_path ); diff --git a/src/fire.h b/src/fire.h index 2c464b8601704..ea919a4bd4b31 100644 --- a/src/fire.h +++ b/src/fire.h @@ -16,7 +16,7 @@ * this turn. */ struct fire_data { - fire_data() {} + fire_data() = default; fire_data( const fire_data & ) = default; fire_data( int intensity, bool is_contained = false ) : fire_intensity( intensity ), contained( is_contained ) diff --git a/src/fungal_effects.cpp b/src/fungal_effects.cpp index 268d62ee2fba3..ac18444c285d5 100644 --- a/src/fungal_effects.cpp +++ b/src/fungal_effects.cpp @@ -25,11 +25,11 @@ fungal_effects::fungal_effects( game &g, map &mp ) { } -void fungal_effects::fungalize( const tripoint &sporep, Creature *origin, double spore_chance ) +void fungal_effects::fungalize( const tripoint &p, Creature *origin, double spore_chance ) { - if( monster *const mon_ptr = g->critter_at( sporep ) ) { + if( monster *const mon_ptr = g->critter_at( p ) ) { monster &critter = *mon_ptr; - if( gm.u.sees( sporep ) && + if( gm.u.sees( p ) && !critter.type->in_species( FUNGUS ) ) { add_msg( _( "The %s is covered in tiny spores!" ), critter.name().c_str() ); @@ -39,7 +39,7 @@ void fungal_effects::fungalize( const tripoint &sporep, Creature *origin, double critter.add_effect( effect_stunned, rng( 1_turns, 3_turns ) ); critter.apply_damage( origin, bp_torso, rng( 25, 50 ) ); } - } else if( gm.u.pos() == sporep ) { + } else if( gm.u.pos() == p ) { player &pl = gm.u; // TODO: Make this accept NPCs when they understand fungals ///\EFFECT_DEX increases chance of knocking fungal spores away with your TAIL_CATTLE @@ -62,7 +62,7 @@ void fungal_effects::fungalize( const tripoint &sporep, Creature *origin, double add_msg( m_warning, _( "You're covered in tiny spores!" ) ); } } else if( gm.num_creatures() < 250 && x_in_y( spore_chance, 1.0 ) ) { // Spawn a spore - if( monster *const spore = gm.summon_mon( mon_spore, sporep ) ) { + if( monster *const spore = gm.summon_mon( mon_spore, p ) ) { monster *origin_mon = dynamic_cast( origin ); if( origin_mon != nullptr ) { spore->make_ally( *origin_mon ); @@ -72,14 +72,14 @@ void fungal_effects::fungalize( const tripoint &sporep, Creature *origin, double } } } else { - spread_fungus( sporep ); + spread_fungus( p ); } } -void fungal_effects::create_spores( const tripoint &p, Creature *source ) +void fungal_effects::create_spores( const tripoint &p, Creature *origin ) { for( const tripoint &tmp : g->m.points_in_radius( p, 1 ) ) { - fungalize( tmp, source, 0.25 ); + fungalize( tmp, origin, 0.25 ); } } diff --git a/src/fungal_effects.h b/src/fungal_effects.h index d4d68d38cc182..5f68eea0bbf95 100644 --- a/src/fungal_effects.h +++ b/src/fungal_effects.h @@ -20,10 +20,10 @@ class fungal_effects bool marlossify( const tripoint &p ); /** Makes spores at p. source is used for kill counting */ - void create_spores( const tripoint &p, Creature *source = nullptr ); - void fungalize( const tripoint &p, Creature *source = nullptr, double spore_chance = 0.0 ); + void create_spores( const tripoint &p, Creature *origin = nullptr ); + void fungalize( const tripoint &p, Creature *origin = nullptr, double spore_chance = 0.0 ); bool spread_fungus( const tripoint &p ); }; -#endif \ No newline at end of file +#endif diff --git a/src/game.cpp b/src/game.cpp index ab1ebd98da5be..35cd841dd65dd 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -63,6 +63,7 @@ #include "map_iterator.h" #include "mapbuffer.h" #include "mapdata.h" +#include "map_extras.h" #include "mapsharing.h" #include "martialarts.h" #include "messages.h" @@ -203,7 +204,6 @@ static const trait_id trait_VINES2( "VINES2" ); static const trait_id trait_VINES3( "VINES3" ); static const trait_id trait_BURROW( "BURROW" ); -void advanced_inv(); // player_activity.cpp void intro(); #ifdef __ANDROID__ @@ -663,6 +663,10 @@ void game::init_ui( const bool resized ) w_messages = w_messages_long; } + w_location_wider = w_location_wider_ptr = catacurses::newwin( locH, locW + 10, _y + locY, + _x + locX - 7 ); + werase( w_location_wider ); + w_location = w_location_ptr = catacurses::newwin( locH, locW, _y + locY, _x + locX ); werase( w_location ); @@ -851,8 +855,8 @@ bool game::start_game() } tripoint lev = omt_to_sm_copy( omtstart ); // The player is centered in the map, but lev[xyz] refers to the top left point of the map - lev.x -= MAPSIZE / 2; - lev.y -= MAPSIZE / 2; + lev.x -= HALF_MAPSIZE; + lev.y -= HALF_MAPSIZE; load_map( lev ); m.build_map_cache( get_levz() ); @@ -869,7 +873,7 @@ bool game::start_game() u.stamina = u.get_stamina_max(); temperature = SPRING_TEMPERATURE; update_weather(); - u.next_climate_control_check = calendar::before_time_starts; // Force recheck at startup + u.next_climate_control_check = calendar::before_time_starts; // Force recheck at startup u.last_climate_control_ret = false; //Reset character safe mode/pickup rules @@ -918,7 +922,7 @@ bool game::start_game() if( scen->has_flag( "BAD_DAY" ) ) { u.add_effect( effect_flu, 1000_minutes ); u.add_effect( effect_drunk, 270_minutes ); - u.add_morale( MORALE_FEELING_BAD, -100, -100, 5_minutes, 5_minutes ); + u.add_morale( MORALE_FEELING_BAD, -100, -100, 50_minutes, 50_minutes ); } if( scen->has_flag( "HELI_CRASH" ) ) { start_loc.handle_heli_crash( u ); @@ -973,7 +977,7 @@ bool game::start_game() //Make any nearby overmap npcs active, and put them in the right location. void game::load_npcs() { - const int radius = int( MAPSIZE / 2 ) - 1; + const int radius = HALF_MAPSIZE - 1; // uses submap coordinates std::vector> just_added; for( const auto &temp : overmap_buffer.get_npcs_near_player( radius ) ) { @@ -1059,6 +1063,7 @@ void game::create_starting_npcs() //This sets the NPC mission. This NPC remains in the starting location. tmp->mission = NPC_MISSION_SHELTER; tmp->chatbin.first_topic = "TALK_SHELTER"; + tmp->toggle_trait( trait_id( "NPC_STARTING_NPC" ) ); //One random starting NPC mission tmp->add_new_mission( mission::reserve_random( ORIGIN_OPENER_NPC, tmp->global_omt_location(), tmp->getID() ) ); @@ -1379,17 +1384,21 @@ void game::calc_driving_offset( vehicle *veh ) const int light_sight_range = u.sight_range( g_light_level ); int sight = std::max( veh_lumi( *veh ), light_sight_range ); - // velocity at or below this results in no offset at all - static const float min_offset_vel = 10 * 100; - // velocity at or above this results in maximal offset - static const float max_offset_vel = 70 * 100; // The maximal offset will leave at least this many tiles // between the PC and the edge of the main window. static const int border_range = 2; + point max_offset( ( getmaxx( w_terrain ) + 1 ) / 2 - border_range - 1, + ( getmaxy( w_terrain ) + 1 ) / 2 - border_range - 1 ); + + // velocity at or below this results in no offset at all + static const float min_offset_vel = 1 * vehicles::vmiph_per_tile; + // velocity at or above this results in maximal offset + static const float max_offset_vel = std::min( max_offset.y, max_offset.x ) * + vehicles::vmiph_per_tile; float velocity = veh->velocity; rl_vec2d offset = veh->move_vec(); - if( !veh->skidding && std::abs( veh->cruise_velocity - veh->velocity ) < 14 * 100 && - veh->player_in_control( u ) ) { + if( !veh->skidding && veh->player_in_control( u ) && + std::abs( veh->cruise_velocity - veh->velocity ) < 7 * vehicles::vmiph_per_tile ) { // Use the cruise controlled velocity, but only if // it is not too different from the actual velocity. // The actual velocity changes too often (see above slowdown). @@ -1415,8 +1424,6 @@ void game::calc_driving_offset( vehicle *veh ) offset.x /= std::fabs( offset.y ); offset.y = offset.y > 0 ? +1 : -1; } - point max_offset( ( getmaxx( w_terrain ) + 1 ) / 2 - border_range - 1, - ( getmaxy( w_terrain ) + 1 ) / 2 - border_range - 1 ); offset.x *= rel_offset; offset.y *= rel_offset; offset.x *= max_offset.x; @@ -1617,7 +1624,7 @@ bool game::do_turn() const bool in_bubble_z = m.has_zlevels() || sm_loc.z == get_levz(); for( auto &veh : sm->vehicles ) { - veh->idle( in_bubble_z && m.inbounds( in_reality.x, in_reality.y ) ); + veh->idle( in_bubble_z && m.inbounds( in_reality ) ); } } m.process_fields(); @@ -1778,7 +1785,7 @@ bool game::cancel_activity_or_ignore_query( const distraction_type type, const s } if( action == "IGNORE" ) { u.activity.ignore_distraction( type ); - for( auto activity : u.backlog ) { + for( auto &activity : u.backlog ) { activity.ignore_distraction( type ); } } @@ -1793,6 +1800,7 @@ bool game::cancel_activity_query( const std::string &text ) if( query_yn( "%s %s", text.c_str(), u.activity.get_stop_phrase().c_str() ) ) { u.cancel_activity(); + u.resume_backlog_activity(); return true; } return false; @@ -2976,12 +2984,13 @@ void game::debug() _( "Set automove route" ), // 27 _( "Show mutation category levels" ), // 28 _( "Overmap editor" ), // 29 - _( "Draw benchmark (5 seconds)" ), // 30 + _( "Draw benchmark (X seconds)" ), // 30 _( "Teleport - Adjacent overmap" ), // 31 _( "Test trait group" ), // 32 _( "Show debug message" ), // 33 _( "Crash game (test crash handling)" ),// 34 - _( "Quit to Main Menu" ), // 35 + _( "Spawn Map Extra" ), // 35 + _( "Quit to Main Menu" ), // 36 } ); refresh_all(); switch( action ) { @@ -3259,7 +3268,8 @@ void game::debug() set_turn( calendar::turn.years(), to_turns( calendar::year_length() ), _( "Set year to?" ) ); break; case 1: - set_turn( int( season_of_year( calendar::turn ) ), to_turns( calendar::turn.season_length() ), + set_turn( int( season_of_year( calendar::turn ) ), + to_turns( calendar::turn.season_length() ), _( "Set season to? (0 = spring)" ) ); break; case 2: @@ -3288,7 +3298,7 @@ void game::debug() } auto rt = m.route( u.pos(), *dest, u.get_pathfinding_settings(), u.get_path_avoid() ); - if( rt.size() > 0 ) { + if( !rt.empty() ) { u.set_destination( rt ); } else { popup( "Couldn't find path" ); @@ -3306,22 +3316,12 @@ void game::debug() break; case 30: { - // call the draw procedure as many times as possible in 5 seconds - auto start_tick = std::chrono::steady_clock::now(); - auto end_tick = std::chrono::steady_clock::now(); - long difference = 0; - int draw_counter = 0; - while( true ) { - end_tick = std::chrono::steady_clock::now(); - difference = std::chrono::duration_cast( end_tick - start_tick ).count(); - if( difference >= 5000 ) { - break; - } - draw(); - draw_counter++; - } - add_msg( m_info, _( "Drew %d times in %.3f seconds. (%.3f fps average)" ), draw_counter, - difference / 1000.0, 1000.0 * draw_counter / static_cast( difference ) ); + const int ms = string_input_popup() + .title( _( "Enter benchmark length (in milliseconds):" ) ) + .width( 20 ) + .text( "5000" ) + .query_int(); + debug_menu::draw_benchmark( ms ); } break; @@ -3337,7 +3337,32 @@ void game::debug() case 34: std::raise( SIGSEGV ); break; - case 35: + case 35: { + oter_id terrain_type = overmap_buffer.ter( g->u.global_omt_location() ); + + map_extras ex = region_settings_map["default"].region_extras[terrain_type->get_extras()]; + uilist mx_menu; + std::vector mx_str; + for( auto &extra : ex.values ) { + mx_menu.addentry( -1, true, -1, extra.obj ); + mx_str.push_back( extra.obj ); + } + mx_menu.query( false ); + int mx_choice = mx_menu.ret; + if( mx_choice >= 0 && mx_choice < static_cast( mx_str.size() ) ) { + auto func = MapExtras::get_function( mx_str[ mx_choice ] ); + if( func != nullptr ) { + const tripoint where( ui::omap::choose_point() ); + if( where != overmap::invalid_tripoint ) { + tinymap mx_map; + mx_map.load( where.x * 2, where.y * 2, where.z, false ); + func( mx_map, where ); + } + } + } + break; + } + case 36: if( query_yn( _( "Quit without saving? This may cause issues such as duplicated or missing items and vehicles!" ) ) ) { u.moves = 0; @@ -3624,10 +3649,13 @@ void game::draw_sidebar() if( sideStyle ) { werase( w_status2 ); } - u.disp_status( w_status, w_status2 ); + // sidestyle ? narrow = 1 : wider = 0 const catacurses::window &time_window = sideStyle ? w_status2 : w_status; - wmove( time_window, sideStyle ? 0 : 1, sideStyle ? 15 : 41 ); + const catacurses::window &s_window = sideStyle ? w_location : w_location_wider; + werase( s_window ); + u.disp_status( w_status, w_status2 ); + wmove( time_window, 1, sideStyle ? 15 : 43 ); if( u.has_watch() ) { wprintz( time_window, c_white, to_string_time_of_day( calendar::turn ) ); } else if( get_levz() >= 0 ) { @@ -3676,21 +3704,22 @@ void game::draw_sidebar() } const oter_id &cur_ter = overmap_buffer.ter( u.global_omt_location() ); - - werase( w_location ); - mvwprintz( w_location, 0, 0, cur_ter->get_color(), utf8_truncate( cur_ter->get_name(), - getmaxx( w_location ) ) ); + wrefresh( s_window ); + mvwprintz( s_window, 0, 0, c_light_gray, _( "Location: " ) ); + wprintz( s_window, c_white, utf8_truncate( cur_ter->get_name(), getmaxx( s_window ) ) ); if( get_levz() < 0 ) { - mvwprintz( w_location, 1, 0, c_light_gray, _( "Underground" ) ); + mvwprintz( s_window, 1, 0, c_light_gray, _( "Underground" ) ); } else { - mvwprintz( w_location, 1, 0, c_light_gray, _( "Weather:" ) ); - wprintz( w_location, weather_data( weather ).color, " %s", weather_data( weather ).name.c_str() ); + mvwprintz( s_window, 1, 0, c_light_gray, _( "Weather :" ) ); + wprintz( s_window, weather_data( weather ).color, " %s", weather_data( weather ).name.c_str() ); } if( u.has_item_with_flag( "THERMOMETER" ) || u.has_bionic( bionic_id( "bio_meteorologist" ) ) ) { - mvwprintz( w_location, 1, 19, c_light_gray, _( "Temperature:" ) ); - wprintz( w_location, c_white, " %s", print_temperature( get_temperature( u.pos() ) ).c_str() ); + mvwprintz( sideStyle ? w_status2 : s_window, + sideStyle ? 1 : 2, sideStyle ? 32 : 43, c_light_gray, _( "Temp :" ) ); + wprintz( sideStyle ? w_status2 : s_window, + c_white, " %s", print_temperature( get_temperature( u.pos() ) ).c_str() ); } //moon phase display @@ -3704,34 +3733,51 @@ void game::draw_sidebar() sPhase.insert( 5 - ( ( iPhase < 4 ) ? iPhase + 1 : 5 ), "" ); } - - trim_and_print( w_location, 2, 0, 10, c_white, _( "Moon %s" ), sPhase.c_str() ); + int x = sideStyle ? 32 : 43; + int y = sideStyle ? 1 : 0; + mvwprintz( s_window, y, x, c_light_gray, _( "Moon : " ) ); + trim_and_print( s_window, y, x + 7, 11, c_white, sPhase.c_str() ); const auto ll = get_light_level( g->u.fine_detail_vision_mod() ); - mvwprintz( w_location, 2, 22, c_light_gray, "%s ", _( "Lighting:" ) ); - wprintz( w_location, ll.second, ll.first.c_str() ); + mvwprintz( s_window, 2, 0, c_light_gray, "%s ", _( "Lighting:" ) ); + wprintz( s_window, ll.second, ll.first.c_str() ); - wrefresh( w_location ); + // display player noise in sidebar + x = sideStyle ? 32 : 43; + y = sideStyle ? 2 : 1; + if( u.is_deaf() ) { + mvwprintz( s_window, y, x, c_red, _( "Deaf!" ) ); + } else { + mvwprintz( s_window, y, x, c_light_gray, "%s ", _( "Sound: " ) ); + mvwprintz( s_window, y, x + 7, c_yellow, std::to_string( u.volume ) ); + wrefresh( s_window ); + } + u.volume = 0; //Safemode coloring catacurses::window day_window = sideStyle ? w_status2 : w_status; - mvwprintz( day_window, 0, sideStyle ? 0 : 41, c_white, _( "%s, day %d" ), + mvwprintz( time_window, 1, 0, c_white, _( "%s, day %d" ), calendar::name_season( season_of_year( calendar::turn ) ), day_of_season( calendar::turn ) + 1 ); - if( safe_mode != SAFE_MODE_OFF || get_option( "AUTOSAFEMODE" ) ) { - int iPercent = turnssincelastmon * 100 / get_option( "AUTOSAFEMODETURNS" ); - wmove( w_status, sideStyle ? 4 : 1, getmaxx( w_status ) - 4 ); - const std::array letters = {{ "S", "A", "F", "E" }}; - for( int i = 0; i < 4; i++ ) { - nc_color c = ( safe_mode == SAFE_MODE_OFF && iPercent < ( i + 1 ) * 25 ) ? c_red : c_green; - wprintz( w_status, c, letters[i].c_str() ); + + // don't display SAFE mode in vehicle, doesn't apply. + if( !u.in_vehicle ) { + if( safe_mode != SAFE_MODE_OFF || get_option( "AUTOSAFEMODE" ) ) { + int iPercent = turnssincelastmon * 100 / get_option( "AUTOSAFEMODETURNS" ); + wmove( sideStyle ? w_status : w_HP, sideStyle ? 5 : 23, sideStyle ? getmaxx( w_status ) - 4 : 0 ); + const std::array letters = {{ "S", "A", "F", "E" }}; + for( int i = 0; i < 4; i++ ) { + nc_color c = ( safe_mode == SAFE_MODE_OFF && iPercent < ( i + 1 ) * 25 ) ? c_red : c_green; + wprintz( sideStyle ? w_status : w_HP, c, letters[i].c_str() ); + } } } wrefresh( w_status ); if( sideStyle ) { wrefresh( w_status2 ); } - + wrefresh( w_HP ); + wrefresh( s_window ); draw_minimap(); draw_pixel_minimap(); draw_sidebar_messages(); @@ -4093,7 +4139,9 @@ void game::draw_minimap() const int omx = cursx + i; const int omy = cursy + j; if( overmap_buffer.get_horde_size( omx, omy, get_levz() ) >= HORDE_VISIBILITY_SIZE ) { - const tripoint cur_pos {omx, omy, get_levz()}; + const tripoint cur_pos { + omx, omy, get_levz() + }; if( overmap_buffer.seen( omx, omy, get_levz() ) && g->u.overmap_los( cur_pos, sight_points ) ) { mvwputch( w_minimap, j + 3, i + 3, c_green, @@ -4220,10 +4268,11 @@ std::vector game::get_fishable( int distance, const tripoint &fish_po // rather than just somewhere in the vicinity. std::unordered_set visited; - const int min_x = fish_pos.x - distance; - const int max_x = fish_pos.x + distance; - const int min_y = fish_pos.y - distance; - const int max_y = fish_pos.y + 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 ); const auto get_fishable_terrain = [&]( tripoint starting_point, std::unordered_set &fishable_terrain ) { @@ -4239,9 +4288,7 @@ std::vector game::get_fishable( int distance, const tripoint &fish_po } // This point is out of bounds, so bail. - bool in_bounds = current_point.x >= min_x && current_point.x <= max_x && current_point.y >= min_y && - current_point.y <= max_y; - if( !in_bounds ) { + if( !generic_inbounds( current_point, fishing_boundaries ) ) { continue; } @@ -4455,7 +4502,7 @@ int game::mon_info( const catacurses::window &w ) if( safe_mode == SAFE_MODE_ON ) { set_safe_mode( SAFE_MODE_STOP ); } - } else if( get_option( "AUTOSAFEMODE" ) && newseen == 0 ) { // Auto-safe mode + } else if( get_option( "AUTOSAFEMODE" ) && newseen == 0 ) { // Auto-safe mode turnssincelastmon++; if( turnssincelastmon >= get_option( "AUTOSAFEMODETURNS" ) && safe_mode == SAFE_MODE_OFF ) { set_safe_mode( SAFE_MODE_ON ); @@ -5483,7 +5530,16 @@ bool game::swap_critters( Creature &a, Creature &b ) debugmsg( "Tried to swap %s with itself", a.disp_name().c_str() ); return true; } - + if( critter_at( a.pos() ) != &a ) { + debugmsg( "Tried to swap when it would cause a collision between %s and %s.", + b.disp_name().c_str(), critter_at( a.pos() )->disp_name().c_str() ); + return false; + } + if( critter_at( b.pos() ) != &b ) { + debugmsg( "Tried to swap when it would cause a collision between %s and %s.", + a.disp_name().c_str(), critter_at( b.pos() )->disp_name().c_str() ); + return false; + } // Simplify by "sorting" the arguments // Only the first argument can be u // If swapping player/npc with a monster, monster is second @@ -5886,6 +5942,7 @@ bool pet_menu( monster *z ) attach_bag, drop_all, give_items, + play_with_pet, pheromone, milk, rope @@ -5910,6 +5967,10 @@ bool pet_menu( monster *z ) amenu.addentry( attach_bag, true, 'b', _( "Attach bag" ) ); } + if( z->has_flag( MF_BIRDFOOD ) || z->has_flag( MF_CATFOOD ) || z->has_flag( MF_DOGFOOD ) ) { + amenu.addentry( play_with_pet, true, 'y', _( "Play with %s" ), pet_name.c_str() ); + } + if( z->has_effect( effect_tied ) ) { amenu.addentry( rope, true, 'r', _( "Untie" ) ); } else { @@ -5994,7 +6055,7 @@ bool pet_menu( monster *z ) if( attach_bag == choice ) { int pos = g->inv_for_filter( _( "Bag item" ), []( const item & it ) { - return it.is_armor() && it.get_storage() > 0; + return it.is_armor() && it.get_storage() > 0_ml; } ); if( pos == INT_MIN ) { @@ -6057,12 +6118,12 @@ bool pet_menu( monster *z ) } } - if( max_weight <= 0 ) { + if( max_weight <= 0_gram ) { add_msg( _( "%1$s is overburdened. You can't transfer your %2$s." ), pet_name.c_str(), it.tname( 1 ).c_str() ); return true; } - if( max_cap <= 0 ) { + if( max_cap <= 0_ml ) { add_msg( _( "There's no room in your %1$s's %2$s for that, it's too bulky!" ), pet_name.c_str(), it.tname( 1 ).c_str() ); return true; @@ -6078,6 +6139,13 @@ bool pet_menu( monster *z ) return false; } + if( play_with_pet == choice && + query_yn( _( "Spend a few minutes to play with your %s?" ), pet_name.c_str() ) ) { + g->u.assign_activity( activity_id( "ACT_PLAY_WITH_PET" ), rng( 50, 125 ) * 100 ); + g->u.activity.str_values.push_back( pet_name ); + + } + if( pheromone == choice && query_yn( _( "Really kill the zombie slave?" ) ) ) { z->apply_damage( &g->u, bp_torso, 100 ); // damage the monster (and its corpse) @@ -6272,7 +6340,7 @@ const std::string get_fire_fuel_string( const tripoint &examp ) // half-life inclusion int mod = 5 - g->u.get_skill_level( skill_survival ); mod = std::max( mod, 0 ); - if( fire_age >= 0 ) { + if( fire_age >= 0_turns ) { if( mod >= 4 ) { // = survival level 0-1 ss << string_format( _( "It's going to go out soon without extra fuel." ) ); return ss.str(); @@ -6799,7 +6867,8 @@ static void zones_manager_draw_borders( const catacurses::window &w_border, mvwputch( w_border, 0, 0, c_light_gray, LINE_OXXO ); // |^ mvwputch( w_border, 0, width - 1, c_light_gray, LINE_OOXX ); // ^| - mvwputch( w_border, TERMY - iInfoHeight - 1 - VIEW_OFFSET_Y * 2, 0, c_light_gray, LINE_XXXO ); // |- + mvwputch( w_border, TERMY - iInfoHeight - 1 - VIEW_OFFSET_Y * 2, 0, c_light_gray, + LINE_XXXO ); // |- mvwputch( w_border, TERMY - iInfoHeight - 1 - VIEW_OFFSET_Y * 2, width - 1, c_light_gray, LINE_XOXX ); // -| @@ -6976,7 +7045,7 @@ void game::zones_manager() break; } - const auto id = maybe_id.value(); + const zone_type_id &id = maybe_id.value(); auto options = zone_options::create( id ); if( !options->query_at_creation() ) { @@ -6991,7 +7060,7 @@ void game::zones_manager() if( !maybe_name.has_value() ) { break; } - const auto name = maybe_name.value(); + const itype_id &name = maybe_name.value(); const auto position = query_position(); if( !position ) { @@ -7311,7 +7380,7 @@ cata::optional game::look_around() } look_around_result game::look_around( catacurses::window w_info, tripoint ¢er, - const tripoint start_point, bool has_first_point, bool select_zone, bool peeking ) + const tripoint &start_point, bool has_first_point, bool select_zone, bool peeking ) { bVMonsterLookFire = false; // TODO: Make this `true` @@ -8223,7 +8292,7 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) } const bool bDrawLeft = ground_items.empty() || filtered_items.empty(); - draw_custom_border( w_item_info, bDrawLeft, true, false, true, LINE_XOXO, LINE_XOXO, true, true ); + draw_custom_border( w_item_info, bDrawLeft, 1, 0, 1, LINE_XOXO, LINE_XOXO, 1, 1 ); wrefresh( w_items ); wrefresh( w_item_info ); catacurses::refresh(); @@ -9088,10 +9157,6 @@ bool game::plfire() return false; } reload_time += opt.moves(); - // Character restores 50% + 7% * gun_skill, capped with 100% stability after shot for RELOAD_AND_SHOOT weapon - double skill_effect = 0.5 - 0.07 * u.get_skill_level( gun->gun_skill() ); - skill_effect = std::max( skill_effect, 0.0 ); - u.recoil = std::max( u.recoil, MAX_RECOIL * skill_effect ); if( !gun->reload( u, std::move( opt.ammo ), 1 ) ) { // Reload not allowed return false; @@ -9302,8 +9367,10 @@ void butcher_submenu( map_stack &items, const std::vector &corpses, int cor _( "This technique is used to properly butcher a corpse, and requires a rope & a tree or a butchering rack, a flat surface (for ex. a table, a leather tarp, etc.) and good tools. Yields are plentiful and varied, but it is time consuming." ) ); smenu.addentry_col( F_DRESS, true, 'f', _( "Field dress corpse" ), cut_time( F_DRESS ), _( "Technique that involves removing internal organs and viscera to protect the corpse from rotting from inside. Yields internal organs. Carcass will be lighter and will stay fresh longer. Can be combined with other methods for better effects." ) ); + smenu.addentry_col( SKIN, true, 's', ( "Skin corpse" ), cut_time( SKIN ), + _( "Skinning a corpse is an involved and careful process that usually takes some time. You need skill and an appropriately sharp and precise knife to do a 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." ) ); smenu.addentry_col( QUARTER, true, 'k', _( "Quarter corpse" ), cut_time( QUARTER ), - _( "By quartering a previously field dressed corpse you will aquire four parts with reduced weight and volume. It may help in transporting large game. This action destroys skin, hide, pelt, etc., so don't use it if you want to harvest them later." ) ); + _( "By quartering a previously field dressed corpse you will acquire four parts with reduced weight and volume. It may help in transporting large game. This action destroys skin, hide, pelt, etc., so don't use it if you want to harvest them later." ) ); smenu.addentry_col( DISSECT, true, 'd', _( "Dissect corpse" ), cut_time( DISSECT ), _( "By careful dissection of the corpse, you will examine it for possible bionic implants, and harvest them if possible. Requires scalpel-grade cutting tools, ruins corpse, and consumes lot of time. Your medical knowledge is most useful here." ) ); smenu.query(); @@ -9317,6 +9384,9 @@ void butcher_submenu( map_stack &items, const std::vector &corpses, int cor case F_DRESS: g->u.assign_activity( activity_id( "ACT_FIELD_DRESS" ), 0, -1 ); break; + case SKIN: + g->u.assign_activity( activity_id( "ACT_SKIN" ), 0, -1 ); + break; case QUARTER: g->u.assign_activity( activity_id( "ACT_QUARTER" ), 0, -1 ); break; @@ -9522,36 +9592,17 @@ void game::butcher() } } - bool no_morale_butcher = false; if( !u.has_morale_to_craft() ) { - switch( butcher_select ) { - case BUTCHER_OTHER: - switch( indexer_index ) { - case MULTIBUTCHER: - no_morale_butcher = true; - break; - } - /* fallthrough */ - case BUTCHER_CORPSE: - no_morale_butcher = true; - break; - case BUTCHER_DISASSEMBLE: - break; - case BUTCHER_SALVAGE: - break; - } - - if( no_morale_butcher ) { + if( butcher_select == BUTCHER_CORPSE || indexer_index == MULTIBUTCHER ) { add_msg( m_info, _( "You are not in the mood and the prospect of guts and blood on your hands convinces you to turn away." ) ); - return; } else { add_msg( m_info, _( "You are not in the mood and the prospect of work stops you before you begin." ) ); - return; } - + return; } + switch( butcher_select ) { case BUTCHER_OTHER: switch( indexer_index ) { @@ -9813,7 +9864,7 @@ void game::unload( int pos ) item_loc = item_location( u, it ); } - if( unload( *it ) ) { + if( u.unload( *it ) ) { if( it->has_flag( "MAG_DESTROY" ) && it->ammo_remaining() == 0 ) { item_loc.remove_item(); } @@ -9836,193 +9887,9 @@ void game::mend( int pos ) } } -bool add_or_drop_with_msg( player &u, item &it, const bool unloading = false ) -{ - if( it.made_of( LIQUID ) ) { - g->consume_liquid( it, 1 ); - return it.charges <= 0; - } - it.charges = u.i_add_to_container( it, unloading ); - if( it.is_ammo() && it.charges == 0 ) { - return true; - } else if( !u.can_pickVolume( it ) ) { - put_into_vehicle_or_drop( u, item_drop_reason::too_large, { it } ); - } else if( !u.can_pickWeight( it, !get_option( "DANGEROUS_PICKUPS" ) ) ) { - put_into_vehicle_or_drop( u, item_drop_reason::too_heavy, { it } ); - } else { - auto &ni = u.i_add( it ); - add_msg( _( "You put the %s in your inventory." ), ni.tname().c_str() ); - add_msg( m_info, "%c - %s", ni.invlet == 0 ? ' ' : ni.invlet, ni.tname().c_str() ); - } - return true; -} - bool game::unload( item &it ) { - // Unload a container consuming moves per item successfully removed - if( it.is_container() || it.is_bandolier() ) { - if( it.contents.empty() ) { - add_msg( m_info, _( "The %s is already empty!" ), it.tname().c_str() ); - return false; - } - if( !it.can_unload_liquid() ) { - add_msg( m_info, _( "The liquid can't be unloaded in its current state!" ) ); - return false; - } - - bool changed = false; - it.contents.erase( std::remove_if( it.contents.begin(), it.contents.end(), [this, - &changed]( item & e ) { - long old_charges = e.charges; - const bool consumed = add_or_drop_with_msg( u, e, true ); - changed = changed || consumed || e.charges != old_charges; - if( consumed ) { - u.mod_moves( -u.item_handling_cost( e ) ); - } - return consumed; - } ), it.contents.end() ); - if( changed ) { - it.on_contents_changed(); - } - return true; - } - - // If item can be unloaded more than once (currently only guns) prompt user to choose - std::vector msgs( 1, it.tname() ); - std::vector opts( 1, &it ); - - for( auto e : it.gunmods() ) { - if( e->is_gun() && !e->has_flag( "NO_UNLOAD" ) && - ( e->magazine_current() || e->ammo_remaining() > 0 || e->casings_count() > 0 ) ) { - msgs.emplace_back( e->tname() ); - opts.emplace_back( e ); - } - } - - item *target = nullptr; - if( opts.size() > 1 ) { - const int ret = uilist( _( "Unload what?" ), msgs ); - if( ret >= 0 ) { - target = opts[ret]; - } - } else { - target = ⁢ - } - - if( target == nullptr ) { - return false; - } - - // Next check for any reasons why the item cannot be unloaded - if( !target->ammo_type() || target->ammo_capacity() <= 0 ) { - add_msg( m_info, _( "You can't unload a %s!" ), target->tname().c_str() ); - return false; - } - - if( target->has_flag( "NO_UNLOAD" ) ) { - if( target->has_flag( "RECHARGE" ) || target->has_flag( "USE_UPS" ) ) { - add_msg( m_info, _( "You can't unload a rechargeable %s!" ), target->tname().c_str() ); - } else { - add_msg( m_info, _( "You can't unload a %s!" ), target->tname().c_str() ); - } - return false; - } - - if( !target->magazine_current() && target->ammo_remaining() <= 0 && target->casings_count() <= 0 ) { - if( target->is_tool() ) { - add_msg( m_info, _( "Your %s isn't charged." ), target->tname().c_str() ); - } else { - add_msg( m_info, _( "Your %s isn't loaded." ), target->tname().c_str() ); - } - return false; - } - - target->casings_handle( [&]( item & e ) { - return u.i_add_or_drop( e ); - } ); - - if( target->is_magazine() ) { - // Remove all contained ammo consuming half as much time as required to load the magazine - long qty = 0; - target->contents.erase( std::remove_if( target->contents.begin(), - target->contents.end(), [&]( item & e ) { - int mv = u.item_reload_cost( *target, e, e.charges ) / 2; - if( !add_or_drop_with_msg( u, e, true ) ) { - return false; - } - qty += e.charges; - u.moves -= mv; - return true; - } ), target->contents.end() ); - - if( target->is_ammo_belt() ) { - if( target->type->magazine->linkage ) { - item link( *target->type->magazine->linkage, calendar::turn, qty ); - add_or_drop_with_msg( u, link, true ); - } - add_msg( _( "You disassemble your %s." ), target->tname().c_str() ); - } else { - add_msg( _( "You unload your %s." ), target->tname().c_str() ); - } - return true; - - } else if( target->magazine_current() ) { - if( !add_or_drop_with_msg( u, *target->magazine_current(), true ) ) { - return false; - } - // Eject magazine consuming half as much time as required to insert it - u.moves -= u.item_reload_cost( *target, *target->magazine_current(), -1 ) / 2; - - target->contents.erase( std::remove_if( target->contents.begin(), - target->contents.end(), [&target]( const item & e ) { - return target->magazine_current() == &e; - } ) ); - - } else if( target->ammo_remaining() ) { - long qty = target->ammo_remaining(); - - if( target->ammo_type() == ammotype( "plutonium" ) ) { - qty = target->ammo_remaining() / PLUTONIUM_CHARGES; - if( qty > 0 ) { - add_msg( _( "You recover %i unused plutonium." ), qty ); - } else { - add_msg( m_info, _( "You can't remove partially depleted plutonium!" ) ); - return false; - } - } - - // Construct a new ammo item and try to drop it - item ammo( target->ammo_current(), calendar::turn, qty ); - - if( ammo.made_of_from_type( LIQUID ) ) { - if( !add_or_drop_with_msg( u, ammo ) ) { - qty -= ammo.charges; // only handled part (or none) of the liquid - } - if( qty <= 0 ) { - return false; // no liquid was moved - } - - } else if( !add_or_drop_with_msg( u, ammo, qty > 1 ) ) { - return false; - } - - // If successful remove appropriate qty of ammo consuming half as much time as required to load it - u.moves -= u.item_reload_cost( *target, ammo, qty ) / 2; - - if( target->ammo_type() == ammotype( "plutonium" ) ) { - qty *= PLUTONIUM_CHARGES; - } - - target->ammo_set( target->ammo_current(), target->ammo_remaining() - qty ); - } - - // Turn off any active tools - if( target->is_tool() && target->active && target->ammo_remaining() == 0 ) { - target->type->invoke( u, *target, u.pos() ); - } - - add_msg( _( "You unload your %s." ), target->tname().c_str() ); - return true; + return u.unload( it ); } void game::wield( int pos ) @@ -10588,8 +10455,8 @@ bool game::walk_move( const tripoint &dest_loc ) const optional_vpart_position vp_here = m.veh_at( u.pos() ); const optional_vpart_position vp_there = m.veh_at( dest_loc ); - bool pushing = false; // moving -into- grabbed tile; skip check for move_cost > 0 - bool pulling = false; // moving -away- from grabbed tile; check for move_cost > 0 + bool pushing = false; // moving -into- grabbed tile; skip check for move_cost > 0 + bool pulling = false; // moving -away- from grabbed tile; check for move_cost > 0 bool shifting_furniture = false; // moving furniture and staying still; skip check for move_cost > 0 bool grabbed = u.get_grab_type() != OBJECT_NONE; @@ -10731,9 +10598,9 @@ bool game::walk_move( const tripoint &dest_loc ) if( u.is_hauling() ) { u.assign_activity( activity_id( "ACT_MOVE_ITEMS" ) ); // Whether the source is inside a vehicle (not supported) - u.activity.values.push_back( false ); + u.activity.values.push_back( 0 ); // Whether the destination is inside a vehicle (not supported) - u.activity.values.push_back( false ); + u.activity.values.push_back( 0 ); // Source relative to the player u.activity.placement = u.pos() - dest_loc; // Destination relative to the player @@ -11047,7 +10914,7 @@ 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( om_dest.x * 2 - MAPSIZE / 2, om_dest.y * 2 - MAPSIZE / 2, om_dest.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 ); @@ -11163,7 +11030,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) int str_req = furntype.move_str_req; // Factor in weight of items contained in the furniture. - units::mass furniture_contents_weight = 0; + units::mass furniture_contents_weight = 0_gram; for( auto &contained_item : m.i_at( fpos ) ) { furniture_contents_weight += contained_item.weight(); } @@ -11216,7 +11083,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) m.furn_set( fdest, m.furn( fpos ) ); m.furn_set( fpos, f_null ); - if( src_items > 0 ) { // and the stuff inside. + if( src_items > 0 ) { // and the stuff inside. if( dst_item_ok && src_item_ok ) { // Assume contents of both cells are legal, so we can just swap contents. std::list temp; @@ -11361,7 +11228,8 @@ void game::plswim( const tripoint &p ) body_part_set drenchFlags{ { bp_leg_l, bp_leg_r, bp_torso, bp_arm_l, bp_arm_r, bp_foot_l, bp_foot_r, bp_hand_l, bp_hand_r - } }; + } + }; if( u.is_underwater() ) { drenchFlags |= { { bp_head, bp_eyes, bp_mouth, bp_hand_l, bp_hand_r } }; @@ -11729,7 +11597,6 @@ void game::vertical_move( int movez, bool force ) // Find the corresponding staircase bool rope_ladder = false; - bool actually_moved = true; // TODO: Remove the stairfinding, make the mapgen gen aligned maps if( !force && !climbing ) { const cata::optional pnt = find_or_make_stairs( maybetmp, z_after, rope_ladder ); @@ -11739,10 +11606,6 @@ void game::vertical_move( int movez, bool force ) stairs = *pnt; } - if( !actually_moved ) { - return; - } - if( !force ) { monstairz = z_before; } @@ -11858,12 +11721,17 @@ cata::optional game::find_or_make_stairs( map &mp, const int z_after, cata::optional stairs; int best = INT_MAX; const int movez = z_after - get_levz(); + Creature *blocking_creature = nullptr; for( const tripoint &dest : m.points_in_rectangle( omtile_align_start, omtile_align_end ) ) { if( rl_dist( u.pos(), dest ) <= best && ( ( movez == -1 && mp.has_flag( "GOES_UP", dest ) ) || ( movez == 1 && ( mp.has_flag( "GOES_DOWN", dest ) || mp.ter( dest ) == t_manhole_cover ) ) || ( ( movez == 2 || movez == -2 ) && mp.ter( dest ) == t_elevator ) ) ) { + if( mp.has_zlevels() && critter_at( dest ) ) { + blocking_creature = critter_at( dest ); + continue; + } stairs.emplace( dest ); best = rl_dist( u.pos(), dest ); } @@ -11874,6 +11742,10 @@ cata::optional game::find_or_make_stairs( map &mp, const int z_after, return stairs; } + if( blocking_creature ) { + add_msg( _( "There's a %s in the way!" ), blocking_creature->disp_name().c_str() ); + return cata::nullopt; + } // No stairs found! Try to make some rope_ladder = false; stairs.emplace( u.pos() ); @@ -12049,19 +11921,19 @@ void game::update_map( int &x, int &y ) int shiftx = 0; int shifty = 0; - while( x < SEEX * int( MAPSIZE / 2 ) ) { + while( x < HALF_MAPSIZE_X ) { x += SEEX; shiftx--; } - while( x >= SEEX * ( 1 + int( MAPSIZE / 2 ) ) ) { + while( x >= HALF_MAPSIZE_X + SEEX ) { x -= SEEX; shiftx++; } - while( y < SEEY * int( MAPSIZE / 2 ) ) { + while( y < HALF_MAPSIZE_Y ) { y += SEEY; shifty--; } - while( y >= SEEY * ( 1 + int( MAPSIZE / 2 ) ) ) { + while( y >= HALF_MAPSIZE_Y + SEEY ) { y -= SEEY; shifty++; } @@ -12221,7 +12093,9 @@ void game::update_stair_monsters() int mposx = stairx[si]; int mposy = stairy[si]; monster &critter = coming_to_stairs[i]; - const tripoint dest{mposx, mposy, g->get_levz()}; + const tripoint dest { + mposx, mposy, g->get_levz() + }; // We might be not be visible. if( ( critter.posx() < 0 - ( MAPSIZE_X ) / 6 || @@ -12596,7 +12470,7 @@ void game::quicksave() add_msg( m_info, _( "Saving game, this may take a while" ) ); popup_nowait( _( "Saving game, this may take a while" ) ); - time_t now = time( nullptr ); //timestamp for start of saving procedure + time_t now = time( nullptr ); //timestamp for start of saving procedure //perform save save(); @@ -13223,7 +13097,7 @@ int game::get_levz() const overmap &game::get_cur_om() const { // The player is located in the middle submap of the map. - const tripoint sm = m.get_abs_sub() + tripoint( MAPSIZE / 2, MAPSIZE / 2, 0 ); + const tripoint sm = m.get_abs_sub() + tripoint( HALF_MAPSIZE, HALF_MAPSIZE, 0 ); const tripoint pos_om = sm_to_om_copy( sm ); return overmap_buffer.get( pos_om.x, pos_om.y ); } diff --git a/src/game.h b/src/game.h index db506161e4376..48b7276d6c932 100644 --- a/src/game.h +++ b/src/game.h @@ -19,9 +19,6 @@ #include "pimpl.h" #include "posix_time.h" -extern const int savegame_version; -extern int save_loading_version; - extern bool test_mode; // The reference to the one and only game instance. @@ -131,9 +128,9 @@ enum liquid_dest : int { struct liquid_dest_opt { liquid_dest dest_opt = LD_NULL; + tripoint pos; item_location item_loc; vehicle *veh = nullptr; - tripoint pos; }; enum peek_act : int { @@ -575,7 +572,7 @@ class game // Look at nearby terrain ';', or select zone points cata::optional look_around(); look_around_result look_around( catacurses::window w_info, tripoint ¢er, - tripoint start_point, bool has_first_point, bool select_zone, bool peeking ); + const tripoint &start_point, bool has_first_point, bool select_zone, bool peeking ); // Shared method to print "look around" info void pre_print_all_tile_info( const tripoint &lp, const catacurses::window &w_look, @@ -672,6 +669,7 @@ class game catacurses::window w_HP_ptr; catacurses::window w_messages_short_ptr; catacurses::window w_messages_long_ptr; + catacurses::window w_location_wider_ptr; catacurses::window w_location_ptr; catacurses::window w_status_ptr; catacurses::window w_status2_ptr; @@ -687,6 +685,7 @@ class game catacurses::window w_messages; catacurses::window w_messages_short; catacurses::window w_messages_long; + catacurses::window w_location_wider; catacurses::window w_location; catacurses::window w_status; catacurses::window w_status2; @@ -792,7 +791,7 @@ class game * These are helper functions for transfer liquid, for times when you just want to * get the target of the transfer, or know the target and just want to transfer the * liquid. They take the same arguments as handle_liquid, plus - * @param liquid_target structure containing information about the target + * @param target structure containing information about the target */ bool get_liquid_target( item &liquid, item *const source, const int radius, const tripoint *source_pos, const vehicle *const source_veh, @@ -821,7 +820,7 @@ class game bool ignore_player ); // Animation related functions - void draw_explosion( const tripoint &p, int radius, nc_color col ); + void draw_explosion( const tripoint &p, int radius, const nc_color &col ); void draw_custom_explosion( const tripoint &p, const std::map &area ); void draw_bullet( const tripoint &pos, int i, const std::vector &trajectory, char bullet ); diff --git a/src/game_constants.h b/src/game_constants.h index d06023aa955a3..a415129ea33da 100644 --- a/src/game_constants.h +++ b/src/game_constants.h @@ -33,6 +33,7 @@ #define MAX_WORN_PER_TYPE 2 #define MAPSIZE 11 +#define HALF_MAPSIZE static_cast( MAPSIZE / 2 ) // SEEX/SEEY define the size of a nonant, or grid. // All map segments will need to be at least this wide. @@ -42,7 +43,10 @@ #define MAPSIZE_X (SEEX * MAPSIZE) #define MAPSIZE_Y (SEEY * MAPSIZE) -#define MAX_VIEW_DISTANCE ( SEEX * int( MAPSIZE / 2 ) ) +#define HALF_MAPSIZE_X (SEEX * HALF_MAPSIZE) +#define HALF_MAPSIZE_Y (SEEY * HALF_MAPSIZE) + +#define MAX_VIEW_DISTANCE ( SEEX * HALF_MAPSIZE ) // Size of the overmap. This is the number of overmap terrain tiles per dimension in one overmap, // it's just like SEEX/SEEY for submaps. diff --git a/src/game_inventory.cpp b/src/game_inventory.cpp index 85abb0e3527c9..5e3521e881ca9 100644 --- a/src/game_inventory.cpp +++ b/src/game_inventory.cpp @@ -149,7 +149,7 @@ class armor_inventory_preset: public inventory_selector_preset }, _( "ENCUMBRANCE" ) ); append_cell( [ this ]( const item_location & loc ) { - return loc->get_storage() > 0 ? string_format( "<%s>%s", color, + return loc->get_storage() > 0_ml ? string_format( "<%s>%s", color, format_volume( loc->get_storage() ) ) : std::string(); }, _( "STORAGE" ) ); @@ -306,15 +306,18 @@ class disassemble_inventory_preset : public pickup_inventory_preset disassemble_inventory_preset( const player &p, const inventory &inv ) : pickup_inventory_preset( p ), p( p ), inv( inv ) { + check_components = true; + append_cell( [ this ]( const item_location & loc ) { const auto &req = get_recipe( loc ).disassembly_requirements(); if( req.is_empty() ) { return std::string(); } - const auto components = req.get_components(); + const item *i = loc.get_item(); + const auto components = i->get_uncraft_components(); return enumerate_as_string( components.begin(), components.end(), []( const decltype( components )::value_type & comps ) { - return comps.front().to_string(); + return comps.to_string(); } ); }, _( "YIELD" ) ); @@ -377,7 +380,7 @@ class comestible_inventory_preset : public inventory_selector_preset append_cell( [ this ]( const item_location & loc ) { const time_duration spoils = get_edible_comestible( loc ).spoils; - if( spoils > 0 ) { + if( spoils > 0_turns ) { return to_string_clipped( spoils ); } //~ Used for permafood shelf life in the Eat menu @@ -387,7 +390,7 @@ class comestible_inventory_preset : public inventory_selector_preset append_cell( [this]( const item_location & loc ) { if( g->u.can_estimate_rot() ) { const islot_comestible item = get_edible_comestible( loc ); - if( item.spoils > 0 ) { + if( item.spoils > 0_turns ) { return get_freshness( loc ); } return std::string( "---" ); @@ -398,7 +401,7 @@ class comestible_inventory_preset : public inventory_selector_preset append_cell( [ this ]( const item_location & loc ) { if( g->u.can_estimate_rot() ) { const islot_comestible item = get_edible_comestible( loc ); - if( item.spoils > 0 ) { + if( item.spoils > 0_turns ) { if( !get_comestible_item( loc ).rotten() ) { return get_time_left_rounded( loc ); } diff --git a/src/gates.cpp b/src/gates.cpp index 422268974d5d5..38c6f68594036 100644 --- a/src/gates.cpp +++ b/src/gates.cpp @@ -169,8 +169,8 @@ void gates::open_gate( const tripoint &pos ) continue; } - for( int j = 0; j < 4; ++j ) { - const tripoint gate_pos = wall_pos + dir[j]; + for( auto j : dir ) { + const tripoint gate_pos = wall_pos + j; if( gate_pos == pos ) { continue; // Never comes back @@ -181,7 +181,7 @@ void gates::open_gate( const tripoint &pos ) while( g->m.ter( cur_pos ) == gate.floor.id() ) { fail = !g->forced_door_closing( cur_pos, gate.door.id(), gate.bash_dmg ) || fail; close = !fail; - cur_pos += dir[j]; + cur_pos += j; } } @@ -196,7 +196,7 @@ void gates::open_gate( const tripoint &pos ) } else if( ter != gate.floor.id() ) { break; } - cur_pos += dir[j]; + cur_pos += j; } } } diff --git a/src/handle_action.cpp b/src/handle_action.cpp index d886acba9017a..c7f87b3f435c7 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -3,6 +3,7 @@ #include #include "action.h" +#include "advanced_inv.h" #include "auto_pickup.h" #include "bionics.h" #include "calendar.h" @@ -45,8 +46,6 @@ #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " -void advanced_inv(); - const efftype_id effect_alarm_clock( "alarm_clock" ); const efftype_id effect_laserlocked( "laserlocked" ); diff --git a/src/harvest.cpp b/src/harvest.cpp index 7aca19b04fd27..0899f83964738 100644 --- a/src/harvest.cpp +++ b/src/harvest.cpp @@ -67,13 +67,13 @@ harvest_entry harvest_entry::load( JsonObject &jo, const std::string &src ) } const harvest_id &harvest_list::load( JsonObject &jo, const std::string &src, - const std::string &id ) + const std::string &force_id ) { harvest_list ret; if( jo.has_string( "id" ) ) { ret.id_ = harvest_id( jo.get_string( "id" ) ); - } else if( !id.empty() ) { - ret.id_ = harvest_id( id ); + } else if( !force_id.empty() ) { + ret.id_ = harvest_id( force_id ); } else { jo.throw_error( "id was not specified for harvest" ); } diff --git a/src/iexamine.cpp b/src/iexamine.cpp index 02f440a3786d3..c3c04b856c984 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -384,8 +384,21 @@ class atm_menu { //!Move money from bank account onto cash card. bool do_withdraw_money() { + //We may want to use visit_items here but thats fairly heavy. + //For now, just check weapon if we didnt find it in the inventory. int pos = u.inv.position_by_type( "cash_card" ); - item *dst = &u.i_at( pos ); + item *dst; + if (pos == INT_MIN) { + dst = &u.weapon; + } else { + dst = &u.i_at( pos ); + } + + if (dst->is_null()) { + //Just in case we run into an edge case + popup(_("You do not have a cash card to withdraw money!")); + return false; + } const int amount = prompt_for_amount(ngettext( "Withdraw how much? Max: %d cent. (0 to cancel) ", @@ -752,33 +765,60 @@ void iexamine::rubble(player &p, const tripoint &examp) /** * Try to pry crate open with crowbar. */ -void iexamine::crate(player &p, const tripoint &examp) +void iexamine::crate( player &p, const tripoint &examp ) { - // Check for a crowbar in the inventory - bool has_prying_tool = p.crafting_inventory().has_quality( quality_id( "PRY" ), 1 ); + // PRY 1 is sufficient for popping open a nailed-shut crate. + const bool has_prying_tool = p.crafting_inventory().has_quality( quality_id( "PRY" ), 1 ); + if( !has_prying_tool ) { - add_msg( m_info, _("If only you had a crowbar...") ); + add_msg( m_info, _( "If only you had something to pry with..." ) ); return; } - // Ask if there's something possibly more interesting than this crate here - // Shouldn't happen (what kind of creature lives in a crate?), but better safe than getting complaints - std::string xname = g->m.furnname(examp); - if( ( g->m.veh_at( examp ) || - !g->m.tr_at( examp ).is_null() || - g->critter_at( examp ) != nullptr ) && - !query_yn(_("Pry that %s?"), xname.c_str() ) ) { + auto prying_items = p.crafting_inventory().items_with( []( const item & it ) -> bool { + return it.has_quality( quality_id( "PRY" ), 1 ); + } ); + + iuse dummy; + + if( prying_items.size() == 1 ) { + item temporary_item( prying_items[0]->type ); + // They only had one item anyway, so just use it. + dummy.crowbar( &p, &temporary_item, false, examp ); + return; + } + + // Sort by their quality level. + std::sort( prying_items.begin(), prying_items.end(), []( const item * a, const item * b ) -> bool { + return a->get_quality( quality_id( "PRY" ) ) > b->get_quality( quality_id( "PRY" ) ); + } ); + + // Then display the items + uilist selection_menu; + selection_menu.text = string_format(_("The %s is closed tightly."), + g->m.furnname(examp)); + + int i = 0; + selection_menu.addentry( i++, true, MENU_AUTOASSIGN, _( "Leave it alone" ) ); + for( auto iter : prying_items ) { + selection_menu.addentry( i++, true, MENU_AUTOASSIGN, _( "Use your %s" ), iter->tname() ); + } + + selection_menu.selected = 1; + selection_menu.query(); + auto index = selection_menu.ret; + + if( index == 0 || index == UILIST_CANCEL ) { none( p, examp ); return; } - // HACK ALERT: player::items_with returns const item* vector and so can't be used - // so we'll be making a fake crowbar here - // Not a problem for now, but if crowbar iuse-s ever get different, this will need a fix - item fakecrow( "crowbar", 0 ); + auto selected_tool = prying_items[index - 1]; + item temporary_item( selected_tool->type ); - iuse dummy; - dummy.crowbar( &p, &fakecrow, false, examp ); + // if crowbar() ever eats charges or otherwise alters the passed item, rewrite this to reflect + // changes to the original item. + dummy.crowbar( &p, &temporary_item, false, examp ); } /** @@ -829,8 +869,8 @@ void iexamine::chainfence( player &p, const tripoint &examp ) g->m.unboard_vehicle( p.pos() ); } p.setpos( examp ); - if( examp.x < SEEX * int( MAPSIZE / 2 ) || examp.y < SEEY * int( MAPSIZE / 2 ) || - examp.x >= SEEX * ( 1 + int( MAPSIZE / 2 ) ) || examp.y >= SEEY * ( 1 + int( MAPSIZE / 2 ) ) ) { + if( examp.x < HALF_MAPSIZE_X || examp.y < HALF_MAPSIZE_Y || + examp.x >= HALF_MAPSIZE_X + SEEX || examp.y >= HALF_MAPSIZE_Y + SEEY ) { if( p.is_player() ) { g->update_map( p ); } @@ -874,7 +914,7 @@ void iexamine::deployed_furniture( player &p, const tripoint &pos ) g->m.furn_set( pos, f_null ); } -static std::pair find_tent_itype( const furn_str_id id ) +static std::pair find_tent_itype( const furn_str_id &id ) { const itype_id &iid = id->deployed_item; if( item::type_is_defined( iid ) ) { @@ -1133,26 +1173,55 @@ void iexamine::gunsafe_el(player &p, const tripoint &examp) } /** - * Checks that player is outside and has crowbar then calls iuse.crowbar. + * Checks PC has a crowbar then calls iuse.crowbar. */ -void iexamine::locked_object( player &p, const tripoint &examp) { - // Print ordinary examine message if inside (where you can open doors/windows anyway) - if (!g->m.is_outside(p.pos())) { - none(p, examp); +void iexamine::locked_object( player &p, const tripoint &examp ) +{ + const bool has_prying_tool = p.crafting_inventory().has_quality( quality_id( "PRY" ), 2 ); + if( !has_prying_tool ) { + add_msg( m_info, _( "If only you had something to pry with..." ) ); return; } - bool has_prying_tool = p.crafting_inventory().has_quality( quality_id( "PRY" ), 1 ); - if ( !has_prying_tool ) { - add_msg(m_info, _("If only you had a crowbar...")); + auto prying_items = p.crafting_inventory().items_with( []( const item & it ) -> bool { + return it.has_quality( quality_id( "PRY" ), 2 ); + } ); + + iuse dummy; + if( prying_items.size() == 1 ) { + item temporary_item( prying_items[0]->type ); + // They only had one item anyway, so just use it. + dummy.crowbar( &p, &temporary_item, false, examp ); return; } - // See crate prying for why a dummy item is used - item fakecrow( "crowbar", 0 ); + // Sort by their quality level. + std::sort( prying_items.begin(), prying_items.end(), []( const item * a, const item * b ) -> int { + return a->get_quality( quality_id( "PRY" ) ) > b->get_quality( quality_id( "PRY" ) ); + } ); - iuse dummy; - dummy.crowbar( &p, &fakecrow, false, examp ); + // Then display the items + uilist selection_menu; + selection_menu.text = string_format(_("The %s is locked..."), g->m.tername(examp)); + + int i = 0; + selection_menu.addentry( i++, true, MENU_AUTOASSIGN, _( "Leave it alone" ) ); + for( auto iter : prying_items ) { + selection_menu.addentry( i++, true, MENU_AUTOASSIGN, string_format( _( "Use the %s" ), + iter->tname() ) ); + } + + selection_menu.selected = 1; + selection_menu.query(); + auto index = selection_menu.ret; + + if( index == 0 || index == UILIST_CANCEL ) { + none( p, examp ); + return; + } + + item temporary_item( prying_items[index - 1]->type ); + dummy.crowbar( &p, &temporary_item, false, examp ); } void iexamine::bulletin_board(player &, const tripoint &examp) @@ -1443,7 +1512,14 @@ void iexamine::flower_poppy(player &p, const tripoint &examp) } g->m.furn_set(examp, f_null); - g->m.spawn_item( p.pos(), "poppy_bud", 1, 0, calendar::turn ); + + if( p.can_pickWeight( item( "poppy_bud" ), true ) && p.can_pickVolume( item( "poppy_bud" ), true ) ){ + p.i_add( item( "poppy_bud" ) ); + p.add_msg_if_player( _( "You harvest: poppy bud" ) ); + } else { + g->m.add_item_or_charges( p.pos(), item( "poppy_bud" ) ); + p.add_msg_if_player( _( "You harvest and drop: poppy bud" ) ); + } } /** @@ -1520,7 +1596,14 @@ void iexamine::flower_dahlia(player &p, const tripoint &examp) } g->m.furn_set(examp, f_null); - g->m.spawn_item( p.pos(), "dahlia_root", 1, 0, calendar::turn ); + + if( p.can_pickWeight( item( "dahlia_root" ), true ) && p.can_pickVolume( item( "dahlia_root" ), true ) ){ + p.i_add( item( "dahlia_root" ) ); + p.add_msg_if_player( _( "You harvest: dahlia root" ) ); + } else { + g->m.add_item_or_charges( p.pos(), item( "dahlia_root" ) ); + p.add_msg_if_player( _( "You harvest and drop: dahlia root" ) ); + } // There was a bud and flower spawn here // But those were useless, don't re-add until they get useful } @@ -1556,8 +1639,13 @@ static bool harvest_common( player &p, const tripoint &examp, bool furn, bool ne float max_num = entry.base_num.second + lev * entry.scale_num.second; int roll = std::min( entry.max, round( rng_float( min_num, max_num ) ) ); for( int i = 0; i < roll; i++ ) { - const item &it = g->m.add_item_or_charges( p.pos(), item( entry.drop ) ); - p.add_msg_if_player( _( "You harvest: %s" ), it.tname().c_str() ); + if( p.can_pickWeight( item( entry.drop ), true ) && p.can_pickVolume( item( entry.drop ), true ) ){ + p.i_add( item( entry.drop ) ); + p.add_msg_if_player( _( "You harvest: %s" ), item( entry.drop ).tname().c_str() ); + } else { + g->m.add_item_or_charges( p.pos(), item( entry.drop ) ); + p.add_msg_if_player( _( "You harvest and drop: %s" ), item( entry.drop ).tname().c_str() ); + } got_anything = true; } } @@ -1566,6 +1654,7 @@ static bool harvest_common( player &p, const tripoint &examp, bool furn, bool ne p.add_msg_if_player( m_bad, _( "You couldn't harvest anything." ) ); } + p.mod_moves( -rng( 100, 300 ) ); return true; } @@ -1645,10 +1734,9 @@ void iexamine::egg_sack_generic( player &p, const tripoint &examp, none( p, examp ); return; } - g->m.spawn_item( p.pos(), "spider_egg", rng( 1, 4 ), 0, calendar::turn ); g->m.furn_set( examp, f_egg_sacke ); + int monster_count = 0; if( one_in( 2 ) ) { - int monster_count = 0; const std::vector pts = closest_tripoints_first( 1, examp ); for( const auto &pt : pts ) { if( g->is_empty( pt ) && one_in( 3 ) ) { @@ -1656,12 +1744,22 @@ void iexamine::egg_sack_generic( player &p, const tripoint &examp, monster_count++; } } - if( monster_count == 1 ) { - add_msg( m_warning, _( "A spiderling bursts from the %s!" ), old_furn_name.c_str() ); - } else if( monster_count >= 1 ) { - add_msg( m_warning, _( "Spiderlings burst from the %s!" ), old_furn_name.c_str() ); + } + int roll = round( rng_float( 1, 5 ) ); + for( int i = 0; i < roll; i++ ) { + if( monster_count == 0 && p.can_pickWeight( item( "spider_egg" ), true ) && p.can_pickVolume( item( "spider_egg" ), true ) ){ + p.i_add( item( "spider_egg" ) ); + p.add_msg_if_player( _( "You harvest: spider egg" ) ); + } else { + g->m.add_item_or_charges( p.pos(), item( "spider_egg" ) ); + p.add_msg_if_player( _( "You harvest and drop: spider egg" ) ); } } + if( monster_count == 1 ) { + add_msg( m_warning, _( "A spiderling bursts from the %s!" ), old_furn_name.c_str() ); + } else if( monster_count >= 1 ) { + add_msg( m_warning, _( "Spiderlings burst from the %s!" ), old_furn_name.c_str() ); + } } void iexamine::egg_sackbw( player &p, const tripoint &examp ) @@ -1725,7 +1823,7 @@ int iexamine::query_seed( const std::vector &seed_entries ) smenu.text = _( "Use which seed?" ); int count = 0; for( const auto &entry : seed_entries ) { - auto seed_name = std::get<1>( entry ); + const std::string &seed_name = std::get<1>( entry ); int seed_count = std::get<2>( entry ); std::string format = seed_count > 0 ? "%s (%d)" : "%s"; @@ -1754,7 +1852,7 @@ void iexamine::plant_seed( player &p, const tripoint &examp, const itype_id &see } else { used_seed = p.use_amount( seed_id, 1 ); } - used_seed.front().set_age( 0 ); + used_seed.front().set_age( 0_turns ); g->m.add_item_or_charges( examp, used_seed.front() ); g->m.set( examp, t_dirt, f_plant_seed ); p.moves -= 500; @@ -2059,7 +2157,7 @@ void iexamine::kiln_empty(player &p, const tripoint &examp) int loss = 60 - 2 * skill; // We can afford to be inefficient - logs and skeletons are cheap, charcoal isn't // Burn stuff that should get charred, leave out the rest - units::volume total_volume = 0; + units::volume total_volume = 0_ml; for( const item &i : items ) { total_volume += i.volume(); } @@ -2115,7 +2213,7 @@ void iexamine::kiln_full(player &, const tripoint &examp) add_msg( _("There's a charcoal kiln there.") ); const time_duration firing_time = 6_hours; // 5 days in real life const time_duration time_left = firing_time - items[0].age(); - if( time_left > 0 ) { + if( time_left > 0_turns ) { int hours = to_hours( time_left ); int minutes = to_minutes( time_left ) + 1; if( minutes > 60 ) { @@ -2130,7 +2228,7 @@ void iexamine::kiln_full(player &, const tripoint &examp) return; } - units::volume total_volume = 0; + units::volume total_volume = 0_ml; // Burn stuff that should get charred, leave out the rest for( auto item_it = items.begin(); item_it != items.end(); ) { if( item_it->typeId() == "unfinished_charcoal" || item_it->typeId() == "charcoal" ) { @@ -2266,7 +2364,7 @@ void iexamine::fvat_empty(player &p, const tripoint &examp) } } if (vat_full || ferment) { - g->m.i_at( examp ).front().set_age( 0 ); + g->m.i_at( examp ).front().set_age( 0_turns ); g->m.furn_set(examp, f_fvat_full); if (vat_full) { add_msg(_("The vat is full, so you close the lid and start the fermenting cycle.")); @@ -2357,7 +2455,7 @@ static units::volume get_keg_capacity( const tripoint &pos ) { if( furn.id == "f_standing_tank" ) { return units::from_liter( 300 ); } else if( furn.id == "f_wood_keg" ) { return units::from_liter( 125 ); } //add additional cases above - else { return 0; } + else { return 0_ml; } } /** @@ -2365,7 +2463,7 @@ static units::volume get_keg_capacity( const tripoint &pos ) { */ bool iexamine::has_keg( const tripoint &pos ) { - return get_keg_capacity( pos ) > 0; + return get_keg_capacity( pos ) > 0_ml; } void iexamine::keg(player &p, const tripoint &examp) @@ -2531,7 +2629,7 @@ void iexamine::keg(player &p, const tripoint &examp) bool iexamine::pour_into_keg( const tripoint &pos, item &liquid ) { const units::volume keg_cap = get_keg_capacity( pos ); - if( keg_cap <= 0 ) { + if( keg_cap <= 0_ml ) { return false; } const auto keg_name = g->m.name( pos ); @@ -2824,26 +2922,26 @@ void iexamine::recycle_compactor( player &, const tripoint &examp ) // check inputs and tally total mass auto inputs = g->m.i_at( examp ); - units::mass sum_weight = 0; + units::mass sum_weight = 0_gram; auto ca = m.compact_accepts(); std::set accepts( ca.begin(), ca.end() ); accepts.insert( m.id ); - for( auto it = inputs.begin(); it != inputs.end(); ++it ) { - if( !it->only_made_of( accepts ) ) { + for( auto &input : inputs ) { + if( !input.only_made_of( accepts ) ) { //~ %1$s: an item in the compactor , %2$s: desired compactor output material add_msg( _( "You realize this isn't going to work because %1$s is not made purely of %2$s." ), - it->tname().c_str(), m.name().c_str() ); + input.tname().c_str(), m.name().c_str() ); return; } - if( it->is_container() && !it->is_container_empty() ) { + if( input.is_container() && !input.is_container_empty() ) { //~ %1$s: an item in the compactor add_msg( _( "You realize this isn't going to work because %1$s has not been emptied of its contents." ), - it->tname().c_str() ); + input.tname().c_str() ); return; } - sum_weight += it->weight(); + sum_weight += input.weight(); } - if( sum_weight <= 0 ) { + if( sum_weight <= 0_gram ) { //~ %1$s: desired compactor output material add_msg( _( "There is no %1$s in the compactor. Drop some metal items onto it and try again." ), m.name().c_str() ); @@ -2947,7 +3045,7 @@ void iexamine::water_source(player &p, const tripoint &examp) const itype * furn_t::crafting_pseudo_item_type() const { if (crafting_pseudo_item.empty()) { - return NULL; + return nullptr; } return item::find_type( crafting_pseudo_item ); } @@ -3561,7 +3659,7 @@ void iexamine::climb_down( player &p, const tripoint &examp ) g->m.creature_on_trap( p ); } -player &player_on_couch( player &p, const tripoint autodoc_loc, player &null_patient, +player &player_on_couch( player &p, const tripoint &autodoc_loc, player &null_patient, bool &adjacent_couch ) { for( const auto &couch_loc : g->m.points_in_radius( autodoc_loc, 1, 0 ) ) { @@ -3585,8 +3683,7 @@ player &best_installer( player &p, player &null_player, int difficulty ) { float player_skill = p.bionics_adjusted_skill( skill_firstaid, skill_computer, - skill_electronics, - true ); + skill_electronics ); std::vector< std::pair> ally_skills; ally_skills.reserve( g->allies().size() ); @@ -3598,8 +3695,7 @@ player &best_installer( player &p, player &null_player, int difficulty ) ally_skill.second = i; ally_skill.first = ally.bionics_adjusted_skill( skill_firstaid, skill_computer, - skill_electronics, - true ); + skill_electronics ); ally_skills.push_back( ally_skill ); } std::sort( ally_skills.begin(), ally_skills.end(), [&]( const std::pair &lhs, @@ -3824,7 +3920,7 @@ void smoker_activate(player &p, const tripoint &examp) bool food_present = false; bool charcoal_present = false; auto items = g->m.i_at( examp ); - units::volume food_volume = 0; + units::volume food_volume = 0_ml; item *charcoal = nullptr; for( size_t i = 0; i < items.size(); i++ ) { @@ -3886,6 +3982,13 @@ void smoker_activate(player &p, const tripoint &examp) } p.use_charges( "fire", 1 ); + for( auto &it : g->m.i_at( examp ) ) { + if( it.has_flag( "SMOKABLE" ) ) { + // Do one final rot check before smoking, then apply the smoking FLAG to prevent further checks. + it.calc_rot( examp ); + it.set_flag( "SMOKING" ); + } + } g->m.furn_set( examp, next_smoker_type ); if( charcoal->charges == char_charges ) { g->m.i_rem( examp, charcoal ); @@ -3899,7 +4002,7 @@ void smoker_activate(player &p, const tripoint &examp) add_msg( _("You light a small fire under the rack and it starts to smoke.") ); } -void smoker_finalize(player &, const tripoint &examp) +void smoker_finalize( player &, const tripoint &examp, const time_point &start_time ) { furn_id cur_smoker_type = g->m.furn( examp ); furn_id next_smoker_type = f_null; @@ -3916,6 +4019,12 @@ void smoker_finalize(player &, const tripoint &examp) return; } + for( auto &it : items ) { + if( it.has_flag( "SMOKABLE" ) ) { // Don't check charcoal + it.calc_rot_while_smoking( examp, 6_hours ); + } + } + std::string product; for( size_t i = 0; i < items.size(); i++ ) { auto &item_it = items[i]; @@ -3967,11 +4076,16 @@ void smoker_finalize(player &, const tripoint &examp) product = "human_smoked"; } else { product.clear(); + item_it.unset_flag( "SMOKING" ); } if( !product.empty() ) { - item result( product, calendar::turn ); + item result( product, start_time + 6_hours ); result.charges = item_it.charges; - //g->m.add_item( examp, result ); + + // Set flag to tell set_relative_rot() to calc from bday not now + result.set_flag( "SMOKING_RESULT" ); + result.set_relative_rot( item_it.get_relative_rot() ); + result.unset_flag( "SMOKING_RESULT" ); item_it = result; } } @@ -4101,10 +4215,10 @@ void smoker_load_food( player &p, const tripoint &examp, const units::volume &re p.invalidate_crafting_inventory(); } -void iexamine::on_smoke_out( const tripoint &examp ) +void iexamine::on_smoke_out( const tripoint &examp, const time_point &start_time ) { if( g->m.furn( examp ) == furn_str_id( "f_smoking_rack_active" ) ) { - smoker_finalize( g->u, examp ); + smoker_finalize( g->u, examp, start_time ); } } @@ -4128,10 +4242,10 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) bool rem_f_opt = false; std::stringstream pop; - time_duration time_left = 0; + time_duration time_left = 0_turns; int hours_left = 0; int minutes_left = 0; - units::volume f_volume = 0; + units::volume f_volume = 0_ml; bool f_check = false; for( size_t i = 0; i < items_here.size(); i++ ) { @@ -4147,7 +4261,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) } } - const bool empty = f_volume == 0; + const bool empty = f_volume == 0_ml; const bool full = f_volume >= sm_rack::MAX_FOOD_VOLUME; const auto remaining_capacity = sm_rack::MAX_FOOD_VOLUME - f_volume; const auto has_coal_in_inventory = p.charges_of( "charcoal" ) > 0; @@ -4204,7 +4318,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) { if ( active ) { pop << "" << _( "There's a smoking rack here. It is lit and smoking." ) << "" << "\n"; - if( time_left > 0 ) { + if( time_left > 0_turns ) { if( minutes_left > 60 ) { pop << string_format( ngettext( "It will finish smoking in about %d hour.", "It will finish smoking in about %d hours.", diff --git a/src/iexamine.h b/src/iexamine.h index fb497a3e9e24b..925b5e401569e 100644 --- a/src/iexamine.h +++ b/src/iexamine.h @@ -104,7 +104,8 @@ void sign( player &p, const tripoint &examp ); void pay_gas( player &p, const tripoint &examp ); void climb_down( player &p, const tripoint &examp ); void autodoc( player &p, const tripoint &examp ); -void on_smoke_out( const tripoint &examp ); //activates end of smoking effects +void on_smoke_out( const tripoint &examp, + const time_point &start_time ); //activates end of smoking effects void smoker_options( player &p, const tripoint &examp ); hack_result hack_attempt( player &p ); diff --git a/src/init.cpp b/src/init.cpp index 1423790939abc..a90fad6ed2bd7 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -184,7 +184,7 @@ void DynamicDataLoader::initialize() add( "dream", &dream::load ); add( "mutation_category", &mutation_category_trait::load ); add( "mutation_type", &load_mutation_type ); - add( "mutation", &mutation_branch::load ); + add( "mutation", &mutation_branch::load_trait ); add( "furniture", &load_furniture ); add( "terrain", &load_terrain ); add( "monstergroup", &MonsterGroupManager::LoadMonsterGroup ); @@ -486,8 +486,6 @@ void DynamicDataLoader::unload_data() // Name::clear(); } -extern void calculate_mapgen_weights(); - void DynamicDataLoader::finalize_loaded_data() { // Create a dummy that will not display anything diff --git a/src/input.cpp b/src/input.cpp index caa180d2fd7f7..cd35cdebe85cd 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -27,8 +27,6 @@ using std::min; // from using std::max; -extern bool tile_iso; - static const std::string default_context_id( "default" ); template diff --git a/src/inventory.cpp b/src/inventory.cpp index dc0479d9b2af8..22bf16d40bece 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -108,8 +108,8 @@ invslice inventory::slice() const_invslice inventory::const_slice() const { const_invslice stacks; - for( auto iter = items.cbegin(); iter != items.cend(); ++iter ) { - stacks.push_back( &*iter ); + for( const auto &item : items ) { + stacks.push_back( &item ); } return stacks; } @@ -195,7 +195,7 @@ void inventory::clear() binned = false; } -void inventory::push_back( const std::list newits ) +void inventory::push_back( const std::list &newits ) { for( const auto &newit : newits ) { add_item( newit, true ); @@ -236,31 +236,33 @@ char inventory::find_usable_cached_invlet( const std::string &item_type ) return 0; } -item &inventory::add_item( item newit, bool keep_invlet, bool assign_invlet ) +item &inventory::add_item( item newit, bool keep_invlet, bool assign_invlet, bool should_stack ) { binned = false; - // See if we can't stack this item. - for( auto &elem : items ) { - std::list::iterator it_ref = elem.begin(); - if( it_ref->stacks_with( newit ) ) { - if( it_ref->merge_charges( newit ) ) { - return *it_ref; - } - if( it_ref->invlet == '\0' ) { - if( !keep_invlet ) { - update_invlet( newit, assign_invlet ); + if( should_stack ) { + // See if we can't stack this item. + for( auto &elem : items ) { + std::list::iterator it_ref = elem.begin(); + if( it_ref->stacks_with( newit ) ) { + if( it_ref->merge_charges( newit ) ) { + return *it_ref; } - update_cache_with_item( newit ); - it_ref->invlet = newit.invlet; - } else { - newit.invlet = it_ref->invlet; + if( it_ref->invlet == '\0' ) { + if( !keep_invlet ) { + update_invlet( newit, assign_invlet ); + } + update_cache_with_item( newit ); + it_ref->invlet = newit.invlet; + } else { + newit.invlet = it_ref->invlet; + } + elem.push_back( newit ); + return elem.back(); + } else if( keep_invlet && assign_invlet && it_ref->invlet == newit.invlet ) { + // If keep_invlet is true, we'll be forcing other items out of their current invlet. + assign_empty_invlet( *it_ref, g->u ); } - elem.push_back( newit ); - return elem.back(); - } else if( keep_invlet && assign_invlet && it_ref->invlet == newit.invlet ) { - // If keep_invlet is true, we'll be forcing other items out of their current invlet. - assign_empty_invlet( *it_ref, g->u ); } } @@ -307,9 +309,8 @@ void inventory::restack( player &p ) const int ipos = p.invlet_to_position( topmost.invlet ); if( !inv_chars.valid( topmost.invlet ) || ( ipos != INT_MIN && ipos != idx ) ) { assign_empty_invlet( topmost, p ); - for( std::list::iterator stack_iter = stack.begin(); - stack_iter != stack.end(); ++stack_iter ) { - stack_iter->invlet = topmost.invlet; + for( auto &stack_iter : stack ) { + stack_iter.invlet = topmost.invlet; } } @@ -598,9 +599,9 @@ item inventory::remove_item( const int position ) std::list inventory::remove_randomly_by_volume( const units::volume &volume ) { std::list result; - units::volume volume_dropped = 0; + units::volume volume_dropped = 0_ml; while( volume_dropped < volume ) { - units::volume cumulative_volume = 0; + units::volume cumulative_volume = 0_ml; auto chosen_stack = items.begin(); auto chosen_item = chosen_stack->begin(); for( auto stack = items.begin(); stack != items.end(); ++stack ) { @@ -679,7 +680,7 @@ int inventory::position_by_item( const item *it ) const return INT_MIN; } -int inventory::position_by_type( const itype_id &type ) +int inventory::position_by_type( const itype_id &type ) const { int i = 0; for( auto &elem : items ) { @@ -868,7 +869,7 @@ void inventory::rust_iron_items() units::mass inventory::weight() const { - units::mass ret = 0; + units::mass ret = 0_gram; for( const auto &elem : items ) { for( const auto &elem_stack_iter : elem ) { ret += elem_stack_iter.weight(); @@ -931,7 +932,7 @@ units::mass inventory::weight_without( const std::map &withou units::volume inventory::volume() const { - units::volume ret = 0; + units::volume ret = 0_ml; for( const auto &elem : items ) { for( const auto &elem_stack_iter : elem ) { ret += elem_stack_iter.volume(); diff --git a/src/inventory.h b/src/inventory.h index c295e129b6eba..e6efe200b253b 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -100,9 +100,10 @@ class inventory : public visitable void unsort(); // flags the inventory as unsorted void clear(); - void push_back( std::list newits ); + void push_back( const std::list &newits ); // returns a reference to the added item - item &add_item( item newit, bool keep_invlet = false, bool assign_invlet = true ); + item &add_item( item newit, bool keep_invlet = false, bool assign_invlet = true, + bool should_stack = true ); void add_item_keep_invlet( item newit ); void push_back( item newit ); @@ -140,7 +141,8 @@ class inventory : public visitable * the container. All items that are part of the same stack have the same item position. */ int position_by_item( const item *it ) const; - int position_by_type( const itype_id &type ); + int position_by_type( const itype_id &type ) const; + /** Return the item position of the item with given invlet, return INT_MIN if * the inventory does not have such an item with that invlet. Don't use this on npcs inventory. */ int invlet_to_position( char invlet ) const; diff --git a/src/inventory_ui.cpp b/src/inventory_ui.cpp index b59f8e93894b2..52a192fcba089 100644 --- a/src/inventory_ui.cpp +++ b/src/inventory_ui.cpp @@ -77,7 +77,7 @@ class selection_column_preset: public inventory_selector_preset public: selection_column_preset() {} - virtual std::string get_caption( const inventory_entry &entry ) const override { + std::string get_caption( const inventory_entry &entry ) const override { std::ostringstream res; const size_t available_count = entry.get_available_count(); if( entry.chosen_count > 0 && entry.chosen_count < available_count ) { @@ -101,7 +101,7 @@ class selection_column_preset: public inventory_selector_preset return res.str(); } - virtual nc_color get_color( const inventory_entry &entry ) const override { + nc_color get_color( const inventory_entry &entry ) const override { if( &*entry.location == &g->u.weapon ) { return c_light_blue; } else if( g->u.is_worn( *entry.location ) ) { @@ -919,14 +919,14 @@ void selection_column::on_change( const inventory_entry &entry ) // @todo: Move it into some 'item_stack' class. std::vector> restack_items( const std::list::const_iterator &from, - const std::list::const_iterator &to ) + const std::list::const_iterator &to, bool check_components = false ) { std::vector> res; for( auto it = from; it != to; ++it ) { auto match = std::find_if( res.begin(), res.end(), - [ &it ]( const std::list &e ) { - return it->stacks_with( *const_cast( e.back() ) ); + [ &it, check_components ]( const std::list &e ) { + return it->stacks_with( *const_cast( e.back() ), check_components ); } ); if( match != res.end() ) { @@ -1034,7 +1034,9 @@ void inventory_selector::add_character_items( Character &character ) if( ( &elem->front() )->ammo_type() == "money" ) { add_item( own_inv_column, item_location( character, elem ), elem->size() ); } else { - add_item( own_inv_column, item_location( character, &elem->front() ), elem->size() ); + add_items( own_inv_column, [&character]( item * it ) { + return item_location( character, it ); + }, restack_items( ( *elem ).begin(), ( *elem ).end(), preset.get_checking_components() ) ); } } } @@ -1048,7 +1050,7 @@ void inventory_selector::add_map_items( const tripoint &target ) add_items( map_column, [ &target ]( item * it ) { return item_location( target, it ); - }, restack_items( items.begin(), items.end() ), &map_cat ); + }, restack_items( items.begin(), items.end(), preset.get_checking_components() ), &map_cat ); } } @@ -1064,9 +1066,11 @@ void inventory_selector::add_vehicle_items( const tripoint &target ) const std::string name = to_upper_case( veh->parts[part].name() ); const item_category vehicle_cat( name, no_translation( name ), 200 ); + const auto check_components = this->preset.get_checking_components(); + add_items( map_column, [ veh, part ]( item * it ) { return item_location( vehicle_cursor( *veh, part ), it ); - }, restack_items( items.begin(), items.end() ), &vehicle_cat ); + }, restack_items( items.begin(), items.end(), check_components ), &vehicle_cat ); } void inventory_selector::add_nearby_items( int radius ) @@ -1686,7 +1690,7 @@ item_location inventory_pick_selector::execute() on_input( input ); } - if( input.action == "HELP_KEYBINDINGS" ) { + if( input.action == "HELP_KEYBINDINGS" || input.action == "INVENTORY_FILTER" ) { g->draw_ter(); wrefresh( g->w_terrain ); } @@ -1979,5 +1983,5 @@ inventory_selector::stats inventory_drop_selector::get_raw_stats() const u.weight_carried_with_tweaks( { dropping } ), u.weight_capacity(), u.volume_carried_with_tweaks( { dropping } ), - u.volume_capacity_reduced_by( 0, dropping ) ); + u.volume_capacity_reduced_by( 0_ml, dropping ) ); } diff --git a/src/inventory_ui.h b/src/inventory_ui.h index f2c943e254853..fd414e9c4f0bc 100644 --- a/src/inventory_ui.h +++ b/src/inventory_ui.h @@ -159,6 +159,10 @@ class inventory_selector_preset size_t get_cells_count() const { return cells.size(); } + /** Whether items should make new stacks if components differ */ + bool get_checking_components() const { + return check_components; + } virtual std::function get_filter( const std::string &filter ) const; @@ -178,6 +182,7 @@ class inventory_selector_preset void append_cell( const std::function &func, const std::string &title = std::string(), const std::string &stub = std::string() ); + bool check_components = false; private: class cell_t @@ -390,18 +395,18 @@ class selection_column : public inventory_column selection_column( const std::string &id, const std::string &name ); ~selection_column() override; - virtual bool activatable() const override { + bool activatable() const override { return inventory_column::activatable() && pages_count() > 1; } - virtual bool allows_selecting() const override { + bool allows_selecting() const override { return false; } - virtual void prepare_paging( const std::string &filter = "" ) override; + void prepare_paging( const std::string &filter = "" ) override; - virtual void on_change( const inventory_entry &entry ) override; - virtual void on_mode_change( navigation_mode ) override { + void on_change( const inventory_entry &entry ) override; + void on_mode_change( navigation_mode ) override { // Intentionally ignore mode change. } @@ -599,8 +604,8 @@ class inventory_multiselector : public inventory_selector inventory_multiselector( const player &p, const inventory_selector_preset &preset = default_preset, const std::string &selection_column_title = "" ); protected: - virtual void rearrange_columns( size_t client_width ) override; - virtual void on_entry_add( const inventory_entry &entry ) override; + void rearrange_columns( size_t client_width ) override; + void on_entry_add( const inventory_entry &entry ) override; private: std::unique_ptr selection_col; diff --git a/src/io.h b/src/io.h index 3045102507777..d70f5082d1d28 100644 --- a/src/io.h +++ b/src/io.h @@ -40,6 +40,9 @@ * ... * }; * + * The tag types are defined in io_tags.h so that this header need not be + * included to use them. + * * The function must be declared with the archive type as template parameter, but it can be * implemented outside of the header (e.g. in savegame_json.cpp). It will be instantiated with * JsonArrayInputArchive and JsonArrayOutputArchive, or with JsonObjectInputArchive and @@ -82,11 +85,6 @@ namespace io { -class JsonArrayInputArchive; -class JsonArrayOutputArchive; -class JsonObjectInputArchive; -class JsonObjectOutputArchive; - /** * Tag that indicates the default value for io should be the default value of the type * itself, i.e. the result of default initialization: `T()` @@ -110,22 +108,6 @@ struct empty_default_tag { }; */ struct required_tag { }; -/** - * Tag that indicates the class is stored in a JSON array. - */ -struct array_archive_tag { - using InputArchive = JsonArrayInputArchive; - using OutputArchive = JsonArrayOutputArchive; -}; - -/** - * Tag that indicates the class is stored in a JSON object. - */ -struct object_archive_tag { - using InputArchive = JsonObjectInputArchive; - using OutputArchive = JsonObjectOutputArchive; -}; - /** * The namespace contains classes that do write/read to/from JSON via either the Json classes in * "json.h" or via the `io` function of the object to be written/read. diff --git a/src/io_tags.h b/src/io_tags.h new file mode 100644 index 0000000000000..8808f54a3aa63 --- /dev/null +++ b/src/io_tags.h @@ -0,0 +1,31 @@ +#pragma once +#ifndef CATA_IO_TAGS_H +#define CATA_IO_TAGS_H + +namespace io +{ + +class JsonArrayInputArchive; +class JsonArrayOutputArchive; +class JsonObjectInputArchive; +class JsonObjectOutputArchive; + +/** + * Tag that indicates the class is stored in a JSON array. + */ +struct array_archive_tag { + using InputArchive = JsonArrayInputArchive; + using OutputArchive = JsonArrayOutputArchive; +}; + +/** + * Tag that indicates the class is stored in a JSON object. + */ +struct object_archive_tag { + using InputArchive = JsonObjectInputArchive; + using OutputArchive = JsonObjectOutputArchive; +}; + +} + +#endif // CATA_IO_TAGS_H diff --git a/src/item.cpp b/src/item.cpp index ff6bf1fbed956..42c8bd39d9c1a 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -182,7 +182,7 @@ item::item( const itype *type, time_point turn, long qty ) : type( type ), bday( } if( ( type->gun || type->tool ) && !magazine_integral() ) { - set_var( "magazine_converted", true ); + set_var( "magazine_converted", 1 ); } if( !type->snippet_category.empty() ) { @@ -531,7 +531,7 @@ item item::in_container( const itype_id &cont ) const long item::charges_per_volume( const units::volume &vol ) const { - if( type->volume == 0 ) { + if( type->volume == 0_ml ) { return INFINITE_CHARGES; // TODO: items should not have 0 volume at all! } // Type cast to prevent integer overflow with large volume containers like the cargo dimension @@ -539,7 +539,7 @@ long item::charges_per_volume( const units::volume &vol ) const : vol / volume(); } -bool item::stacks_with( const item &rhs ) const +bool item::stacks_with( const item &rhs, bool check_components ) const { if( type != rhs.type ) { return false; @@ -597,6 +597,14 @@ bool item::stacks_with( const item &rhs ) const if( corpse != nullptr && rhs.corpse != nullptr && corpse->id != rhs.corpse->id ) { return false; } + if( check_components || rhs.is_comestible() ) { + //Only check if at least one item isn't using the default recipe or is comestible + if( !components.empty() || !rhs.components.empty() ) { + if( get_uncraft_components() != rhs.get_uncraft_components() ) { + return false; + } + } + } if( contents.size() != rhs.contents.size() ) { return false; } @@ -1618,7 +1626,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts temp1.str( "" ); temp1 << _( "Incompatible with mod location: " ); int iternum = 0; - for( auto black : mod.blacklist_mod ) { + for( const auto &black : mod.blacklist_mod ) { if( iternum != 0 ) { temp1 << ", "; } @@ -1959,7 +1967,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts 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 auto 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(); @@ -2262,7 +2270,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } // @todo: Unhide when enforcing limits - if( is_bionic() && g->u.has_trait( trait_id( "DEBUG_CBM_SLOTS" ) ) + if( is_bionic() && get_option < bool >( "CBM_SLOTS_ENABLED" ) && parts->test( iteminfo_parts::DESCRIPTION_CBM_SLOTS ) ) { info.push_back( iteminfo( "DESCRIPTION", list_occupied_bps( type->bionic->id, _( "This bionic is installed in the following body part(s):" ) ) ) ); @@ -2481,8 +2489,8 @@ std::map item::get_mod_locations() const if( !mod->type->gunmod->add_mod.empty() ) { std::map add_locations = mod->type->gunmod->add_mod; - for( auto it = add_locations.begin(); it != add_locations.end(); ++it ) { - mod_locations[it->first] += it->second; + for( auto &add_location : add_locations ) { + mod_locations[add_location.first] += add_location.second; } } } @@ -3098,12 +3106,12 @@ int item::price( bool practical ) const units::mass item::weight( bool include_contents ) const { if( is_null() ) { - return 0; + return 0_gram; } // Items that don't drop aren't really there, they're items just for ease of implementation if( has_flag( "NO_DROP" ) ) { - return 0; + return 0_gram; } units::mass ret = units::from_gram( get_var( "weight", to_gram( type->weight ) ) ); @@ -3125,6 +3133,9 @@ units::mass item::weight( bool include_contents ) const if( has_flag( "GIBBED" ) ) { ret *= 0.85; } + if( has_flag( "SKINNED" ) ) { + ret *= 0.85; + } } else if( magazine_integral() && !is_magazine() ) { if( ammo_type() == ammotype( "plutonium" ) ) { @@ -3171,17 +3182,20 @@ units::volume item::corpse_volume( const mtype *corpse ) const if( has_flag( "GIBBED" ) ) { corpse_volume *= 0.85; } - if( corpse_volume > 0 ) { + if( has_flag( "SKINNED" ) ) { + corpse_volume *= 0.85; + } + if( corpse_volume > 0_ml ) { return corpse_volume; } debugmsg( "invalid monster volume for corpse" ); - return 0; + return 0_ml; } units::volume item::base_volume() const { if( is_null() ) { - return 0; + return 0_ml; } if( is_corpse() ) { return corpse_volume( corpse ); @@ -3201,7 +3215,7 @@ units::volume item::base_volume() const units::volume item::volume( bool integral ) const { if( is_null() ) { - return 0; + return 0_ml; } if( is_corpse() ) { @@ -3235,7 +3249,7 @@ units::volume item::volume( bool integral ) const // Some magazines sit (partly) flush with the item so add less extra volume if( magazine_current() != nullptr ) { - ret += std::max( magazine_current()->volume() - type->magazine_well, units::volume( 0 ) ); + ret += std::max( magazine_current()->volume() - type->magazine_well, 0_ml ); } if( is_gun() ) { @@ -3529,7 +3543,7 @@ std::set item::get_techniques() const bool item::goes_bad() const { - return is_food() && type->comestible->spoils != 0; + return is_food() && type->comestible->spoils != 0_turns; } double item::get_relative_rot() const @@ -3543,7 +3557,10 @@ void item::set_relative_rot( double val ) rot = type->comestible->spoils * val; // 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. - last_rot_check = calendar::turn; + // if this item is the result of smoking don't do this, we want to start from bday. + if( !has_flag( "SMOKING_RESULT" ) ) { + last_rot_check = calendar::turn; + } active = true; } } @@ -3595,7 +3612,8 @@ void item::calc_rot( const tripoint &location ) last_rot_check = now; // Frozen food do not rot, so no change to rot variable - if( item_tags.count( "FROZEN" ) ) { + // Smoking food will be checked for rot in smoker_finalize + if( item_tags.count( "FROZEN" ) || item_tags.count( "SMOKING" ) ) { return; } @@ -3624,11 +3642,23 @@ void item::calc_rot( const tripoint &location ) } } +void item::calc_rot_while_smoking( const tripoint &location, time_duration smoking_duration ) +{ + if( !item_tags.count( "SMOKING" ) ) { + debugmsg( "calc_rot_while_smoking called on non smoking item: %s", tname().c_str() ); + return; + } + + // Apply rot at 1/2 normal rate while smoking + rot += 0.5 * get_rot_since( last_rot_check, last_rot_check + smoking_duration, location ); + last_rot_check += smoking_duration; +} + units::volume item::get_storage() const { auto t = find_armor_data(); if( t == nullptr ) { - return 0; + return 0_ml; } return t->storage; @@ -3668,7 +3698,7 @@ bool item::is_power_armor() const int item::get_encumber( const Character &p ) const { - units::volume contents_volume( 0 ); + units::volume contents_volume( 0_ml ); for( const auto &e : contents ) { contents_volume += e.volume(); } @@ -3797,7 +3827,8 @@ const std::vector &item::brewing_results() const bool item::can_revive() const { 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( "FIELD_DRESS" ) || has_flag( "FIELD_DRESS_FAILED" ) || has_flag( "QUARTERED" ) || + has_flag( "SKINNED" ) ) ) { return true; } @@ -4754,6 +4785,42 @@ void item::mark_chapter_as_read( const player &u ) set_var( var, remain ); } +std::vector> item::get_available_recipes( const player &u ) const +{ + std::vector> recipe_entries; + if( is_book() ) { + // NPCs don't need to identify books + if( u.is_player() && !u.has_identified( typeId() ) ) { + return recipe_entries; + } + + 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 ) ); + } + } + } else if( has_var( "EIPC_RECIPES" ) ) { + // See einkpc_download_memory_card() in iuse.cpp where this is set. + const std::string recipes = get_var( "EIPC_RECIPES" ); + // Capture the index one past the delimiter, i.e. start of target string. + size_t first_string_index = recipes.find_first_of( ',' ) + 1; + while( first_string_index != std::string::npos ) { + size_t next_string_index = recipes.find_first_of( ',', first_string_index ); + if( next_string_index == std::string::npos ) { + break; + } + std::string new_recipe = recipes.substr( first_string_index, + next_string_index - first_string_index ); + const recipe *r = &recipe_id( new_recipe ).obj(); + if( u.get_skill_level( r->skill_used ) >= r->difficulty ) { + recipe_entries.push_back( std::make_pair( r, r->difficulty ) ); + } + first_string_index = next_string_index + 1; + } + } + return recipe_entries; +} + const material_type &item::get_random_material() const { return random_entry( made_of(), material_id::NULL_ID() ).obj(); @@ -4829,7 +4896,7 @@ skill_id item::melee_skill() const for( auto idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { auto val = damage_melee( static_cast( idx ) ); - auto sk = skill_by_dt( static_cast( idx ) ); + const skill_id &sk = skill_by_dt( static_cast( idx ) ); if( val > hi && sk ) { hi = val; res = sk; @@ -5349,7 +5416,7 @@ ret_val item::is_gunmod_compatible( const item &mod ) const return ret_val::make_failure( _( "must be unloaded before installing this mod" ) ); } - for( auto 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().c_str() ); @@ -5808,7 +5875,7 @@ bool item::burn( fire_data &frd ) !mt->burn_into.is_null() && mt->burn_into.is_valid() ) { corpse = &get_mtype()->burn_into.obj(); // Delay rezing - set_age( 0 ); + set_age( 0_turns ); burnt = 0; return false; } @@ -5837,7 +5904,7 @@ bool item::flammable( int threshold ) const } int flammability = 0; - units::volume volume_per_turn = 0; + units::volume volume_per_turn = 0_ml; for( const auto &m : mats ) { const auto &bd = m->burn_data( 1 ); if( bd.immune ) { @@ -5855,7 +5922,7 @@ bool item::flammable( int threshold ) const volume_per_turn /= mats.size(); units::volume vol = base_volume(); - if( volume_per_turn > 0 && volume_per_turn < vol ) { + if( volume_per_turn > 0_ml && volume_per_turn < vol ) { flammability = flammability * volume_per_turn / vol; } else { // If it burns well, it provides a bonus here @@ -5911,7 +5978,7 @@ int item::getlight_emit() const units::volume item::get_container_capacity() const { if( !is_container() ) { - return 0; + return 0_ml; } return type->container->contains; } @@ -5991,7 +6058,7 @@ long item::get_remaining_capacity_for_liquid( const item &liquid, const Characte if( res > 0 && !type->rigid && p.inv.has_item( *this ) ) { const units::volume volume_to_expand = std::max( p.volume_capacity() - p.volume_carried(), - units::volume( 0 ) ); + 0_ml ); res = std::min( liquid.charges_per_volume( volume_to_expand ), res ); @@ -6246,14 +6313,14 @@ const item_category &item::get_category() const } iteminfo::iteminfo( const std::string &Type, const std::string &Name, const std::string &Fmt, - flags f, double Value ) + flags Flags, double Value ) { sType = Type; sName = replace_colors( Name ); sFmt = replace_colors( Fmt ); - is_int = !( f & is_decimal ); + is_int = !( Flags & is_decimal ); dValue = Value; - bShowPlus = static_cast( f & show_plus ); + bShowPlus = static_cast( Flags & show_plus ); std::stringstream convert; if( bShowPlus ) { convert << std::showpos; @@ -6265,9 +6332,9 @@ iteminfo::iteminfo( const std::string &Type, const std::string &Name, const std: } convert << std::fixed << Value; sValue = convert.str(); - bNewLine = !( f & no_newline ); - bLowerIsBetter = static_cast( f & lower_is_better ); - bDrawName = !( f & no_name ); + bNewLine = !( Flags & no_newline ); + bLowerIsBetter = static_cast( Flags & lower_is_better ); + bDrawName = !( Flags & no_name ); } iteminfo::iteminfo( const std::string &Type, const std::string &Name, double Value ) @@ -6398,7 +6465,9 @@ std::string item::components_to_string() const t_count_map counts; for( const auto &elem : components ) { const std::string name = elem.display_name(); - counts[name]++; + if( !elem.has_flag( "BYPRODUCT" ) ) { + counts[name]++; + } } return enumerate_as_string( counts.begin(), counts.end(), []( const std::pair &entry ) -> std::string { @@ -6726,8 +6795,8 @@ bool item::process_fake_smoke( player * /*carrier*/, const tripoint &pos ) return true; //destroy fake smoke } - if( item_counter == 0 ) { - iexamine::on_smoke_out( pos ); //activate effects when timers goes to zero + if( age() >= 6_hours || item_counter == 0 ) { + iexamine::on_smoke_out( pos, birthday() ); //activate effects when timers goes to zero return true; //destroy fake smoke when it 'burns out' } @@ -7154,7 +7223,7 @@ bool item::is_seed() const time_duration item::get_plant_epoch() const { if( !type->seed ) { - return 0; + return 0_turns; } // Growing times have been based around real world season length rather than // the default in-game season length to give @@ -7225,9 +7294,16 @@ std::string item::type_name( unsigned int quantity ) const const auto iter = item_vars.find( "name" ); bool f_dressed = has_flag( "FIELD_DRESS" ) || has_flag( "FIELD_DRESS_FAILED" ); bool quartered = has_flag( "QUARTERED" ); + bool skinned = has_flag( "SKINNED" ); if( corpse != nullptr && typeId() == "corpse" ) { if( corpse_name.empty() ) { - if( f_dressed && !quartered ) { + if( skinned && !f_dressed && !quartered ) { + return string_format( npgettext( "item name", "skinned %s corpse", "skinned %s corpses", quantity ), + corpse->nname().c_str() ); + } else if( skinned && f_dressed && !quartered ) { + return string_format( npgettext( "item name", "skinned %s carcass", "skinned %s carcasses", + quantity ), corpse->nname().c_str() ); + } else if( f_dressed && !quartered ) { return string_format( npgettext( "item name", "%s carcass", "%s carcasses", quantity ), corpse->nname().c_str() ); @@ -7240,11 +7316,17 @@ std::string item::type_name( unsigned int quantity ) const "%s corpses", quantity ), corpse->nname().c_str() ); } else { - if( f_dressed && !quartered ) { + if( skinned && !f_dressed && !quartered ) { + return string_format( npgettext( "item name", "skinned %s corpse of %s", "skinned %s corpses of %s", + quantity ) ); + } else if( skinned && f_dressed && !quartered ) { + return string_format( npgettext( "item name", "skinned %s carcass of %s", + "skinned %s carcasses of %s", quantity ) ); + } else if( f_dressed && !quartered && !skinned ) { return string_format( npgettext( "item name", "%s carcass of %s", "%s carcasses of %s", quantity ), corpse->nname().c_str(), corpse_name.c_str() ); - } else if( f_dressed && quartered ) { + } else if( f_dressed && quartered && !skinned ) { return string_format( npgettext( "item name", "quartered %s carcass", "quartered %s carcasses", quantity ), corpse->nname().c_str() ); @@ -7366,7 +7448,7 @@ time_duration item::age() const return calendar::turn - birthday(); } -void item::set_age( const time_duration age ) +void item::set_age( const time_duration &age ) { set_birthday( time_point( calendar::turn ) - age ); } @@ -7376,7 +7458,7 @@ time_point item::birthday() const return bday; } -void item::set_birthday( const time_point bday ) +void item::set_birthday( const time_point &bday ) { this->bday = bday; } @@ -7401,3 +7483,22 @@ int item::get_min_str() const return type->min_str; } } + +std::vector item::get_uncraft_components() const +{ + std::vector ret; + if( components.empty() ) { + //If item wasn't crafted with specific components use default 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( auto &component : components ) { + ret.push_back( item_comp( component.typeId(), component.count() ) ); + } + } + return ret; +} diff --git a/src/item.h b/src/item.h index dfa13c8bc4190..f477e030c5cd1 100644 --- a/src/item.h +++ b/src/item.h @@ -13,9 +13,12 @@ #include "cata_utility.h" #include "debug.h" #include "enums.h" +#include "io_tags.h" #include "item_location.h" #include "string_id.h" +#include "units.h" #include "visitable.h" +#include "requirements.h" namespace cata { @@ -29,15 +32,6 @@ class JsonOut; class iteminfo_query; template class ret_val; -namespace units -{ -template -class quantity; -class mass_in_gram_tag; -using mass = quantity; -class volume_in_milliliter_tag; -using volume = quantity; -} // namespace units class gun_type_type; class gunmod_location; class game; @@ -46,6 +40,7 @@ using gun_mode_id = string_id; class Character; class player; class npc; +class recipe; struct itype; struct mtype; using mtype_id = string_id; @@ -89,11 +84,6 @@ struct light_emission { }; extern light_emission nolight; -namespace io -{ -struct object_archive_tag; -} - /** * Value and metadata for one property of an item * @@ -151,11 +141,11 @@ struct iteminfo { * @param Type The item type of the item this iteminfo belongs to. * @param Name The name of the property this iteminfo describes. * @param Fmt Formatting text desired between item name and value - * @param flags Additional flags to customize this entry + * @param Flags Additional flags to customize this entry * @param Value Numerical value of this property, -999 for none. */ iteminfo( const std::string &Type, const std::string &Name, const std::string &Fmt = "", - flags = no_flags, double Value = -999 ); + flags Flags = no_flags, double Value = -999 ); iteminfo( const std::string &Type, const std::string &Name, double Value ); }; @@ -431,7 +421,7 @@ class item : public visitable */ int price( bool practical ) const; - bool stacks_with( const item &rhs ) const; + bool stacks_with( const item &rhs, bool check_components = false ) const; /** * Merge charges of the other item into this item. * @return true if the items have been merged, otherwise false. @@ -663,6 +653,16 @@ class item : public visitable */ void calc_rot( const tripoint &p ); + /** + * Accumulate rot of the item since starting smoking. + * This is part of a workaround so that items don't rot away to nothing if the smoking rack + * is outside the reality bubble. + * @param p The absolute, global location (in map square coordinates) of the item to + * check for temperature. + * @param smoking_duration + */ + void calc_rot_while_smoking( const tripoint &p, time_duration smoking_duration ); + /** * Update temperature item_counters for things like food * @param temp Temperature at which item is current exposed @@ -719,41 +719,6 @@ class item : public visitable /** remove frozen tag and if it takes freezerburn, applies mushy/rotten */ void apply_freezerburn(); - private: - /** - * Accumulated rot, expressed as time the item has been in standard temperature. - * It is compared to shelf life (@ref islot_comestible::spoils) to decide if - * the item is rotten. - */ - time_duration rot = 0; - /** Time when the rot calculation was last performed. */ - time_point last_rot_check = calendar::time_of_cataclysm; - - /** - * Calculate temperature differential and handle FROZEN/COLD/HOT states - * @param temp Temperature of surroundings - * @param insulation Amount of insulation item has - * @param time Duration of time at which to process at temperature - */ - void calc_temp( const int temp, const float insulation, const time_duration &time ); - - /** Using item_tags and counters, calculate a static counter representation of the item's temperature */ - int get_static_temp_counter() const; - - /** Set temperature tags and counter according to a static counter */ - void set_temp_from_static( const int counter ); - - /** the last time the temperature was updated for this item */ - time_point last_temp_check = calendar::time_of_cataclysm; - - /** - * Current phase state, inherits a default at room temperature from - * itype and can be changed through item processing. This is a static - * cast to avoid importing the entire enums.h header here, zero is - * PNULL. - */ - phase_id current_phase = static_cast( 0 ); - public: time_duration get_rot() const { return rot; } @@ -841,6 +806,11 @@ class item : public visitable */ bool made_of( phase_id phase ) const; bool made_of_from_type( phase_id phase ) const; + /** + * Returns a list of components used to craft this item or the default + * components if it wasn't player-crafted. + */ + std::vector get_uncraft_components() const; /** * Whether the items is conductive. */ @@ -979,20 +949,7 @@ class item : public visitable */ bool process( player *carrier, const tripoint &pos, bool activate ); bool process( player *carrier, const tripoint &pos, bool activate, int temp, float insulation ); - protected: - // Sub-functions of @ref process, they handle the processing for different - // processing types, just to make the process function cleaner. - // The interface is the same as for @ref process. - bool process_food( const player *carrier, const tripoint &p, int temp, float insulation ); - bool process_corpse( player *carrier, const tripoint &pos ); - bool process_wet( player *carrier, const tripoint &pos ); - bool process_litcig( player *carrier, const tripoint &pos ); - bool process_extinguish( player *carrier, const tripoint &pos ); - // Place conditions that should remove fake smoke item in this sub-function - bool process_fake_smoke( player *carrier, const tripoint &pos ); - bool process_cable( player *carrier, const tripoint &pos ); - bool process_tool( player *carrier, const tripoint &pos ); - public: + /** * Gets the point (vehicle tile) the cable is connected to. * Returns nothing if not connected to anything. @@ -1091,10 +1048,6 @@ class item : public visitable bool is_reloadable_with( const itype_id &ammo ) const; /** Returns true if not empty if it's liquid, it's not currently frozen in resealable container */ bool can_unload_liquid() const; - private: - /** Helper for checking reloadability. **/ - bool is_reloadable_helper( const itype_id &ammo, bool now ) const; - public: bool is_dangerous() const; // Is it an active grenade or something similar that will hurt us? @@ -1133,9 +1086,6 @@ class item : public visitable /** return the unique identifier of the items underlying type */ itype_id typeId() const; - const itype *type; - std::list contents; - /** * Return a contained item (if any and only one). */ @@ -1493,6 +1443,10 @@ class item : public visitable * no unread chapters. This is a per-character setting, see @ref get_remaining_chapters. */ void mark_chapter_as_read( const player &u ); + /** + * Enumerates recipes available from this book and the skill level required to use them. + */ + std::vector> get_available_recipes( const player &u ) const; /*@}*/ /** @@ -1816,50 +1770,106 @@ class item : public visitable /* add the monster at target to this item, despawning it */ int contain_monster( const tripoint &target ); + time_duration age() const; + void set_age( const time_duration &age ); + time_point birthday() const; + void set_birthday( const time_point &bday ); + + int get_gun_ups_drain() const; + + int get_min_str() const; + + private: + /** + * Calculate temperature differential and handle FROZEN/COLD/HOT states + * @param temp Temperature of surroundings + * @param insulation Amount of insulation item has + * @param time Duration of time at which to process at temperature + */ + void calc_temp( const int temp, const float insulation, const time_duration &time ); + + /** Using item_tags and counters, calculate a static counter representation of the item's temperature */ + int get_static_temp_counter() const; + + /** Set temperature tags and counter according to a static counter */ + void set_temp_from_static( const int counter ); + + /** Helper for checking reloadability. **/ + bool is_reloadable_helper( const itype_id &ammo, bool now ) const; + + protected: + // Sub-functions of @ref process, they handle the processing for different + // processing types, just to make the process function cleaner. + // The interface is the same as for @ref process. + bool process_food( const player *carrier, const tripoint &p, int temp, float insulation ); + bool process_corpse( player *carrier, const tripoint &pos ); + bool process_wet( player *carrier, const tripoint &pos ); + bool process_litcig( player *carrier, const tripoint &pos ); + bool process_extinguish( player *carrier, const tripoint &pos ); + // Place conditions that should remove fake smoke item in this sub-function + bool process_fake_smoke( player *carrier, const tripoint &pos ); + bool process_cable( player *carrier, const tripoint &pos ); + bool process_tool( player *carrier, const tripoint &pos ); + + public: + static const long INFINITE_CHARGES; + typedef std::vector t_item_vector; + + const itype *type; + std::list contents; + t_item_vector components; + /** What faults (if any) currently apply to this item */ + std::set faults; + std::set item_tags; // generic item specific flags + private: - int damage_ = 0; const itype *curammo = nullptr; std::map item_vars; const mtype *corpse = nullptr; std::string corpse_name; // Name of the late lamented std::set techniques; // item specific techniques - light_emission light = nolight; public: - static const long INFINITE_CHARGES; - - char invlet = 0; // Inventory letter long charges; - bool active = false; // If true, it has active effects to be processed + // The number of charges a recipe creates. Used for comestible consumption. + int recipe_charges = 1; int burnt = 0; // How badly we're burnt - private: - /// The time the item was created. - time_point bday; - public: - time_duration age() const; - void set_age( time_duration age ); - time_point birthday() const; - void set_birthday( time_point bday ); - int poison = 0; // How badly poisoned is it? int frequency = 0; // Radio frequency int note = 0; // Associated dynamic text snippet. int irridation = 0; // Tracks radiation dosage. - - /** What faults (if any) currently apply to this item */ - std::set faults; - - std::set item_tags; // generic item specific flags int item_counter = 0; // generic counter to be used with item flags int mission_id = -1; // Refers to a mission in game's master list int player_id = -1; // Only give a mission to the right player! - typedef std::vector t_item_vector; - t_item_vector components; - int get_gun_ups_drain() const; + private: + /** + * Accumulated rot, expressed as time the item has been in standard temperature. + * It is compared to shelf life (@ref islot_comestible::spoils) to decide if + * the item is rotten. + */ + time_duration rot = 0_turns; + /** Time when the rot calculation was last performed. */ + 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::time_of_cataclysm; + /// The time the item was created. + time_point bday; + /** + * Current phase state, inherits a default at room temperature from + * itype and can be changed through item processing. This is a static + * cast to avoid importing the entire enums.h header here, zero is + * PNULL. + */ + phase_id current_phase = static_cast( 0 ); - int get_min_str() const; + int damage_ = 0; + light_emission light = nolight; + + public: + char invlet = 0; // Inventory letter + bool active = false; // If true, it has active effects to be processed }; bool item_compare_by_charges( const item &left, const item &right ); diff --git a/src/item_action.cpp b/src/item_action.cpp index 3205619daeade..a26a00db8280b 100644 --- a/src/item_action.cpp +++ b/src/item_action.cpp @@ -44,7 +44,7 @@ class actmenu_cb : public uilist_callback bool key( const input_context &ctxt, const input_event &event, int /*idx*/, uilist * /*menu*/ ) override { - const std::string action = ctxt.input_to_action( event ); + const std::string &action = ctxt.input_to_action( event ); // Don't write a message if unknown command was sent // Only when an inexistent tool was selected auto itemless_action = am.find( action ); diff --git a/src/item_factory.cpp b/src/item_factory.cpp index b7a927b845392..93dec6dfd9e55 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -167,7 +167,7 @@ void Item_factory::finalize_pre( itype &obj ) obj.price_post = obj.price; } // use base volume if integral volume unspecified - if( obj.integral_volume < 0 ) { + if( obj.integral_volume < 0_ml ) { obj.integral_volume = obj.volume; } // for ammo and comestibles stack size defaults to count of initial charges @@ -184,7 +184,7 @@ void Item_factory::finalize_pre( itype &obj ) // Items always should have some volume. // TODO: handle possible exception software? // TODO: make items with 0 volume an error during loading? - if( obj.volume <= 0 ) { + if( obj.volume <= 0_ml ) { obj.volume = units::from_milliliter( 1 ); } for( const auto &tag : obj.item_tags ) { @@ -811,10 +811,10 @@ void Item_factory::check_definitions() const msg << "undefined category " << type->category_force << "\n"; } - if( type->weight < 0 ) { + if( type->weight < 0_gram ) { msg << "negative weight" << "\n"; } - if( type->volume < 0 ) { + if( type->volume < 0_ml ) { msg << "negative volume" << "\n"; } if( type->price < 0 ) { @@ -952,7 +952,7 @@ void Item_factory::check_definitions() const msg << "specified magazine but none provided for default ammo type" << "\n"; } } - if( type->gun->barrel_length < 0 ) { + if( type->gun->barrel_length < 0_ml ) { msg << "gun barrel length cannot be negative" << "\n"; } @@ -1077,7 +1077,7 @@ void Item_factory::check_definitions() const msg << string_format( "Resealable container unseals_into %s", type->container->unseals_into.c_str() ) << "\n"; } - if( type->container->contains <= 0 ) { + if( type->container->contains <= 0_ml ) { msg << string_format( "\"contains\" (%d) must be >0", type->container->contains.value() ) << "\n"; } if( !has_template( type->container->unseals_into ) ) { @@ -1163,7 +1163,7 @@ Item_spawn_data *Item_factory::get_group( const Item_tag &group_tag ) if( group_iter != m_template_groups.end() ) { return group_iter->second.get(); } - return NULL; + return nullptr; } /////////////////////// @@ -1388,7 +1388,7 @@ void Item_factory::load( islot_gun &slot, JsonObject &jo, const std::string &src assign( jo, "reload", slot.reload_time, strict, 0 ); assign( jo, "reload_noise", slot.reload_noise, strict ); assign( jo, "reload_noise_volume", slot.reload_noise_volume, strict, 0 ); - assign( jo, "barrel_length", slot.barrel_length, strict, 0 ); + assign( jo, "barrel_length", slot.barrel_length, strict, 0_ml ); assign( jo, "built_in_mods", slot.built_in_mods, strict ); assign( jo, "default_mods", slot.default_mods, strict ); assign( jo, "ups_charges", slot.ups_charges, strict, 0 ); @@ -1434,7 +1434,7 @@ void Item_factory::load( islot_armor &slot, JsonObject &jo, const std::string &s assign( jo, "environmental_protection", slot.env_resist, strict, 0 ); assign( jo, "environmental_protection_with_filter", slot.env_resist_w_filter, strict, 0 ); assign( jo, "warmth", slot.warmth, strict, 0 ); - assign( jo, "storage", slot.storage, strict, 0 ); + assign( jo, "storage", slot.storage, strict, 0_ml ); assign( jo, "power_armor", slot.power_armor, strict ); assign_coverage_from_json( jo, "covers", slot.covers, slot.sided ); @@ -1565,6 +1565,7 @@ void Item_factory::load( islot_comestible &slot, JsonObject &jo, const std::stri assign( jo, "parasites", slot.parasites, strict, 0 ); assign( jo, "freezing_point", slot.freeze_point, strict ); assign( jo, "spoils_in", slot.spoils, strict, 1_hours ); + assign( jo, "cooks_like", slot.cooks_like, strict ); if( jo.has_string( "addiction_type" ) ) { slot.add = addiction_type( jo.get_string( "addiction_type" ) ); @@ -1871,7 +1872,7 @@ void Item_factory::load_basic_info( JsonObject &jo, itype &def, const std::strin bool strict = src == "dda"; assign( jo, "category", def.category_force, strict ); - assign( jo, "weight", def.weight, strict, 0 ); + assign( jo, "weight", def.weight, strict, 0_gram ); assign( jo, "volume", def.volume ); assign( jo, "price", def.price ); assign( jo, "price_postapoc", def.price_post ); diff --git a/src/item_group.cpp b/src/item_group.cpp index 569cd3b225387..be951609f5051 100644 --- a/src/item_group.cpp +++ b/src/item_group.cpp @@ -207,7 +207,7 @@ void Item_modifier::modify( item &new_item ) const } if( ch > 0 && ( new_item.is_gun() || new_item.is_magazine() ) ) { - if( ammo.get() == nullptr ) { + if( ammo == nullptr ) { // In case there is no explicit ammo item defined, use the default ammo if( new_item.ammo_type() ) { new_item.ammo_set( new_item.ammo_type()->default_ammotype(), ch ); @@ -235,7 +235,7 @@ void Item_modifier::modify( item &new_item ) const } if( spawn_ammo ) { - if( ammo.get() ) { + if( ammo ) { const item am = ammo->create_single( new_item.birthday() ); new_item.ammo_set( am.typeId() ); } else { @@ -244,7 +244,7 @@ void Item_modifier::modify( item &new_item ) const } } - if( container.get() != nullptr ) { + if( container != nullptr ) { item cont = container->create_single( new_item.birthday() ); if( !cont.is_null() ) { if( new_item.made_of( LIQUID ) ) { @@ -260,7 +260,7 @@ void Item_modifier::modify( item &new_item ) const } } - if( contents.get() != nullptr ) { + if( contents != nullptr ) { Item_spawn_data::ItemList contentitems = contents->create( new_item.birthday() ); new_item.contents.insert( new_item.contents.end(), contentitems.begin(), contentitems.end() ); } @@ -272,10 +272,10 @@ void Item_modifier::modify( item &new_item ) const void Item_modifier::check_consistency() const { - if( ammo.get() != nullptr ) { + if( ammo != nullptr ) { ammo->check_consistency(); } - if( container.get() != nullptr ) { + if( container != nullptr ) { container->check_consistency(); } if( with_ammo < 0 || with_ammo > 100 ) { @@ -288,12 +288,12 @@ void Item_modifier::check_consistency() const bool Item_modifier::remove_item( const Item_tag &itemid ) { - if( ammo.get() != nullptr ) { + if( ammo != nullptr ) { if( ammo->remove_item( itemid ) ) { ammo.reset(); } } - if( container.get() != nullptr ) { + if( container != nullptr ) { if( container->remove_item( itemid ) ) { container.reset(); return true; diff --git a/src/item_group.h b/src/item_group.h index c9468a9454a03..da604b1256c28 100644 --- a/src/item_group.h +++ b/src/item_group.h @@ -220,7 +220,7 @@ class Single_item_creator : public Item_spawn_data void inherit_ammo_mag_chances( const int ammo, const int mag ); - virtual ItemList create( const time_point &birthday, RecursionList &rec ) const override; + ItemList create( const time_point &birthday, RecursionList &rec ) const override; item create_single( const time_point &birthday, RecursionList &rec ) const override; void check_consistency() const override; bool remove_item( const Item_tag &itemid ) override; @@ -263,7 +263,7 @@ class Item_group : public Item_spawn_data */ void add_entry( std::unique_ptr ptr ); - virtual ItemList create( const time_point &birthday, RecursionList &rec ) const override; + ItemList create( const time_point &birthday, RecursionList &rec ) const override; item create_single( const time_point &birthday, RecursionList &rec ) const override; void check_consistency() const override; bool remove_item( const Item_tag &itemid ) override; diff --git a/src/item_location.cpp b/src/item_location.cpp index c17f58dfddbc9..c8b7c0b2de37e 100644 --- a/src/item_location.cpp +++ b/src/item_location.cpp @@ -124,6 +124,11 @@ class item_location::impl mutable int idx = -1; //Only used for stacked cash card currently, needed to be able to process a stack of different items mutable std::list *whatstart = nullptr; + + public: + //Flag that controls whether functions like obtain() should stack the obtained item + //with similar existing items in the inventory or create a new stack for the item + bool should_stack = true; }; class item_location::impl::nowhere : public item_location::impl @@ -183,9 +188,9 @@ class item_location::impl::item_on_map : public item_location::impl item obj = target()->split( qty ); if( !obj.is_null() ) { - return ch.get_item_position( &ch.i_add( obj ) ); + return ch.get_item_position( &ch.i_add( obj, should_stack ) ); } else { - int inv = ch.get_item_position( &ch.i_add( *target() ) ); + int inv = ch.get_item_position( &ch.i_add( *target(), should_stack ) ); remove_item(); return inv; } @@ -297,9 +302,9 @@ class item_location::impl::item_on_person : public item_location::impl item obj = target()->split( qty ); if( !obj.is_null() ) { - return ch.get_item_position( &ch.i_add( obj ) ); + return ch.get_item_position( &ch.i_add( obj, should_stack ) ); } else { - int inv = ch.get_item_position( &ch.i_add( *target() ) ); + int inv = ch.get_item_position( &ch.i_add( *target(), should_stack ) ); remove_item(); // This also takes off the item from whoever wears it. return inv; } @@ -424,9 +429,9 @@ class item_location::impl::item_on_vehicle : public item_location::impl item obj = target()->split( qty ); if( !obj.is_null() ) { - return ch.get_item_position( &ch.i_add( obj ) ); + return ch.get_item_position( &ch.i_add( obj, should_stack ) ); } else { - int inv = ch.get_item_position( &ch.i_add( *target() ) ); + int inv = ch.get_item_position( &ch.i_add( *target(), should_stack ) ); remove_item(); return inv; } @@ -616,3 +621,8 @@ item_location item_location::clone() const res.ptr = ptr; return res; } + +void item_location::set_should_stack( bool should_stack ) const +{ + ptr->should_stack = should_stack; +} diff --git a/src/item_location.h b/src/item_location.h index 4347361f421b7..1cc04575f07f7 100644 --- a/src/item_location.h +++ b/src/item_location.h @@ -5,6 +5,8 @@ #include #include +#include "map_selector.h" + struct tripoint; class item; class Character; @@ -98,6 +100,8 @@ class item_location */ item_location clone() const; + void set_should_stack( bool should_stack ) const; + private: class impl; std::shared_ptr ptr; diff --git a/src/item_search.cpp b/src/item_search.cpp index 0b1f235bbef39..37c672d047b67 100644 --- a/src/item_search.cpp +++ b/src/item_search.cpp @@ -43,6 +43,16 @@ std::function basic_item_filter( std::string filter ) return item_filter_from_string( pair.first )( i ) && item_filter_from_string( pair.second )( i ); }; + case 'd'://disassembled components + return [filter]( const item & i ) { + const auto &components = i.get_uncraft_components(); + for( auto &component : components ) { + if( lcmatch( component.to_string(), filter ) ) { + return true; + } + } + return false; + }; default://by name return [filter]( const item & a ) { return lcmatch( a.tname(), filter ); diff --git a/src/item_stack.cpp b/src/item_stack.cpp index 56df85c22017d..0625c17bf9fc4 100644 --- a/src/item_stack.cpp +++ b/src/item_stack.cpp @@ -76,7 +76,7 @@ item &item_stack::operator[]( size_t index ) units::volume item_stack::stored_volume() const { - units::volume ret = 0; + units::volume ret = 0_ml; for( const item &it : *mystack ) { ret += it.volume(); } diff --git a/src/item_stack.h b/src/item_stack.h index 0cebdcc611905..6a3610dd730bc 100644 --- a/src/item_stack.h +++ b/src/item_stack.h @@ -5,14 +5,9 @@ #include #include +#include "units.h" + class item; -namespace units -{ -template -class quantity; -class volume_in_milliliter_tag; -using volume = quantity; -} // namespace units // A wrapper class to bundle up the references needed for a caller to safely manipulate // items and obtain information about items at a particular map x/y location. diff --git a/src/itype.cpp b/src/itype.cpp index a2af268cf7ea5..ba9ca8d07918f 100644 --- a/src/itype.cpp +++ b/src/itype.cpp @@ -25,7 +25,7 @@ std::string itype::nname( unsigned int quantity ) const long itype::charges_per_volume( const units::volume &vol ) const { - if( volume == 0 ) { + if( volume == 0_ml ) { return item::INFINITE_CHARGES; // TODO: items should not have 0 volume at all! } return ( stackable ? stack_size : 1 ) * vol / volume; diff --git a/src/itype.h b/src/itype.h index 2609fbe29a0e3..8dff2b6aaba60 100644 --- a/src/itype.h +++ b/src/itype.h @@ -140,7 +140,7 @@ struct islot_comestible { int nutr = 0; /** Time until becomes rotten at standard temperature, or zero if never spoils */ - time_duration spoils = 0; + time_duration spoils = 0_turns; /** addiction potential */ int addict = 0; @@ -154,6 +154,9 @@ struct islot_comestible { /** stimulant effect */ int stim = 0; + /** Reference to other item that replaces this one as a component in recipe results */ + itype_id cooks_like; + /** @todo: add documentation */ int healthy = 0; @@ -184,14 +187,14 @@ struct islot_brewable { std::vector results; /** How long for this brew to ferment. */ - time_duration time = 0; + time_duration time = 0_turns; }; struct islot_container { /** * Inner volume of the container. */ - units::volume contains = 0; + units::volume contains = 0_ml; /** * Can be resealed. */ @@ -249,7 +252,7 @@ struct islot_armor { /** * How much storage this items provides when worn. */ - units::volume storage = 0; + units::volume storage = 0_ml; /** * Whether this is a power armor item. */ @@ -442,7 +445,7 @@ struct islot_gun : common_ranged_data { /** * Length of gun barrel, if positive allows sawing down of the barrel */ - units::volume barrel_length = 0; + units::volume barrel_length = 0_ml; /** * Effects that are applied to the ammo when fired. */ @@ -649,7 +652,7 @@ struct islot_seed { /** * Time it takes for a seed to grow (based of off a season length of 91 days). */ - time_duration grow = 0; + time_duration grow = 0_turns; /** * Amount of harvested charges of fruits is divided by this number. */ @@ -671,7 +674,7 @@ struct islot_seed { */ std::vector byproducts; - islot_seed() { } + islot_seed() = default; }; struct islot_artifact { @@ -686,7 +689,6 @@ struct islot_artifact { int dream_freq_unmet; int dream_freq_met; }; -bool check_art_charge_req( item &it ); struct itype { friend class Item_factory; @@ -793,14 +795,14 @@ struct itype { /**@{*/ /** Weight of item ( or each stack member ) */ - units::mass weight = 0; + units::mass weight = 0_gram; /** * Space occupied by items of this type * CAUTION: value given is for a default-sized stack. Avoid using where @ref stackable items may be encountered; see @ref item::volume instead. * To determine how many of an item can fit in a given space, use @ref charges_per_volume. */ - units::volume volume = 0; + units::volume volume = 0_ml; /** * Space consumed when integrated as part of another item (defaults to volume) * CAUTION: value given is for a default-sized stack. Avoid using this. In general, see @ref item::volume instead. @@ -848,7 +850,7 @@ struct itype { std::map< ammotype, itype_id > magazine_default; /** Volume above which the magazine starts to protrude from the item and add extra volume */ - units::volume magazine_well = 0; + units::volume magazine_well = 0_ml; layer_level layer; diff --git a/src/iuse.cpp b/src/iuse.cpp index 5e33581d00c04..97658d8291a1d 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -140,6 +140,7 @@ const efftype_id effect_stimpack( "stimpack" ); const efftype_id effect_strong_antibiotic( "strong_antibiotic" ); const efftype_id effect_strong_antibiotic_visible( "strong_antibiotic_visible" ); const efftype_id effect_stunned( "stunned" ); +const efftype_id effect_teargas( "teargas" ); const efftype_id effect_tapeworm( "tapeworm" ); const efftype_id effect_teleglow( "teleglow" ); const efftype_id effect_tetanus( "tetanus" ); @@ -297,8 +298,8 @@ int iuse::atomic_caff( player *p, item *it, bool, const tripoint & ) return it->type->charges_to_use(); } -static constexpr time_duration alc_strength( const int strength, const time_duration weak, - const time_duration medium, const time_duration strong ) +static constexpr time_duration alc_strength( const int strength, const time_duration &weak, + const time_duration &medium, const time_duration &strong ) { return strength == 0 ? weak : strength == 1 ? medium : strong; } @@ -811,7 +812,7 @@ int iuse::datura( player *p, item *it, bool, const tripoint & ) p->add_effect( effect_datura, rng( 200_minutes, 800_minutes ) ); p->add_msg_if_player( _( "You eat the datura seed." ) ); if( p->has_trait( trait_SPIRITUAL ) ) { - p->add_morale( MORALE_FOOD_GOOD, 36, 72, 12_minutes, 6_minutes, false, it->type ); + p->add_morale( MORALE_FOOD_GOOD, 36, 72, 2_hours, 1_hours, false, it->type ); } return it->type->charges_to_use(); } @@ -851,6 +852,8 @@ int iuse::oxygen_bottle( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_neutral, _( "You breathe deeply from the %s" ), it->tname().c_str() ); if( p->has_effect( effect_smoke ) ) { p->remove_effect( effect_smoke ); + } else if( p->has_effect( effect_teargas ) ) { + p->remove_effect( effect_teargas ); } else if( p->has_effect( effect_asthma ) ) { p->remove_effect( effect_asthma ); } else if( p->stim < 16 ) { @@ -886,7 +889,7 @@ int iuse::blech( player *p, item *it, bool, const tripoint & ) p->mod_stomach_water( 20 ); p->mod_healthy_mod( it->type->comestible->healthy * multiplier, it->type->comestible->healthy * multiplier ); - p->add_morale( MORALE_FOOD_BAD, it->type->comestible->fun * multiplier, 60, 6_minutes, 3_minutes, + p->add_morale( MORALE_FOOD_BAD, it->type->comestible->fun * multiplier, 60, 1_hours, 30_minutes, false, it->type ); } else { p->add_msg_if_player( m_bad, _( "Blech, that burns your throat!" ) ); @@ -914,7 +917,7 @@ int iuse::plantblech( player *p, item *it, bool, const tripoint &pos ) p->mod_thirst( -it->type->comestible->quench * multiplier ); p->mod_healthy_mod( it->type->comestible->healthy * multiplier, it->type->comestible->healthy * multiplier ); - p->add_morale( MORALE_FOOD_GOOD, -10 * multiplier, 60, 6_minutes, 3_minutes, false, it->type ); + p->add_morale( MORALE_FOOD_GOOD, -10 * multiplier, 60, 1_hours, 30_minutes, false, it->type ); return it->type->charges_to_use(); } else { return blech( p, it, true, pos ); @@ -933,9 +936,9 @@ static void do_purify( player &p ) { std::vector valid; // Which flags the player has for( auto &traits_iter : mutation_branch::get_all() ) { - if( p.has_trait( traits_iter.first ) && !p.has_base_trait( traits_iter.first ) ) { + if( p.has_trait( traits_iter.id ) && !p.has_base_trait( traits_iter.id ) ) { //Looks for active mutation - valid.push_back( traits_iter.first ); + valid.push_back( traits_iter.id ); } } if( valid.empty() ) { @@ -978,9 +981,9 @@ int iuse::purify_iv( player *p, item *it, bool, const tripoint & ) std::vector valid; // Which flags the player has for( auto &traits_iter : mutation_branch::get_all() ) { - if( p->has_trait( traits_iter.first ) && !p->has_base_trait( traits_iter.first ) ) { + if( p->has_trait( traits_iter.id ) && !p->has_base_trait( traits_iter.id ) ) { //Looks for active mutation - valid.push_back( traits_iter.first ); + valid.push_back( traits_iter.id ); } } if( valid.empty() ) { @@ -1022,12 +1025,12 @@ int iuse::purify_smart( player *p, item *it, bool, const tripoint & ) std::vector valid; // Which flags the player has std::vector valid_names; // Which flags the player has for( auto &traits_iter : mutation_branch::get_all() ) { - if( p->has_trait( traits_iter.first ) && - !p->has_base_trait( traits_iter.first ) && - p->purifiable( traits_iter.first ) ) { + if( p->has_trait( traits_iter.id ) && + !p->has_base_trait( traits_iter.id ) && + p->purifiable( traits_iter.id ) ) { //Looks for active mutation - valid.push_back( traits_iter.first ); - valid_names.push_back( traits_iter.first->name() ); + valid.push_back( traits_iter.id ); + valid_names.push_back( traits_iter.id->name() ); } } if( valid.empty() ) { @@ -1069,7 +1072,7 @@ void spawn_spores( const player &p ) if( g->m.impassable( dest ) ) { continue; } - float dist = trig_dist( dest, p.pos() ); + float dist = rl_dist( dest, p.pos() ); if( x_in_y( 1, dist ) ) { fe.marlossify( dest ); } @@ -1234,7 +1237,7 @@ int iuse::marloss( player *p, item *it, bool, const tripoint & ) int iuse::marloss_seed( player *p, item *it, bool, const tripoint & ) { if( !query_yn( _( "Sure you want to eat the %s? You could plant it in a mound of dirt." ), - it->tname().c_str() ) ) { + colorize( it->tname(), it->color_in_inventory() ) ) ) { return 0; // Save the seed for later! } @@ -1818,7 +1821,7 @@ int iuse::fish_trap( player *p, item *it, bool t, const tripoint &pos ) return 0; } it->active = true; - it->set_age( 0 ); + it->set_age( 0_turns ); g->m.add_item_or_charges( pnt, *it ); p->i_rem( it ); p->add_msg_if_player( m_info, @@ -1909,7 +1912,7 @@ int iuse::extinguisher( player *p, item *it, bool, const tripoint & ) // If anyone other than the player wants to use one of these, // they're going to need to figure out how to aim it. const cata::optional dest_ = choose_adjacent( _( "Spray where?" ) ); - if( dest_ ) { + if( !dest_ ) { return 0; } tripoint dest = *dest_; @@ -2149,7 +2152,7 @@ int iuse::radio_on( player *p, item *it, bool t, const tripoint &pos ) messtream << string_format( _( "radio: %s" ), segments[index].c_str() ); message = messtream.str(); } - sounds::ambient_sound( pos, 6, message ); + sounds::ambient_sound( pos, 6, sounds::sound_t::speech, message ); } else { // Activated int ch = 1; if( it->ammo_remaining() > 0 ) { @@ -2208,7 +2211,7 @@ int iuse::noise_emitter_on( player *p, item *it, bool t, const tripoint &pos ) { if( t ) { // Normal use //~ the sound of a noise emitter when turned on - sounds::ambient_sound( pos, 30, _( "KXSHHHHRRCRKLKKK!" ) ); + sounds::ambient_sound( pos, 30, sounds::sound_t::alarm, _( "KXSHHHHRRCRKLKKK!" ) ); } else { // Turning it off p->add_msg_if_player( _( "The infernal racket dies as the noise emitter turns off." ) ); it->convert( "noise_emitter" ).active = false; @@ -2290,7 +2293,6 @@ static bool pry_nails( player &p, const ter_id &type, const tripoint &pnt ) int iuse::hammer( player *p, item *it, bool, const tripoint & ) { - g->draw(); // If anyone other than the player wants to use one of these, // they're going to need to figure out how to aim it. const cata::optional pnt_ = choose_adjacent( _( "Pry where?" ) ); @@ -2305,13 +2307,7 @@ int iuse::hammer( player *p, item *it, bool, const tripoint & ) return 0; } - ter_id type = g->m.ter( pnt ); - if( pry_nails( *p, type, pnt ) ) { - return it->type->charges_to_use(); - } else { - p->add_msg_if_player( m_info, _( "There's nothing to pry there." ) ); - } - return 0; + return this->crowbar( p, it, false, pnt ); } int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) @@ -2336,18 +2332,21 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) const char *fail_action; ter_id new_type = t_null; bool noisy; + int pry_quality; int difficulty; if( type == t_door_locked || type == t_door_locked_alarm || type == t_door_locked_interior ) { succ_action = _( "You pry open the door." ); fail_action = _( "You pry, but cannot pry open the door." ); new_type = t_door_o; + pry_quality = 2; noisy = true; difficulty = 6; } else if( type == t_door_locked_peep ) { succ_action = _( "You pry open the door." ); fail_action = _( "You pry, but cannot pry open the door." ); new_type = t_door_o_peep; + pry_quality = 2; noisy = true; difficulty = 6; } else if( type == t_door_c ) { @@ -2360,32 +2359,30 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) g->m.ter_set( pnt, t_door_o_peep ); p->mod_moves( -100 ); return 0; - } else if( type == t_door_bar_locked ) { - succ_action = _( "You pry open the door." ); - fail_action = _( "You pry, but cannot pry open the door." ); - new_type = t_door_bar_o; - noisy = false; - difficulty = 10; } else if( type == t_manhole_cover ) { succ_action = _( "You lift the manhole cover." ); fail_action = _( "You pry, but cannot lift the manhole cover." ); + pry_quality = 1; new_type = t_manhole; noisy = false; - difficulty = 12; + difficulty = 4; } else if( g->m.furn( pnt ) == f_crate_c ) { succ_action = _( "You pop open the crate." ); fail_action = _( "You pry, but cannot pop open the crate." ); + pry_quality = 1; noisy = true; difficulty = 6; } else if( g->m.furn( pnt ) == f_coffin_c ) { succ_action = _( "You wedge open the coffin." ); fail_action = _( "You pry, but the coffin remains closed." ); + pry_quality = 2; noisy = true; difficulty = 5; } else if( type == t_window_domestic || type == t_curtains || type == t_window_no_curtains ) { succ_action = _( "You pry open the window." ); fail_action = _( "You pry, but cannot pry open the window." ); new_type = ( type == t_window_no_curtains ) ? t_window_no_curtains_open : t_window_open; + pry_quality = 2; noisy = true; difficulty = 6; } else if( pry_nails( *p, type, pnt ) ) { @@ -2395,9 +2392,25 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) return 0; } - /** @EFFECT_STR speeds up crowbar prying attempts */ + // Doors need PRY 2 which is on a crowbar, crates need PRY 1 which is on a crowbar + // & a claw hammer. + // The iexamine function for crate supplies a hammer object. + // So this stops the player (A)ctivating a Hammer with a Crowbar in their backpack + // then managing to open a door. + const int pry_level = it->get_quality( quality_id( "PRY" ) ); + + if( pry_level < pry_quality ) { + p->add_msg_if_player( _( "You can't get sufficient leverage to open that with your %s." ), + it->tname() ); + p->mod_moves( 10 ); // spend a few moves trying it. + return 0; + } + + // For every level of PRY over the requirement, remove n from the difficulty (so -2 with a PRY 4 tool) + difficulty -= ( pry_level - pry_quality ); - p->mod_moves( -( std::max( 20, ( difficulty * 20 ) - ( ( p->str_cur ) * 5 ) ) ) ); + /** @EFFECT_STR speeds up crowbar prying attempts */ + p->mod_moves( -std::max( 20, difficulty * 20 - p->str_cur * 5 ) ); /** @EFFECT_STR increases chance of crowbar prying success */ if( dice( 4, difficulty ) < dice( 4, p->str_cur ) ) { @@ -2464,7 +2477,7 @@ int iuse::makemound( player *p, item *it, bool t, const tripoint & ) return 0; } - if( g->m.has_flag( "DIGGABLE", pnt ) && !g->m.has_flag( "PLANT", pnt ) ) { + if( g->m.has_flag( "PLOWABLE", pnt ) && !g->m.has_flag( "PLANT", pnt ) ) { p->add_msg_if_player( _( "You churn up the earth here." ) ); p->mod_moves( -300 ); g->m.ter_set( pnt, t_dirtmound ); @@ -2713,7 +2726,7 @@ int toolweapon_on( player &p, item &it, const bool t, p.add_msg_if_player( _( "Your %s gurgles in the water and stops." ), tname ); it.convert( off_type ).active = false; } else if( one_in( sound_chance ) ) { - sounds::ambient_sound( p.pos(), volume, sound ); + sounds::ambient_sound( p.pos(), volume, sounds::sound_t::activity, sound ); } } else { // Toggling if( it.typeId() == "chainsaw_on" ) { @@ -3293,7 +3306,7 @@ int iuse::firecracker_pack( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You light the pack of firecrackers." ) ); it->convert( "firecracker_pack_act" ); it->charges = 26; - it->set_age( 0 ); + it->set_age( 0_turns ); it->active = true; return 0; // don't use any charges at all. it has became a new item } @@ -3626,19 +3639,19 @@ void iuse::play_music( player &p, const tripoint &source, const int volume, cons const std::string music = get_music_description(); if( !music.empty() ) { sound = music; - if( p.pos() == source && volume == 0 && p.can_hear( source, volume ) ) { - // in-ear music, such as mp3 player - p.add_msg_if_player( _( "You listen to %s" ), music.c_str() ); + // descriptions aren't printed for sounds at our position + if( p.pos() == source && p.can_hear( source, volume ) ) { + p.add_msg_if_player( _( "You listen to %s" ), music ); } } } // do not process mp3 player if( volume != 0 ) { - sounds::ambient_sound( source, volume, sound ); + sounds::ambient_sound( source, volume, sounds::sound_t::music, sound ); } if( do_effects ) { p.add_effect( effect_music, 1_turns ); - p.add_morale( MORALE_MUSIC, 1, max_morale, 5_turns, 2_turns ); + p.add_morale( MORALE_MUSIC, 1, max_morale, 5_minutes, 2_minutes ); // mp3 player reduces hearing if( volume == 0 ) { p.add_effect( effect_earphones, 1_turns ); @@ -3948,7 +3961,8 @@ int iuse::blood_draw( player *p, item *it, bool, const tripoint & ) bool acid_blood = false; for( auto &map_it : g->m.i_at( p->posx(), p->posy() ) ) { if( map_it.is_corpse() && - query_yn( _( "Draw blood from %s?" ), map_it.tname().c_str() ) ) { + query_yn( _( "Draw blood from %s?" ), + colorize( map_it.tname(), map_it.color_in_inventory() ) ) ) { p->add_msg_if_player( m_info, _( "You drew blood from the %s..." ), map_it.tname().c_str() ); drew_blood = true; auto bloodtype( map_it.get_mtype()->bloodType() ); @@ -4640,7 +4654,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) string_format( _( "a disturbing scream from %s %s" ), p->disp_name( true ), it->tname() ) ); if( !p->is_deaf() ) { - p->add_morale( MORALE_SCREAM, -10, 0, 30_minutes, 5_turns ); + p->add_morale( MORALE_SCREAM, -10, 0, 30_minutes, 1_minutes ); } break; @@ -4776,7 +4790,8 @@ static bool heat_item( player &p ) target.apply_freezerburn(); if( target.has_flag( "EATEN_COLD" ) && - !query_yn( _( "%s is best served cold. Heat beyond defrosting?" ), target.tname() ) ) { + !query_yn( _( "%s is best served cold. Heat beyond defrosting?" ), + colorize( target.tname(), target.color_in_inventory() ) ) ) { // assume environment is warm; heat less to keep COLD longer int counter_mod = 550; @@ -5098,7 +5113,12 @@ int iuse::talking_doll( player *p, item *it, bool, const tripoint & ) const SpeechBubble speech = get_speech( it->typeId() ); - sounds::ambient_sound( p->pos(), speech.volume, speech.text ); + sounds::ambient_sound( p->pos(), speech.volume, sounds::sound_t::speech, speech.text ); + + // Sound code doesn't describe noises at the player position + if( p->can_hear( p->pos(), speech.volume ) ) { + p->add_msg_if_player( _( "You hear \"%s\"" ), speech.text ); + } return it->type->charges_to_use(); } @@ -5320,7 +5340,7 @@ int iuse::seed( player *p, item *it, bool, const tripoint & ) { if( p->is_npc() || query_yn( _( "Sure you want to eat the %s? You could plant it in a mound of dirt." ), - it->tname().c_str() ) ) { + colorize( it->tname(), it->color_in_inventory() ) ) ) { return it->type->charges_to_use(); //This eats the seed object. } return 0; @@ -5339,80 +5359,35 @@ int iuse::robotcontrol( player *p, item *it, bool, const tripoint & ) } int choice = uilist( _( "Welcome to hackPRO!:" ), { - _( "Override IFF protocols" ), + _( "Prepare IFF protocol override" ), _( "Set friendly robots to passive mode" ), _( "Set friendly robots to combat mode" ) } ); switch( choice ) { case 0: { // attempt to make a robot friendly - uilist pick_robot; - pick_robot.text = _( "Choose an endpoint to hack." ); - // Build a list of all unfriendly robots in range. - std::vector< monster * > mons; // @todo: change into vector - std::vector< tripoint > locations; - int entry_num = 0; + + bool enemy_robot_in_range = false; for( monster &candidate : g->all_monsters() ) { if( candidate.type->in_species( ROBOT ) && candidate.friendly == 0 && rl_dist( p->pos(), candidate.pos() ) <= 10 ) { - mons.push_back( &candidate ); - pick_robot.addentry( entry_num++, true, MENU_AUTOASSIGN, candidate.name() ); - tripoint seen_loc; - // Show locations of seen robots, center on player if robot is not seen - if( p->sees( candidate ) ) { - seen_loc = candidate.pos(); - } else { - seen_loc = p->pos(); - } - locations.push_back( seen_loc ); + enemy_robot_in_range = true; + break; } } - if( mons.empty() ) { + if( !enemy_robot_in_range ) { p->add_msg_if_player( m_info, _( "No enemy robots in range." ) ); - return it->type->charges_to_use(); - } - pointmenu_cb callback( locations ); - pick_robot.callback = &callback; - pick_robot.query(); - if( pick_robot.ret < 0 || static_cast( pick_robot.ret ) >= mons.size() ) { - p->add_msg_if_player( m_info, _( "Never mind" ) ); - return it->type->charges_to_use(); - } - const size_t mondex = pick_robot.ret; - monster *z = mons[mondex]; - p->add_msg_if_player( _( "You start reprogramming the %s into an ally." ), z->name().c_str() ); - /** @EFFECT_INT speeds up robot reprogramming */ - - /** @EFFECT_COMPUTER speeds up robot reprogramming */ - p->moves -= std::max( 100, 1000 - p->int_cur * 10 - p->get_skill_level( skill_computer ) * 10 ); - /** @EFFECT_INT increases chance of successful robot reprogramming, vs difficulty */ - - /** @EFFECT_COMPUTER increases chance of successful robot reprogramming, vs difficulty */ - float success = p->get_skill_level( skill_computer ) - 1.5 * ( z->type->difficulty ) / - ( ( rng( 2, p->int_cur ) / 2 ) + ( p->get_skill_level( skill_computer ) / 2 ) ); - if( success >= 0 ) { - p->add_msg_if_player( _( "You successfully override the %s's IFF protocols!" ), - z->name().c_str() ); - z->friendly = -1; - } else if( success >= -2 ) { //A near success - p->add_msg_if_player( _( "The %s short circuits as you attempt to reprogram it!" ), - z->name().c_str() ); - z->apply_damage( p, bp_torso, rng( 1, 10 ) ); //damage it a little - if( z->is_dead() ) { - p->practice( skill_computer, 10 ); - return it->type->charges_to_use(); // Do not do the other effects if the robot died - } - if( one_in( 3 ) ) { - p->add_msg_if_player( _( "...and turns friendly!" ) ); - if( one_in( 3 ) ) { //did the robot became friendly permanently? - z->friendly = -1; //it did - } else { - z->friendly = rng( 5, 40 ); // it didn't - } - } - } else { - p->add_msg_if_player( _( "...but the robot refuses to acknowledge you as an ally!" ) ); + return 0; } - p->practice( skill_computer, 10 ); + + p->add_msg_if_player( _( "You start preparing your override." ) ); + + /** @EFFECT_INT speeds up hacking preperation */ + /** @EFFECT_COMPUTER speeds up hacking preperation */ + int move_cost = std::max( 100, 1000 - p->int_cur * 10 - p->get_skill_level( skill_computer ) * 10 ); + + player_activity act( activity_id( "ACT_ROBOT_CONTROL" ), move_cost ); + p->assign_activity( act ); + return it->type->charges_to_use(); } case 1: { //make all friendly robots stop their purposeless extermination of (un)life. @@ -5585,7 +5560,7 @@ bool einkpc_download_memory_card( player &p, item &eink, item &mc ) if( !candidates.empty() ) { const recipe *r = random_entry( candidates ); - const recipe_id rident = r->ident(); + const recipe_id &rident = r->ident(); const auto old_recipes = eink.get_var( "EIPC_RECIPES" ); if( old_recipes.empty() ) { @@ -5739,13 +5714,8 @@ int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) amenu.addentry( ei_music, false, 'm', _( "No music on device" ) ); } - if( !it->get_var( "RECIPE" ).empty() ) { - const item dummy( it->get_var( "RECIPE" ), 0 ); - amenu.addentry( ei_invalid, false, -1, _( "Recipe: %s" ), dummy.tname().c_str() ); - } - if( !it->get_var( "EIPC_RECIPES" ).empty() ) { - amenu.addentry( ei_recipe, true, 'r', _( "View recipe on E-ink screen" ) ); + amenu.addentry( ei_recipe, true, 'r', _( "View recipes on E-ink screen" ) ); } if( !it->get_var( "EINK_MONSTER_PHOTOS" ).empty() ) { @@ -5842,7 +5812,7 @@ int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) uilist rmenu; - rmenu.text = _( "Choose recipe to view:" ); + rmenu.text = _( "List recipes:" ); std::vector candidate_recipes; std::istringstream f( it->get_var( "EIPC_RECIPES" ) ); @@ -5864,22 +5834,6 @@ int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) rmenu.query(); - const int rchoice = rmenu.ret; - if( rchoice < 0 ) { - return it->type->charges_to_use(); - } else { - it->item_tags.insert( "HAS_RECIPE" ); - const auto rec_id = candidate_recipes[rchoice]; - it->set_var( "RECIPE", rec_id.str() ); - - const auto &recipe = *rec_id; - if( recipe ) { - p->add_msg_if_player( m_info, - _( "You change the e-ink screen to show a recipe for %s." ), - recipe.result_name() ); - } - } - return it->type->charges_to_use(); } @@ -7422,8 +7376,9 @@ int iuse::weather_tool( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_neutral, _( "Feels Like: %s." ), print_temperature( - get_local_windchill( weatherPoint.temperature, weatherPoint.humidity, windpower ) + + get_local_windchill( weatherPoint.temperature, weatherPoint.humidity, windpower / 100 ) + player_local_temp ).c_str() ); + p->add_msg_if_player( m_neutral, _( "Wind Direction: From the %s." ), weatherPoint.dirstring ); } return 0; @@ -7664,7 +7619,7 @@ int iuse::washclothes( player *p, item *, bool, const tripoint & ) auto make_raw_stats = [available_water, available_cleanser]( const std::map &items ) { - units::volume total_volume = 0; + units::volume total_volume = 0_ml; for( const auto &p : items ) { total_volume += p.first->volume() * p.second; } @@ -7697,7 +7652,7 @@ int iuse::washclothes( player *p, item *, bool, const tripoint & ) } // Determine if we have enough water and cleanser for all the items. - units::volume total_volume = 0; + units::volume total_volume = 0_ml; for( std::pair pair : to_clean ) { item i = p->i_at( pair.first ); if( pair.first == INT_MIN ) { @@ -7798,16 +7753,14 @@ int iuse::panacea( player *p, item *it, bool, const tripoint & ) int iuse::disassemble( player *p, item *it, bool, const tripoint & ) { - int pos = p->inv.position_by_item( it ); + int pos = p->get_item_position( it ); + // Giving player::disassemble INT_MIN is actually a special case to - // disassemble all, but position_by_item returns INT_MIN if it's not - // actually in our inventory. If the item was on the floor, it will be - // picked up and put into inventory before this point, so the only time we - // can get INT_MIN here is if we're wielding it. - if( pos == INT_MIN ) { - pos = -1; - } - p->disassemble( *it, pos, false, false ); + // disassemble all, but get_item_position returns INT_MIN if it's not + // actually in our inventory/worn/wielded. Skip this nonsensical case. + if( pos != INT_MIN ) { + p->disassemble( *it, pos, false, false ); + } return 0; } diff --git a/src/iuse.h b/src/iuse.h index badba372dc919..3bc13dfc37920 100644 --- a/src/iuse.h +++ b/src/iuse.h @@ -300,7 +300,7 @@ struct use_function { } explicit operator bool() const { - return actor.get() != nullptr; + return actor != nullptr; } /** @return See @ref iuse_actor::type */ diff --git a/src/iuse_actor.cpp b/src/iuse_actor.cpp index 6cdeab4d711fb..3bddc06da974b 100644 --- a/src/iuse_actor.cpp +++ b/src/iuse_actor.cpp @@ -418,11 +418,11 @@ long unfold_vehicle_iuse::use( player &p, item &it, bool /*t*/, const tripoint & return 0; } - for( auto tool = tools_needed.cbegin(); tool != tools_needed.cend(); ++tool ) { + for( const auto &tool : tools_needed ) { // Amount == -1 means need one, but don't consume it. - if( !p.has_amount( tool->first, 1 ) ) { + if( !p.has_amount( tool.first, 1 ) ) { p.add_msg_if_player( _( "You need %s to do it!" ), - item::nname( tool->first ).c_str() ); + item::nname( tool.first ).c_str() ); return 0; } } @@ -553,24 +553,23 @@ long consume_drug_iuse::use( player &p, item &it, bool, const tripoint & ) const need_these.erase( "syringe" ); // no need for a syringe with bionics like these! } // Check prerequisites first. - for( auto tool = need_these.cbegin(); tool != need_these.cend(); ++tool ) { + for( const auto &tool : need_these ) { // Amount == -1 means need one, but don't consume it. - if( !p.has_amount( tool->first, 1 ) ) { + if( !p.has_amount( tool.first, 1 ) ) { p.add_msg_player_or_say( _( "You need %1$s to consume %2$s!" ), _( "I need a %1$s to consume %2$s!" ), - item::nname( tool->first ).c_str(), + item::nname( tool.first ).c_str(), it.type_name( 1 ).c_str() ); return -1; } } - for( auto consumable = charges_needed.cbegin(); consumable != charges_needed.cend(); - ++consumable ) { + for( const auto &consumable : charges_needed ) { // Amount == -1 means need one, but don't consume it. - if( !p.has_charges( consumable->first, ( consumable->second == -1 ) ? - 1 : consumable->second ) ) { + if( !p.has_charges( consumable.first, ( consumable.second == -1 ) ? + 1 : consumable.second ) ) { p.add_msg_player_or_say( _( "You need %1$s to consume %2$s!" ), _( "I need a %1$s to consume %2$s!" ), - item::nname( consumable->first ).c_str(), + item::nname( consumable.first ).c_str(), it.type_name( 1 ).c_str() ); return -1; } @@ -585,14 +584,14 @@ long consume_drug_iuse::use( player &p, item &it, bool, const tripoint & ) const } p.add_effect( eff.id, dur, eff.bp, eff.permanent ); } - for( auto stat = stat_adjustments.cbegin(); stat != stat_adjustments.cend(); ++stat ) { - p.mod_stat( stat->first, stat->second ); + for( const auto &stat_adjustment : stat_adjustments ) { + p.mod_stat( stat_adjustment.first, stat_adjustment.second ); } - for( auto field = fields_produced.cbegin(); field != fields_produced.cend(); ++field ) { - const field_id fid = field_from_ident( field->first ); + for( const auto &field : fields_produced ) { + const field_id fid = field_from_ident( field.first ); for( int i = 0; i < 3; i++ ) { g->m.add_field( {p.posx() + int( rng( -2, 2 ) ), p.posy() + int( rng( -2, 2 ) ), p.posz()}, fid, - field->second ); + field.second ); } } @@ -606,10 +605,9 @@ long consume_drug_iuse::use( player &p, item &it, bool, const tripoint & ) const // Output message. p.add_msg_if_player( _( activation_message.c_str() ), it.type_name( 1 ) ); // Consume charges. - for( auto consumable = charges_needed.cbegin(); consumable != charges_needed.cend(); - ++consumable ) { - if( consumable->second != -1 ) { - p.use_charges( consumable->first, consumable->second ); + for( const auto &consumable : charges_needed ) { + if( consumable.second != -1 ) { + p.use_charges( consumable.first, consumable.second ); } } @@ -938,6 +936,15 @@ long deploy_furn_actor::use( player &p, item &it, bool, const tripoint &pos ) co return 0; } + optional_vpart_position veh_there = g->m.veh_at( pnt ); + if( veh_there.has_value() ) { + // TODO: check for protrusion+short furniture, wheels+tiny furniture, NOCOLLIDE flag, etc. + // and/or integrate furniture deployment with construction (which already seems to perform these checks sometimes?) + p.add_msg_if_player( m_info, _( "The space under %s is too cramped to deploy a %s in." ), + veh_there.value().vehicle().disp_name(), it.tname().c_str() ); + return 0; + } + if( g->m.move_cost( pnt ) != 2 ) { p.add_msg_if_player( m_info, _( "You can't deploy a %s there." ), it.tname().c_str() ); return 0; @@ -1948,7 +1955,7 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint p.add_msg_player_or_npc( m_bad, _( "You stop playing your %s" ), _( " stops playing their %s" ), - it.display_name().c_str() ); + it.display_name() ); it.active = false; return 0; } @@ -1956,7 +1963,7 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint if( !t && it.active ) { p.add_msg_player_or_npc( _( "You stop playing your %s" ), _( " stops playing their %s" ), - it.display_name().c_str() ); + it.display_name() ); it.active = false; return 0; } @@ -1968,7 +1975,7 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint p.add_msg_player_or_npc( m_bad, _( "You need to hold or wear %s to play it" ), _( " needs to hold or wear %s to play it" ), - it.display_name().c_str() ); + it.display_name() ); it.active = false; return 0; } @@ -1978,7 +1985,7 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint p.add_msg_player_or_npc( m_bad, _( "You feel too weak to play your %s" ), _( " feels too weak to play their %s" ), - it.display_name().c_str() ); + it.display_name() ); it.active = false; return 0; } @@ -1988,7 +1995,7 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint p.add_msg_player_or_npc( m_good, _( "You start playing your %s" ), _( " starts playing their %s" ), - it.display_name().c_str() ); + it.display_name() ); it.active = true; } @@ -2002,26 +2009,31 @@ long musical_instrument_actor::use( player &p, item &it, bool t, const tripoint const int morale_effect = fun + fun_bonus * p.per_cur; if( morale_effect >= 0 && calendar::once_every( description_frequency ) ) { if( !player_descriptions.empty() && p.is_player() ) { - desc = _( random_entry( player_descriptions ).c_str() ); + desc = _( random_entry( player_descriptions ) ); } else if( !npc_descriptions.empty() && p.is_npc() ) { - desc = string_format( _( "%1$s %2$s" ), p.disp_name( false ).c_str(), - random_entry( npc_descriptions ).c_str() ); + desc = string_format( _( "%1$s %2$s" ), p.disp_name( false ), + random_entry( npc_descriptions ) ); } } else if( morale_effect < 0 && calendar::once_every( 10_turns ) ) { // No musical skills = possible morale penalty if( p.is_player() ) { desc = _( "You produce an annoying sound" ); } else { - desc = string_format( _( "%s produces an annoying sound" ), p.disp_name( false ).c_str() ); + desc = string_format( _( "%s produces an annoying sound" ), p.disp_name( false ) ); } } - sounds::ambient_sound( p.pos(), volume, desc ); + + sounds::ambient_sound( p.pos(), volume, sounds::sound_t::music, desc ); if( !p.has_effect( effect_music ) && p.can_hear( p.pos(), volume ) ) { + // Sound code doesn't describe noises at the player position + if( p.is_player() && desc != "music" ) { + add_msg( m_info, desc ); + } p.add_effect( effect_music, 1_turns ); const int sign = morale_effect > 0 ? 1 : -1; - p.add_morale( MORALE_MUSIC, sign, morale_effect, 5_turns, 2_turns ); + p.add_morale( MORALE_MUSIC, sign, morale_effect, 5_minutes, 2_minutes ); } return 0; @@ -2070,7 +2082,7 @@ bool holster_actor::can_holster( const item &obj ) const if( obj.volume() > max_volume || obj.volume() < min_volume ) { return false; } - if( max_weight > 0 && obj.weight() > max_weight ) { + if( max_weight > 0_gram && obj.weight() > max_weight ) { return false; } if( obj.active ) { @@ -2102,7 +2114,7 @@ bool holster_actor::store( player &p, item &holster, item &obj ) const return false; } - if( max_weight > 0 && obj.weight() > max_weight ) { + if( max_weight > 0_gram && obj.weight() > max_weight ) { p.add_msg_if_player( m_info, _( "Your %1$s is too heavy to fit in your %2$s" ), obj.tname().c_str(), holster.tname().c_str() ); return false; @@ -2127,7 +2139,7 @@ bool holster_actor::store( player &p, item &holster, item &obj ) const obj.tname().c_str(), holster.tname().c_str() ); // holsters ignore penalty effects (e.g. GRABBED) when determining number of moves to consume - p.store( holster, obj, draw_cost, false ); + p.store( holster, obj, false, draw_cost ); return true; } @@ -2204,7 +2216,7 @@ void holster_actor::info( const item &, std::vector &dump ) const iteminfo::is_decimal, convert_volume( max_volume.value() ) ); - if( max_weight > 0 ) { + if( max_weight > 0_gram ) { dump.emplace_back( "TOOL", "Max item weight: ", string_format( _( " %s" ), weight_units() ), iteminfo::is_decimal, @@ -3553,7 +3565,7 @@ ret_val saw_barrel_actor::can_use_on( const player &, const item &, const return ret_val::make_failure( _( "It's not a gun." ) ); } - if( target.type->gun->barrel_length <= 0 ) { + if( target.type->gun->barrel_length <= 0_ml ) { return ret_val::make_failure( _( "The barrel is too short." ) ); } diff --git a/src/iuse_actor.h b/src/iuse_actor.h index 17d353e679a2b..ecc820ba32f75 100644 --- a/src/iuse_actor.h +++ b/src/iuse_actor.h @@ -201,7 +201,7 @@ struct effect_data { body_part bp; bool permanent; - effect_data( const efftype_id &nid, const time_duration dur, body_part nbp, bool perm ) : + effect_data( const efftype_id &nid, const time_duration &dur, body_part nbp, bool perm ) : id( nid ), duration( dur ), bp( nbp ), permanent( perm ) {} }; @@ -448,6 +448,7 @@ class salvage_actor : public iuse_actor material_id( "cotton" ), material_id( "leather" ), material_id( "fur" ), + material_id( "faux_fur" ), material_id( "nomex" ), material_id( "kevlar" ), material_id( "plastic" ), @@ -645,7 +646,7 @@ class musical_instrument_actor : public iuse_actor /** * Display description once per this duration (@ref calendar::once_every). */ - time_duration description_frequency = 0; + time_duration description_frequency = 0_turns; musical_instrument_actor( const std::string &type = "musical_instrument" ) : iuse_actor( type ) {} diff --git a/src/iuse_software_minesweeper.cpp b/src/iuse_software_minesweeper.cpp index 31427f966e921..8f28b322b0b27 100644 --- a/src/iuse_software_minesweeper.cpp +++ b/src/iuse_software_minesweeper.cpp @@ -128,7 +128,7 @@ void minesweeper_game::new_level( const catacurses::window &w_minesweeper ) mvwputch( w_minesweeper, iOffsetY, iOffsetX, hilite( c_white ), "#" ); - draw_custom_border( w_minesweeper, true, true, true, true, true, true, true, true, + draw_custom_border( w_minesweeper, 1, 1, 1, 1, 1, 1, 1, 1, BORDER_COLOR, iOffsetY - 1, iLevelY + 2, iOffsetX - 1, iLevelX + 2 ); } diff --git a/src/iuse_software_snake.cpp b/src/iuse_software_snake.cpp index 2a3268c88eb78..8d57eb25bc2ab 100644 --- a/src/iuse_software_snake.cpp +++ b/src/iuse_software_snake.cpp @@ -12,9 +12,7 @@ #include "string_formatter.h" #include "translations.h" -snake_game::snake_game() -{ -} +snake_game::snake_game() = default; void snake_game::print_score( const catacurses::window &w_snake, int iScore ) { diff --git a/src/iuse_software_sokoban.cpp b/src/iuse_software_sokoban.cpp index c8ae83d264444..d67f1ccf48b1e 100644 --- a/src/iuse_software_sokoban.cpp +++ b/src/iuse_software_sokoban.cpp @@ -12,9 +12,7 @@ #include "string_formatter.h" #include "translations.h" -sokoban_game::sokoban_game() -{ -} +sokoban_game::sokoban_game() = default; void sokoban_game::print_score( const catacurses::window &w_sokoban, int iScore, int iMoves ) { diff --git a/src/json.cpp b/src/json.cpp index db783d4bd8e96..7b8a1f95f6dc3 100644 --- a/src/json.cpp +++ b/src/json.cpp @@ -927,7 +927,7 @@ std::string JsonIn::get_member_name() std::string JsonIn::get_string() { - std::string s = ""; + std::string s; char ch; bool backslash = false; char unihex[5] = "0000"; diff --git a/src/json.h b/src/json.h index cfc19c0ea6d2f..2d4e367e808a7 100644 --- a/src/json.h +++ b/src/json.h @@ -25,6 +25,7 @@ * * Further documentation can be found below. */ + class JsonIn; class JsonOut; class JsonObject; @@ -981,9 +982,9 @@ std::set JsonObject::get_tags( const std::string &name ) class JsonSerializer { public: - virtual ~JsonSerializer() {} + virtual ~JsonSerializer() = default; virtual void serialize( JsonOut &jsout ) const = 0; - JsonSerializer() { } + JsonSerializer() = default; JsonSerializer( JsonSerializer && ) = default; JsonSerializer( const JsonSerializer & ) = default; JsonSerializer &operator=( JsonSerializer && ) = default; diff --git a/src/lightmap.cpp b/src/lightmap.cpp index cbaf992041410..e0b05b54e028e 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -4,7 +4,7 @@ #include #include -#include "fragment_cloud.h" +#include "fragment_cloud.h" // IWYU pragma: keep #include "game.h" #include "map.h" #include "map_iterator.h" @@ -20,11 +20,17 @@ #include "vpart_reference.h" #include "weather.h" -#define INBOUNDS(x, y) \ - (x >= 0 && x < MAPSIZE_X && y >= 0 && y < MAPSIZE_Y) #define LIGHTMAP_CACHE_X MAPSIZE_X #define LIGHTMAP_CACHE_Y MAPSIZE_Y +static constexpr point lightmap_boundary_min( point_zero ); +static constexpr point lightmap_boundary_max( LIGHTMAP_CACHE_X, LIGHTMAP_CACHE_Y ); +static constexpr point lightmap_clearance_min( point_zero ); +static constexpr point lightmap_clearance_max( 1, 1 ); + +const rectangle lightmap_boundaries( lightmap_boundary_min, lightmap_boundary_max ); +const rectangle lightmap_clearance( lightmap_clearance_min, lightmap_clearance_max ); + const efftype_id effect_onfire( "onfire" ); const efftype_id effect_haslight( "haslight" ); @@ -230,15 +236,19 @@ void map::generate_lightmap( const int zlev ) if( !outside_cache[p.x][p.y] ) { // Apply light sources for external/internal divide for( int i = 0; i < 4; ++i ) { - if( INBOUNDS( p.x + dir_x[i], p.y + dir_y[i] ) && - outside_cache[p.x + dir_x[i]][p.y + dir_y[i]] ) { - + if( generic_inbounds( { p.x + dir_x[i], p.y + dir_y[i] }, + lightmap_boundaries, lightmap_clearance + ) && outside_cache[p.x + dir_x[i]][p.y + dir_y[i]] + ) { if( light_transparency( p ) > LIGHT_TRANSPARENCY_SOLID ) { - lm[p.x][p.y][quadrant::default_] = natural_light; + update_light_quadrants( + lm[p.x][p.y], natural_light, quadrant::default_ ); apply_directional_light( p, dir_d[i], natural_light ); } else { - lm[p.x][p.y][dir_quadrants[i][0]] = natural_light; - lm[p.x][p.y][dir_quadrants[i][1]] = natural_light; + update_light_quadrants( + lm[p.x][p.y], natural_light, dir_quadrants[i][0] ); + update_light_quadrants( + lm[p.x][p.y], natural_light, dir_quadrants[i][1] ); } } } @@ -517,7 +527,7 @@ map::apparent_light_info map::apparent_light_helper( const level_cache &map_cach const int neighbour_x = p.x + oq.offset.x; const int neighbour_y = p.y + oq.offset.y; - if( !INBOUNDS( neighbour_x, neighbour_y ) ) { + if( !generic_inbounds( { neighbour_x, neighbour_y }, lightmap_boundaries, lightmap_clearance ) ) { continue; } if( is_opaque( neighbour_x, neighbour_y ) ) { @@ -1124,14 +1134,13 @@ void map::build_seen_cache( const tripoint &origin, const int target_z ) } else if( !vp.info().has_flag( "CAMERA_CONTROL" ) ) { mirrors.emplace_back( vp.part_index() ); } else { - if( origin == mirror_pos && veh->camera_on ) { + if( square_dist( origin, mirror_pos ) <= 1 && veh->camera_on ) { cam_control = vp.part_index(); } } } - for( size_t i = 0; i < mirrors.size(); i++ ) { - const int &mirror = mirrors[i]; + for( int mirror : mirrors ) { bool is_camera = veh->part_info( mirror ).has_flag( "CAMERA" ); if( is_camera && cam_control < 0 ) { continue; // Player not at camera control, so cameras don't work @@ -1380,7 +1389,7 @@ void map::apply_light_ray( bool lit[LIGHTMAP_CACHE_X][LIGHTMAP_CACHE_Y], t += ay; // TODO: clamp coordinates to map bounds before this method is called. - if( INBOUNDS( x, y ) ) { + if( generic_inbounds( { x, y }, lightmap_boundaries, lightmap_clearance ) ) { float current_transparency = transparency_cache[x][y]; bool is_opaque = ( current_transparency == LIGHT_TRANSPARENCY_SOLID ); if( !lit[x][y] ) { @@ -1412,7 +1421,7 @@ void map::apply_light_ray( bool lit[LIGHTMAP_CACHE_X][LIGHTMAP_CACHE_Y], y += dy; t += ax; - if( INBOUNDS( x, y ) ) { + if( generic_inbounds( { x, y }, lightmap_boundaries, lightmap_clearance ) ) { float current_transparency = transparency_cache[x][y]; bool is_opaque = ( current_transparency == LIGHT_TRANSPARENCY_SOLID ); if( !lit[x][y] ) { diff --git a/src/live_view.h b/src/live_view.h index 04beb6937dd25..9d47be3f3fec4 100644 --- a/src/live_view.h +++ b/src/live_view.h @@ -16,7 +16,7 @@ class live_view void init(); int draw( const catacurses::window &win, int max_height ); - void show( const tripoint &mouse_position ); + void show( const tripoint &p ); void hide(); private: diff --git a/src/main.cpp b/src/main.cpp index a2b75be99308f..0f6c51b86416e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,4 @@ -/* Main Loop for cataclysm - * Linux only I guess - * But maybe not - * Who knows +/* Entry point and main loop for Cataclysm */ #include @@ -9,6 +6,13 @@ #include #include #include +#if (!(defined _WIN32 || defined WINDOWS)) +#include +#endif +#include +#ifdef LOCALIZE +#include +#endif #include "color.h" #include "crash.h" @@ -23,14 +27,8 @@ #include "output.h" #include "path_info.h" #include "rng.h" -#if (!(defined _WIN32 || defined WINDOWS)) -#include -#endif -#include -#ifdef LOCALIZE -#include -#endif #include "translations.h" + #ifdef TILES # if defined(_MSC_VER) && defined(USE_VCPKG) # include @@ -40,6 +38,7 @@ #endif #ifdef __ANDROID__ +#include #include #include #include diff --git a/src/map.cpp b/src/map.cpp index 85984d4ee2db5..5dcd1191abb89 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -93,7 +93,7 @@ void map_stack::insert_at( std::list::iterator index, units::volume map_stack::max_volume() const { if( !myorigin->inbounds( location ) ) { - return 0; + return 0_ml; } else if( myorigin->has_furn( location ) ) { return myorigin->furn( location ).obj().max_volume; } @@ -206,7 +206,7 @@ void map::add_vehicle_to_cache( vehicle *veh ) const tripoint p = veh->global_part_pos3( *it ); ch.veh_cached_parts.insert( std::make_pair( p, std::make_pair( veh, partid ) ) ); - if( inbounds( p.x, p.y ) ) { + if( inbounds( p ) ) { ch.veh_exists_at[p.x][p.y] = true; } } @@ -226,7 +226,7 @@ void map::update_vehicle_cache( vehicle *veh, const int old_zlevel ) while( it != end ) { if( it->second.first == veh ) { const tripoint p = it->first; - if( inbounds( p.x, p.y ) ) { + if( inbounds( p ) ) { ch.veh_exists_at[p.x][p.y] = false; } ch.veh_cached_parts.erase( it++ ); @@ -1122,12 +1122,13 @@ bool map::has_furn( const int x, const int y ) const furn_id map::furn( const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return f_null; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); return current_submap->get_furn( l ); } @@ -1221,6 +1222,7 @@ void map::furn_set( const tripoint &p, const furn_id &new_furniture ) if( old_t.has_flag( TFLAG_NO_FLOOR ) != new_t.has_flag( TFLAG_NO_FLOOR ) ) { set_floor_cache_dirty( p.z ); } + set_memory_seen_cache_dirty( p ); // @todo: Limit to changes that affect move cost, traps and stairs set_pathfinding_cache_dirty( p.z ); @@ -1267,12 +1269,13 @@ std::string map::furnname( const tripoint &p ) ter_id map::ter( const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return t_null; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); return current_submap->get_ter( l ); } @@ -1318,14 +1321,18 @@ uint8_t map::get_known_connections( const tripoint &p, int connect_group ) const bool is_transparent = ch.transparency_cache[p.x][p.y] > LIGHT_TRANSPARENCY_SOLID; uint8_t val = 0; - auto const is_memorized = - [&]( const tripoint & q ) { -#ifdef TILES - return !g->u.get_memorized_tile( getabs( q ) ).tile.empty(); -#else - return g->u.get_memorized_symbol( getabs( q ) ); -#endif - }; + std::function is_memorized; + if( use_tiles ) { + is_memorized = + [&]( const tripoint & q ) { + return !g->u.get_memorized_tile( getabs( q ) ).tile.empty(); + }; + } else { + is_memorized = + [&]( const tripoint & q ) { + return g->u.get_memorized_symbol( getabs( q ) ); + }; + } // populate connection information for( int i = 0; i < 4; ++i ) { @@ -1465,6 +1472,7 @@ bool map::ter_set( const tripoint &p, const ter_id &new_terrain ) // It's a set, not a flag support_cache_dirty.insert( p ); } + set_memory_seen_cache_dirty( p ); // @todo: Limit to changes that affect move cost, traps and stairs set_pathfinding_cache_dirty( p.z ); @@ -1498,6 +1506,9 @@ std::string map::features( const tripoint &p ) if( has_flag( "DIGGABLE", p ) ) { ret << _( "Diggable. " ); } + if( has_flag( "PLOWABLE", p ) ) { + ret << _( "Plowable. " ); + } if( has_flag( "ROUGH", p ) ) { ret << _( "Rough. " ); } @@ -1563,12 +1574,13 @@ bool map::passable( const int x, const int y ) const int map::move_cost_ter_furn( const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return 0; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); const int tercost = current_submap->get_ter( l ).obj().movecost; if( tercost == 0 ) { @@ -1810,7 +1822,7 @@ bool map::has_floor( const tripoint &p ) const return true; } - if( !inbounds( p.x, p.y ) ) { + if( !inbounds( p ) ) { return true; } @@ -2108,12 +2120,13 @@ bool map::has_flag_furn( const std::string &flag, const int x, const int y ) con bool map::has_flag_ter_or_furn( const std::string &flag, const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return false; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); return current_submap->get_ter( l ).obj().has_flag( flag ) || current_submap->get_furn( l ).obj().has_flag( flag ); @@ -2137,12 +2150,13 @@ bool map::has_flag_furn( const ter_bitflags flag, const int x, const int y ) con bool map::has_flag_ter_or_furn( const ter_bitflags flag, const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return false; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); return current_submap->get_ter( l ).obj().has_flag( flag ) || current_submap->get_furn( l ).obj().has_flag( flag ); @@ -2480,7 +2494,8 @@ bool map::is_divable( const tripoint &p ) const bool map::is_outside( const int x, const int y ) const { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { return true; } @@ -2559,7 +2574,7 @@ bool map::flammable_items_at( const tripoint &p, int threshold ) return false; } -void map::decay_fields_and_scent( const time_duration amount ) +void map::decay_fields_and_scent( const time_duration &amount ) { // Decay scent separately, so that later we can use field count to skip empty submaps tripoint tmp; @@ -3896,18 +3911,19 @@ void map::set_temperature( const int x, const int y, int new_temperature ) // Items: 2D map_stack map::i_at( const int x, const int y ) { - if( !inbounds( x, y ) ) { + const point p( x, y ); + if( !inbounds( p ) ) { nulitems.clear(); - return map_stack{ &nulitems, tripoint( x, y, abs_sub.z ), this }; + return map_stack{ &nulitems, tripoint( p, abs_sub.z ), this }; } point l; - submap *const current_submap = get_submap_at( { x, y }, l ); + submap *const current_submap = get_submap_at( p, l ); - return map_stack{ ¤t_submap->itm[l.x][l.y], tripoint( x, y, abs_sub.z ), this }; + return map_stack{ ¤t_submap->itm[l.x][l.y], tripoint( p, abs_sub.z ), this }; } -std::list::iterator map::i_rem( const point location, std::list::iterator it ) +std::list::iterator map::i_rem( const point &location, std::list::iterator it ) { return i_rem( tripoint( location, abs_sub.z ), it ); } @@ -4389,7 +4405,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) const time_duration washing_time = 90_minutes; const time_duration time_left = washing_time - n.age(); static const std::string filthy( "FILTHY" ); - if( time_left <= 0 ) { + if( time_left <= 0_turns ) { n.item_tags.erase( filthy ); washing_machine_finished = true; cur_veh.parts[part].enabled = false; @@ -4546,7 +4562,7 @@ void map::process_items_in_vehicle( vehicle &cur_veh, submap ¤t_submap, co if( item_iter->is_food() || item_iter->is_food_container() ) { const vpart_info &pti = pt.info(); if( engine_heater_is_on ) { - it_temp = std::max( it_temp, temperatures::cold + 1 ); + it_temp = std::max( it_temp, temperatures::normal ); } // some vehicle parts provide insulation, default is 1 it_insulation = item::find_type( pti.item )->insulation_factor; @@ -5048,7 +5064,7 @@ item *map::item_from( vehicle *veh, int cargo_part, size_t index ) const trap &map::tr_at( const tripoint &p ) const { - if( !inbounds( p.x, p.y, p.z ) ) { + if( !inbounds( p ) ) { return tr_null.obj(); } @@ -5062,7 +5078,7 @@ const trap &map::tr_at( const tripoint &p ) const return current_submap->get_trap( l ).obj(); } -void map::trap_set( const tripoint &p, const trap_id t ) +void map::trap_set( const tripoint &p, const trap_id type ) { if( !inbounds( p ) ) { return; @@ -5073,7 +5089,7 @@ void map::trap_set( const tripoint &p, const trap_id t ) const ter_t &ter = current_submap->get_ter( l ).obj(); if( ter.trap != tr_null ) { debugmsg( "set trap %s on top of terrain %s which already has a builit-in trap", - t.obj().name().c_str(), ter.name().c_str() ); + type.obj().name().c_str(), ter.name().c_str() ); return; } @@ -5082,9 +5098,9 @@ void map::trap_set( const tripoint &p, const trap_id t ) remove_trap( p ); } - current_submap->set_trap( l, t ); - if( t != tr_null ) { - traplocs[t].push_back( p ); + current_submap->set_trap( l, type ); + if( type != tr_null ) { + traplocs[type].push_back( p ); } } @@ -5146,14 +5162,14 @@ void map::remove_trap( const tripoint &p ) point l; submap *const current_submap = get_submap_at( p, l ); - trap_id t = current_submap->get_trap( l ); - if( t != tr_null ) { + trap_id tid = current_submap->get_trap( l ); + if( tid != tr_null ) { if( g != nullptr && this == &g->m ) { g->u.add_known_trap( p, tr_null.obj() ); } current_submap->set_trap( l, tr_null ); - auto &traps = traplocs[t]; + auto &traps = traplocs[tid]; const auto iter = std::find( traps.begin(), traps.end(), p ); if( iter != traps.end() ) { traps.erase( iter ); @@ -5192,21 +5208,21 @@ field &map::field_at( const tripoint &p ) return current_submap->fld[l.x][l.y]; } -time_duration map::adjust_field_age( const tripoint &p, const field_id t, - const time_duration offset ) +time_duration map::adjust_field_age( const tripoint &p, const field_id type, + const time_duration &offset ) { - return set_field_age( p, t, offset, true ); + return set_field_age( p, type, offset, true ); } -int map::adjust_field_strength( const tripoint &p, const field_id t, const int offset ) +int map::adjust_field_strength( const tripoint &p, const field_id type, const int offset ) { - return set_field_strength( p, t, offset, true ); + return set_field_strength( p, type, offset, true ); } -time_duration map::set_field_age( const tripoint &p, const field_id t, const time_duration age, +time_duration map::set_field_age( const tripoint &p, const field_id type, const time_duration &age, const bool isoffset ) { - if( field_entry *const field_ptr = get_field( p, t ) ) { + if( field_entry *const field_ptr = get_field( p, type ) ) { return field_ptr->setFieldAge( ( isoffset ? field_ptr->getFieldAge() : 0_turns ) + age ); } return -1_turns; @@ -5216,38 +5232,38 @@ time_duration map::set_field_age( const tripoint &p, const field_id t, const tim * set strength of field type at point, creating if not present, removing if strength is 0 * returns resulting strength, or 0 for not present */ -int map::set_field_strength( const tripoint &p, const field_id t, const int str, bool isoffset ) +int map::set_field_strength( const tripoint &p, const field_id type, const int str, bool isoffset ) { - field_entry *field_ptr = get_field( p, t ); + field_entry *field_ptr = get_field( p, type ); if( field_ptr != nullptr ) { int adj = ( isoffset ? field_ptr->getFieldDensity() : 0 ) + str; if( adj > 0 ) { field_ptr->setFieldDensity( adj ); return adj; } else { - remove_field( p, t ); + remove_field( p, type ); return 0; } } else if( 0 + str > 0 ) { - return add_field( p, t, str ) ? str : 0; + return add_field( p, type, str ) ? str : 0; } return 0; } -time_duration map::get_field_age( const tripoint &p, const field_id t ) const +time_duration map::get_field_age( const tripoint &p, const field_id type ) const { - auto field_ptr = field_at( p ).findField( t ); + auto field_ptr = field_at( p ).findField( type ); return field_ptr == nullptr ? -1_turns : field_ptr->getFieldAge(); } -int map::get_field_strength( const tripoint &p, const field_id t ) const +int map::get_field_strength( const tripoint &p, const field_id type ) const { - auto field_ptr = field_at( p ).findField( t ); + auto field_ptr = field_at( p ).findField( type ); return ( field_ptr == nullptr ? 0 : field_ptr->getFieldDensity() ); } -field_entry *map::get_field( const tripoint &p, const field_id t ) +field_entry *map::get_field( const tripoint &p, const field_id type ) { if( !inbounds( p ) ) { return nullptr; @@ -5256,10 +5272,10 @@ field_entry *map::get_field( const tripoint &p, const field_id t ) point l; submap *const current_submap = get_submap_at( p, l ); - return current_submap->fld[l.x][l.y].findField( t ); + return current_submap->fld[l.x][l.y].findField( type ); } -bool map::add_field( const tripoint &p, const field_id t, int density, const time_duration age ) +bool map::add_field( const tripoint &p, const field_id type, int density, const time_duration &age ) { if( !inbounds( p ) ) { return false; @@ -5270,7 +5286,7 @@ bool map::add_field( const tripoint &p, const field_id t, int density, const tim return false; } - if( t == fd_null ) { + if( type == fd_null ) { return false; } @@ -5278,7 +5294,7 @@ bool map::add_field( const tripoint &p, const field_id t, int density, const tim submap *const current_submap = get_submap_at( p, l ); current_submap->is_uniform = false; - if( current_submap->fld[l.x][l.y].addField( t, density, age ) ) { + if( current_submap->fld[l.x][l.y].addField( type, density, age ) ) { //Only adding it to the count if it doesn't exist. current_submap->field_count++; } @@ -5291,8 +5307,8 @@ bool map::add_field( const tripoint &p, const field_id t, int density, const tim // TODO: Make it skip transparent fields set_transparency_cache_dirty( p.z ); - const field_t &ft = fieldlist[t]; - if( field_type_dangerous( t ) ) { + const field_t &ft = fieldlist[type]; + if( field_type_dangerous( type ) ) { set_pathfinding_cache_dirty( p.z ); } @@ -5317,15 +5333,15 @@ void map::remove_field( const tripoint &p, const field_id field_to_remove ) // Only adjust the count if the field actually existed. current_submap->field_count--; const auto &fdata = fieldlist[ field_to_remove ]; - for( int i = 0; i < 3; ++i ) { - if( !fdata.transparent[i] ) { + for( bool i : fdata.transparent ) { + if( !i ) { set_transparency_cache_dirty( p.z ); break; } } - for( int i = 0; i < 3; ++i ) { - if( fdata.dangerous[i] ) { + for( bool danger : fdata.dangerous ) { + if( danger ) { set_pathfinding_cache_dirty( p.z ); break; } @@ -5815,7 +5831,9 @@ bool map::draw_maptile( const catacurses::window &w, player &u, const tripoint & } } - g->u.memorize_symbol( getabs( p ), memory_sym ); + if( !check_and_set_seen_cache( p ) ) { + g->u.memorize_symbol( getabs( p ), memory_sym ); + } // If there's graffiti here, change background color if( curr_maptile.has_graffiti() ) { @@ -6047,7 +6065,7 @@ bool map::clear_path( const tripoint &f, const tripoint &t, const int range, if( f.z == t.z ) { if( ( range >= 0 && range < rl_dist( f.x, f.y, t.x, t.y ) ) || - !inbounds( t.x, t.y ) ) { + !inbounds( t ) ) { return false; // Out of range! } bool is_clear = true; @@ -6204,6 +6222,31 @@ void map::shift_traps( const tripoint &shift ) } } +void shift_map_memory_seen_cache( + std::bitset &map_memory_seen_cache, + const int sx, const int sy ) +{ + // sx shifts by SEEX rows, sy shifts by SEEX columns. + int shift_amount = ( sx * SEEX ) + ( sy * MAPSIZE_Y * SEEX ); + if( shift_amount > 0 ) { + map_memory_seen_cache >>= static_cast( shift_amount ); + } else if( shift_amount < 0 ) { + map_memory_seen_cache <<= static_cast( -shift_amount ); + } + // Shifting in the y direction shifted in 0 values, no no additional clearing is necessary, but + // a shift in the x direction makes values "wrap" to the next row, and they need to be zeroed. + if( sx == 0 ) { + return; + } + const size_t x_offset = ( sx > 0 ) ? MAPSIZE_X - SEEX : 0; + for( size_t y = 0; y < MAPSIZE_X; ++y ) { + size_t y_offset = y * MAPSIZE_X; + for( size_t x = 0; x < SEEX; ++x ) { + map_memory_seen_cache.reset( y_offset + x_offset + x ); + } + } +} + void map::shift( const int sx, const int sy ) { // Special case of 0-shift; refresh the map @@ -6243,6 +6286,7 @@ void map::shift( const int sx, const int sy ) // Clear vehicle list and rebuild after shift clear_vehicle_cache( gridz ); clear_vehicle_list( gridz ); + shift_map_memory_seen_cache( get_cache( gridz ).map_memory_seen_cache, sx, sy ); if( sx >= 0 ) { for( int gridx = 0; gridx < my_MAPSIZE; gridx++ ) { if( sy >= 0 ) { @@ -6592,7 +6636,7 @@ void map::fill_funnels( const tripoint &p, const time_point &since ) return; } auto items = i_at( p ); - units::volume maxvolume = 0; + units::volume maxvolume = 0_ml; auto biggest_container = items.end(); for( auto candidate = items.begin(); candidate != items.end(); ++candidate ) { if( candidate->is_funnel_container( maxvolume ) ) { @@ -6681,7 +6725,7 @@ void map::restock_fruits( const tripoint &p, const time_duration &time_since_las void map::produce_sap( const tripoint &p, const time_duration &time_since_last_actualize ) { - if( time_since_last_actualize <= 0 ) { + if( time_since_last_actualize <= 0_turns ) { return; } @@ -6698,7 +6742,7 @@ void map::produce_sap( const tripoint &p, const time_duration &time_since_last_a const time_duration turns_to_produce = producing_length / ( maple_sap_per_season * 4 ); // How long of this time_since_last_actualize have we been in the producing period (late winter, early spring)? - time_duration time_producing = 0; + time_duration time_producing = 0_turns; if( time_since_last_actualize >= calendar::year_length() ) { time_producing = producing_length; @@ -6958,7 +7002,7 @@ void map::copy_grid( const tripoint &to, const tripoint &from ) void map::spawn_monsters_submap_group( const tripoint &gp, mongroup &group, bool ignore_sight ) { - const int s_range = std::min( SEEX * ( MAPSIZE / 2 ), + const int s_range = std::min( HALF_MAPSIZE_X, g->u.sight_range( g->light_level( g->u.posz() ) ) ); int pop = group.population; std::vector locations; @@ -7176,33 +7220,35 @@ void map::clear_traps() } } -const std::vector &map::trap_locations( trap_id t ) const +const std::vector &map::trap_locations( const trap_id type ) const { - return traplocs[t]; + return traplocs[type]; } -bool map::inbounds( const int x, const int y ) const +bool map::inbounds( const tripoint &p ) const { - return ( x >= 0 && x < SEEX * my_MAPSIZE && y >= 0 && y < SEEY * my_MAPSIZE ); -} + constexpr tripoint map_boundary_min( 0, 0, -OVERMAP_DEPTH ); + constexpr tripoint map_boundary_max( MAPSIZE_Y, MAPSIZE_X, OVERMAP_HEIGHT ); + constexpr tripoint map_clearance_min( tripoint_zero ); + constexpr tripoint map_clearance_max( 1, 1, 0 ); -bool map::inbounds( const point &p ) const -{ - return ( p.x >= 0 && p.x < SEEX * my_MAPSIZE && p.y >= 0 && p.y < SEEY * my_MAPSIZE ); -} + constexpr box map_boundaries( map_boundary_min, map_boundary_max ); + constexpr box map_clearance( map_clearance_min, map_clearance_max ); -bool map::inbounds( const int x, const int y, const int z ) const -{ - return ( x >= 0 && x < SEEX * my_MAPSIZE && - y >= 0 && y < SEEY * my_MAPSIZE && - z >= -OVERMAP_DEPTH && z <= OVERMAP_HEIGHT ); + return generic_inbounds( p, map_boundaries, map_clearance ); } -bool map::inbounds( const tripoint &p ) const +bool tinymap::inbounds( const tripoint &p ) const { - return ( p.x >= 0 && p.x < SEEX * my_MAPSIZE && - p.y >= 0 && p.y < SEEY * my_MAPSIZE && - p.z >= -OVERMAP_DEPTH && p.z <= OVERMAP_HEIGHT ); + constexpr tripoint map_boundary_min( 0, 0, -OVERMAP_DEPTH ); + constexpr tripoint map_boundary_max( SEEY * 2, SEEX * 2, OVERMAP_HEIGHT ); + constexpr tripoint map_clearance_min( tripoint_zero ); + constexpr tripoint map_clearance_max( 1, 1, 0 ); + + constexpr box map_boundaries( map_boundary_min, map_boundary_max ); + constexpr box map_clearance( map_clearance_min, map_clearance_max ); + + return generic_inbounds( p, map_boundaries, map_clearance ); } void map::set_graffiti( const tripoint &p, const std::string &contents ) @@ -7486,7 +7532,8 @@ void map::build_map_cache( const int zlev, bool skip_lightmap ) const size_t part = vp.part_index(); int px = v.x + vp.part().precalc[0].x; int py = v.y + vp.part().precalc[0].y; - if( !inbounds( px, py ) ) { + const point p( px, py ); + if( !inbounds( p ) ) { continue; } @@ -7704,14 +7751,14 @@ void map::draw_line_ter( const ter_id type, int x1, int y1, int x2, int y2 ) }, x1, y1, x2, y2 ); } -void map::draw_line_furn( furn_id type, int x1, int y1, int x2, int 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( x, y, type ); }, x1, y1, x2, y2 ); } -void map::draw_fill_background( ter_id type ) +void map::draw_fill_background( const ter_id type ) { // Need to explicitly set caches dirty - set_ter would do it before set_transparency_cache_dirty( abs_sub.z ); @@ -7738,14 +7785,14 @@ void map::draw_fill_background( const weighted_int_list &f ) draw_square_ter( f, 0, 0, SEEX * my_MAPSIZE - 1, SEEY * my_MAPSIZE - 1 ); } -void map::draw_square_ter( ter_id type, int x1, int y1, int x2, int y2 ) +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( x, y, type ); }, x1, y1, x2, y2 ); } -void map::draw_square_furn( furn_id type, int x1, int y1, int x2, int 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( x, y, type ); @@ -7767,35 +7814,35 @@ void map::draw_square_ter( const weighted_int_list &f, int x1, int y1, i }, x1, y1, x2, y2 ); } -void map::draw_rough_circle_ter( ter_id type, int x, int y, int rad ) +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( x, y, type ); }, x, y, rad ); } -void map::draw_rough_circle_furn( furn_id type, int x, int y, int 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( x, y, type ); }, x, y, rad ); } -void map::draw_circle_ter( ter_id type, double x, double y, double 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( x, y, type ); }, x, y, rad ); } -void map::draw_circle_ter( ter_id type, int x, int y, int 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( x, y, type ); }, x, y, rad ); } -void map::draw_circle_furn( furn_id type, int x, int y, int 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( x, y, type ); diff --git a/src/map.h b/src/map.h index 316b742ab9b30..f3745c7bd60d9 100644 --- a/src/map.h +++ b/src/map.h @@ -3,6 +3,7 @@ #define MAP_H #include +#include #include #include #include @@ -18,6 +19,7 @@ #include "lightmap.h" #include "shadowcasting.h" #include "string_id.h" +#include "units.h" //TODO: include comments about how these variables work. Where are they used. Are they constant etc. #define CAMPSIZE 1 @@ -32,13 +34,6 @@ namespace cata template class optional; } // namespace cata -namespace units -{ -template -class quantity; -class mass_in_gram_tag; -using mass = quantity; -} // namespace units class emit; using emit_id = string_id; class vpart_position; @@ -134,11 +129,11 @@ class map_stack : public item_stack struct visibility_variables { bool variables_set; // Is this struct initialized for current z-level + bool u_sight_impaired; + bool u_is_boomered; // cached values for map visibility calculations int g_light_level; int u_clairvoyance; - bool u_sight_impaired; - bool u_is_boomered; float vision_threshold; }; @@ -176,20 +171,21 @@ struct level_cache { bool outside_cache_dirty; bool floor_cache_dirty; - four_quadrants lm[MAPSIZE * SEEX][MAPSIZE * SEEY]; - float sm[MAPSIZE * SEEX][MAPSIZE * SEEY]; + four_quadrants lm[MAPSIZE_X][MAPSIZE_Y]; + float sm[MAPSIZE_X][MAPSIZE_Y]; // To prevent redundant ray casting into neighbors: precalculate bulk light source positions. // This is only valid for the duration of generate_lightmap - float light_source_buffer[MAPSIZE * SEEX][MAPSIZE * SEEY]; - bool outside_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; - bool floor_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; - float transparency_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; - float seen_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; - float camera_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; - lit_level visibility_cache[MAPSIZE * SEEX][MAPSIZE * SEEY]; + float light_source_buffer[MAPSIZE_X][MAPSIZE_Y]; + bool outside_cache[MAPSIZE_X][MAPSIZE_Y]; + bool floor_cache[MAPSIZE_X][MAPSIZE_Y]; + float transparency_cache[MAPSIZE_X][MAPSIZE_Y]; + float seen_cache[MAPSIZE_X][MAPSIZE_Y]; + float camera_cache[MAPSIZE_X][MAPSIZE_Y]; + lit_level visibility_cache[MAPSIZE_X][MAPSIZE_Y]; + std::bitset map_memory_seen_cache; bool veh_in_active_range; - bool veh_exists_at[SEEX * MAPSIZE][SEEY * MAPSIZE]; + bool veh_exists_at[MAPSIZE_X][MAPSIZE_Y]; std::map< tripoint, std::pair > veh_cached_parts; std::set vehicle_list; std::set zone_vehicles; @@ -225,7 +221,7 @@ class map // Constructors & Initialization map( int mapsize = MAPSIZE, bool zlev = false ); map( bool zlev ) : map( MAPSIZE, zlev ) { } - ~map(); + virtual ~map(); map &operator=( map && ) = default; @@ -258,6 +254,23 @@ class map void set_pathfinding_cache_dirty( const int zlev ); /*@}*/ + void set_memory_seen_cache_dirty( const tripoint &p ) { + 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 ); + } + } + + 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 ) ) ); + return true; + } + return false; + } + /** * Callback invoked when a vehicle has moved. */ @@ -505,8 +518,6 @@ class map void vehmove(); // Selects a vehicle to move, returns false if no moving vehicles bool vehproceed(); - // Actually moves a vehicle - bool vehact( vehicle &veh ); // 3D vehicles VehicleList get_vehicles( const tripoint &start, const tripoint &end ); @@ -744,20 +755,20 @@ class map // mapgen void draw_line_ter( const ter_id type, int x1, int y1, int x2, int y2 ); - void draw_line_furn( furn_id type, int x1, int y1, int x2, int y2 ); - void draw_fill_background( ter_id type ); + void draw_line_furn( const furn_id type, int x1, int y1, int x2, int y2 ); + void draw_fill_background( const ter_id type ); void draw_fill_background( ter_id( *f )() ); void draw_fill_background( const weighted_int_list &f ); - void draw_square_ter( ter_id type, int x1, int y1, int x2, int y2 ); - void draw_square_furn( furn_id type, int x1, int y1, int x2, int y2 ); + void draw_square_ter( const ter_id type, int x1, int y1, int x2, int y2 ); + void draw_square_furn( const furn_id type, int x1, int y1, int x2, int y2 ); void draw_square_ter( ter_id( *f )(), int x1, int y1, int x2, int y2 ); void draw_square_ter( const weighted_int_list &f, int x1, int y1, int x2, int y2 ); - void draw_rough_circle_ter( ter_id type, int x, int y, int rad ); - void draw_rough_circle_furn( furn_id type, int x, int y, int rad ); - void draw_circle_ter( ter_id type, double x, double y, double rad ); - void draw_circle_ter( ter_id type, int x, int y, int rad ); - void draw_circle_furn( furn_id type, int x, int y, int rad ); + void draw_rough_circle_ter( const ter_id type, int x, int y, int rad ); + void draw_rough_circle_furn( const furn_id type, int x, int y, int rad ); + void draw_circle_ter( const ter_id type, double x, double y, double rad ); + void draw_circle_ter( const ter_id type, int x, int y, int rad ); + void draw_circle_furn( const furn_id type, int x, int y, int rad ); void add_corpse( const tripoint &p ); @@ -810,7 +821,7 @@ class map * Moved here from weather.cpp for speed. Decays fire, washable fields and scent. * Washable fields are decayed only by 1/3 of the amount fire is. */ - void decay_fields_and_scent( const time_duration amount ); + void decay_fields_and_scent( const time_duration &amount ); // Signs const std::string get_signage( const tripoint &p ) const; @@ -845,7 +856,7 @@ class map // Items: 2D map_stack i_at( int x, int y ); void i_clear( const int x, const int y ); - std::list::iterator i_rem( const point location, std::list::iterator it ); + std::list::iterator i_rem( const point &location, std::list::iterator it ); int i_rem( const int x, const int y, const int index ); 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, @@ -985,15 +996,15 @@ class map item *item_from( vehicle *veh, const int cargo_part, const size_t index ); // Traps: 3D - void trap_set( const tripoint &p, const trap_id id ); + void trap_set( const tripoint &p, const trap_id type ); const trap &tr_at( const tripoint &p ) const; void disarm_trap( const tripoint &p ); void remove_trap( const tripoint &p ); - const std::vector &trap_locations( trap_id t ) const; + const std::vector &trap_locations( const trap_id type ) const; //Spawns byproducts from items destroyed in fire. - void create_burnproducts( const tripoint p, const item &fuel, const units::mass &burned_mass ); + void create_burnproducts( const tripoint &p, const item &fuel, const units::mass &burned_mass ); bool process_fields(); // See fields.cpp bool process_fields_in_submap( submap *const current_submap, const int submap_x, const int submap_y, const int submap_z ); // See fields.cpp @@ -1026,55 +1037,58 @@ class map * Get the age of a field entry (@ref field_entry::age), if there is no * field of that type, returns `-1_turns`. */ - time_duration get_field_age( const tripoint &p, const field_id t ) const; + time_duration get_field_age( const tripoint &p, const field_id type ) const; /** * Get the density of a field entry (@ref field_entry::density), * if there is no field of that type, returns 0. */ - int get_field_strength( const tripoint &p, const field_id t ) const; + int get_field_strength( const tripoint &p, const field_id type ) const; /** * Increment/decrement age of field entry at point. * @return resulting age or `-1_turns` if not present (does *not* create a new field). */ - time_duration adjust_field_age( const tripoint &p, field_id t, time_duration offset ); + time_duration adjust_field_age( const tripoint &p, const field_id type, + const time_duration &offset ); /** * Increment/decrement density of field entry at point, creating if not present, * removing if density becomes 0. * @return resulting density, or 0 for not present (either removed or not created at all). */ - int adjust_field_strength( const tripoint &p, const field_id t, const int offset ); + int adjust_field_strength( const tripoint &p, const field_id type, const int offset ); /** * Set age of field entry at point. * @param p Location of field - * @param t ID of field + * @param type ID of field * @param age New age of specified field * @param isoffset If true, the given age value is added to the existing value, * if false, the existing age is ignored and overridden. * @return resulting age or `-1_turns` if not present (does *not* create a new field). */ - time_duration set_field_age( const tripoint &p, field_id t, time_duration age, + time_duration set_field_age( const tripoint &p, const field_id type, const time_duration &age, bool isoffset = false ); /** * Set density of field entry at point, creating if not present, * removing if density becomes 0. * @param p Location of field - * @param t ID of field + * @param type ID of field * @param str New strength of field * @param isoffset If true, the given str value is added to the existing value, * if false, the existing density is ignored and overridden. * @return resulting density, or 0 for not present (either removed or not created at all). */ - int set_field_strength( const tripoint &p, const field_id t, const int str, bool isoffset = false ); + int set_field_strength( const tripoint &p, const field_id type, const int str, + bool isoffset = false ); /** * Get field of specific type at point. * @return NULL if there is no such field entry at that place. */ - field_entry *get_field( const tripoint &p, const field_id t ); + field_entry *get_field( const tripoint &p, const field_id type ); /** * Add field entry at point, or set density if present * @return false if the field could not be created (out of bounds), otherwise true. */ - bool add_field( const tripoint &p, field_id t, int density, time_duration age = 0_turns ); + bool add_field( const tripoint &p, const field_id type, int density, + const time_duration &age = 0_turns ); /** * Remove field entry at xy, ignored if the field entry is not present. */ @@ -1085,7 +1099,7 @@ class map void add_splatter_trail( const field_id type, const tripoint &from, const tripoint &to ); void add_splash( const field_id type, const tripoint ¢er, int radius, int density ); - void propagate_field( const tripoint ¢er, field_id fid, + void propagate_field( const tripoint ¢er, const field_id type, int amount, int max_density = MAX_FIELD_DENSITY ); /** @@ -1103,8 +1117,8 @@ class map * Build the map of scent-resistant tiles. * Should be way faster than if done in `game.cpp` using public map functions. */ - void scent_blockers( std::array, SEEY *MAPSIZE> &blocks_scent, - std::array, SEEY *MAPSIZE> &reduces_scent, + void scent_blockers( std::array, MAPSIZE_Y> &blocks_scent, + std::array, MAPSIZE_Y> &reduces_scent, int minx, int miny, int maxx, int maxy ); // Computers @@ -1188,7 +1202,7 @@ class map void build_map_cache( int zlev, bool skip_lightmap = false ); // Unlike the other caches, this populates a supplied cache instead of an internal cache. void build_obstacle_cache( const tripoint &start, const tripoint &end, - fragment_cloud( &obstacle_cache )[MAPSIZE * SEEX][MAPSIZE * SEEY] ); + fragment_cloud( &obstacle_cache )[MAPSIZE_X][MAPSIZE_Y] ); vehicle *add_vehicle( const vgroup_id &type, const tripoint &p, const int dir, const int init_veh_fuel = -1, const int init_veh_status = -1, @@ -1232,7 +1246,7 @@ class map * Output is in the same scale, but in global system. */ point getabs( const int x, const int y ) const; - point getabs( const point p ) const { + point getabs( const point &p ) const { return getabs( p.x, p.y ); } /** @@ -1245,14 +1259,14 @@ class map * Inverse of @ref getabs */ point getlocal( const int x, const int y ) const; - point getlocal( const point p ) const { + point getlocal( const point &p ) const { return getlocal( p.x, p.y ); } tripoint getlocal( const tripoint &p ) const; - bool inbounds( const int x, const int y ) const; - bool inbounds( const point &x ) const; - bool inbounds( const int x, const int y, const int z ) const; - bool inbounds( const tripoint &p ) const; + virtual bool inbounds( const tripoint &p ) const; + bool inbounds( const point &p ) const { + return inbounds( tripoint( p, 0 ) ); + } bool inbounds_z( const int z ) const { return z >= -OVERMAP_DEPTH && z <= OVERMAP_HEIGHT; @@ -1478,7 +1492,7 @@ class map // Handle just cardinal directions and 45 deg angles. void apply_directional_light( const tripoint &p, int direction, float luminance ); void apply_light_arc( const tripoint &p, int angle, float luminance, int wideangle = 30 ); - void apply_light_ray( bool lit[MAPSIZE * SEEX][MAPSIZE * SEEY], + void apply_light_ray( bool lit[MAPSIZE_X][MAPSIZE_Y], const tripoint &s, const tripoint &e, float luminance ); void add_light_from_items( const tripoint &p, std::list::iterator begin, std::list::iterator end ); @@ -1562,7 +1576,7 @@ class map mutable std::array< std::unique_ptr, OVERMAP_LAYERS > pathfinding_caches; // Note: no bounds check - level_cache &get_cache( int zlev ) { + level_cache &get_cache( int zlev ) const { return *caches[zlev + OVERMAP_DEPTH]; } @@ -1603,6 +1617,7 @@ class tinymap : public map friend class editmap; public: tinymap( int mapsize = 2, bool zlevels = false ); + bool inbounds( const tripoint &p ) const; }; #endif diff --git a/src/map_extras.cpp b/src/map_extras.cpp index 0174cef210a25..430cab1534e32 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -1,5 +1,6 @@ #include "map_extras.h" +#include "cellular_automata.h" #include "debug.h" #include "field.h" #include "fungal_effects.h" @@ -358,7 +359,7 @@ 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->x - ( j * 1 ), p->y + ( j * 1 ), p->z}, fd_blood, 1, 0 ); + m.add_field( {p->x - ( j * 1 ), p->y + ( j * 1 ), p->z}, fd_blood, 1, 0_turns ); } } } @@ -381,7 +382,7 @@ 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->x + ( j * 1 ), p->y - ( j * 1 ), p->z}, fd_blood, 1, 0 ); + m.add_field( {p->x + ( j * 1 ), p->y - ( j * 1 ), p->z}, fd_blood, 1, 0_turns ); } } } @@ -454,7 +455,7 @@ void mx_drugdeal( map &m, const tripoint &abs_sub ) 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 ); + fd_blood, 1, 0_turns ); } } if( a_has_drugs && num_drugs > 0 ) { @@ -496,7 +497,7 @@ void mx_drugdeal( map &m, const tripoint &abs_sub ) 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 ); + fd_blood, 1, 0_turns ); } if( !a_has_drugs && num_drugs > 0 ) { int drugs_placed = rng( 2, 6 ); @@ -654,7 +655,7 @@ void mx_portal_in( map &m, const tripoint &abs_sub ) } }; 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 ); + 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++ ) { @@ -702,7 +703,7 @@ void mx_spider( map &m, const tripoint &abs_sub ) bool should_web_tree = m.has_flag_ter( "TREE", location ) && !one_in( 4 ); if( should_web_flat || should_web_shrub || should_web_tree ) { - m.add_field( location, fd_web, rng( 1, 3 ), 0 ); + m.add_field( location, fd_web, rng( 1, 3 ), 0_turns ); } } } @@ -813,72 +814,14 @@ void mx_clearcut( map &m, const tripoint &abs_sub ) void mx_pond( map &m, const tripoint &abs_sub ) { - // This map extra creates small ponds using a simple cellular automata. - - // Basic rules are as follows: - // - 55% of cells start alive - // - 5 iterations - // - Dead cells with > 4 neighbors become alive - // - Alive cells with > 3 neighbors stay alive - // - The rest die + // This map extra creates small ponds using a simple cellular automaton. + constexpr int width = SEEX * 2; constexpr int height = SEEY * 2; - std::vector> current( width, std::vector( height, 0 ) ); - std::vector> next( width, std::vector( height, 0 ) ); - - const auto neighbor_count = []( const std::vector> &cells, const int x, - const int y ) { - // Calculate the number of alive neighbors by looking at the Moore neighborhood (9 adjacent cells). - int neighbors = 0; - for( int ni = -1; ni <= 1; ni++ ) { - for( int nj = -1; nj <= 1; nj++ ) { - neighbors += cells[x + ni][y + nj]; - } - } - // Because we included ourself in the loop above, subtract ourselves back out. - neighbors -= cells[x][y]; - - return neighbors; - }; - - // Initialize our initial set of cells. - for( int i = 0; i < width; i++ ) { - for( int j = 0; j < height; j++ ) { - current[i][j] = x_in_y( 55, 100 ); - } - } - - for( int iteration = 0; iteration < 5; iteration++ ) { - for( int i = 0; i < width; i++ ) { - for( int j = 0; j < height; j++ ) { - // Skip the edges--no need to complicate this with more complex neighbor - // calculations, just keep them constant. - if( i == 0 || i == width - 1 || j == 0 || j == height - 1 ) { - next[i][j] = 0; - continue; - } - // Count our neighors. - const int neighbors = neighbor_count( current, i, j ); - - // Dead and > 4 neighbors, so become alive. - if( ( current[i][j] == 0 ) && ( neighbors > 4 ) ) { - next[i][j] = 1; - } - // Alive and > 3 neighbors, so stay alive. - else if( ( current[i][j] == 1 ) && ( neighbors > 3 ) ) { - next[i][j] = 1; - } - // Else, die. - else { - next[i][j] = 0; - } - } - } - - // Swap our current and next vectors and repeat. - std::swap( current, next ); - } + // Generate the cells for our lake. + std::vector> current = CellularAutomata::generate_cellular_automaton( width, + height, 55, 5, 4, 3 ); // Loop through and turn every live cell into water. // Do a roll for our three possible lake types: @@ -900,7 +843,7 @@ void mx_pond( map &m, const tripoint &abs_sub ) m.ter_set( location, t_water_dp ); break; case 3: - const int neighbors = neighbor_count( current, i, j ); + const int neighbors = CellularAutomata::neighbor_count( current, width, height, i, j ); if( neighbors == 8 ) { m.ter_set( location, t_water_dp ); } else { @@ -915,6 +858,49 @@ void mx_pond( map &m, const tripoint &abs_sub ) m.place_spawns( GROUP_FISH, 1, 0, 0, width, height, 0.15f ); } +void mx_clay_deposit( map &m, const tripoint &abs_sub ) +{ + // This map extra creates small clay deposits using a simple cellular automaton. + + constexpr int width = SEEX * 2; + constexpr int height = SEEY * 2; + + for( int tries = 0; tries < 5; tries++ ) { + // Generate the cells for our clay deposit. + std::vector> current = CellularAutomata::generate_cellular_automaton( width, + height, 35, 5, 4, 3 ); + + // With our settings for the CA, it's sometimes possible to get a bad generation with not enough + // alive cells (or even 0). + int alive_count = 0; + for( int i = 0; i < width; i++ ) { + for( int j = 0; j < height; j++ ) { + alive_count += current[i][j]; + } + } + + // If we have fewer than 4 alive cells, lets try again. + if( alive_count < 4 ) { + continue; + } + + // Loop through and turn every live cell into clay. + for( int i = 0; i < width; i++ ) { + for( int j = 0; j < height; j++ ) { + if( current[i][j] == 1 ) { + const tripoint location( i, j, abs_sub.z ); + m.furn_set( location, f_null ); + m.ter_set( location, t_clay ); + } + } + } + + // If we got here, it meant we had a successful try and can just break out of + // our retry loop. + break; + } +} + typedef std::unordered_map FunctionMap; FunctionMap builtin_functions = { { "mx_null", mx_null }, @@ -938,6 +924,7 @@ FunctionMap builtin_functions = { { "mx_shrubbery", mx_shrubbery }, { "mx_clearcut", mx_clearcut }, { "mx_pond", mx_pond }, + { "mx_clay_deposit", mx_clay_deposit }, }; map_special_pointer get_function( const std::string &name ) diff --git a/src/map_memory.h b/src/map_memory.h index b4d41b73abe5b..709b612789f91 100644 --- a/src/map_memory.h +++ b/src/map_memory.h @@ -6,7 +6,7 @@ #include #include -#include "enums.h" +#include "enums.h" // IWYU pragma: keep class JsonOut; class JsonObject; @@ -48,10 +48,10 @@ class map_memory void memorize_tile( int limit, const tripoint &pos, const std::string &ter, const int subtile, const int rotation ); /** Returns last stored map tile in given location */ - memorized_terrain_tile get_tile( const tripoint &p ) const; + memorized_terrain_tile get_tile( const tripoint &pos ) const; void memorize_symbol( int limit, const tripoint &pos, const long symbol ); - long get_symbol( const tripoint &p ) const; + long get_symbol( const tripoint &pos ) const; private: lru_cache tile_cache; lru_cache symbol_cache; diff --git a/src/mapbuffer.cpp b/src/mapbuffer.cpp index 9552a1d589442..03f04a8b4b15d 100644 --- a/src/mapbuffer.cpp +++ b/src/mapbuffer.cpp @@ -21,9 +21,7 @@ mapbuffer MAPBUFFER; -mapbuffer::mapbuffer() -{ -} +mapbuffer::mapbuffer() = default; mapbuffer::~mapbuffer() { @@ -151,8 +149,8 @@ void mapbuffer::save( bool delete_after_save ) save_quad( dirname.str(), quad_path.str(), om_addr, submaps_to_delete, delete_after_save || zlev_del || om_addr.x < map_origin.x || om_addr.y < map_origin.y || - om_addr.x > map_origin.x + ( MAPSIZE / 2 ) || - om_addr.y > map_origin.y + ( MAPSIZE / 2 ) ); + om_addr.x > map_origin.x + HALF_MAPSIZE || + om_addr.y > map_origin.y + HALF_MAPSIZE ); num_saved_submaps += 4; } for( auto &elem : submaps_to_delete ) { diff --git a/src/mapdata.cpp b/src/mapdata.cpp index 3e11658544fad..caeeca57b518c 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -154,6 +154,7 @@ static const std::unordered_map ter_bitflags_map = { { "GOES_UP", TFLAG_GOES_UP }, // Allows non-flying creatures to move upwards { "NO_FLOOR", TFLAG_NO_FLOOR }, // Things should fall when placed on this tile { "SEEN_FROM_ABOVE", TFLAG_SEEN_FROM_ABOVE },// This should be visible if the tile above has no floor + { "HIDE_PLACE", TFLAG_HIDE_PLACE }, // Creature on this tile can't be seen by other creature not standing on adjacent tiles { "RAMP", TFLAG_RAMP }, // Can be used to move up a z-level } }; diff --git a/src/mapdata.h b/src/mapdata.h index 7bde7108a58ca..9be517391f7ce 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -105,6 +105,7 @@ struct map_deconstruct_info { * PERMEABLE - Allows gases to flow through unimpeded. * RAMP - Higher z-levels can be accessed from this tile * EASY_DECONSTRUCT - Player can deconstruct this without tools + * HIDE_PLACE - Creature on this tile can't be seen by other creature not standing on adjacent tiles * * Currently only used for Fungal conversions * WALL - This terrain is an upright obstacle @@ -127,7 +128,7 @@ struct map_deconstruct_info { * so much that strings produce a significant performance penalty. The following are equivalent: * m->has_flag("FLAMMABLE"); // * m->has_flag(TFLAG_FLAMMABLE); // ~ 20 x faster than the above, ( 2.5 x faster if the above uses static const std::string str_flammable("FLAMMABLE"); - * To add a new ter_bitflag, add below and add to init_ter_bitflags_map() in mapdata.cpp + * To add a new ter_bitflag, add below and add to ter_bitflags_map in mapdata.cpp * Order does not matter. */ enum ter_bitflags : int { @@ -165,6 +166,7 @@ enum ter_bitflags : int { TFLAG_NO_FLOOR, TFLAG_SEEN_FROM_ABOVE, TFLAG_RAMP, + TFLAG_HIDE_PLACE, NUM_TERFLAGS }; diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 35d512f0e8ec8..164be5c26d952 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -2,7 +2,9 @@ #include #include +#include #include +#include #include #include "ammo.h" @@ -101,15 +103,11 @@ const mtype_id mon_zombie_soldier( "mon_zombie_soldier" ); const mtype_id mon_zombie_spitter( "mon_zombie_spitter" ); const mtype_id mon_zombie_tough( "mon_zombie_tough" ); -bool connects_to( const oter_id &there, int dir_from_here ); void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ); void set_science_room( map *m, int x1, int y1, bool faces_right, const time_point &when ); void silo_rooms( map *m ); void build_mine_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgendata &dat ); -void mremove_trap( map *m, int x, int y ); -void mtrap_set( map *m, int x, int y, trap_id t ); - // (x,y,z) are absolute coordinates of a submap // x%2 and y%2 must be 0! void map::generate( const int x, const int y, const int z, const time_point &when ) @@ -242,23 +240,23 @@ std::map > oter_mapgen_weights; void calculate_mapgen_weights() // @todo: rename as it runs jsonfunction setup too { oter_mapgen_weights.clear(); - for( auto oit = oter_mapgen.begin(); oit != oter_mapgen.end(); ++oit ) { + for( auto &omw : oter_mapgen ) { int funcnum = 0; int wtotal = 0; - oter_mapgen_weights[ oit->first ] = std::map(); - for( auto fit = oit->second.begin(); fit != oit->second.end(); ++fit ) { + oter_mapgen_weights[ omw.first ] = std::map(); + for( auto fit = omw.second.begin(); fit != omw.second.end(); ++fit ) { // int weight = ( *fit )->weight; if( weight < 1 ) { - dbg( D_INFO ) << "wcalc " << oit->first << "(" << funcnum << "): (rej(1), " << weight << ") = " << + dbg( D_INFO ) << "wcalc " << omw.first << "(" << funcnum << "): (rej(1), " << weight << ") = " << wtotal; ++funcnum; continue; // rejected! } ( *fit )->setup(); wtotal += weight; - oter_mapgen_weights[ oit->first ][ wtotal ] = funcnum; - dbg( D_INFO ) << "wcalc " << oit->first << "(" << funcnum << "): +" << weight << " = " << wtotal; + oter_mapgen_weights[ omw.first ][ wtotal ] = funcnum; + dbg( D_INFO ) << "wcalc " << omw.first << "(" << funcnum << "): +" << weight << " = " << wtotal; ++funcnum; } } @@ -1394,9 +1392,9 @@ class jmapgen_nested : public jmapgen_piece } }; -jmapgen_objects::jmapgen_objects( int off_x, int off_y, size_t mapsize_x, size_t mapsize_y ) - : offset_x( off_x ) - , offset_y( off_y ) +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 ) {} @@ -5898,7 +5896,9 @@ FFFFFFFFFFFFFFFFFFFFFFf \n\ for( int a = 0; a < 21; a++ ) { vset.push_back( a ); } - std::random_shuffle( vset.begin(), vset.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( vset.begin(), vset.end(), eng ); for( int a = 0; a < vnum; a++ ) { if( vset[a] < 12 ) { if( one_in( 2 ) ) { @@ -6771,6 +6771,7 @@ int map::place_npc( int x, int y, const string_id &type, bool forc temp->normalize(); temp->load_npc_template( type ); 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(); } @@ -7089,7 +7090,7 @@ void map::rotate( int turns ) rc.fromabs( abs_sub.x * SEEX, abs_sub.y * SEEY ); // @todo: This radius can be smaller - how small? - const int radius = int( MAPSIZE / 2 ) + 3; + const int radius = HALF_MAPSIZE + 3; // uses submap coordinates const std::vector> npcs = overmap_buffer.get_npcs_near( abs_sub.x, abs_sub.y, abs_sub.z, radius ); diff --git a/src/mapgen.h b/src/mapgen.h index 5112eea0ba841..0faa8f201574d 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -50,7 +50,7 @@ class mapgen_function_builtin : public virtual mapgen_function mapgen_function_builtin( building_gen_pointer ptr, int w = 1000 ) : mapgen_function( w ), fptr( ptr ) { } - void generate( map *m, const oter_id &o, const mapgendata &mgd, const time_point &i, + void generate( map *m, const oter_id &terrain_type, const mapgendata &mgd, const time_point &t, float d ) override; }; @@ -68,12 +68,12 @@ struct jmapgen_int { /** * Throws as usually if the json is invalid or missing. */ - jmapgen_int( JsonObject &jso, const std::string &key ); + jmapgen_int( JsonObject &jo, const std::string &tag ); /** * Throws is the json is malformed (e.g. a string not an integer, but does not throw * if the member is just missing (the default values are used instead). */ - jmapgen_int( JsonObject &jso, const std::string &key, short def_val, short def_valmax ); + jmapgen_int( JsonObject &jo, const std::string &tag, short def_val, short def_valmax ); int get() const; }; @@ -146,7 +146,7 @@ struct jmapgen_setmap { class jmapgen_piece { protected: - jmapgen_piece() { } + jmapgen_piece() = default; public: /** Place something on the map from mapgendata dat, at (x,y). mon_density */ virtual void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, @@ -163,7 +163,7 @@ class jmapgen_place jmapgen_place() : x( 0, 0 ), y( 0, 0 ), 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 int x, const int y ); + void offset( const int x_offset, const int y_offset ); jmapgen_int x; jmapgen_int y; jmapgen_int repeat; @@ -191,7 +191,7 @@ class mapgen_palette * Load (append to format_placings) the places that should be put there. * member_name is the name of an optional object / array in the json object jsi. */ - void load_place_mapings( JsonObject &jsi, const std::string &member_name, + void load_place_mapings( JsonObject &jo, const std::string &member_name, placing_map &format_placings ); /** * Loads a palette object and returns it. Doesn't save it anywhere. @@ -222,7 +222,7 @@ class mapgen_palette struct jmapgen_objects { - jmapgen_objects( int offset_x, int offset_y, size_t size_x, size_t size_y ); + jmapgen_objects( int offset_x, int offset_y, size_t mapsize_x, size_t mapsize_x_y ); bool check_bounds( const jmapgen_place place, JsonObject &jso ); @@ -348,7 +348,7 @@ std::shared_ptr load_mapgen_function( JsonObject &jio, const st * 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" ] ) */ -void load_mapgen( JsonObject &jio ); +void load_mapgen( JsonObject &jo ); void reset_mapgens(); /* * stores function ref and/or required data diff --git a/src/mapgen_functions.cpp b/src/mapgen_functions.cpp index 26626dc5d0d80..a8424bf5b6cf4 100644 --- a/src/mapgen_functions.cpp +++ b/src/mapgen_functions.cpp @@ -258,7 +258,7 @@ ter_id grass_or_dirt() ter_id clay_or_sand() { - if( one_in( 4 ) ) { + if( one_in( 16 ) ) { return t_sand; } return t_clay; @@ -1950,7 +1950,7 @@ void mapgen_river_curved_not( map *m, oter_id terrain_type, mapgendata dat, cons if( circle_edge <= 8 ) { m->ter_set( x, y, grass_or_dirt() ); } - if( circle_edge == 9 && one_in( 100 ) ) { + if( circle_edge == 9 && one_in( 25 ) ) { m->ter_set( x, y, clay_or_sand() ); } else if( circle_edge <= 36 ) { m->ter_set( x, y, t_water_sh ); @@ -1979,7 +1979,7 @@ void mapgen_river_straight( map *m, oter_id terrain_type, mapgendata dat, const int ground_edge = rng( 1, 3 ); int shallow_edge = rng( 4, 6 ); line( m, grass_or_dirt(), x, 0, x, ground_edge ); - if( one_in( 100 ) ) { + if( one_in( 25 ) ) { m->ter_set( x, ++ground_edge, clay_or_sand() ); } line( m, t_water_sh, x, ++ground_edge, x, shallow_edge ); @@ -2005,7 +2005,7 @@ void mapgen_river_curved( map *m, oter_id terrain_type, mapgendata dat, const ti int ground_edge = rng( 1, 3 ); int shallow_edge = rng( 4, 6 ); line( m, grass_or_dirt(), x, 0, x, ground_edge ); - if( one_in( 100 ) ) { + if( one_in( 25 ) ) { m->ter_set( x, ++ground_edge, clay_or_sand() ); } line( m, t_water_sh, x, ++ground_edge, x, shallow_edge ); @@ -2014,7 +2014,7 @@ void mapgen_river_curved( map *m, oter_id terrain_type, mapgendata dat, const ti int ground_edge = rng( 19, 21 ); int shallow_edge = rng( 16, 18 ); line( m, grass_or_dirt(), ground_edge, y, SEEX * 2 - 1, y ); - if( one_in( 100 ) ) { + if( one_in( 25 ) ) { m->ter_set( --ground_edge, y, clay_or_sand() ); } line( m, t_water_sh, shallow_edge, y, --ground_edge, y ); @@ -3912,7 +3912,7 @@ void mapgen_forest( map *m, oter_id terrain_type, mapgendata dat, const time_poi // the behavior of the previous forest mapgen when fading forest terrains // into each other and non-forest terrains. - const auto get_sparseness_adjacency_factor = [&dat]( const oter_id ot ) { + const auto get_sparseness_adjacency_factor = [&dat]( const oter_id & ot ) { const auto biome = dat.region.forest_composition.biomes.find( ot ); if( biome == dat.region.forest_composition.biomes.end() ) { // If there is no defined biome for this oter, use 0. It's possible @@ -4315,16 +4315,16 @@ void mremove_trap( map *m, int x, int y ) m->remove_trap( actual_location ); } -void mtrap_set( map *m, int x, int y, trap_id t ) +void mtrap_set( map *m, int x, int y, trap_id type ) { tripoint actual_location( x, y, m->get_abs_sub().z ); - m->trap_set( actual_location, t ); + m->trap_set( actual_location, type ); } -void madd_field( map *m, int x, int y, field_id t, int density ) +void madd_field( map *m, int x, int y, field_id type, int density ) { tripoint actual_location( x, y, m->get_abs_sub().z ); - m->add_field( actual_location, t, density, 0 ); + m->add_field( actual_location, type, density, 0_turns ); } bool is_suitable_for_stairs( const map *const m, const tripoint &p ) diff --git a/src/mapgen_functions.h b/src/mapgen_functions.h index 665b2181450eb..f78c2ee97001a 100644 --- a/src/mapgen_functions.h +++ b/src/mapgen_functions.h @@ -236,8 +236,8 @@ void mapgen_tutorial( map *m, oter_id terrain_type, mapgendata dat, const time_p // Temporary wrappers void mremove_trap( map *m, int x, int y ); -void mtrap_set( map *m, int x, int y, trap_id t ); -void madd_field( map *m, int x, int y, field_id t, int density ); +void mtrap_set( map *m, int x, int y, trap_id type ); +void madd_field( map *m, int x, int y, field_id type, int density ); void place_stairs( map *m, oter_id terrain_type, mapgendata dat ); diff --git a/src/mapgenformat.h b/src/mapgenformat.h index b38714fe73183..93d90a655e340 100644 --- a/src/mapgenformat.h +++ b/src/mapgenformat.h @@ -40,8 +40,8 @@ class format_effect std::vector determiners; public: - format_effect( std::string characters, - std::vector determiners ); + format_effect( std::string chars, + std::vector dets ); ID translate( char c ) const; }; diff --git a/src/mapsharing.cpp b/src/mapsharing.cpp index 349dd14ca8bec..2962b3f2bcd20 100644 --- a/src/mapsharing.cpp +++ b/src/mapsharing.cpp @@ -1,5 +1,14 @@ #include "mapsharing.h" +#ifdef __linux__ +#include +#include +#include +#include +#include +#include +#endif // __linux__ + bool MAP_SHARING::sharing; bool MAP_SHARING::competitive; bool MAP_SHARING::worldmenu; diff --git a/src/mapsharing.h b/src/mapsharing.h index e9c912c3bbe7f..3f06ad507e356 100644 --- a/src/mapsharing.h +++ b/src/mapsharing.h @@ -2,15 +2,6 @@ #ifndef MAPSHARING_H #define MAPSHARING_H -#ifdef __linux__ -#include -#include -#include -#include -#include -#include -#endif // __linux__ - #include #include #include diff --git a/src/martialarts.cpp b/src/martialarts.cpp index b74535c90ecf1..fb6a84a4716a2 100644 --- a/src/martialarts.cpp +++ b/src/martialarts.cpp @@ -1001,7 +1001,7 @@ std::string ma_technique::get_description() const bool ma_style_callback::key( const input_context &ctxt, const input_event &event, int entnum, uilist *menu ) { - const std::string action = ctxt.input_to_action( event ); + const std::string &action = ctxt.input_to_action( event ); if( action != "SHOW_DESCRIPTION" ) { return false; } diff --git a/src/material.h b/src/material.h index 6e720c55d52c5..6d430710496b2 100644 --- a/src/material.h +++ b/src/material.h @@ -61,7 +61,7 @@ class material_type public: material_type(); - void load( JsonObject &jo, const std::string &src ); + void load( JsonObject &jsobj, const std::string &src ); void check() const; int dam_resist( damage_type damtype ) const; diff --git a/src/math_defines.h b/src/math_defines.h new file mode 100644 index 0000000000000..c1a008754b82a --- /dev/null +++ b/src/math_defines.h @@ -0,0 +1,17 @@ +#ifndef CATA_MATH_DEFINES_H +#define CATA_MATH_DEFINES_H + +// On Visual Studio math.h only provides the defines (M_PI, etc.) if +// _USE_MATH_DEFINES is defined before including it. +// We centralize that requirement in this header so that IWYU can force this +// header to be included when such defines are used, via mappings. +// At time of writing only M_PI has a mapping, which is the most commonly used +// one. If more are needed, add them to tools/iwyu/vs.stdlib.imp. + +// Note that it's important to use math.h here, not cmath. See +// https://stackoverflow.com/questions/6563810/m-pi-works-with-math-h-but-not-with-cmath-in-visual-studio/6563891 + +#define _USE_MATH_DEFINES +#include + +#endif // CATA_MATH_DEFINES_H diff --git a/src/mattack_actors.cpp b/src/mattack_actors.cpp index 7bd829669b736..3d8d5898fd493 100644 --- a/src/mattack_actors.cpp +++ b/src/mattack_actors.cpp @@ -66,7 +66,7 @@ bool leap_actor::call( monster &z ) const std::vector options; tripoint target = z.move_target(); - float best_float = trig_dist( z.pos(), target ); + float best_float = trigdist ? trig_dist( z.pos(), target ) : square_dist( z.pos(), target ); if( best_float < min_consider_range || best_float > max_consider_range ) { return false; } @@ -92,7 +92,8 @@ bool leap_actor::call( monster &z ) const if( cur_dist > best ) { continue; } - if( trig_dist( z.pos(), dest ) < min_range ) { + if( ( trigdist ? trig_dist( z.pos(), dest ) : square_dist( z.pos(), dest ) ) < + min_range ) { continue; } bool blocked_path = false; diff --git a/src/melee.cpp b/src/melee.cpp index 8c4400e8df685..bcecf708e8bce 100644 --- a/src/melee.cpp +++ b/src/melee.cpp @@ -75,7 +75,7 @@ static const trait_id trait_THORNS( "THORNS" ); void player_hit_message( player *attacker, const std::string &message, Creature &t, int dam, bool crit = false ); int stumble( player &u, const item &weap ); -std::string melee_message( const ma_technique &tech, player &p, const dealt_damage_instance &ddi ); +std::string melee_message( const ma_technique &tec, player &p, const dealt_damage_instance &ddi ); /* Melee Functions! * These all belong to class player. diff --git a/src/messages.cpp b/src/messages.cpp index 8339d28652817..32306c0291a03 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -1,7 +1,8 @@ #include "messages.h" #include "calendar.h" -#include "compatibility.h" // needed for the workaround for the std::to_string bug in some compilers +// needed for the workaround for the std::to_string bug in some compilers +#include "compatibility.h" // IWYU pragma: keep #include "debug.h" #include "game.h" #include "input.h" @@ -389,9 +390,9 @@ void Messages::dialog::init() const size_t msg_ind = log_from_top ? ind : msg_count - 1 - ind; const game_message &msg = player_messages.history( msg_ind ); const auto &folded = foldstring( msg.get_with_count(), msg_width ); - for( auto it = folded.begin(); it != folded.end(); ++it ) { + for( const auto &it : folded ) { folded_filtered.emplace_back( folded_all.size() ); - folded_all.emplace_back( msg_ind, *it ); + folded_all.emplace_back( msg_ind, it ); } } diff --git a/src/messages.h b/src/messages.h index 6aabc565ece86..c909586058f71 100644 --- a/src/messages.h +++ b/src/messages.h @@ -29,7 +29,7 @@ bool has_undisplayed_messages(); void display_messages(); void display_messages( const catacurses::window &ipk_target, int left, int top, int right, int bottom ); -void serialize( JsonOut &jsout ); +void serialize( JsonOut &json ); void deserialize( JsonObject &json ); } // namespace Messages diff --git a/src/mission.cpp b/src/mission.cpp index fb887edb31ac7..c292b35724853 100644 --- a/src/mission.cpp +++ b/src/mission.cpp @@ -33,7 +33,7 @@ mission mission_type::create( const int npc_id ) const ret.monster_type = monster_type; ret.monster_kill_goal = monster_kill_goal; - if( deadline_low != 0 || deadline_high != 0 ) { + if( deadline_low != 0_turns || deadline_high != 0_turns ) { ret.deadline = calendar::turn + rng( deadline_low, deadline_high ); } else { ret.deadline = 0; @@ -432,9 +432,9 @@ int mission::get_npc_id() const return npc_id; } -void mission::set_target( const tripoint &new_target ) +void mission::set_target( const tripoint &p ) { - target = new_target; + target = p; } bool mission::is_assigned() const diff --git a/src/mission.h b/src/mission.h index dabaeb5001aa3..37f5673e47101 100644 --- a/src/mission.h +++ b/src/mission.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -66,6 +67,23 @@ enum mission_goal { MGOAL_KILL_MONSTER_SPEC, // Kill a number of monsters from a given species NUM_MGOAL }; +const std::unordered_map mission_goal_strs = { { + { "MGOAL_NULL", MGOAL_NULL }, + { "MGOAL_GO_TO", MGOAL_GO_TO }, + { "MGOAL_GO_TO_TYPE", MGOAL_GO_TO_TYPE }, + { "MGOAL_FIND_ITEM", MGOAL_FIND_ITEM }, + { "MGOAL_FIND_ANY_ITEM", MGOAL_FIND_ANY_ITEM }, + { "MGOAL_FIND_MONSTER", MGOAL_FIND_MONSTER }, + { "MGOAL_FIND_NPC", MGOAL_FIND_NPC }, + { "MGOAL_ASSASSINATE", MGOAL_ASSASSINATE }, + { "MGOAL_KILL_MONSTER", MGOAL_KILL_MONSTER }, + { "MGOAL_KILL_MONSTER_TYPE", MGOAL_KILL_MONSTER_TYPE }, + { "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 } + } +}; struct mission_place { // Return true if the place (global overmap terrain coordinate) is valid for starting a mission @@ -110,14 +128,8 @@ struct mission_start { static void place_npc_software( mission * ); // Put NPC-type-dependent software static void place_priest_diary( mission * ); // Hides the priest's diary in a local house static void place_deposit_box( mission * ); // Place a safe deposit box in a nearby bank - static void reveal_lab_black_box( mission * ); // Reveal the nearest lab and give black box - static void open_sarcophagus( mission * ); // Reveal the sarcophagus and give access code - static void reveal_hospital( mission * ); // Reveal the nearest hospital static void find_safety( mission * ); // Goal is set to non-spawn area - static void point_prison( mission * ); // Point to prison entrance - static void point_cabin_strange( mission * ); // Point to strange cabin location static void recruit_tracker( mission * ); // Recruit a tracker to help you - static void radio_repeater( mission * ); // Gives you the plans for the radio repeater mod static void start_commune( mission * ); // Focus on starting the ranch commune static void ranch_construct_1( mission * ); // Encloses barn static void ranch_construct_2( mission * ); // Adds makeshift beds to the barn, 1 NPC @@ -155,10 +167,6 @@ struct mission_start { static void ranch_bartender_3( mission * ); // Expand Bar static void ranch_bartender_4( mission * ); // Expand Bar static void place_book( mission * ); // Place a book to retrieve - static void reveal_weather_station( mission * ); // Find weather logs - static void reveal_office_tower( mission * ); // Find corporate accounts - static void reveal_doctors_office( mission * ); // Find patient records - static void reveal_cathedral( mission * ); // Find relic static void reveal_refugee_center( mission * ); // Find refugee center static void create_lab_console( mission * ); // Reveal lab with an unlocked workstation static void create_hidden_lab_console( mission * ); // Reveal hidden lab with workstation @@ -221,7 +229,7 @@ struct mission_type { /** * Get the mission_type object of the given id. Returns null if the input is invalid! */ - static const mission_type *get( mission_type_id id ); + static const mission_type *get( const mission_type_id &id ); /** * Converts the legacy int id to a string_id. */ @@ -321,7 +329,7 @@ class mission /** * Simple setters, no checking if the values is performed. */ /*@{*/ - void set_target( const tripoint &target ); + void set_target( const tripoint &p ); /*@}*/ /** Assigns the mission to the player. */ diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index 2de605af32c3d..4930b69fac4f8 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -78,11 +78,9 @@ void commune_carpentry( mission_data &mission_key, npc &p ); void commune_farmfield( mission_data &mission_key, npc &p ); void commune_forage( mission_data &mission_key, npc &p ); void commune_refuge_caravan( mission_data &mission_key, npc &p ); -void camp_missions( mission_data &mission_key, npc &p ); bool display_and_choose_opts( mission_data &mission_key, npc &p, const std::string &id, const std::string &title ); bool handle_outpost_mission( mission_entry &cur_key, npc &p ); -bool handle_camp_mission( mission_entry &cur_key, npc &p ); } void talk_function::companion_mission( npc &p ) @@ -128,14 +126,13 @@ void talk_function::companion_mission( npc &p ) void talk_function::scavenger_patrol( mission_data &mission_key, npc &p ) { - std::vector> npc_list; std::string entry = _( "Profit: $25-$500\nDanger: Low\nTime: 10 hour missions\n \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." ); mission_key.add( "Assign Scavenging Patrol", _( "Assign Scavenging Patrol" ), entry ); - npc_list = companion_list( p, "_scavenging_patrol" ); + std::vector> npc_list = companion_list( p, "_scavenging_patrol" ); if( !npc_list.empty() ) { entry = _( "Profit: $25-$500\nDanger: Low\nTime: 10 hour missions\n \nPatrol Roster:\n" ); for( auto &elem : npc_list ) { @@ -149,15 +146,13 @@ void talk_function::scavenger_patrol( mission_data &mission_key, npc &p ) void talk_function::scavenger_raid( mission_data &mission_key, npc &p ) { - std::vector> npc_list; - std::string entry; - entry = _( "Profit: $200-$1000\nDanger: Medium\nTime: 10 hour missions\n \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." ); + std::string entry = _( "Profit: $200-$1000\nDanger: Medium\nTime: 10 hour missions\n \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." ); mission_key.add( "Assign Scavenging Raid", _( "Assign Scavenging Raid" ), entry ); - npc_list = companion_list( p, "_scavenging_raid" ); + std::vector> npc_list = companion_list( p, "_scavenging_raid" ); if( !npc_list.empty() ) { entry = _( "Profit: $200-$1000\nDanger: Medium\nTime: 10 hour missions\n \nRaid Roster:\n" ); for( auto &elem : npc_list ) { @@ -171,13 +166,12 @@ void talk_function::scavenger_raid( mission_data &mission_key, npc &p ) void talk_function::commune_menial( mission_data &mission_key, npc &p ) { - std::vector> npc_list; std::string entry = _( "Profit: $8/hour\nDanger: Minimal\nTime: 1 hour minimum\n \n" "Assigning one of your allies to menial labor is a safe way to teach " "them basic skills and build reputation with the outpost. Don't expect " "much of a reward though." ); mission_key.add( "Assign Ally to Menial Labor", _( "Assign Ally to Menial Labor" ) ); - npc_list = companion_list( p, "_labor" ); + std::vector> npc_list = companion_list( p, "_labor" ); if( !npc_list.empty() ) { entry = _( "Profit: $8/hour\nDanger: Minimal\nTime: 1 hour minimum\n \nLabor Roster:\n" ); for( auto &elem : npc_list ) { @@ -192,13 +186,12 @@ void talk_function::commune_menial( mission_data &mission_key, npc &p ) void talk_function::commune_carpentry( mission_data &mission_key, npc &p ) { - std::vector> npc_list; std::string entry = _( "Profit: $12/hour\nDanger: Minimal\nTime: 1 hour minimum\n \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." ); mission_key.add( "Assign Ally to Carpentry Work", _( "Assign Ally to Carpentry Work" ), entry ); - npc_list = companion_list( p, "_carpenter" ); + std::vector> npc_list = companion_list( p, "_carpenter" ); if( !npc_list.empty() ) { entry = _( "Profit: $12/hour\nDanger: Minimal\nTime: 1 hour minimum\n \nLabor Roster:\n" ); for( auto &elem : npc_list ) { @@ -282,7 +275,6 @@ void talk_function::commune_farmfield( mission_data &mission_key, npc &p ) void talk_function::commune_forage( mission_data &mission_key, npc &p ) { - std::vector> npc_list; std::string entry = _( "Profit: $10/hour\nDanger: Low\nTime: 4 hour minimum\n \n" "Foraging for food involves dispatching a companion to search the " "surrounding wilderness for wild edibles. Combat will be avoided but " @@ -291,7 +283,7 @@ void talk_function::commune_forage( mission_data &mission_key, npc &p ) "hauls." ); mission_key.add( "Assign Ally to Forage for Food", _( "Assign Ally to Forage for Food" ), entry ); - npc_list = companion_list( p, "_forage" ); + std::vector> npc_list = companion_list( p, "_forage" ); if( !npc_list.empty() ) { entry = _( "Profit: $10/hour\nDanger: Low\nTime: 4 hour minimum\n \nLabor Roster:\n" ); for( auto &elem : npc_list ) { @@ -305,7 +297,6 @@ void talk_function::commune_forage( mission_data &mission_key, npc &p ) void talk_function::commune_refuge_caravan( mission_data &mission_key, npc &p ) { - std::vector> npc_list; std::string entry = _( "Profit: $18/hour\nDanger: High\nTime: UNKNOWN\n \n" "Adding companions to the caravan team increases the likelihood of " "success. By nature, caravans are extremely tempting targets for " @@ -316,7 +307,7 @@ void talk_function::commune_refuge_caravan( mission_data &mission_key, npc &p ) "Center as part of a tax and in exchange for skilled labor." ); mission_key.add( "Caravan Commune-Refugee Center", _( "Caravan Commune-Refugee Center" ), entry ); - npc_list = companion_list( p, "_commune_refugee_caravan" ); + std::vector> npc_list = companion_list( p, "_commune_refugee_caravan" ); std::vector> npc_list_aux; if( !npc_list.empty() ) { entry = _( "Profit: $18/hour\nDanger: High\nTime: UNKNOWN\n \n" @@ -959,7 +950,7 @@ void talk_function::field_plant( npc &p, const std::string &place ) } else { used_seed = g->u.use_amount( seed_id, 1 ); } - used_seed.front().set_age( 0 ); + used_seed.front().set_age( 0_turns ); bay.add_item_or_charges( x, y, used_seed.front() ); bay.set( x, y, t_dirt, f_plant_seed ); limiting_number--; @@ -978,7 +969,6 @@ void talk_function::field_harvest( npc &p, const std::string &place ) const tripoint site = overmap_buffer.find_closest( g->u.global_omt_location(), place, 20, false ); tinymap bay; item tmp; - bool check; std::vector seed_types; std::vector plant_types; std::vector plant_names; @@ -990,7 +980,7 @@ void talk_function::field_harvest( npc &p, const std::string &place ) if( seed.is_seed() ) { const islot_seed &seed_data = *seed.type->seed; tmp = item( seed_data.fruit_id, calendar::turn ); - check = false; + bool check = false; for( const std::string &elem : plant_names ) { if( elem == tmp.type_name( 3 ) ) { check = true; @@ -1763,7 +1753,7 @@ std::vector talk_function::companion_rank( const std::vector talk_function::companion_choose_return( const npc &p, const } //Smash stuff, steal valuables, and change map maker -std::vector talk_function::loot_building( const tripoint site ) +std::vector talk_function::loot_building( const tripoint &site ) { tinymap bay; std::vector items_found; diff --git a/src/mission_companion.h b/src/mission_companion.h index 1d28921d47687..9952c18297a97 100644 --- a/src/mission_companion.h +++ b/src/mission_companion.h @@ -77,14 +77,15 @@ void companion_mission( npc & ); * Send a companion on an individual mission or attaches them to a group to depart later * Set @ref submap_coords and @ref pos. * @param desc is the description in the popup window - * @param id is the value stored with the NPC when it is offloaded + * @param miss_id is the value stored with the NPC when it is offloaded * @param group is whether the NPC is waiting for additional members before departing together * @param equipment is placed in the NPC's special inventory and dropped when they return * @param skill_tested is the main skill for the quest * @param skill_level is checked to prevent lower level NPCs from going on missions */ ///Send a companion on an individual mission or attaches them to a group to depart later -std::shared_ptr individual_mission( npc &p, const std::string &desc, const std::string &id, +std::shared_ptr individual_mission( npc &p, const std::string &desc, + const std::string &miss_id, bool group = false, const std::vector &equipment = {}, const std::string &skill_tested = "", int skill_level = 0 ); @@ -144,6 +145,6 @@ std::shared_ptr companion_choose_return( const npc &p, const std::string &i //Return NPC to your party void companion_return( npc &comp ); //Smash stuff, steal valuables, and change map maker -std::vector loot_building( const tripoint site ); +std::vector loot_building( const tripoint &site ); } #endif diff --git a/src/mission_start.cpp b/src/mission_start.cpp index 10e1ebf2dcc45..f3992b01584f1 100644 --- a/src/mission_start.cpp +++ b/src/mission_start.cpp @@ -1,6 +1,6 @@ #include "mission.h" // IWYU pragma: associated -#include +#include #include "computer.h" #include "coordinate_conversions.h" @@ -81,7 +81,7 @@ static tripoint random_house_in_closest_city() return random_house_in_city( cref ); } -static tripoint target_closest_lab_entrance( const tripoint origin, int reveal_rad, mission *miss ) +static tripoint target_closest_lab_entrance( const tripoint &origin, int reveal_rad, mission *miss ) { tripoint testpoint = tripoint( origin ); // Get the surface locations for labs and for spaces above hidden lab stairs. @@ -265,7 +265,7 @@ void mission_start::infect_npc( mission *miss ) debugmsg( "couldn't find an NPC!" ); return; } - p->add_effect( effect_infection, 1_turns, num_bp, true, true ); + p->add_effect( effect_infection, 1_turns, num_bp, true, 1 ); // make sure they don't have any antibiotics p->remove_items_with( []( const item & it ) { return it.typeId() == "antibiotics"; @@ -514,7 +514,7 @@ void mission_start::kill_horde_master( mission *miss ) tile.add_spawn( mon_zombie_brute, 3, SEEX, SEEY ); tile.add_spawn( mon_zombie_dog, 3, SEEX, SEEY ); - if( overmap::inbounds( SEEX, SEEY, 0, 1 ) ) { + if( overmap::inbounds( tripoint( SEEX, SEEY, 0 ), 1 ) ) { for( int x = SEEX - 1; x <= SEEX + 1; x++ ) { for( int y = SEEY - 1; y <= SEEY + 1; y++ ) { tile.add_spawn( mon_zombie, rng( 3, 10 ), x, y ); @@ -1772,7 +1772,7 @@ const tripoint reveal_destination( const std::string &type ) return overmap::invalid_tripoint; } -void reveal_route( mission *miss, const tripoint destination ) +void reveal_route( mission *miss, const tripoint &destination ) { const npc *p = g->find_npc( miss->get_npc_id() ); if( p == nullptr ) { diff --git a/src/mission_ui.cpp b/src/mission_ui.cpp index cf49460def195..b8f37613ce26f 100644 --- a/src/mission_ui.cpp +++ b/src/mission_ui.cpp @@ -6,7 +6,9 @@ #include "mission.h" #include "calendar.h" -#include "compatibility.h" // needed for the workaround for the std::to_string bug in some compilers +// needed for the workaround for the std::to_string bug in some compilers +#include "compatibility.h" // IWYU pragma: keep +#include "game.h" #include "input.h" #include "output.h" #include "player.h" @@ -103,7 +105,7 @@ void game::list_missions() if( selection < umissions.size() ) { const auto miss = umissions[selection]; const nc_color col = u.get_active_mission() == miss ? c_light_green : c_white; - std::string for_npc = ""; + std::string for_npc; if( miss->get_npc_id() >= 0 ) { npc *guy = g->find_npc( miss->get_npc_id() ); if( guy ) { diff --git a/src/missiondef.cpp b/src/missiondef.cpp index aa7cb2d21c43a..9ad3e787f09ec 100644 --- a/src/missiondef.cpp +++ b/src/missiondef.cpp @@ -422,7 +422,7 @@ mission_type_id mission_type::from_legacy( int old_id ) return mission_type_id( "MISSION_NULL" ); } -const mission_type *mission_type::get( const mission_type_id id ) +const mission_type *mission_type::get( const mission_type_id &id ) { if( id.is_null() ) { return nullptr; diff --git a/src/mod_manager.cpp b/src/mod_manager.cpp index 60b0275a40606..5dc60b56610d9 100644 --- a/src/mod_manager.cpp +++ b/src/mod_manager.cpp @@ -172,11 +172,11 @@ void mod_manager::remove_mod( const mod_id &ident ) } } -void mod_manager::remove_invalid_mods( std::vector &m ) const +void mod_manager::remove_invalid_mods( std::vector &mods ) const { - m.erase( std::remove_if( m.begin(), m.end(), [this]( const mod_id & mod ) { + mods.erase( std::remove_if( mods.begin(), mods.end(), [this]( const mod_id & mod ) { return mod_map.count( mod ) == 0; - } ), m.end() ); + } ), mods.end() ); } bool mod_manager::set_default_mods( const mod_id &ident ) diff --git a/src/mod_manager.h b/src/mod_manager.h index 40c29a96e1812..14022ae4b1928 100644 --- a/src/mod_manager.h +++ b/src/mod_manager.h @@ -10,8 +10,6 @@ #include "pimpl.h" #include "string_id.h" -const std::vector > &get_mod_list_categories(); - struct WORLD; typedef WORLD *WORLDPTR; class dependency_tree; diff --git a/src/mod_manager_ui.cpp b/src/mod_manager_ui.cpp index 72f82d8a691ff..7417d9dfd26cd 100644 --- a/src/mod_manager_ui.cpp +++ b/src/mod_manager_ui.cpp @@ -178,8 +178,6 @@ void mod_ui::try_shift( char direction, size_t &selection, std::vector & // eliminates 'uninitialized variable' warning size_t newsel = 0; size_t oldsel = 0; - mod_id selstring; - mod_id modstring; int selshift = 0; // shift up (towards 0) @@ -200,8 +198,8 @@ void mod_ui::try_shift( char direction, size_t &selection, std::vector & return; } - modstring = active_list[newsel]; - selstring = active_list[oldsel]; + mod_id modstring = active_list[newsel]; + mod_id selstring = active_list[oldsel]; // we can shift! // switch values! diff --git a/src/monattack.cpp b/src/monattack.cpp index 3f7cbd51c9d5f..9ef8a9c0b5ddd 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -115,13 +115,9 @@ static const trait_id trait_THRESH_MARLOSS( "THRESH_MARLOSS" ); static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); // shared utility functions -int within_visual_range( monster *z, int max_range ) +bool within_visual_range( monster *z, int max_range ) { - int dist = rl_dist( z->pos(), g->u.pos() ); - if( dist > max_range || !z->sees( g->u ) ) { - return -1; // Out of range - } - return dist; + return !( rl_dist( z->pos(), g->u.pos() ) > max_range || !z->sees( g->u ) ); } bool within_target_range( const monster *const z, const Creature *const target, int range ) @@ -142,7 +138,7 @@ Creature *sting_get_target( monster *z, float range = 5.0f ) return nullptr; } - return trig_dist( z->pos(), target->pos() ) <= range ? target : nullptr; + return rl_dist( z->pos(), target->pos() ) <= range ? target : nullptr; } bool sting_shoot( monster *z, Creature *target, damage_instance &dam ) @@ -240,18 +236,18 @@ bool mattack::eat_food( monster *z ) continue; } auto items = g->m.i_at( p ); - for( auto i = items.begin(); i != items.end(); i++ ) { + for( auto &item : items ) { //Fun limit prevents scavengers from eating feces - if( !i->is_food() || i->type->comestible->fun < -20 ) { + if( !item.is_food() || item.type->comestible->fun < -20 ) { continue; } //Don't eat own eggs - if( z->type->baby_egg != i->type->get_id() ) { + if( z->type->baby_egg != item.type->get_id() ) { long consumed = 1; - if( i->count_by_charges() ) { - g->m.use_charges( p, 0, i->type->get_id(), consumed ); + if( item.count_by_charges() ) { + g->m.use_charges( p, 0, item.type->get_id(), consumed ); } else { - g->m.use_amount( p, 0, i->type->get_id(), consumed ); + g->m.use_amount( p, 0, item.type->get_id(), consumed ); } return true; } @@ -2466,8 +2462,8 @@ bool mattack::ranged_pull( monster *z ) g->m.unboard_vehicle( foe->pos() ); } - if( target->is_player() && ( pt.x < SEEX * int( MAPSIZE / 2 ) || pt.y < SEEY * int( MAPSIZE / 2 ) || - pt.x >= SEEX * ( 1 + int( MAPSIZE / 2 ) ) || pt.y >= SEEY * ( 1 + int( MAPSIZE / 2 ) ) ) ) { + if( target->is_player() && ( pt.x < HALF_MAPSIZE_X || pt.y < HALF_MAPSIZE_Y || + pt.x >= HALF_MAPSIZE_X + SEEX || pt.y >= HALF_MAPSIZE_Y + SEEY ) ) { g->update_map( pt.x, pt.y ); } } @@ -2571,9 +2567,9 @@ bool mattack::grab_drag( monster *z ) if( !g->is_empty( zpt ) ) { //Cancel the grab if the space is occupied by something return false; } - if( target->is_player() && ( zpt.x < SEEX * int( MAPSIZE / 2 ) || - zpt.y < SEEY * int( MAPSIZE / 2 ) || - zpt.x >= SEEX * ( 1 + int( MAPSIZE / 2 ) ) || zpt.y >= SEEY * ( 1 + int( MAPSIZE / 2 ) ) ) ) { + if( target->is_player() && ( zpt.x < HALF_MAPSIZE_X || + zpt.y < HALF_MAPSIZE_Y || + zpt.x >= HALF_MAPSIZE_X + SEEX || zpt.y >= HALF_MAPSIZE_Y + SEEY ) ) { g->update_map( zpt.x, zpt.y ); } if( foe != nullptr ) { @@ -2690,7 +2686,7 @@ bool mattack::fear_paralyze( monster *z ) bool mattack::photograph( monster *z ) { - if( within_visual_range( z, 6 ) < 0 ) { + if( !within_visual_range( z, 6 ) ) { return false; } @@ -3199,8 +3195,7 @@ bool mattack::flamethrower( monster *z ) return true; } - int dist = within_visual_range( z, 5 ); - if( dist < 0 ) { + if( !within_visual_range( z, 5 ) ) { return false; } @@ -3931,7 +3926,7 @@ bool mattack::parrot( monster *z ) return false; } else if( one_in( 20 ) ) { z->moves -= 100; // It takes a while - const SpeechBubble speech = get_speech( z->type->id.str() ); + const SpeechBubble &speech = get_speech( z->type->id.str() ); sounds::sound( z->pos(), speech.volume, sounds::sound_t::speech, speech.text ); return true; } diff --git a/src/mondeath.cpp b/src/mondeath.cpp index 7fbae31087a2b..c22bf62f5cf1a 100644 --- a/src/mondeath.cpp +++ b/src/mondeath.cpp @@ -97,7 +97,7 @@ void mdeath::normal( monster &z ) } } -void scatter_chunks( std::string chunk_name, int chunk_amt, monster &z, int distance, +void scatter_chunks( const std::string &chunk_name, int chunk_amt, monster &z, int distance, int pile_size = 1 ) { // can't have less than one item in a pile or it would cause an infinite loop diff --git a/src/mondefense.cpp b/src/mondefense.cpp index da700ff366460..a59134ba3b430 100644 --- a/src/mondefense.cpp +++ b/src/mondefense.cpp @@ -23,13 +23,13 @@ void mdefense::none( monster &, Creature *, const dealt_projectile_attack * ) } void mdefense::zapback( monster &m, Creature *const source, - dealt_projectile_attack const *projectile ) + dealt_projectile_attack const *proj ) { if( source == nullptr ) { return; } // If we have a projectile, we're a ranged attack, no zapback. - if( projectile != nullptr ) { + if( proj != nullptr ) { return; } diff --git a/src/monfaction.cpp b/src/monfaction.cpp index f7f51443207c0..f68120ffa226c 100644 --- a/src/monfaction.cpp +++ b/src/monfaction.cpp @@ -66,12 +66,12 @@ int_id::int_id( const string_id &id ) { } -mfaction_id monfactions::get_or_add_faction( const mfaction_str_id &name ) +mfaction_id monfactions::get_or_add_faction( const mfaction_str_id &id ) { - auto found = faction_map.find( name ); + auto found = faction_map.find( id ); if( found == faction_map.end() ) { monfaction mfact; - mfact.id = name; + mfact.id = id; mfact.loadid = mfaction_id( faction_map.size() ); // -1 base faction marks this faction as not initialized. // If it is not changed before validation, it will become a child of diff --git a/src/mongroup.cpp b/src/mongroup.cpp index 9feac839a1ded..ccf73f246f9d8 100644 --- a/src/mongroup.cpp +++ b/src/mongroup.cpp @@ -381,8 +381,8 @@ void MonsterGroupManager::LoadMonsterGroup( JsonObject &jo ) pack_max = packarr.next_int(); } static const time_duration tdfactor = 1_hours; - time_duration starts = 0; - time_duration ends = 0; + time_duration starts = 0_turns; + time_duration ends = 0_turns; if( mon.has_member( "starts" ) ) { starts = tdfactor * mon.get_int( "starts" ) * ( mon_upgrade_factor > 0 ? mon_upgrade_factor : 1 ); } @@ -450,11 +450,11 @@ const mtype_id &MonsterGroupManager::GetRandomMonsterFromGroup( const mongroup_i { const auto &group = group_name.obj(); int spawn_chance = rng( 1, group.freq_total ); //Default 1000 unless specified - for( auto it = group.monsters.begin(); it != group.monsters.end(); ++it ) { - if( it->frequency >= spawn_chance ) { - return it->name; + for( const auto &monster_type : group.monsters ) { + if( monster_type.frequency >= spawn_chance ) { + return monster_type.name; } else { - spawn_chance -= it->frequency; + spawn_chance -= monster_type.frequency; } } diff --git a/src/mongroup.h b/src/mongroup.h index d992c86ab4421..3ccdea55d7814 100644 --- a/src/mongroup.h +++ b/src/mongroup.h @@ -8,6 +8,7 @@ #include "calendar.h" #include "enums.h" +#include "io_tags.h" #include "monster.h" #include "string_id.h" @@ -26,11 +27,6 @@ struct MonsterGroupEntry; typedef std::vector FreqDef; typedef FreqDef::iterator FreqDef_iter; -namespace io -{ -struct object_archive_tag; -} - struct MonsterGroupEntry { mtype_id name; int frequency; @@ -41,7 +37,7 @@ struct MonsterGroupEntry { time_duration starts; time_duration ends; bool lasts_forever() const { - return ( ends <= 0 ); + return ( ends <= 0_turns ); } MonsterGroupEntry( const mtype_id &id, int new_freq, int new_cost, @@ -77,7 +73,7 @@ struct MonsterGroup { // time when exploring an unexplored portion of the map bool replace_monster_group; mongroup_id new_monster_group; - time_duration monster_group_time = 0; + time_duration monster_group_time = 0_turns; bool is_safe; /// Used for @ref mongroup::is_safe() int freq_total; // Default 1000 unless specified - max number to roll for spawns }; diff --git a/src/monmove.cpp b/src/monmove.cpp index 9ddb27b989b5d..4c28ff9d1db17 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -606,6 +606,12 @@ void monster::move() // Otherwise weird things happen destination.z = posz(); } + // toggle facing direction for sdl flip + if( destination.x < pos().x ) { + facing = FD_LEFT; + } else { + facing = FD_RIGHT; + } tripoint next_step; const bool staggers = has_flag( MF_STUMBLES ); @@ -773,7 +779,7 @@ void monster::footsteps( const tripoint &p ) tripoint monster::scent_move() { // @todo: Remove when scentmap is 3D - if( abs( posz() - g->get_levz() ) > 1 ) { + if( abs( posz() - g->get_levz() ) > SCENT_MAP_Z_REACH ) { return { -1, -1, INT_MIN }; } @@ -797,7 +803,7 @@ tripoint monster::scent_move() return next; } const bool can_bash = bash_skill() > 0; - for( const auto &dest : g->m.points_in_radius( pos(), 1, 1 ) ) { + for( const auto &dest : g->m.points_in_radius( pos(), 1, SCENT_MAP_Z_REACH ) ) { int smell = g->scent.get( dest ); if( ( !fleeing && smell < bestsmell ) || ( fleeing && smell > bestsmell ) ) { continue; diff --git a/src/monster.cpp b/src/monster.cpp index 07228b568085c..f8fc276423406 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -1838,8 +1838,8 @@ void monster::process_turn() for( const tripoint &zap : g->m.points_in_radius( pos(), 1 ) ) { const bool player_sees = g->u.sees( zap ); const auto items = g->m.i_at( zap ); - for( auto fiyah = items.begin(); fiyah != items.end(); fiyah++ ) { - if( fiyah->made_of( LIQUID ) && fiyah->flammable() ) { // start a fire! + for( const auto &item : items ) { + if( item.made_of( LIQUID ) && item.flammable() ) { // start a fire! g->m.add_field( zap, fd_fire, 2, 1_minutes ); sounds::sound( pos(), 30, sounds::sound_t::combat, _( "fwoosh!" ) ); break; @@ -1947,8 +1947,8 @@ void monster::die( Creature *nkiller ) const point abssub = ms_to_sm_copy( g->m.getabs( posx(), posy() ) ); // Do it for overmap above/below too for( int z = 1; z >= -1; --z ) { - for( int x = -MAPSIZE / 2; x <= MAPSIZE / 2; x++ ) { - for( int y = -MAPSIZE / 2; y <= MAPSIZE / 2; y++ ) { + for( int x = -HALF_MAPSIZE; x <= HALF_MAPSIZE; x++ ) { + for( int y = -HALF_MAPSIZE; y <= HALF_MAPSIZE; y++ ) { std::vector groups = overmap_buffer.groups_at( abssub.x + x, abssub.y + y, g->get_levz() + z ); for( auto &mgp : groups ) { @@ -2056,7 +2056,7 @@ void monster::process_one_effect( effect &it, bool is_new ) if( dam > 0 ) { apply_damage( nullptr, bp_torso, dam ); } else { - it.set_duration( 0 ); + it.set_duration( 0_turns ); } } else if( id == effect_run ) { effect_cache[FLEEING] = true; @@ -2507,7 +2507,7 @@ void monster::on_load() // Possible TODO: Integrate monster upgrade const time_duration dt = calendar::turn - last_updated; last_updated = calendar::turn; - if( dt <= 0 ) { + if( dt <= 0_turns ) { return; } diff --git a/src/monster.h b/src/monster.h index b7cf52916f648..53bde3b964005 100644 --- a/src/monster.h +++ b/src/monster.h @@ -301,7 +301,7 @@ class monster : public Creature /** Performs any monster-specific modifications to the arguments before passing to Creature::add_effect(). */ void add_effect( const efftype_id &eff_id, time_duration dur, body_part bp = num_bp, bool permanent = false, - int intensity = 0, bool force = false, bool defererd = false ) override; + int intensity = 0, bool force = false, bool deferred = false ) override; /** Returns a std::string containing effects for descriptions */ std::string get_effect_status() const; @@ -340,7 +340,7 @@ class monster : public Creature // Get torso - monsters don't have body parts (yet?) body_part get_random_body_part( bool main ) const override; /** Returns vector containing all body parts this monster has. That is, { bp_torso } */ - std::vector get_all_body_parts( bool main = false ) const override; + std::vector get_all_body_parts( bool only_main = false ) const override; /** Resets a given special to its monster type cooldown value */ void reset_special( const std::string &special_name ); diff --git a/src/morale.cpp b/src/morale.cpp index bef523f1fc008..356645ead6194 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -89,10 +89,10 @@ namespace morale_mults { // Optimistic characters focus on the good things in life, // and downplay the bad things. -static const morale_mult optimist( 1.25, 0.75 ); +static const morale_mult optimist( 1.2, 0.8 ); // Again, those grouchy Bad-Tempered folks always focus on the negative. // They can't handle positive things as well. They're No Fun. D: -static const morale_mult badtemper( 0.75, 1.25 ); +static const morale_mult badtemper( 0.8, 1.2 ); // Prozac reduces overall negative morale by 75%. static const morale_mult prozac( 1.0, 0.25 ); // The bad prozac effect reduces good morale by 75%. @@ -154,7 +154,7 @@ void player_morale::morale_point::add( const int new_bonus, const int new_max_bo } bonus = normalize_bonus( get_net_bonus() + new_bonus, new_max_bonus, new_cap ); - age = 0; // Brand new. The assignment should stay below get_net_bonus() and pick_time(). + age = 0_turns; // Brand new. The assignment should stay below get_net_bonus() and pick_time(). } time_duration player_morale::morale_point::pick_time( const time_duration current_time, @@ -220,10 +220,10 @@ player_morale::player_morale() : const auto update_masochist = std::bind( &player_morale::update_masochist_bonus, _1 ); mutations[trait_id( "OPTIMISTIC" )] = mutation_data( - std::bind( set_optimist, _1, 4 ), + std::bind( set_optimist, _1, 9 ), std::bind( set_optimist, _1, 0 ) ); mutations[trait_id( "BADTEMPER" )] = mutation_data( - std::bind( set_badtemper, _1, -4 ), + std::bind( set_badtemper, _1, -9 ), std::bind( set_badtemper, _1, 0 ) ); mutations[trait_id( "STYLISH" )] = mutation_data( std::bind( set_stylish, _1, true ), @@ -431,7 +431,7 @@ void player_morale::display( double focus_gain ) const morale_mult mult = get_temper_mult(); int line = 0; - for( size_t i = offset; i < static_cast( rows_total ); ++i ) { + for( size_t i = offset; i < static_cast( rows_total ); ++i ) { const std::string name = points[i].get_name(); const int bonus = points[i].get_net_bonus( mult ); diff --git a/src/morale.h b/src/morale.h index 8dac7d204a635..133459a3d3d54 100644 --- a/src/morale.h +++ b/src/morale.h @@ -111,7 +111,7 @@ class player_morale * Returns either new_time or remaining time (which one is greater). * Only returns new time if same_sign is true */ - time_duration pick_time( time_duration cur_time, time_duration new_time, bool same_sign ) const; + time_duration pick_time( time_duration current_time, time_duration new_time, bool same_sign ) const; /** * Returns normalized bonus if either max_bonus != 0 or capped == true */ diff --git a/src/morale_types.cpp b/src/morale_types.cpp index 01abcc91d9c63..061717838f3a3 100644 --- a/src/morale_types.cpp +++ b/src/morale_types.cpp @@ -70,9 +70,12 @@ const morale_type &morale_type_data::convert_legacy( int lmt ) morale_type( "morale_haircut" ), morale_type( "morale_shave" ), + morale_type( "morale_chat" ), morale_type( "morale_vomited" ), + morale_type( "morale_play_with_pet" ), + morale_type( "morale_pyromania_startfire" ), morale_type( "morale_pyromania_nearfire" ), morale_type( "morale_pyromania_nofire" ), @@ -150,7 +153,9 @@ const morale_type MORALE_PERM_CONSTRAINED( "morale_perm_constrained" ); const morale_type MORALE_GAME_FOUND_KITTEN( "morale_game_found_kitten" ); const morale_type MORALE_HAIRCUT( "morale_haircut" ); const morale_type MORALE_SHAVE( "morale_shave" ); +const morale_type MORALE_CHAT( "morale_chat" ); const morale_type MORALE_VOMITED( "morale_vomited" ); +const morale_type MORALE_PLAY_WITH_PET( "morale_play_with_pet" ); const morale_type MORALE_PYROMANIA_STARTFIRE( "morale_pyromania_startfire" ); const morale_type MORALE_PYROMANIA_NEARFIRE( "morale_pyromania_nearfire" ); const morale_type MORALE_PYROMANIA_NOFIRE( "morale_pyromania_nofire" ); diff --git a/src/morale_types.h b/src/morale_types.h index a38522b48cb83..a3a4ba7933e06 100644 --- a/src/morale_types.h +++ b/src/morale_types.h @@ -96,7 +96,9 @@ extern const morale_type MORALE_PERM_CONSTRAINED; extern const morale_type MORALE_GAME_FOUND_KITTEN; extern const morale_type MORALE_HAIRCUT; extern const morale_type MORALE_SHAVE; +extern const morale_type MORALE_CHAT; extern const morale_type MORALE_VOMITED; +extern const morale_type MORALE_PLAY_WITH_PET; extern const morale_type MORALE_PYROMANIA_STARTFIRE; extern const morale_type MORALE_PYROMANIA_NEARFIRE; extern const morale_type MORALE_PYROMANIA_NOFIRE; @@ -105,4 +107,3 @@ extern const morale_type MORALE_PERM_DEBUG; extern const morale_type MORALE_BUTCHER; #endif - diff --git a/src/mtype.cpp b/src/mtype.cpp index 9fcaa902e6bd9..b7aa45ef85d45 100644 --- a/src/mtype.cpp +++ b/src/mtype.cpp @@ -98,19 +98,19 @@ bool mtype::made_of_any( const std::set &materials ) const } ); } -bool mtype::has_anger_trigger( monster_trigger trig ) const +bool mtype::has_anger_trigger( monster_trigger trigger ) const { - return bitanger[trig]; + return bitanger[trigger]; } -bool mtype::has_fear_trigger( monster_trigger trig ) const +bool mtype::has_fear_trigger( monster_trigger trigger ) const { - return bitfear[trig]; + return bitfear[trigger]; } -bool mtype::has_placate_trigger( monster_trigger trig ) const +bool mtype::has_placate_trigger( monster_trigger trigger ) const { - return bitplacate[trig]; + return bitplacate[trigger]; } bool mtype::in_category( const std::string &category ) const diff --git a/src/mutation.cpp b/src/mutation.cpp index 0bb21f403a0b8..aaae82d423bd5 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -19,6 +19,7 @@ const efftype_id effect_stunned( "stunned" ); static const trait_id trait_ROBUST( "ROBUST" ); +static const trait_id trait_CHAOTIC_BAD( "CHAOTIC_BAD" ); static const trait_id trait_SLIMESPAWNER( "SLIMESPAWNER" ); static const trait_id trait_NAUSEA( "NAUSEA" ); static const trait_id trait_VOMITOUS( "VOMITOUS" ); @@ -409,7 +410,7 @@ void player::activate_mutation( const trait_id &mut ) } const tripoint pnt = *pnt_; - if( g->m.has_flag( "DIGGABLE", pnt ) && !g->m.has_flag( "PLANT", pnt ) && + if( g->m.has_flag( "PLOWABLE", pnt ) && !g->m.has_flag( "PLANT", pnt ) && g->m.ter( pnt ) != t_dirtmound ) { add_msg_if_player( _( "You churn up the earth here." ) ); moves = -300; @@ -542,6 +543,10 @@ void player::mutate() force_bad = false; force_good = true; } + if( has_trait( trait_CHAOTIC_BAD ) ) { + force_bad = true; + force_good = false; + } // Determine the highest mutation category std::string cat = get_highest_category(); @@ -554,8 +559,8 @@ void player::mutate() // For each mutation... for( auto &traits_iter : mutation_branch::get_all() ) { - const auto &base_mutation = traits_iter.first; - const auto &base_mdata = traits_iter.second; + const auto &base_mutation = traits_iter.id; + const auto &base_mdata = traits_iter; bool thresh_save = base_mdata.threshold; bool prof_save = base_mdata.profession; bool purify_save = base_mdata.purifiable; @@ -636,15 +641,16 @@ void player::mutate() do { // If we tried once with a non-NULL category, and couldn't find anything valid // there, try again with empty category - if( !first_pass ) { + // CHAOTIC_BAD lets the game pull from any category by default + if( !first_pass || has_trait( trait_CHAOTIC_BAD ) ) { cat.clear(); } if( cat.empty() ) { // Pull the full list for( auto &traits_iter : mutation_branch::get_all() ) { - if( traits_iter.second.valid ) { - valid.push_back( traits_iter.first ); + if( traits_iter.valid ) { + valid.push_back( traits_iter.id ); } } } else { @@ -759,8 +765,7 @@ bool player::mutate_towards( const trait_id &mut ) std::vector all_prereqs = get_all_mutation_prereqs( mut ); // Check mutations of the same type - except for the ones we might need for pre-reqs - for( size_t i = 0; i < same_type.size(); ++i ) { - trait_id consider = same_type[i]; + for( const auto &consider : same_type ) { if( std::find( all_prereqs.begin(), all_prereqs.end(), consider ) == all_prereqs.end() ) { cancel.push_back( consider ); } @@ -928,8 +933,8 @@ bool player::mutate_towards( const trait_id &mut ) mutation_effect( mut ); mutation_replaced = true; } - for( size_t i = 0; i < canceltrait.size(); i++ ) { - const auto &cancel_mdata = canceltrait[i].obj(); + for( const auto &i : canceltrait ) { + const auto &cancel_mdata = i.obj(); if( mdata.mixed_effect || cancel_mdata.mixed_effect ) { rating = m_mixed; } else if( mdata.points < cancel_mdata.points ) { @@ -949,8 +954,8 @@ bool player::mutate_towards( const trait_id &mut ) add_memorial_log( pgettext( "memorial_male", "'%s' mutation turned into '%s'" ), pgettext( "memorial_female", "'%s' mutation turned into '%s'" ), cancel_mdata.name(), mdata.name() ); - unset_mutation( canceltrait[i] ); - mutation_loss_effect( canceltrait[i] ); + unset_mutation( i ); + mutation_loss_effect( i ); mutation_effect( mut ); mutation_replaced = true; } @@ -1014,13 +1019,13 @@ void player::remove_mutation( const trait_id &mut ) //Check each mutation until we reach the end or find a trait to revert to for( auto &iter : mutation_branch::get_all() ) { //See if it's in our list of base traits but not active - if( has_base_trait( iter.first ) && !has_trait( iter.first ) ) { + if( has_base_trait( iter.id ) && !has_trait( iter.id ) ) { //See if that base trait cancels the mutation we are using - std::vector traitcheck = iter.second.cancels; + std::vector traitcheck = iter.cancels; if( !traitcheck.empty() ) { for( size_t j = 0; !replacing && j < traitcheck.size(); j++ ) { if( traitcheck[j] == mut ) { - replacing = ( iter.first ); + replacing = ( iter.id ); } } } @@ -1036,13 +1041,13 @@ void player::remove_mutation( const trait_id &mut ) //Check each mutation until we reach the end or find a trait to revert to for( auto &iter : mutation_branch::get_all() ) { //See if it's in our list of base traits but not active - if( has_base_trait( iter.first ) && !has_trait( iter.first ) ) { + if( has_base_trait( iter.id ) && !has_trait( iter.id ) ) { //See if that base trait cancels the mutation we are using - std::vector traitcheck = iter.second.cancels; + std::vector traitcheck = iter.cancels; if( !traitcheck.empty() ) { for( size_t j = 0; !replacing2 && j < traitcheck.size(); j++ ) { - if( traitcheck[j] == mut && ( iter.first ) != replacing ) { - replacing2 = ( iter.first ); + if( traitcheck[j] == mut && ( iter.id ) != replacing ) { + replacing2 = ( iter.id ); } } } diff --git a/src/mutation.h b/src/mutation.h index e8cf9bf9e7d1f..b129cf4971dad 100644 --- a/src/mutation.h +++ b/src/mutation.h @@ -84,7 +84,8 @@ struct mut_attack { }; struct mutation_branch { - using MutationMap = std::unordered_map; + trait_id id; + bool was_loaded = false; // True if this is a valid mutation (False for "unavailable from generic mutagen"). bool valid = false; // True if Purifier can remove it (False for *Special* mutations). @@ -210,11 +211,12 @@ struct mutation_branch { * All known mutations. Key is the mutation id, value is the mutation_branch that you would * also get by calling @ref get. */ - static const MutationMap &get_all(); + static const std::vector &get_all(); // For init.cpp: reset (clear) the mutation data static void reset_all(); // For init.cpp: load mutation data from json - static void load( JsonObject &jsobj ); + void load( JsonObject &jo, const std::string &src ); + static void load_trait( JsonObject &jo, const std::string &src ); // For init.cpp: check internal consistency (valid ids etc.) of all mutations static void check_consistency(); diff --git a/src/mutation_data.cpp b/src/mutation_data.cpp index aca5919367238..0cd2c6a439c5f 100644 --- a/src/mutation_data.cpp +++ b/src/mutation_data.cpp @@ -13,6 +13,7 @@ #include "pldata.h" // traits #include "trait_group.h" #include "translations.h" +#include "generic_factory.h" typedef std::map> TraitGroupMap; typedef std::set TraitSet; @@ -20,27 +21,25 @@ typedef std::set TraitSet; TraitSet trait_blacklist; TraitGroupMap trait_groups; +namespace +{ +generic_factory trait_factory( "trait" ); +} + std::vector dreams; std::map > mutations_category; std::map mutation_category_traits; -std::unordered_map mutation_data; template<> const mutation_branch &string_id::obj() const { - const auto iter = mutation_data.find( *this ); - if( iter == mutation_data.end() ) { - debugmsg( "invalid trait/mutation type id %s", c_str() ); - static const mutation_branch dummy{}; - return dummy; - } - return iter->second; + return trait_factory.obj( *this ); } template<> bool string_id::is_valid() const { - return mutation_data.count( *this ) > 0; + return trait_factory.is_valid( *this ); } template<> @@ -240,114 +239,99 @@ static social_modifiers load_mutation_social_mods( JsonObject &jo ) return ret; } -void mutation_branch::load( JsonObject &jsobj ) -{ - const trait_id id( jsobj.get_string( "id" ) ); - mutation_branch &new_mut = mutation_data[id]; - - JsonArray jsarr; - new_mut.raw_name = jsobj.get_string( "name" ); - new_mut.raw_desc = jsobj.get_string( "description" ); - new_mut.points = jsobj.get_int( "points" ); - new_mut.visibility = jsobj.get_int( "visibility", 0 ); - new_mut.ugliness = jsobj.get_int( "ugliness", 0 ); - new_mut.startingtrait = jsobj.get_bool( "starting_trait", false ); - new_mut.mixed_effect = jsobj.get_bool( "mixed_effect", false ); - new_mut.activated = jsobj.get_bool( "active", false ); - new_mut.starts_active = jsobj.get_bool( "starts_active", false ); - new_mut.destroys_gear = jsobj.get_bool( "destroys_gear", false ); - new_mut.allow_soft_gear = jsobj.get_bool( "allow_soft_gear", false ); - new_mut.cost = jsobj.get_int( "cost", 0 ); - new_mut.cooldown = jsobj.get_int( "time", 0 ); - new_mut.hunger = jsobj.get_bool( "hunger", false ); - new_mut.thirst = jsobj.get_bool( "thirst", false ); - new_mut.fatigue = jsobj.get_bool( "fatigue", false ); - new_mut.valid = jsobj.get_bool( "valid", true ); - new_mut.purifiable = jsobj.get_bool( "purifiable", true ); - if( jsobj.has_object( "spawn_item" ) ) { - JsonObject spawn_item = jsobj.get_object( "spawn_item" ); - new_mut.spawn_item = spawn_item.get_string( "type", "" ); - new_mut.raw_spawn_item_message = spawn_item.get_string( "message", "" ); - } - for( auto &s : jsobj.get_string_array( "initial_ma_styles" ) ) { - new_mut.initial_ma_styles.push_back( matype_id( s ) ); - } - - JsonArray bodytemp_array = jsobj.get_array( "bodytemp_modifiers" ); - if( bodytemp_array.has_more() ) { - new_mut.bodytemp_min = bodytemp_array.get_int( 0 ); - new_mut.bodytemp_max = bodytemp_array.get_int( 1 ); - } - new_mut.bodytemp_sleep = jsobj.get_int( "bodytemp_sleep", 0 ); - new_mut.threshold = jsobj.get_bool( "threshold", false ); - new_mut.profession = jsobj.get_bool( "profession", false ); - new_mut.debug = jsobj.get_bool( "debug", false ); - new_mut.player_display = jsobj.get_bool( "player_display", true ); - - auto vr = jsobj.get_array( "vitamin_rates" ); +void mutation_branch::load_trait( JsonObject &jo, const std::string &src ) +{ + trait_factory.load( jo, src ); +} + +void mutation_branch::load( JsonObject &jo, const std::string & ) +{ + mandatory( jo, was_loaded, "id", id ); + mandatory( jo, was_loaded, "name", raw_name, translated_string_reader ); + mandatory( jo, was_loaded, "description", raw_desc, translated_string_reader ); + mandatory( jo, was_loaded, "points", points ); + + optional( jo, was_loaded, "visibility", visibility, 0 ); + optional( jo, was_loaded, "ugliness", ugliness, 0 ); + optional( jo, was_loaded, "starting_trait", startingtrait, false ); + optional( jo, was_loaded, "mixed_effect", mixed_effect, false ); + optional( jo, was_loaded, "active", activated, false ); + optional( jo, was_loaded, "starts_active", starts_active, false ); + optional( jo, was_loaded, "destroys_gear", destroys_gear, false ); + optional( jo, was_loaded, "allow_soft_gear", allow_soft_gear, false ); + optional( jo, was_loaded, "cost", cost, 0 ); + optional( jo, was_loaded, "time", cooldown, 0 ); + optional( jo, was_loaded, "hunger", hunger, false ); + optional( jo, was_loaded, "thirst", thirst, false ); + optional( jo, was_loaded, "fatigue", fatigue, false ); + optional( jo, was_loaded, "valid", valid, true ); + optional( jo, was_loaded, "purifiable", purifiable, true ); + + if( jo.has_object( "spawn_item" ) ) { + auto si = jo.get_object( "spawn_item" ); + optional( si, was_loaded, "type", spawn_item ); + optional( si, was_loaded, "message", raw_spawn_item_message ); + } + optional( jo, was_loaded, "initial_ma_styles", initial_ma_styles ); + + if( jo.has_array( "bodytemp_modifiers" ) ) { + auto bodytemp_array = jo.get_array( "bodytemp_modifiers" ); + bodytemp_min = bodytemp_array.get_int( 0 ); + bodytemp_max = bodytemp_array.get_int( 1 ); + } + + optional( jo, was_loaded, "bodytemp_sleep", bodytemp_sleep, 0 ); + optional( jo, was_loaded, "threshold", threshold, false ); + optional( jo, was_loaded, "profession", profession, false ); + optional( jo, was_loaded, "debug", debug, false ); + optional( jo, was_loaded, "player_display", player_display, true ); + + JsonArray vr = jo.get_array( "vitamin_rates" ); while( vr.has_more() ) { auto pair = vr.next_array(); - new_mut.vitamin_rates.emplace( vitamin_id( pair.get_string( 0 ) ), - time_duration::from_turns( pair.get_int( 1 ) ) ); + vitamin_rates.emplace( vitamin_id( pair.get_string( 0 ) ), + time_duration::from_turns( pair.get_int( 1 ) ) ); } - new_mut.healing_awake = jsobj.get_float( "healing_awake", 0.0f ); - new_mut.healing_resting = jsobj.get_float( "healing_resting", 0.0f ); - new_mut.hp_modifier = jsobj.get_float( "hp_modifier", 0.0f ); - new_mut.hp_modifier_secondary = jsobj.get_float( "hp_modifier_secondary", 0.0f ); - new_mut.hp_adjustment = jsobj.get_float( "hp_adjustment", 0.0f ); - new_mut.stealth_modifier = jsobj.get_float( "stealth_modifier", 0.0f ); + optional( jo, was_loaded, "healing_awake", healing_awake, 0.0f ); + optional( jo, was_loaded, "healing_resting", healing_resting, 0.0f ); + optional( jo, was_loaded, "hp_modifier", hp_modifier, 0.0f ); + optional( jo, was_loaded, "hp_modifier_secondary", hp_modifier_secondary, 0.0f ); + optional( jo, was_loaded, "hp_adjustment", hp_adjustment, 0.0f ); + optional( jo, was_loaded, "stealth_modifier", stealth_modifier, 0.0f ); - new_mut.metabolism_modifier = jsobj.get_float( "metabolism_modifier", 0.0f ); - new_mut.thirst_modifier = jsobj.get_float( "thirst_modifier", 0.0f ); - new_mut.fatigue_modifier = jsobj.get_float( "fatigue_modifier", 0.0f ); - new_mut.fatigue_regen_modifier = jsobj.get_float( "fatigue_regen_modifier", 0.0f ); + optional( jo, was_loaded, "metabolism_modifier", metabolism_modifier, 0.0f ); + optional( jo, was_loaded, "thirst_modifier", thirst_modifier, 0.0f ); + optional( jo, was_loaded, "fatigue_modifier", fatigue_modifier, 0.0f ); + optional( jo, was_loaded, "fatigue_regen_modifier", fatigue_regen_modifier, 0.0f ); + optional( jo, was_loaded, "stamina_regen_modifier", stamina_regen_modifier, 0.0f ); - new_mut.stamina_regen_modifier = jsobj.get_float( "stamina_regen_modifier", 0.0f ); - - if( jsobj.has_object( "social_modifiers" ) ) { - JsonObject jo = jsobj.get_object( "social_modifiers" ); - new_mut.social_mods = load_mutation_social_mods( jo ); + if( jo.has_object( "social_modifiers" ) ) { + JsonObject sm = jo.get_object( "social_modifiers" ); + social_mods = load_mutation_social_mods( sm ); } - load_mutation_mods( jsobj, "passive_mods", new_mut.mods ); + load_mutation_mods( jo, "passive_mods", mods ); /* Not currently supported due to inability to save active mutation state load_mutation_mods(jsobj, "active_mods", new_mut.mods); */ - for( auto &t : jsobj.get_string_array( "prereqs" ) ) { - new_mut.prereqs.emplace_back( t ); - } - // Helps to be able to have a trait require more than one other trait - // (Individual prerequisite-lists are "OR", not "AND".) - // Traits should NOT appear in both lists for a given mutation, unless - // you want that trait to satisfy both requirements. - // These are additional to the first list. - for( auto &t : jsobj.get_string_array( "prereqs2" ) ) { - new_mut.prereqs2.emplace_back( t ); - } - // Dedicated-purpose prerequisite slot for Threshold mutations - // Stuff like Huge might fit in more than one category post-threshold, so yeah - for( auto &t : jsobj.get_string_array( "threshreq" ) ) { - new_mut.threshreq.emplace_back( t ); - } - for( auto &t : jsobj.get_string_array( "cancels" ) ) { - new_mut.cancels.emplace_back( t ); - } - for( auto &t : jsobj.get_string_array( "changes_to" ) ) { - new_mut.replacements.emplace_back( t ); - } - for( auto &t : jsobj.get_string_array( "leads_to" ) ) { - new_mut.additions.emplace_back( t ); - } - new_mut.flags = jsobj.get_tags( "flags" ); - new_mut.types = jsobj.get_tags( "types" ); - jsarr = jsobj.get_array( "category" ); + optional( jo, was_loaded, "prereqs", prereqs ); + optional( jo, was_loaded, "prereqs2", prereqs2 ); + optional( jo, was_loaded, "threshreq", threshreq ); + optional( jo, was_loaded, "cancels", cancels ); + optional( jo, was_loaded, "changes_to", replacements ); + optional( jo, was_loaded, "leads_to", additions ); + optional( jo, was_loaded, "flags", flags ); + optional( jo, was_loaded, "types", types ); + + auto jsarr = jo.get_array( "category" ); while( jsarr.has_more() ) { std::string s = jsarr.next_string(); - new_mut.category.push_back( s ); + category.push_back( s ); mutations_category[s].push_back( trait_id( id ) ); } - jsarr = jsobj.get_array( "wet_protection" ); + + jsarr = jo.get_array( "wet_protection" ); while( jsarr.has_more() ) { JsonObject jo = jsarr.next_object(); std::string part_id = jo.get_string( "part" ); @@ -355,31 +339,31 @@ void mutation_branch::load( JsonObject &jsobj ) int neutral = jo.get_int( "neutral", 0 ); int good = jo.get_int( "good", 0 ); tripoint protect = tripoint( ignored, neutral, good ); - new_mut.protection[get_body_part_token( part_id )] = protect; + protection[get_body_part_token( part_id )] = protect; } - jsarr = jsobj.get_array( "encumbrance_always" ); + jsarr = jo.get_array( "encumbrance_always" ); while( jsarr.has_more() ) { JsonArray jo = jsarr.next_array(); std::string part_id = jo.next_string(); int enc = jo.next_int(); - new_mut.encumbrance_always[get_body_part_token( part_id )] = enc; + encumbrance_always[get_body_part_token( part_id )] = enc; } - jsarr = jsobj.get_array( "encumbrance_covered" ); + jsarr = jo.get_array( "encumbrance_covered" ); while( jsarr.has_more() ) { JsonArray jo = jsarr.next_array(); std::string part_id = jo.next_string(); int enc = jo.next_int(); - new_mut.encumbrance_covered[get_body_part_token( part_id )] = enc; + encumbrance_covered[get_body_part_token( part_id )] = enc; } - jsarr = jsobj.get_array( "restricts_gear" ); + jsarr = jo.get_array( "restricts_gear" ); while( jsarr.has_more() ) { - new_mut.restricts_gear.insert( get_body_part_token( jsarr.next_string() ) ); + restricts_gear.insert( get_body_part_token( jsarr.next_string() ) ); } - jsarr = jsobj.get_array( "armor" ); + jsarr = jo.get_array( "armor" ); while( jsarr.has_more() ) { JsonObject jo = jsarr.next_object(); auto parts = jo.get_tags( "parts" ); @@ -396,19 +380,19 @@ void mutation_branch::load( JsonObject &jsobj ) resistances res = load_resistances_instance( jo ); for( body_part bp : bps ) { - new_mut.armor[ bp ] = res; + armor[ bp ] = res; } } - if( jsobj.has_array( "attacks" ) ) { - jsarr = jsobj.get_array( "attacks" ); + if( jo.has_array( "attacks" ) ) { + jsarr = jo.get_array( "attacks" ); while( jsarr.has_more() ) { JsonObject jo = jsarr.next_object(); - new_mut.attacks_granted.emplace_back( load_mutation_attack( jo ) ); + attacks_granted.emplace_back( load_mutation_attack( jo ) ); } - } else if( jsobj.has_object( "attacks" ) ) { - JsonObject jo = jsobj.get_object( "attacks" ); - new_mut.attacks_granted.emplace_back( load_mutation_attack( jo ) ); + } else if( jo.has_object( "attacks" ) ) { + JsonObject attack = jo.get_object( "attacks" ); + attacks_granted.emplace_back( load_mutation_attack( attack ) ); } } @@ -439,9 +423,8 @@ static void check_consistency( const std::vector &mvec, const trait_id void mutation_branch::check_consistency() { - for( const auto &m : mutation_data ) { - const auto &mid = m.first; - const auto &mdata = m.second; + for( const auto &mdata : get_all() ) { + const auto &mid = mdata.id; for( const auto &style : mdata.initial_ma_styles ) { if( !style.is_valid() ) { debugmsg( "mutation %s refers to undefined martial art style %s", mid.c_str(), style.c_str() ); @@ -483,15 +466,15 @@ std::string mutation_branch::get_name( const trait_id &mutation_id ) return mutation_id->name(); } -const mutation_branch::MutationMap &mutation_branch::get_all() +const std::vector &mutation_branch::get_all() { - return mutation_data; + return trait_factory.get_all(); } void mutation_branch::reset_all() { mutations_category.clear(); - mutation_data.clear(); + trait_factory.reset(); trait_blacklist.clear(); trait_groups.clear(); trait_groups.emplace( trait_group::Trait_group_tag( "EMPTY_GROUP" ), diff --git a/src/mutation_type.cpp b/src/mutation_type.cpp index 946c0b3df1de7..e8a1a83b7d942 100644 --- a/src/mutation_type.cpp +++ b/src/mutation_type.cpp @@ -25,8 +25,8 @@ std::vector get_mutations_in_type( const std::string &id ) { std::vector ret; for( auto it : mutation_branch::get_all() ) { - if( it.second.types.find( id ) != it.second.types.end() ) { - ret.push_back( it.first ); + if( it.types.find( id ) != it.types.end() ) { + ret.push_back( it.id ); } } return ret; diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index 857e450273d61..4bef001af5802 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -1028,30 +1028,30 @@ tab_direction set_traits( const catacurses::window &w, player &u, points_left &p for( auto &traits_iter : mutation_branch::get_all() ) { // Don't list blacklisted traits - if( mutation_branch::trait_is_blacklisted( traits_iter.first ) ) { + if( mutation_branch::trait_is_blacklisted( traits_iter.id ) ) { continue; } // Always show profession locked traits, regardless of if they are forbidden const std::vector proftraits = u.prof->get_locked_traits(); const bool is_proftrait = std::find( proftraits.begin(), proftraits.end(), - traits_iter.first ) != proftraits.end(); + traits_iter.id ) != proftraits.end(); // We show all starting traits, even if we can't pick them, to keep the interface consistent. - if( traits_iter.second.startingtrait || g->scen->traitquery( traits_iter.first ) || is_proftrait ) { - if( traits_iter.second.points > 0 ) { - vStartingTraits[0].push_back( traits_iter.first ); + if( traits_iter.startingtrait || g->scen->traitquery( traits_iter.id ) || is_proftrait ) { + if( traits_iter.points > 0 ) { + vStartingTraits[0].push_back( traits_iter.id ); - if( u.has_trait( traits_iter.first ) ) { - num_good += traits_iter.second.points; + if( u.has_trait( traits_iter.id ) ) { + num_good += traits_iter.points; } - } else if( traits_iter.second.points < 0 ) { - vStartingTraits[1].push_back( traits_iter.first ); + } else if( traits_iter.points < 0 ) { + vStartingTraits[1].push_back( traits_iter.id ); - if( u.has_trait( traits_iter.first ) ) { - num_bad += traits_iter.second.points; + if( u.has_trait( traits_iter.id ) ) { + num_bad += traits_iter.points; } } else { - vStartingTraits[2].push_back( traits_iter.first ); + vStartingTraits[2].push_back( traits_iter.id ); } } } @@ -2480,8 +2480,8 @@ trait_id Character::random_good_trait() std::vector vTraitsGood; for( auto &traits_iter : mutation_branch::get_all() ) { - if( traits_iter.second.points >= 0 && g->scen->traitquery( traits_iter.first ) ) { - vTraitsGood.push_back( traits_iter.first ); + if( traits_iter.points >= 0 && g->scen->traitquery( traits_iter.id ) ) { + vTraitsGood.push_back( traits_iter.id ); } } @@ -2493,8 +2493,8 @@ trait_id Character::random_bad_trait() std::vector vTraitsBad; for( auto &traits_iter : mutation_branch::get_all() ) { - if( traits_iter.second.points < 0 && g->scen->traitquery( traits_iter.first ) ) { - vTraitsBad.push_back( traits_iter.first ); + if( traits_iter.points < 0 && g->scen->traitquery( traits_iter.id ) ) { + vTraitsBad.push_back( traits_iter.id ); } } @@ -2620,7 +2620,13 @@ void reset_scenario( player &u, const scenario *scen ) u.per_max = 8; g->scen = scen; u.prof = &default_prof.obj(); + for( auto &t : u.get_mutations() ) { + if( t.obj().hp_modifier != 0 ) { + u.toggle_trait( t ); + } + } u.empty_traits(); + u.recalc_hp(); u.empty_skills(); u.add_traits(); } diff --git a/src/npc.cpp b/src/npc.cpp index 5a132d3189462..dd5ee58ff07aa 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -27,7 +27,7 @@ #include "veh_type.h" #include "vehicle.h" #include "vpart_position.h" -#include "vpart_reference.h" +#include "vpart_reference.h" // IWYU pragma: keep const skill_id skill_mechanics( "mechanics" ); const skill_id skill_electronics( "electronics" ); @@ -61,18 +61,10 @@ const efftype_id effect_pkill_l( "pkill_l" ); const efftype_id effect_infection( "infection" ); const efftype_id effect_bouldering( "bouldering" ); -static const trait_id trait_BEAUTIFUL2( "BEAUTIFUL2" ); -static const trait_id trait_BEAUTIFUL3( "BEAUTIFUL3" ); -static const trait_id trait_BEAUTIFUL( "BEAUTIFUL" ); static const trait_id trait_CANNIBAL( "CANNIBAL" ); -static const trait_id trait_DEFORMED2( "DEFORMED2" ); -static const trait_id trait_DEFORMED3( "DEFORMED3" ); -static const trait_id trait_DEFORMED( "DEFORMED" ); -static const trait_id trait_PRETTY( "PRETTY" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_TERRIFYING( "TERRIFYING" ); -static const trait_id trait_UGLY( "UGLY" ); void starting_clothes( npc &who, const npc_class_id &type, bool male ); void starting_inv( npc &who, const npc_class_id &type ); @@ -299,7 +291,7 @@ void npc::randomize( const npc_class_id &type ) if( !type.is_valid() ) { debugmsg( "Invalid NPC class %s", type.c_str() ); myclass = npc_class_id::NULL_ID(); - } else if( type.is_null() && !one_in( 5 ) ) { + } else if( type.is_null() ) { myclass = npc_class::random_common(); } else { myclass = type; @@ -389,9 +381,9 @@ void npc::randomize( const npc_class_id &type ) hp_cur[i] = hp_max[i]; } - starting_weapon( type ); - starting_clothes( *this, type, male ); - starting_inv( *this, type ); + starting_weapon( myclass ); + starting_clothes( *this, myclass, male ); + starting_inv( *this, myclass ); has_new_items = true; my_mutations.clear(); @@ -694,11 +686,24 @@ item random_item_from( const npc_class_id &type, const std::string &what ) // item id from "__" or from "npc__" item get_clothing_item( const npc_class_id &type, const std::string &what, bool male ) { + item result; + //Check if class has gendered clothing + //Then check if it has an ungendered version + //Only if all that fails, grab from the default class. if( male ) { - return random_item_from( type, what + "_male", "npc_" + what + "_male" ); + result = random_item_from( type, what + "_male", "null" ); } else { - return random_item_from( type, what + "_female", "npc_" + what + "_female" ); + result = random_item_from( type, what + "_female", "null" ); } + if( result.is_null() ) { + if( male ) { + result = random_item_from( type, what, "npc_" + what + "_male" ); + } else { + result = random_item_from( type, what, "npc_" + what + "_female" ); + } + } + + return result; } void starting_clothes( npc &who, const npc_class_id &type, bool male ) @@ -710,13 +715,22 @@ void starting_clothes( npc &who, const npc_class_id &type, bool male ) } else { ret.push_back( get_clothing_item( type, "pants", male ) ); ret.push_back( get_clothing_item( type, "shirt", male ) ); + ret.push_back( get_clothing_item( type, "underwear_top", male ) ); + ret.push_back( get_clothing_item( type, "underwear_bottom", male ) ); + ret.push_back( get_clothing_item( type, "underwear_feet", male ) ); + ret.push_back( get_clothing_item( type, "shoes", male ) ); ret.push_back( random_item_from( type, "gloves" ) ); ret.push_back( random_item_from( type, "coat" ) ); - ret.push_back( random_item_from( type, "shoes" ) ); + ret.push_back( random_item_from( type, "vest" ) ); ret.push_back( random_item_from( type, "masks" ) ); // Why is the alternative group not named "npc_glasses" but "npc_eyes"? ret.push_back( random_item_from( type, "glasses", "npc_eyes" ) ); ret.push_back( random_item_from( type, "hat" ) ); + ret.push_back( random_item_from( type, "scarf" ) ); + ret.push_back( random_item_from( type, "storage" ) ); + ret.push_back( random_item_from( type, "holster" ) ); + ret.push_back( random_item_from( type, "belt" ) ); + ret.push_back( random_item_from( type, "wrist" ) ); ret.push_back( random_item_from( type, "extra" ) ); } @@ -732,19 +746,19 @@ void starting_clothes( npc &who, const npc_class_id &type, bool male ) } } -void starting_inv( npc &me, const npc_class_id &type ) +void starting_inv( npc &who, const npc_class_id &type ) { std::list res; - me.inv.clear(); + who.inv.clear(); if( item_group::group_is_defined( type->carry_override ) ) { - me.inv += item_group::items_from( type->carry_override ); + who.inv += item_group::items_from( type->carry_override ); return; } res.emplace_back( "lighter" ); // If wielding a gun, get some additional ammo for it - if( me.weapon.is_gun() ) { - item ammo( me.weapon.ammo_type()->default_ammotype() ); + if( who.weapon.is_gun() ) { + item ammo( who.weapon.ammo_type()->default_ammotype() ); ammo = ammo.in_its_container(); if( ammo.made_of( LIQUID ) ) { item container( "bottle_plastic" ); @@ -758,7 +772,7 @@ void starting_inv( npc &me, const npc_class_id &type ) type == NC_BOUNTY_HUNTER ); qty = rng( qty, qty * 2 ); - while( qty-- != 0 && me.can_pickVolume( ammo ) ) { + while( qty-- != 0 && who.can_pickVolume( ammo ) ) { // @todo: give NPC a default magazine instead res.push_back( ammo ); } @@ -778,7 +792,7 @@ void starting_inv( npc &me, const npc_class_id &type ) if( !one_in( 3 ) && tmp.has_flag( "VARSIZE" ) ) { tmp.item_tags.insert( "FIT" ); } - if( me.can_pickVolume( tmp ) ) { + if( who.can_pickVolume( tmp ) ) { res.push_back( tmp ); } } @@ -788,7 +802,7 @@ void starting_inv( npc &me, const npc_class_id &type ) return e.has_flag( "TRADER_AVOID" ); } ), res.end() ); - me.inv += res; + who.inv += res; } void npc::spawn_at_sm( int x, int y, int z ) @@ -1394,7 +1408,7 @@ void npc::shop_restock() units::volume total_space = volume_capacity(); std::list ret; - while( total_space > 0 && !one_in( 50 ) ) { + while( total_space > 0_ml && !one_in( 50 ) ) { item tmpit = item_group::item_from( from, 0 ); if( !tmpit.is_null() && total_space >= tmpit.volume() ) { ret.push_back( tmpit ); @@ -1641,7 +1655,7 @@ Creature::Attitude npc::attitude_to( const Creature &other ) const int npc::smash_ability() const { - if( !is_following() || rules.allow_bash ) { + if( !is_following() || rules.has_flag( ally_rule::allow_bash ) ) { ///\EFFECT_STR_NPC increases smash ability return str_cur + weapon.damage_melee( DT_BASH ); } @@ -2055,7 +2069,7 @@ void npc::on_load() update_body( cur, cur + 1_turns ); } - if( dt > 0 ) { + if( dt > 0_turns ) { // This ensures food is properly rotten at load // Otherwise NPCs try to eat rotten food and fail process_active_items(); @@ -2425,3 +2439,44 @@ void npc::set_attitude( npc_attitude new_attitude ) } attitude = new_attitude; } + +npc_follower_rules::npc_follower_rules() +{ + engagement = ENGAGE_CLOSE; + aim = AIM_WHEN_CONVENIENT; + set_flag( ally_rule::use_guns ); + set_flag( ally_rule::use_grenades ); + clear_flag( ally_rule::use_silent ); + set_flag( ally_rule::avoid_friendly_fire ); + + clear_flag( ally_rule::allow_pick_up ); + clear_flag( ally_rule::allow_bash ); + clear_flag( ally_rule::allow_sleep ); + set_flag( ally_rule::allow_complain ); + set_flag( ally_rule::allow_pulp ); + clear_flag( ally_rule::close_doors ); +} + +bool npc_follower_rules::has_flag( ally_rule test ) const +{ + return static_cast( test ) & static_cast( flags ); +} + +void npc_follower_rules::set_flag( ally_rule setit ) +{ + flags = static_cast( static_cast( flags ) | static_cast( setit ) ); +} + +void npc_follower_rules::clear_flag( ally_rule clearit ) +{ + flags = static_cast( static_cast( flags ) & ~static_cast( clearit ) ); +} + +void npc_follower_rules::toggle_flag( ally_rule toggle ) +{ + if( has_flag( toggle ) ) { + clear_flag( toggle ); + } else { + set_flag( toggle ); + } +} diff --git a/src/npc.h b/src/npc.h index 0bff39311954f..6dc66acd8ed7d 100644 --- a/src/npc.h +++ b/src/npc.h @@ -179,6 +179,16 @@ enum combat_engagement { ENGAGE_ALL, ENGAGE_NO_MOVE }; +const std::unordered_map combat_engagement_strs = { { + { "ENGAGE_NONE", ENGAGE_NONE }, + { "ENGAGE_CLOSE", ENGAGE_CLOSE }, + { "ENGAGE_WEAK", ENGAGE_WEAK }, + { "ENGAGE_HIT", ENGAGE_HIT }, + { "ENGAGE_ALL", ENGAGE_ALL }, + { "ENGAGE_NO_MOVE", ENGAGE_NO_MOVE } + } +}; + enum aim_rule { // Aim some @@ -190,21 +200,45 @@ enum aim_rule { // If you can't aim, don't shoot AIM_STRICTLY_PRECISE }; +const std::unordered_map aim_rule_strs = { { + { "AIM_WHEN_CONVENIENT", AIM_WHEN_CONVENIENT }, + { "AIM_SPRAY", AIM_SPRAY }, + { "AIM_PRECISE", AIM_PRECISE }, + { "AIM_STRICTLY_PRECISE", AIM_STRICTLY_PRECISE } + } +}; + +enum class ally_rule { + DEFAULT = 0, + use_guns = 1, + use_grenades = 2, + use_silent = 4, + avoid_friendly_fire = 8, + allow_pick_up = 16, + allow_bash = 32, + allow_sleep = 64, + allow_complain = 128, + allow_pulp = 256, + close_doors = 512 +}; +const std::unordered_map ally_rule_strs = { { + { "use_guns", ally_rule::use_guns }, + { "use_grenades", ally_rule::use_grenades }, + { "use_silent", ally_rule::use_silent }, + { "avoid_friendly_fire", ally_rule::avoid_friendly_fire }, + { "allow_pick_up", ally_rule::allow_pick_up }, + { "allow_bash", ally_rule::allow_bash }, + { "allow_sleep", ally_rule::allow_sleep }, + { "allow_complain", ally_rule::allow_complain }, + { "allow_pulp", ally_rule::allow_pulp }, + { "close_doors", ally_rule::close_doors } + } +}; struct npc_follower_rules { combat_engagement engagement; aim_rule aim = AIM_WHEN_CONVENIENT; - bool use_guns; - bool use_grenades; - bool use_silent; - - bool allow_pick_up; - bool allow_bash; - bool allow_sleep; - bool allow_complain; - bool allow_pulp; - - bool close_doors; + ally_rule flags; pimpl pickup_whitelist; @@ -212,6 +246,12 @@ struct npc_follower_rules { void serialize( JsonOut &jsout ) const; void deserialize( JsonIn &jsin ); + + bool has_flag( ally_rule test ) const; + void set_flag( ally_rule setit ); + void clear_flag( ally_rule clearit ); + void toggle_flag( ally_rule toggle ); + }; // Data relevant only for this action @@ -492,7 +532,7 @@ class npc : public player // Save & load void load_info( std::string data ) override; // Overloaded from player - virtual std::string save_info() const override; + std::string save_info() const override; void deserialize( JsonIn &jsin ) override; void serialize( JsonOut &jsout ) const override; diff --git a/src/npc_class.cpp b/src/npc_class.cpp index bc73d16498a2b..f40ffdf82cc61 100644 --- a/src/npc_class.cpp +++ b/src/npc_class.cpp @@ -308,7 +308,7 @@ const npc_class_id &npc_class::random_common() } } - if( common_classes.empty() ) { + if( common_classes.empty() || one_in( common_classes.size() ) ) { return NC_NONE; } diff --git a/src/npc_class.h b/src/npc_class.h index e20897adeab3b..e6c60b89edc99 100644 --- a/src/npc_class.h +++ b/src/npc_class.h @@ -48,7 +48,7 @@ class distribution static distribution constant( float val ); static distribution rng_roll( int from, int to ); - static distribution dice_roll( int sides, int sizes ); + static distribution dice_roll( int sides, int size ); static distribution one_in( float in ); }; diff --git a/src/npcmove.cpp b/src/npcmove.cpp index 39b0610befe28..1dd1d17ae6246 100644 --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -966,7 +966,7 @@ npc_action npc::method_of_attack() // if we require a silent weapon inappropriate modes are also removed // except in emergency only fire bursts if danger > 0.5 and don't shoot at all at harmless targets std::vector> modes; - if( rules.use_guns || !is_following() ) { + if( rules.has_flag( ally_rule::use_guns ) || !is_following() ) { for( const auto &e : weapon.gun_all_modes() ) { modes.push_back( e ); } @@ -979,7 +979,8 @@ npc_action npc::method_of_attack() !m->ammo_sufficient( m.qty ) || !can_use( *m.target ) || m->get_gun_ups_drain() > ups_charges || ( danger <= ( ( m.qty == 1 ) ? 0.0 : 0.5 ) && !emergency() ) || - ( rules.use_silent && is_following() && !m.target->is_silent() ); + ( rules.has_flag( ally_rule::use_silent ) && is_following() && + !m.target->is_silent() ); } ), modes.end() ); } @@ -1209,7 +1210,7 @@ npc_action npc::address_needs( float danger ) return npc_undecided; } - if( rules.allow_sleep || get_fatigue() > MASSIVE_FATIGUE ) { + if( rules.has_flag( ally_rule::allow_sleep ) || get_fatigue() > MASSIVE_FATIGUE ) { return npc_sleep; } else if( g->u.in_sleep_state() ) { // TODO: "Guard me while I sleep" command @@ -1660,7 +1661,7 @@ void npc::move_to( const tripoint &pt, bool no_bashing, std::set *nomo } // Close doors behind self (if you can) - if( is_friend() && rules.close_doors ) { + if( is_friend() && rules.has_flag( ally_rule::close_doors ) ) { doors::close_door( g->m, *this, old_pos ); } @@ -1882,7 +1883,7 @@ void npc::move_away_from( const std::vector &spheres, bool no_bashing ) void npc::find_item() { - if( is_following() && !rules.allow_pick_up ) { + if( is_following() && !rules.has_flag( ally_rule::allow_pick_up ) ) { // Grabbing stuff not allowed by our "owner" return; } @@ -1903,7 +1904,7 @@ void npc::find_item() const bool whitelisting = has_item_whitelist(); - if( volume_allowed <= 0 || weight_allowed <= 0 ) { + if( volume_allowed <= 0_ml || weight_allowed <= 0_gram ) { return; } @@ -2017,7 +2018,7 @@ void npc::find_item() void npc::pick_up_item() { - if( is_following() && !rules.allow_pick_up ) { + if( is_following() && !rules.has_flag( ally_rule::allow_pick_up ) ) { add_msg( m_debug, "%s::pick_up_item(); Cancelling on player's request", name.c_str() ); fetching_item = false; moves -= 1; @@ -2275,7 +2276,7 @@ void npc::drop_items( int weight, int volume ) bool npc::find_corpse_to_pulp() { - if( is_following() && ( !rules.allow_pulp || g->u.in_vehicle ) ) { + if( is_following() && ( !rules.has_flag( ally_rule::allow_pulp ) || g->u.in_vehicle ) ) { return false; } @@ -2296,7 +2297,7 @@ bool npc::find_corpse_to_pulp() if( it.can_revive() ) { // If the first encountered corpse bleeds something dangerous then // it is not safe to bash. - if( is_dangerous_field( field_entry( it.get_mtype()->bloodType(), 1, 0 ) ) ) { + if( is_dangerous_field( field_entry( it.get_mtype()->bloodType(), 1, 0_turns ) ) ) { return nullptr; } @@ -2371,8 +2372,8 @@ bool npc::do_pulp() bool npc::wield_better_weapon() { // TODO: Allow wielding weaker weapons against weaker targets - bool can_use_gun = ( !is_following() || rules.use_guns ); - bool use_silent = ( is_following() && rules.use_silent ); + bool can_use_gun = ( !is_following() || rules.has_flag( ally_rule::use_guns ) ); + bool use_silent = ( is_following() && rules.has_flag( ally_rule::use_silent ) ); invslice slice = inv.slice(); // Check if there's something better to wield @@ -2486,7 +2487,7 @@ void npc_throw( npc &np, item &it, int index, const tripoint &pos ) bool npc::alt_attack() { - if( is_following() && !rules.use_grenades ) { + if( is_following() && !rules.has_flag( ally_rule::use_grenades ) ) { return false; } @@ -3216,6 +3217,8 @@ void npc::warn_about( const std::string &type, const time_duration &d, const std snip = is_enemy() ? "" : ""; } else if( type == "kill_player" ) { snip = is_enemy() ? "" : ""; + } else if( type == "speech_noise" ) { + snip = ""; } else if( type == "combat_noise" ) { snip = ""; } else if( type == "movement_noise" ) { @@ -3224,7 +3227,8 @@ void npc::warn_about( const std::string &type, const time_duration &d, const std return; } const std::string warning_name = "warning_" + type + name; - const std::string speech = name == "" ? snip : string_format( _( "%s %s" ), snip, name ); + const std::string speech = name.empty() ? snip : + string_format( _( "%s %s" ), snip, name ); complain_about( warning_name, d, speech, is_enemy() ); } @@ -3247,7 +3251,9 @@ bool npc::complain_about( const std::string &issue, const time_duration &dur, }; // Don't wake player up with non-serious complaints - const bool do_complain = ( rules.allow_complain && !g->u.in_sleep_state() ) || force; + // Stop complaining while asleep + const bool do_complain = force || ( rules.has_flag( ally_rule::allow_complain ) && + !g->u.in_sleep_state() && !in_sleep_state() ); if( complain_since( issue, dur ) && do_complain ) { say( speech ); diff --git a/src/npctalk.cpp b/src/npctalk.cpp index 3830cd8b8a378..a402ea98ed576 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -6,12 +6,11 @@ #include #include "ammo.h" -#include "auto_pickup.h" #include "basecamp.h" #include "cata_utility.h" #include "catacharset.h" // needed for the workaround for the std::to_string bug in some compilers -#include "compatibility.h" +#include "compatibility.h" // IWYU pragma: keep #include "coordinate_conversions.h" #include "debug.h" #include "editmap.h" @@ -75,28 +74,9 @@ static std::map json_talk_topics; // Every OWED_VAL that the NPC owes you counts as +1 towards convincing #define OWED_VAL 1000 -// Some aliases to help with gen_responses -#define RESPONSE(txt) ret.push_back(talk_response());\ - ret.back().text = txt - -#define TRIAL(tr, diff) ret.back().trial.type = tr;\ - ret.back().trial.difficulty = diff - -#define SUCCESS(topic_) ret.back().success.next_topic = talk_topic( topic_ ) -#define FAILURE(topic_) ret.back().failure.next_topic = talk_topic( topic_ ) - -// trust (T), fear (F), value (V), anger(A), owed (O) { }; -#define SUCCESS_OPINION(T, F, V, A, O) ret.back().success.opinion =\ - npc_opinion(T, F, V, A, O) -#define FAILURE_OPINION(T, F, V, A, O) ret.back().failure.opinion =\ - npc_opinion(T, F, V, A, O) - -#define SUCCESS_ACTION(func) ret.back().success.set_effect( func ) -#define FAILURE_ACTION(func) ret.back().failure.set_effect( func ) - #define dbg(x) DebugLog((DebugLevel)(x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " -int topic_category( const talk_topic &topic ); +int topic_category( const talk_topic &the_topic ); const talk_topic &special_talk( char ch ); @@ -108,7 +88,7 @@ void bulk_trade_accept( npc &, const itype_id &it ); const std::string &talk_trial::name() const { static const std::array texts = { { - "", _( "LIE" ), _( "PERSUADE" ), _( "INTIMIDATE" ) + "", _( "LIE" ), _( "PERSUADE" ), _( "INTIMIDATE" ), "" } }; if( static_cast( type ) >= texts.size() ) { @@ -192,14 +172,19 @@ void game::chat() int yell_sentence = 0; int yell_guard = -1; int yell_follow = -1; + int yell_awake = -1; + int yell_sleep = -1; nmenu.addentry( yell = i++, true, 'a', _( "Yell" ) ); nmenu.addentry( yell_sentence = i++, true, 'b', _( "Yell a sentence" ) ); if( !followers.empty() ) { - nmenu.addentry( yell_guard = i++, true, 'c', _( "Tell all your allies to guard" ) ); + nmenu.addentry( yell_guard = i++, true, 'g', _( "Tell all your allies to guard" ) ); + nmenu.addentry( yell_awake = i++, true, 'w', _( "Tell all your allies to stay awake" ) ); + nmenu.addentry( yell_sleep = i++, true, 's', + _( "Tell all your allies to relax and sleep when tired" ) ); } if( !guards.empty() ) { - nmenu.addentry( yell_follow = i++, true, 'd', _( "Tell all your allies to follow" ) ); + nmenu.addentry( yell_follow = i++, true, 'f', _( "Tell all your allies to follow" ) ); } nmenu.query(); @@ -225,6 +210,16 @@ void game::chat() talk_function::assign_guard( *p ); } u.shout( _( "Guard here!" ) ); + } else if( nmenu.ret == yell_awake ) { + for( npc *p: followers ) { + talk_function::wake_up( *p ); + } + u.shout( _( "Stay awake!" ) ); + } else if( nmenu.ret == yell_sleep ) { + for( npc *p: followers ) { + p->rules.set_flag( ally_rule::allow_sleep ); + } + u.shout( _( "We're safe! Take a nap if you're tired." ) ); } else if( nmenu.ret == yell_follow ) { for( npc *p: guards ) { talk_function::stop_guard( *p ); @@ -243,12 +238,15 @@ void game::chat() void npc::handle_sound( int priority, const std::string &description, int heard_volume, const tripoint &spos ) { - if( priority == 7 || sees( spos ) ) { + if( sees( spos ) ) { return; } add_msg( m_debug, "%s heard '%s', priority %d at volume %d from %d:%d, my pos %d:%d", disp_name(), description, priority, heard_volume, spos.x, spos.y, pos().x, pos().y ); switch( priority ) { + case 7: // + warn_about( "speech_noise", rng( 1, 10 ) * 1_minutes ); + break; case 6: // combat noise is only worth comment if we're not fighting // TODO: Brave NPCs should be less jumpy if( ai_cache.total_danger < 1.0f ) { @@ -258,12 +256,12 @@ void npc::handle_sound( int priority, const std::string &description, int heard_ case 4: // movement is is only worth comment if we're not fighting and out of a vehicle if( ai_cache.total_danger < 1.0f && !in_vehicle ) { // replace with warn_about when that merges - warn_about( "footsteps", rng( 1, 10 ) * 1_minutes, description ); + warn_about( "movement_noise", rng( 1, 10 ) * 1_minutes, description ); } break; default: break; - }; + } } void npc_chatbin::check_missions() @@ -404,11 +402,13 @@ void npc::talk_to_u( bool text_only ) if( g->u.activity.id() == activity_id( "ACT_AIM" ) && !g->u.has_weapon() ) { g->u.cancel_activity(); - // Don't query if we're training the player - } else if( g->u.activity.id() != activity_id( "ACT_TRAIN" ) || - g->u.activity.index != getID() ) { - g->cancel_activity_or_ignore_query( distraction_type::talked_to, - string_format( _( "%s talked to you." ), name ) ); + // don't query certain activities that are started from dialogue + } else if((g->u.activity.id() == activity_id( "ACT_TRAIN")) || + ((g->u.activity.id() == activity_id( "ACT_WAIT_NPC")) || + ((g->u.activity.id() == activity_id( "ACT_SOCIALIZE")) || + ((g->u.activity.index == getID() ))))) { + return; + g->cancel_activity_or_ignore_query( distraction_type::talked_to, string_format( _( "%s talked to you." ), name ) ); } } @@ -477,20 +477,9 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const return _( "Bye." ); } else if( topic == "TALK_DELIVER_ASK" ) { return bulk_trade_inquire( *p, the_topic.item_type ); - } else if( topic == "TALK_SHARE_EQUIPMENT" ) { - if( p->has_effect( effect_asked_for_item ) ) { - return _( "You just asked me for stuff; ask later." ); - } - return _( "Why should I share my equipment with you?" ); - } else if( topic == "TALK_DENY_EQUIPMENT" ) { - if( p->op_of_u.anger >= p->hostile_anger_level() - 4 ) { - return _( ", and if you ask again, !" ); - } else { - return _( " !" ); - } - - } - if( topic == "TALK_TRAIN" ) { + } else if( topic == "TALK_DELIVER_CONFIRM" ) { + return _( "Pleasure doing business!" ); + } else if( topic == "TALK_TRAIN" ) { if( !g->u.backlog.empty() && g->u.backlog.front().id() == activity_id( "ACT_TRAIN" ) ) { return _( "Shall we resume?" ); } @@ -501,14 +490,11 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const } else { return _( "Here's what I can teach you..." ); } - } else if( topic == "TALK_LEADER" ) { - return _( "What is it?" ); - } else if( topic == "TALK_HOW_MUCH_FURTHER" ) { // TODO: this ignores the z-component const tripoint player_pos = p->global_omt_location(); int dist = rl_dist( player_pos, p->goal ); - std::ostringstream response; + std::string response; dist *= 100; if( dist >= 1300 ) { int miles = dist / 25; // *100, e.g. quarter mile is "25" @@ -517,65 +503,13 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const if( fullmiles <= 0 ) { fullmiles = 0; } - response << string_format( _( "%d.%d miles." ), fullmiles, miles ); + response = string_format( _( "%d.%d miles." ), fullmiles, miles ); } else { - response << string_format( ngettext( "%d foot.", "%d feet.", dist ), dist ); + response = string_format( ngettext( "%d foot.", "%d feet.", dist ), dist ); } - return response.str(); - + return response; } else if( topic == "TALK_FRIEND" ) { return _( "What is it?" ); - - } else if( topic == "TALK_DENY_TRAIN" ) { - return the_topic.reason; - - } else if( topic == "TALK_COMBAT_COMMANDS" ) { - std::stringstream status; - // Prepending * makes this an action, not a phrase - switch( p->rules.engagement ) { - case ENGAGE_NONE: - status << _( "*is not engaging enemies." ); - break; - case ENGAGE_CLOSE: - status << _( "*is engaging nearby enemies." ); - break; - case ENGAGE_WEAK: - status << _( "*is engaging weak enemies." ); - break; - case ENGAGE_HIT: - status << _( "*is engaging enemies you attack." ); - break; - case ENGAGE_NO_MOVE: - status << _( "*is engaging enemies close enough to attack without moving." ); - break; - case ENGAGE_ALL: - status << _( "*is engaging all enemies." ); - break; - } - std::string npcstr = p->male ? pgettext( "npc", "He" ) : pgettext( "npc", "She" ); - if( p->rules.use_guns ) { - if( p->rules.use_silent ) { - status << string_format( _( " %s will use silenced firearms." ), npcstr ); - } else { - status << string_format( _( " %s will use firearms." ), npcstr ); - } - } else { - status << string_format( _( " %s will not use firearms." ), npcstr ); - } - if( p->rules.use_grenades ) { - status << string_format( _( " %s will use grenades." ), npcstr ); - } else { - status << string_format( _( " %s will not use grenades." ), npcstr ); - } - - return status.str(); - - } else if( topic == "TALK_COMBAT_ENGAGEMENT" ) { - return _( "What should I do?" ); - - } else if( topic == "TALK_AIM_RULES" ) { - return _( "How should I aim?" ); - } else if( topic == "TALK_DESCRIBE_MISSION" ) { switch( p->mission ) { case NPC_MISSION_SHELTER: @@ -592,7 +526,6 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const default: return "ERROR: Someone forgot to code an npc_mission text."; } // switch (p->mission) - } else if( topic == "TALK_SHOUT" ) { alpha->shout(); if( alpha->is_deaf() ) { @@ -600,7 +533,6 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const } else { return _( "&You yell." ); } - } else if( topic == "TALK_SIZE_UP" ) { ///\EFFECT_PER affects whether player can size up NPCs @@ -614,30 +546,30 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const ability = 100; } - std::stringstream info; - info << "&"; + std::string info = "&"; int str_range = int( 100 / ability ); int str_min = int( p->str_max / str_range ) * str_range; - info << string_format( _( "Str %d - %d" ), str_min, str_min + str_range ); + info += string_format( _( "Str %d - %d" ), str_min, str_min + str_range ); if( ability >= 40 ) { int dex_range = int( 160 / ability ); int dex_min = int( p->dex_max / dex_range ) * dex_range; - info << " " << string_format( _( "Dex %d - %d" ), dex_min, dex_min + dex_range ); + info += string_format( _( " Dex %d - %d" ), dex_min, dex_min + dex_range ); } if( ability >= 50 ) { int int_range = int( 200 / ability ); int int_min = int( p->int_max / int_range ) * int_range; - info << " " << string_format( _( "Int %d - %d" ), int_min, int_min + int_range ); + info += string_format( _( " Int %d - %d" ), int_min, int_min + int_range ); } if( ability >= 60 ) { int per_range = int( 240 / ability ); int per_min = int( p->per_max / per_range ) * per_range; - info << " " << string_format( _( "Per %d - %d" ), per_min, per_min + per_range ); + info += string_format( _( " Per %d - %d" ), per_min, per_min + per_range ); } + needs_rates rates = p->calc_needs_rates(); if( ability >= 100 - ( p->get_fatigue() / 10 ) ) { std::string how_tired; if( p->get_fatigue() > EXHAUSTED ) { @@ -648,82 +580,37 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const how_tired = _( "Tired" ); } else { how_tired = _( "Not tired" ); + if( ability >= 100 ) { + time_duration sleep_at = 5_minutes * ( TIRED - p->get_fatigue() ) / + rates.fatigue; + how_tired += _( ". Will need sleep in " ) + to_string_approx( sleep_at ); + } } - - info << std::endl << how_tired; + info += "\n" + how_tired; } - - return info.str(); - - } else if( topic == "TALK_LOOK_AT" ) { - std::stringstream look; - look << "&" << p->short_description(); - return look.str(); - - } else if( topic == "TALK_OPINION" ) { - std::stringstream opinion; - opinion << "&" << p->opinion_text(); - return opinion.str(); - - } else if( topic == "TALK_WAKE_UP" ) { - if( p->has_effect( effect_sleep ) ) { - if( p->get_fatigue() > EXHAUSTED ) { - return _( "No, just no..." ); - } else if( p->get_fatigue() > DEAD_TIRED ) { - return _( "Just let me sleep, !" ); - } else if( p->get_fatigue() > TIRED ) { - return _( "Make it quick, I want to go back to sleep." ); + if( ability >= 100 ) { + if( p->get_thirst() < 100 ) { + time_duration thirst_at = 5_minutes * ( 100 - p->get_thirst() ) / rates.thirst; + if( thirst_at > 1_hours ) { + info += _( "\nWill need water in " ) + to_string_approx( thirst_at ); + } } else { - return _( "Just few minutes more..." ); + info += _( "\nThirsty" ); + } + if( p->get_hunger() < 100 ) { + time_duration hunger_at = 5_minutes * ( 100 - p->get_hunger() ) / rates.hunger; + if( hunger_at > 1_hours ) { + info += _( "\nWill need food in " ) + to_string_approx( hunger_at ); + } + } else { + info += _( "\nHungry" ); } - } else { - return _( "Anything to do before I go to sleep?" ); - } - - } else if( topic == "TALK_MISC_RULES" ) { - std::stringstream status; - std::string npcstr = p->male ? pgettext( "npc", "He" ) : pgettext( "npc", "She" ); - - if( p->rules.allow_pick_up && p->rules.pickup_whitelist->empty() ) { - status << string_format( _( " %s will pick up all items." ), npcstr ); - } else if( p->rules.allow_pick_up ) { - status << string_format( _( " %s will pick up items from the whitelist." ), npcstr ); - } else { - status << string_format( _( " %s will not pick up items." ), npcstr ); - } - - if( p->rules.allow_bash ) { - status << string_format( _( " %s will bash down obstacles." ), npcstr ); - } else { - status << string_format( _( " %s will not bash down obstacles." ), npcstr ); - } - - if( p->rules.allow_sleep ) { - status << string_format( _( " %s will sleep when tired." ), npcstr ); - } else { - status << string_format( _( " %s will sleep only when exhausted." ), npcstr ); - } - - if( p->rules.allow_complain ) { - status << string_format( _( " %s will complain about wounds and needs." ), npcstr ); - } else { - status << string_format( _( " %s will only complain in an emergency." ), npcstr ); - } - - if( p->rules.allow_pulp ) { - status << string_format( _( " %s will smash nearby zombie corpses." ), npcstr ); - } else { - status << string_format( _( " %s will leave zombie corpses intact." ), npcstr ); - } - - if( p->rules.close_doors ) { - status << string_format( _( " %s will close doors behind themselves." ), npcstr ); - } else { - status << string_format( _( " %s will leave doors open." ), npcstr ); } - - return status.str(); - + return info; + } else if( topic == "TALK_LOOK_AT" ) { + return "&" + p->short_description(); + } else if( topic == "TALK_OPINION" ) { + return "&" + p->opinion_text(); } else if( topic == "TALK_USE_ITEM" ) { return give_item_to( *p, true, false ); } else if( topic == "TALK_GIVE_ITEM" ) { @@ -743,7 +630,10 @@ talk_response &dialogue::add_response( const std::string &text, const std::strin const bool first ) { talk_response result = talk_response(); - result.text = text; + result.truetext = text; + result.truefalse_condition = []( const dialogue & ) { + return true; + }; result.success.next_topic = talk_topic( r ); if( first ) { responses.insert( responses.begin(), result ); @@ -834,9 +724,6 @@ void dialogue::gen_responses( const talk_topic &the_topic ) } } - // Can be nullptr! Check before dereferencing - mission *miss = p->chatbin.mission_selected; - if( topic == "TALK_MISSION_LIST" ) { if( p->chatbin.missions.size() == 1 ) { add_response( _( "Tell me about it." ), "TALK_MISSION_OFFER", @@ -854,92 +741,6 @@ void dialogue::gen_responses( const talk_topic &the_topic ) add_response( miss_it->get_type().name, "TALK_MISSION_INQUIRE", miss_it ); } } - } else if( topic == "TALK_MISSION_INQUIRE" ) { - if( miss == nullptr ) { - debugmsg( "dialogue::gen_responses(\"TALK_MISSION_INQUIRE\") called for null mission" ); - } else if( miss->has_failed() ) { - RESPONSE( _( "I'm sorry... I failed." ) ); - SUCCESS( "TALK_MISSION_FAILURE" ); - SUCCESS_OPINION( -1, 0, -1, 1, 0 ); - RESPONSE( _( "Not yet." ) ); - TRIAL( TALK_TRIAL_LIE, 10 + p->op_of_u.trust * 3 ); - SUCCESS( "TALK_NONE" ); - FAILURE( "TALK_MISSION_FAILURE" ); - FAILURE_OPINION( -3, 0, -1, 2, 0 ); - } else if( !miss->is_complete( p->getID() ) ) { - add_response_none( _( "Not yet." ) ); - if( miss->get_type().goal == MGOAL_KILL_MONSTER ) { - RESPONSE( _( "Yup, I killed it." ) ); - TRIAL( TALK_TRIAL_LIE, 10 + p->op_of_u.trust * 5 ); - SUCCESS( "TALK_MISSION_SUCCESS" ); - SUCCESS_ACTION( &talk_function::mission_success ); - FAILURE( "TALK_MISSION_SUCCESS_LIE" ); - FAILURE_OPINION( -5, 0, -1, 5, 0 ); - FAILURE_ACTION( &talk_function::mission_failure ); - } - add_response_done( _( "No. I'll get back to it, bye!" ) ); - } else { - // TODO: Lie about mission - std::string msg; - switch( miss->get_type().goal ) { - case MGOAL_FIND_ITEM: - case MGOAL_FIND_ANY_ITEM: - msg = _( "Yup! Here it is!" ); - break; - case MGOAL_GO_TO_TYPE: - msg = _( "We're here!" ); - break; - case MGOAL_GO_TO: - case MGOAL_FIND_NPC: - msg = _( "Here I am." ); - break; - case MGOAL_FIND_MONSTER: - msg = _( "Here it is!" ); - break; - case MGOAL_ASSASSINATE: - msg = _( "Justice has been served." ); - break; - case MGOAL_KILL_MONSTER: - msg = _( "I killed it." ); - break; - case MGOAL_RECRUIT_NPC: - case MGOAL_RECRUIT_NPC_CLASS: - msg = _( "I brought'em." ); - break; - case MGOAL_COMPUTER_TOGGLE: - msg = _( "I've taken care of it..." ); - break; - default: - msg = _( "Mission success! I don't know what else to say." ); - break; - } - add_response( msg, "TALK_MISSION_SUCCESS", &talk_function::mission_success ); - } - } else if( topic == "TALK_MISSION_SUCCESS" ) { - int mission_value = 0; - if( miss == nullptr ) { - debugmsg( "dialogue::gen_responses(\"TALK_MISSION_SUCCESS\") called for null mission" ); - } else { - mission_value = cash_to_favor( *p, miss->get_value() ); - } - RESPONSE( _( "Glad to help. I need no payment." ) ); - SUCCESS( "TALK_NONE" ); - SUCCESS_OPINION( mission_value / 4, -1, - mission_value / 3, -1, 0 ); - SUCCESS_ACTION( &talk_function::clear_mission ); - if( !p->is_friend() ) { - add_response( _( "How about some items as payment?" ), "TALK_MISSION_REWARD", - &talk_function::mission_reward ); - } - if( !p->skills_offered_to( g->u ).empty() || !p->styles_offered_to( g->u ).empty() ) { - RESPONSE( _( "Maybe you can teach me something as payment." ) ); - SUCCESS( "TALK_TRAIN" ); - } - RESPONSE( _( "Glad to help. I need no payment. Bye!" ) ); - SUCCESS( "TALK_DONE" ); - SUCCESS_ACTION( &talk_function::clear_mission ); - SUCCESS_OPINION( mission_value / 4, -1, - mission_value / 3, -1, 0 ); } else if( topic == "TALK_FREE_MERCHANT_STOCKS" ) { add_response( _( "Who are you?" ), "TALK_FREE_MERCHANT_STOCKS_NEW", true ); static const std::vector wanted = {{ @@ -969,56 +770,6 @@ void dialogue::gen_responses( const talk_topic &the_topic ) if( g->u.charges_of( "bandages" ) > 0 ) { add_response( _( "Delivering bandages." ), "TALK_DELIVER_ASK", itype_id( "bandages" ) ); } - } else if( topic == "TALK_SHARE_EQUIPMENT" ) { - if( p->has_effect( effect_asked_for_item ) ) { - add_response_none( _( "Okay, fine." ) ); - } else { - int score = p->op_of_u.trust + p->op_of_u.value * 3 + - p->personality.altruism * 2; - int missions_value = p->assigned_missions_value(); - if( g->u.has_amount( "mininuke", 1 ) ) { - RESPONSE( _( "Because I'm holding a thermal detonator!" ) ); - SUCCESS( "TALK_GIVE_EQUIPMENT" ); - SUCCESS_ACTION( &talk_function::give_equipment ); - SUCCESS_OPINION( 0, 0, -1, 0, score * 300 ); - FAILURE( "TALK_DENY_EQUIPMENT" ); - FAILURE_OPINION( 0, 0, -1, 0, 0 ); - } - RESPONSE( _( "Because I'm your friend!" ) ); - TRIAL( TALK_TRIAL_PERSUADE, 10 + score ); - SUCCESS( "TALK_GIVE_EQUIPMENT" ); - SUCCESS_ACTION( &talk_function::give_equipment ); - SUCCESS_OPINION( 0, 0, -1, 0, score * 300 ); - FAILURE( "TALK_DENY_EQUIPMENT" ); - FAILURE_OPINION( 0, 0, -1, 0, 0 ); - if( missions_value >= 1 ) { - RESPONSE( _( "Well, I am helping you out..." ) ); - TRIAL( TALK_TRIAL_PERSUADE, 12 + ( .8 * score ) + missions_value / OWED_VAL ); - SUCCESS( "TALK_GIVE_EQUIPMENT" ); - SUCCESS_ACTION( &talk_function::give_equipment ); - FAILURE( "TALK_DENY_EQUIPMENT" ); - FAILURE_OPINION( 0, 0, -1, 0, 0 ); - } - RESPONSE( _( "I'll give it back!" ) ); - TRIAL( TALK_TRIAL_LIE, score * 1.5 ); - SUCCESS( "TALK_GIVE_EQUIPMENT" ); - SUCCESS_ACTION( &talk_function::give_equipment ); - SUCCESS_OPINION( 0, 0, -1, 0, score * 300 ); - FAILURE( "TALK_DENY_EQUIPMENT" ); - FAILURE_OPINION( 0, -1, -1, 1, 0 ); - RESPONSE( _( "Give it to me, or else!" ) ); - TRIAL( TALK_TRIAL_INTIMIDATE, 40 ); - SUCCESS( "TALK_GIVE_EQUIPMENT" ); - SUCCESS_ACTION( &talk_function::give_equipment ); - SUCCESS_OPINION( -3, 2, -2, 2, - ( g->u.intimidation() + p->op_of_u.fear - - p->personality.bravery - p->intimidation() ) * 500 ); - FAILURE( "TALK_DENY_EQUIPMENT" ); - FAILURE_OPINION( -3, 1, -3, 5, 0 ); - add_response_none( _( "Eh, never mind." ) ); - add_response_done( _( "Never mind, I'll do without. Bye." ) ); - } - } else if( topic == "TALK_TRAIN" ) { if( !g->u.backlog.empty() && g->u.backlog.front().id() == activity_id( "ACT_TRAIN" ) ) { player_activity &backlog = g->u.backlog.front(); @@ -1061,213 +812,9 @@ void dialogue::gen_responses( const talk_topic &the_topic ) add_response( text, "TALK_TRAIN_START", trained ); } add_response_none( _( "Eh, never mind." ) ); - } else if( topic == "TALK_HOW_MUCH_FURTHER" ) { add_response_none( _( "Okay, thanks." ) ); add_response_done( _( "Let's keep moving." ) ); - - } else if( topic == "TALK_FRIEND" || topic == "TALK_GIVE_ITEM" || topic == "TALK_USE_ITEM" ) { - if( p->is_following() ) { - add_response( _( "Combat commands..." ), "TALK_COMBAT_COMMANDS" ); - } - - add_response( _( "Can I do anything for you?" ), "TALK_MISSION_LIST" ); - if( p->is_following() ) { - // TODO: Allow NPCs to break training properly - // Don't allow them to walk away in the middle of training - std::stringstream reasons; - if( const optional_vpart_position vp = g->m.veh_at( p->pos() ) ) { - if( abs( vp->vehicle().velocity ) > 0 ) { - reasons << _( "I can't train you properly while you're operating a vehicle!" ) << std::endl; - } - } - - if( p->has_effect( effect_asked_to_train ) ) { - reasons << _( "Give it some time, I'll show you something new later..." ) << std::endl; - } - - if( p->get_thirst() > 80 ) { - reasons << _( "I'm too thirsty, give me something to drink." ) << std::endl; - } - - if( p->get_hunger() > 160 ) { - reasons << _( "I'm too hungry, give me something to eat." ) << std::endl; - } - - if( p->get_fatigue() > TIRED ) { - reasons << _( "I'm too tired, let me rest first." ) << std::endl; - } - - if( !reasons.str().empty() ) { - RESPONSE( _( "[N/A] Can you teach me anything?" ) ); - SUCCESS( "TALK_DENY_TRAIN" ); - ret.back().success.next_topic.reason = reasons.str(); - } else { - RESPONSE( _( "Can you teach me anything?" ) ); - int commitment = 3 * p->op_of_u.trust + 1 * p->op_of_u.value - - 3 * p->op_of_u.anger; - TRIAL( TALK_TRIAL_PERSUADE, commitment * 2 ); - SUCCESS( "TALK_TRAIN" ); - SUCCESS_ACTION( []( npc &p ) { p.chatbin.mission_selected = nullptr; } ); - FAILURE( "TALK_DENY_PERSONAL" ); - FAILURE_ACTION( &talk_function::deny_train ); - } - } - add_response( _( "Let's trade items." ), "TALK_FRIEND", &talk_function::start_trade ); - if( p->is_following() && g->m.camp_at( g->u.pos() ) ) { - add_response( _( "Wait at this base." ), "TALK_DONE", &talk_function::assign_base ); - } - if( p->is_following() ) { - RESPONSE( _( "Guard this position." ) ); - SUCCESS( "TALK_FRIEND_GUARD" ); - SUCCESS_ACTION( &talk_function::assign_guard ); - - RESPONSE( _( "I'd like to know a bit more about you..." ) ); - SUCCESS( "TALK_FRIEND" ); - SUCCESS_ACTION( &talk_function::reveal_stats ); - - add_response( _( "I want you to use this item" ), "TALK_USE_ITEM" ); - add_response( _( "Hold on to this item" ), "TALK_GIVE_ITEM" ); - add_response( _( "Miscellaneous rules..." ), "TALK_MISC_RULES" ); - - add_response( _( "I'm going to go my own way for a while." ), "TALK_LEAVE" ); - add_response_done( _( "Let's go." ) ); - - add_response( _( "Let's talk about faction camps." ), "TALK_CAMP_GENERAL" ); - } - - if( !p->is_following() ) { - add_response( _( "I need you to come with me." ), "TALK_FRIEND", - &talk_function::stop_guard ); - add_response_done( _( "Bye." ) ); - } - - } else if( topic == "TALK_COMBAT_COMMANDS" ) { - add_response( _( "Change your engagement rules..." ), "TALK_COMBAT_ENGAGEMENT" ); - add_response( _( "Change your aiming rules..." ), "TALK_AIM_RULES" ); - add_response( p->rules.use_guns ? _( "Don't use guns anymore." ) : - _( "You can use guns." ), - "TALK_COMBAT_COMMANDS", []( npc & np ) { - np.rules.use_guns = !np.rules.use_guns; - } ); - add_response( p->rules.use_silent ? _( "Don't worry about noise." ) : - _( "Use only silent weapons." ), - "TALK_COMBAT_COMMANDS", []( npc & np ) { - np.rules.use_silent = !np.rules.use_silent; - } ); - add_response( p->rules.use_grenades ? _( "Don't use grenades anymore." ) : - _( "You can use grenades." ), - "TALK_COMBAT_COMMANDS", []( npc & np ) { - np.rules.use_grenades = !np.rules.use_grenades; - } ); - add_response_none( _( "Never mind." ) ); - - } else if( topic == "TALK_COMBAT_ENGAGEMENT" ) { - struct engagement_setting { - combat_engagement rule; - std::string description; - }; - static const std::vector engagement_settings = {{ - { ENGAGE_NONE, _( "Don't fight unless your life depends on it." ) }, - { ENGAGE_CLOSE, _( "Attack enemies that get too close." ) }, - { ENGAGE_WEAK, _( "Attack enemies that you can kill easily." ) }, - { ENGAGE_HIT, _( "Attack only enemies that I attack first." ) }, - { ENGAGE_NO_MOVE, _( "Attack only enemies you can reach without moving." ) }, - { ENGAGE_ALL, _( "Attack anything you want." ) }, - } - }; - - for( const auto &setting : engagement_settings ) { - if( p->rules.engagement == setting.rule ) { - continue; - } - - combat_engagement eng = setting.rule; - add_response( setting.description, "TALK_NONE", [eng]( npc & np ) { - np.rules.engagement = eng; - }, dialogue_consequence::none ); - } - add_response_none( _( "Never mind." ) ); - - } else if( topic == "TALK_AIM_RULES" ) { - struct aim_setting { - aim_rule rule; - std::string description; - }; - static const std::vector aim_settings = {{ - { AIM_WHEN_CONVENIENT, _( "Aim when it's convenient." ) }, - { AIM_SPRAY, _( "Go wild, you don't need to aim much." ) }, - { AIM_PRECISE, _( "Take your time, aim carefully." ) }, - { AIM_STRICTLY_PRECISE, _( "Don't shoot if you can't aim really well." ) }, - } - }; - - for( const auto &setting : aim_settings ) { - if( p->rules.aim == setting.rule ) { - continue; - } - - aim_rule ar = setting.rule; - add_response( setting.description, "TALK_NONE", [ar]( npc & np ) { - np.rules.aim = ar; - }, dialogue_consequence::none ); - } - add_response_none( _( "Never mind." ) ); - - } else if( topic == "TALK_SIZE_UP" || topic == "TALK_LOOK_AT" || - topic == "TALK_OPINION" || topic == "TALK_SHOUT" ) { - add_response_none( _( "Okay." ) ); - - } else if( topic == "TALK_WAKE_UP" ) { - add_response( _( "Wake up!" ), "TALK_NONE", &talk_function::wake_up ); - add_response_done( _( "Go back to sleep." ) ); - - } else if( topic == "TALK_MISC_RULES" ) { - add_response( _( "Follow same rules as this follower." ), - "TALK_MISC_RULES", []( npc & np ) { - const npc *other = pick_follower(); - if( other != nullptr && other != &np ) { - np.rules = other->rules; - } - } ); - add_response( p->rules.allow_pick_up ? _( "Don't pick up items." ) : - _( "You can pick up items now." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.allow_pick_up = !np.rules.allow_pick_up; - } ); - add_response( p->rules.allow_bash ? _( "Don't bash obstacles." ) : - _( "You can bash obstacles." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.allow_bash = !np.rules.allow_bash; - } ); - add_response( p->rules.allow_sleep ? _( "Stay awake." ) : - _( "Sleep when you feel tired." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.allow_sleep = !np.rules.allow_sleep; - } ); - add_response( p->rules.allow_complain ? _( "Stay quiet." ) : - _( "Tell me when you need something." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.allow_complain = !np.rules.allow_complain; - } ); - add_response( p->rules.allow_pulp ? _( "Leave corpses alone." ) : - _( "Smash zombie corpses." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.allow_pulp = !np.rules.allow_pulp; - } ); - add_response( p->rules.close_doors ? _( "Leave doors open." ) : - _( "Close the doors." ), - "TALK_MISC_RULES", []( npc & np ) { - np.rules.close_doors = !np.rules.close_doors; - } ); - - add_response( _( "Set up pickup rules." ), "TALK_MISC_RULES", []( npc & np ) { - const std::string title = string_format( _( "Pickup rules for %s" ), np.name ); - np.rules.pickup_whitelist->show( title, false ); - } ); - - add_response_none( _( "Never mind." ) ); - } if( g->u.has_trait( trait_DEBUG_MIND_CONTROL ) && !p->is_friend() ) { @@ -1282,7 +829,7 @@ void dialogue::gen_responses( const talk_topic &the_topic ) int parse_mod( const dialogue &d, const std::string &attribute, const int factor ) { - // player &u = *d.alpha; + player &u = *d.alpha; npc &p = *d.beta; int modifier = 0; if( attribute == "ANGER" ) { @@ -1292,7 +839,7 @@ int parse_mod( const dialogue &d, const std::string &attribute, const int factor } else if( attribute == "TRUST" ) { modifier = p.op_of_u.trust; } else if( attribute == "VALUE" ) { - modifier = p.op_of_u.trust; + modifier = p.op_of_u.value; } else if( attribute == "POS_FEAR" ) { modifier = std::max( 0, p.op_of_u.fear ); } else if( attribute == "AGGRESSION" ) { @@ -1303,6 +850,12 @@ int parse_mod( const dialogue &d, const std::string &attribute, const int factor modifier = p.personality.bravery; } else if( attribute == "COLLECTOR" ) { modifier = p.personality.collector; + } else if( attribute == "MISSIONS" ) { + modifier = p.assigned_missions_value() / OWED_VAL; + } else if( attribute == "U_INTIMIDATE" ) { + modifier = u.intimidation(); + } else if( attribute == "NPC_INTIMIDATE" ) { + modifier = p.intimidation(); } modifier *= factor; return modifier; @@ -1319,7 +872,6 @@ int talk_trial::calc_chance( const dialogue &d ) const npc &p = *d.beta; int chance = difficulty; switch( type ) { - case TALK_TRIAL_NONE: case NUM_TALK_TRIALS: dbg( D_ERROR ) << "called calc_chance with invalid talk_trial value: " << type; break; @@ -1368,6 +920,12 @@ int talk_trial::calc_chance( const dialogue &d ) const chance += 20; } break; + case TALK_TRIAL_NONE: + chance = 100; + break; + case TALK_TRIAL_CONDITION: + chance = condition( d ) ? 100 : 0; + break; } for( auto this_mod: modifiers ) { chance += parse_mod( d, this_mod.first, this_mod.second ); @@ -1577,7 +1135,14 @@ void talk_function::remove_overseer( npc &p ) add_msg( _( "%s has abandoned the camp." ), p.name ); p.companion_mission_role_id.clear(); - stop_guard(p); + + std::set::iterator it; + it = g->u.camps.find( p.global_omt_location() ); + if( it != g->u.camps.end() ) { + g->u.camps.erase( it ); + } + + stop_guard( p ); } void parse_tags( std::string &phrase, const player &u, const player &me ) @@ -1630,6 +1195,9 @@ void parse_tags( std::string &phrase, const player &u, const player &me ) phrase.replace( fa, l, pgettext( "punctuation", "!" ) ); break; } + } else if( tag == "" ) { + std::string npcstr = me.male ? pgettext( "npc", "He" ) : pgettext( "npc", "She" ); + phrase.replace( fa, l, npcstr ); } else if( !tag.empty() ) { debugmsg( "Bad tag. '%s' (%d - %d)", tag.c_str(), fa, fb ); phrase.replace( fa, fb - fa + 1, "????" ); @@ -1650,18 +1218,17 @@ void dialogue::add_topic( const talk_topic &topic ) talk_data talk_response::create_option_line( const dialogue &d, const char letter ) { std::string ftext; - if( trial != TALK_TRIAL_NONE ) { // dialogue w/ a % chance to work - ftext = string_format( pgettext( "talk option", "%1$c: [%2$s %3$d%%] %4$s" ), - letter, // option letter - trial.name(), // trial type - trial.calc_chance( d ), // trial % chance - text // response - ); - } else { // regular dialogue - ftext = string_format( pgettext( "talk option", "%1$c: %2$s" ), - letter, // option letter - text // response - ); + 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 + //~ %1$c is an option letter and shouldn't be translated, %2$s is translated response text + ftext = string_format( pgettext( "talk option", "%1$c: %2$s" ), letter, text ); + } else { + // dialogue w/ a % chance to work + //~ %1$c is an option letter and shouldn't be translated, %2$s is translated trial type, %3$d is a number, and %4$s is the translated response text + ftext = string_format( pgettext( "talk option", "%1$c: [%2$s %3$d%%] %4$s" ), letter, + trial.name(), trial.calc_chance( d ), text ); } parse_tags( ftext, *d.alpha, *d.beta ); @@ -1794,7 +1361,7 @@ talk_topic dialogue::opt( dialogue_window &d_win, const talk_topic &topic ) talk_response chosen = responses[ch]; std::string response_printed = string_format( pgettext( "you say something", "You: %s" ), - chosen.text ); + response_lines[ch].second.substr( 3 ) ); d_win.add_to_history( response_printed ); if( chosen.mission_selected != nullptr ) { @@ -1823,7 +1390,8 @@ talk_trial::talk_trial( JsonObject jo ) WRAP( NONE ), WRAP( LIE ), WRAP( PERSUADE ), - WRAP( INTIMIDATE ) + WRAP( INTIMIDATE ), + WRAP( CONDITION ) #undef WRAP } }; @@ -1832,11 +1400,14 @@ talk_trial::talk_trial( JsonObject jo ) jo.throw_error( "invalid talk trial type", "type" ); } type = iter->second; - if( type != TALK_TRIAL_NONE ) { + if( !( type == TALK_TRIAL_NONE || type == TALK_TRIAL_CONDITION ) ) { difficulty = jo.get_int( "difficulty" ); } + + read_dialogue_condition( jo, condition, false ); + if( jo.has_array( "mod" ) ) { - JsonArray ja = jo.get_array( "mod " ); + JsonArray ja = jo.get_array( "mod" ); while( ja.has_more() ) { JsonArray jmod = ja.next_array(); trial_mod this_modifier; @@ -1961,16 +1532,16 @@ void talk_effect_fun_t::set_u_sell_item( const std::string &item_name, int cost, function = [item_name, cost, count]( const dialogue &d ) { npc &p = *d.beta; player &u = *d.alpha; - item old_item( item_name, calendar::turn ); - for( int i = 0; i < count; i++ ) { - int item_at = u.inv.position_by_type( item_name ); - if( item_at == INT_MIN ) { - popup( _( "You don't have a %1$s!" ), old_item.tname() ); - return; - } - old_item = u.i_rem( item_at ); - p.i_add( old_item ); + item old_item( item_name ); + if( u.has_charges( item_name, count ) ) { + u.use_charges( item_name, count ); + } else if( u.has_amount( item_name, count ) ) { + u.use_amount( item_name, count ); + } else { + popup( _( "You don't have a %1$s!" ), old_item.tname() ); + return; } + if( count == 1 ) { //~ %1%s is the NPC name, %2$s is an item popup( _( "You give %1$s a %2$s" ), p.name, old_item.tname() ); @@ -2007,6 +1578,52 @@ void talk_effect_fun_t::set_change_faction_rep( int rep_change ) }; } +void talk_effect_fun_t::set_add_debt( const std::vector debt_modifiers ) +{ + function = [debt_modifiers]( const dialogue &d ) { + int debt = 0; + for( const trial_mod &this_mod: debt_modifiers ) { + if( this_mod.first == "TOTAL" ) { + debt *= this_mod.second; + } else { + debt += parse_mod( d, this_mod.first, this_mod.second ); + } + } + d.beta->op_of_u += npc_opinion( 0, 0, 0, 0, debt ); + }; +} + +void talk_effect_fun_t::set_toggle_npc_rule( const std::string &rule ) +{ + function = [rule]( const dialogue &d ) { + auto toggle = ally_rule_strs.find( rule ); + if( toggle == ally_rule_strs.end() ) { + return; + } + d.beta->rules.toggle_flag( toggle->second ); + }; +} + +void talk_effect_fun_t::set_npc_engagement_rule( const std::string &setting ) +{ + function = [setting]( const dialogue &d ) { + auto rule = combat_engagement_strs.find( setting ); + if( rule != combat_engagement_strs.end() ) { + d.beta->rules.engagement = rule->second; + } + }; +} + +void talk_effect_fun_t::set_npc_aim_rule( const std::string &setting ) +{ + function = [setting]( const dialogue &d ) { + auto rule = aim_rule_strs.find( setting ); + if( rule != aim_rule_strs.end() ) { + d.beta->rules.aim = rule->second; + } + }; +} + void talk_effect_t::set_effect_consequence( const talk_effect_fun_t &fun, dialogue_consequence con ) { effects.push_back( fun ); @@ -2020,7 +1637,7 @@ void talk_effect_t::set_effect_consequence( std::function ptr, set_effect_consequence( npctalk_setter, con ); } -void talk_effect_t::set_effect( talk_effect_fun_t fun ) +void talk_effect_t::set_effect( const talk_effect_fun_t &fun ) { effects.push_back( fun ); guaranteed_consequence = std::max( guaranteed_consequence, dialogue_consequence::none ); @@ -2044,10 +1661,26 @@ void talk_effect_t::set_effect( talkfunction_ptr ptr ) talk_topic talk_effect_t::apply( dialogue &d ) const { + // Need to get a reference to the mission before effects are applied, because effects can remove the mission + mission *miss = d.beta->chatbin.mission_selected; + for( const talk_effect_fun_t &effect: effects ) { effect( d ); } d.beta->op_of_u += opinion; + if( miss && ( mission_opinion.trust || mission_opinion.fear || + mission_opinion.value || mission_opinion.anger ) ) { + int m_value = cash_to_favor( *d.beta, miss->get_value() ); + npc_opinion mod = npc_opinion( mission_opinion.trust ? + m_value / mission_opinion.trust : 0, + mission_opinion.fear ? + m_value / mission_opinion.fear : 0, + mission_opinion.value ? + m_value / mission_opinion.value : 0, + mission_opinion.anger ? + m_value / mission_opinion.anger : 0, 0 ); + d.beta->op_of_u += mod; + } if( d.beta->turned_hostile() ) { d.beta->make_angry(); return talk_topic( "TALK_DONE" ); @@ -2080,6 +1713,11 @@ talk_effect_t::talk_effect_t( JsonObject jo ) // Same format as when saving a game (-: opinion.deserialize( *ji ); } + if( jo.has_member( "mission_opinion" ) ) { + JsonIn *ji = jo.get_raw( "mission_opinion" ); + // Same format as when saving a game (-: + mission_opinion.deserialize( *ji ); + } } void talk_effect_t::parse_sub_effect( JsonObject jo ) @@ -2090,16 +1728,29 @@ void talk_effect_t::parse_sub_effect( JsonObject jo ) subeffect_fun.set_companion_mission( role_id ); } else if( jo.has_string( "u_add_effect" ) ) { std::string new_effect = jo.get_string( "u_add_effect" ); - if( jo.has_string( "duration" ) && jo.get_string( "duration" ) == "PERMANENT" ) { - subeffect_fun.set_u_add_permanent_effect( new_effect ); + if( jo.has_string( "duration" ) ) { + const std::string dur_string = jo.get_string( "duration" ); + if( dur_string == "PERMANENT" ) { + subeffect_fun.set_u_add_permanent_effect( new_effect ); + } else if( !dur_string.empty() && std::stoi( dur_string ) > 0 ) { + int duration = std::stoi( dur_string ); + subeffect_fun.set_u_add_effect( new_effect, time_duration::from_turns( duration ) ); + } } else { subeffect_fun.set_u_add_effect( new_effect, time_duration::from_turns( jo.get_int( "duration" ) ) ); } } else if( jo.has_string( "npc_add_effect" ) ) { std::string new_effect = jo.get_string( "npc_add_effect" ); - if( jo.has_string( "duration" ) && jo.get_string( "duration" ) == "PERMANENT" ) { - subeffect_fun.set_npc_add_permanent_effect( new_effect ); + if( jo.has_string( "duration" ) ) { + const std::string dur_string = jo.get_string( "duration" ); + if( dur_string == "PERMANENT" ) { + subeffect_fun.set_npc_add_permanent_effect( new_effect ); + } else if( !dur_string.empty() && std::stoi( dur_string ) > 0 ) { + int duration = std::stoi( dur_string ); + subeffect_fun.set_npc_add_effect( new_effect, + time_duration::from_turns( duration ) ); + } } else { subeffect_fun.set_npc_add_effect( new_effect, time_duration::from_turns( jo.get_int( "duration" ) ) ); @@ -2145,6 +1796,26 @@ void talk_effect_t::parse_sub_effect( JsonObject jo ) } else if( jo.has_int( "u_faction_rep" ) ) { int faction_rep = jo.get_int( "u_faction_rep" ); subeffect_fun.set_change_faction_rep( faction_rep ); + } else if( jo.has_array( "add_debt" ) ) { + std::vector debt_modifiers; + JsonArray ja = jo.get_array( "add_debt" ); + while( ja.has_more() ) { + JsonArray jmod = ja.next_array(); + trial_mod this_modifier; + this_modifier.first = jmod.next_string(); + this_modifier.second = jmod.next_int(); + debt_modifiers.push_back( this_modifier ); + } + subeffect_fun.set_add_debt( debt_modifiers ); + } else if( jo.has_string( "toggle_npc_rule" ) ) { + const std::string rule = jo.get_string( "toggle_npc_rule" ); + subeffect_fun.set_toggle_npc_rule( rule ); + } else if( jo.has_string( "set_npc_engagement_rule" ) ) { + const std::string setting = jo.get_string( "set_npc_engagement_rule" ); + subeffect_fun.set_npc_engagement_rule( setting ); + } else if( jo.has_string( "set_npc_aim_rule" ) ) { + const std::string setting = jo.get_string( "set_npc_aim_rule" ); + subeffect_fun.set_npc_aim_rule( setting ); } else { jo.throw_error( "invalid sub effect syntax :" + jo.str() ); } @@ -2177,6 +1848,8 @@ void talk_effect_t::parse_string_effect( const std::string &type, JsonObject &jo WRAP( give_all_aid ), WRAP( buy_haircut ), WRAP( buy_shave ), + WRAP( morale_chat ), + WRAP( morale_chat_activity ), WRAP( buy_10_logs ), WRAP( buy_100_logs ), WRAP( bionic_install ), @@ -2198,6 +1871,8 @@ void talk_effect_t::parse_string_effect( const std::string &type, JsonObject &jo WRAP( player_weapon_drop ), WRAP( lead_to_safety ), WRAP( start_training ), + WRAP( copy_npc_rules ), + WRAP( set_npc_pickup ), WRAP( nothing ) #undef WRAP } @@ -2240,6 +1915,16 @@ void talk_effect_t::load_effect( JsonObject &jo ) } } +talk_response::talk_response() +{ + truefalse_condition = []( const dialogue & ) { + return true; + }; + mission_selected = nullptr; + skill = skill_id::NULL_ID(); + style = matype_id::NULL_ID(); +} + talk_response::talk_response( JsonObject jo ) { if( jo.has_member( "trial" ) ) { @@ -2260,7 +1945,17 @@ talk_response::talk_response( JsonObject jo ) if( jo.has_member( "failure" ) ) { failure = talk_effect_t( jo.get_object( "failure" ) ); } - text = _( jo.get_string( "text" ) ); + if( jo.has_member( "truefalsetext" ) ) { + JsonObject truefalse_jo = jo.get_object( "truefalsetext" ); + read_dialogue_condition( truefalse_jo, truefalse_condition, true ); + truetext = _( truefalse_jo.get_string( "true" ) ); + falsetext = _( truefalse_jo.get_string( "false" ) ); + } else { + truetext = _( jo.get_string( "text" ) ); + truefalse_condition = []( const dialogue & ) { + return true; + }; + } // TODO: mission_selected // TODO: skill // TODO: style @@ -2272,6 +1967,33 @@ 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 ); + } +} + conditional_t::conditional_t( JsonObject jo ) { const auto parse_array = []( JsonObject jo, const std::string &type ) { @@ -2359,11 +2081,17 @@ conditional_t::conditional_t( JsonObject jo ) } else if( jo.has_member( "u_has_trait_flag" ) ) { std::string trait_flag_to_check = jo.get_string( "u_has_trait_flag" ); condition = [trait_flag_to_check]( const dialogue & d ) { - return d.beta->has_trait_flag( trait_flag_to_check ); + if( trait_flag_to_check == "MUTATION_THRESHOLD" ) { + return d.alpha->crossed_threshold(); + } + return d.alpha->has_trait_flag( trait_flag_to_check ); }; } else if( jo.has_member( "npc_has_trait_flag" ) ) { std::string trait_flag_to_check = jo.get_string( "npc_has_trait_flag" ); condition = [trait_flag_to_check]( const dialogue & d ) { + if( trait_flag_to_check == "MUTATION_THRESHOLD" ) { + return d.beta->crossed_threshold(); + } return d.beta->has_trait_flag( trait_flag_to_check ); }; } else if( jo.has_member( "npc_has_class" ) ) { @@ -2409,8 +2137,7 @@ conditional_t::conditional_t( JsonObject jo ) } else if( jo.has_string( "u_has_item" ) ) { const std::string item_id = jo.get_string( "u_has_item" ); condition = [item_id]( const dialogue & d ) { - return d.alpha->inv.position_by_type( item_id ) != INT_MIN || - d.alpha->inv.has_charges( item_id, 1 ); + return d.alpha->charges_of( item_id ) > 0 || d.alpha->has_amount( item_id, 1 ); }; } else if( jo.has_member( "u_has_items" ) ) { JsonObject has_items = jo.get_object( "u_has_items" ); @@ -2422,15 +2149,8 @@ conditional_t::conditional_t( JsonObject jo ) const std::string item_id = has_items.get_string( "item" ); int count = has_items.get_int( "count" ); condition = [item_id, count]( const dialogue & d ) { - if( d.alpha->inv.has_charges( item_id, count ) ) { - return true; - } - int item_at = d.alpha->inv.position_by_type( item_id ); - if( item_at == INT_MIN ) { - return false; - } - const item &actual_item = d.alpha->i_at( item_at ); - return actual_item.count() >= count; + return d.alpha->has_charges( item_id, count ) || + d.alpha->has_amount( item_id, count ); }; } } else if( jo.has_string( "npc_has_effect" ) ) { @@ -2443,6 +2163,24 @@ conditional_t::conditional_t( JsonObject jo ) condition = [effect]( const dialogue & d ) { return d.alpha->has_effect( efftype_id( effect ) ); }; + } else if( jo.has_string( "npc_need" ) ) { + const std::string need = jo.get_string( "npc_need" ); + 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]( const dialogue &d) { + npc &p = *d.beta; + return ( p.get_fatigue() > amount && need == "fatigue" ) || + ( p.get_hunger() > amount && need == "hunger" ) || + ( p.get_thirst() > amount && need == "thirst" ); + }; } else if( jo.has_string( "u_at_om_location" ) ) { const std::string &location = jo.get_string( "u_at_om_location" ); condition = [location]( const dialogue & d ) { @@ -2484,6 +2222,33 @@ conditional_t::conditional_t( JsonObject jo ) condition = [min_cash]( const dialogue & d ) { return d.alpha->cash >= min_cash; }; + } else if( jo.has_string( "npc_aim_rule" ) ) { + 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; + }; + } else if( jo.has_string( "npc_engagement_rule" ) ) { + 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; + }; + } else if( jo.has_string( "npc_rule" ) ) { + 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 ); + } + return false; + }; } else if( jo.has_int( "days_since_cataclysm" ) ) { const unsigned long days = jo.get_int( "days_since_cataclysm" ); condition = [days]( const dialogue & ) { @@ -2498,17 +2263,29 @@ conditional_t::conditional_t( JsonObject jo ) ( season == AUTUMN && season_name == "autumn" ) || ( season == WINTER && season_name == "winter" ); }; + } else if( jo.has_string( "mission_goal" ) ) { + 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; + }; } else { - static const std::unordered_set sub_condition_strs = { { + static const std::unordered_set simple_string_conds = { { "has_assigned_mission", "has_many_assigned_missions", "has_no_available_mission", "has_available_mission", "has_many_available_missions", - "npc_available", "npc_following", + "mission_complete", "mission_incomplete", + "npc_available", "npc_following", "npc_friend", "npc_hostile", + "npc_train_skills", "npc_train_styles", "at_safe_space", "u_can_stow_weapon", "u_has_weapon", "npc_has_weapon", - "is_day", "is_outside" + "is_day", "is_outside", "u_has_camp" } }; bool found_sub_member = false; - for( const std::string &sub_member: sub_condition_strs ) { + for( const std::string &sub_member: 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 ) { @@ -2552,6 +2329,22 @@ conditional_t::conditional_t( const std::string &type ) condition = []( const dialogue & d ) { return d.beta->chatbin.missions.size() >= 2; }; + } else if( type == "mission_complete" ) { + condition = []( const dialogue & d ) { + mission *miss = d.beta->chatbin.mission_selected; + if( !miss ) { + return false; + } + return miss->is_complete( d.beta->getID() ); + }; + } else if( type == "mission_incomplete" ) { + condition = []( const dialogue & d ) { + mission *miss = d.beta->chatbin.mission_selected; + if( !miss ) { + return false; + } + return !miss->is_complete( d.beta->getID() ); + }; } else if( type == "npc_available" ) { condition = []( const dialogue & d ) { return !d.beta->has_effect( effect_currently_busy ); @@ -2560,6 +2353,22 @@ conditional_t::conditional_t( const std::string &type ) condition = []( const dialogue & d ) { return d.beta->is_following(); }; + } else if( type == "npc_friend" ) { + condition = []( const dialogue & d ) { + return d.beta->is_friend(); + }; + } else if( type == "npc_hostile" ) { + condition = []( const dialogue & d ) { + return d.beta->is_enemy(); + }; + } else if( type == "npc_train_skills" ) { + condition = []( const dialogue & d ) { + return !d.beta->skills_offered_to( *d.alpha ).empty(); + }; + } else if( type == "npc_train_styles" ) { + condition = []( const dialogue & d ) { + return !d.beta->styles_offered_to( *d.alpha ).empty(); + }; } else if( type == "at_safe_space" ) { condition = []( const dialogue & d ) { return overmap_buffer.is_safe( d.beta->global_omt_location() ); @@ -2586,6 +2395,10 @@ conditional_t::conditional_t( const std::string &type ) const tripoint pos = g->m.getabs( d.beta->pos() ); return !g->m.has_flag( TFLAG_INDOORS, pos ); }; + } else if( type == "u_has_camp" ) { + condition = []( const dialogue & ) { + return !g->u.camps.empty(); + }; } else { condition = []( const dialogue & ) { return false; @@ -2597,25 +2410,7 @@ void json_talk_response::load_condition( JsonObject &jo ) { is_switch = jo.get_bool( "switch", false ); is_default = jo.get_bool( "default", false ); - static const std::string member_name( "condition" ); - if( !jo.has_member( member_name ) ) { - // Leave condition unset, defaults to true. - return; - } 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 ); - } + read_dialogue_condition( jo, condition, true ); } bool json_talk_response::test_condition( const dialogue &d ) const @@ -2659,7 +2454,28 @@ dynamic_line_t::dynamic_line_t( const std::string &line ) dynamic_line_t::dynamic_line_t( JsonObject jo ) { - if( jo.has_member( "u_male" ) && jo.has_member( "u_female" ) ) { + if( jo.has_member( "and" ) ) { + std::vector lines; + JsonArray ja = jo.get_array( "and" ); + while( ja.has_more() ) { + if( ja.test_string() ) { + lines.emplace_back( ja.next_string() ); + } else if( ja.test_array() ) { + lines.emplace_back( ja.next_array() ); + } else if( ja.test_object() ) { + lines.emplace_back( ja.next_object() ); + } else { + ja.throw_error( "invalid format: must be string, array or object" ); + } + } + function = [lines]( const dialogue & d ) { + std::string all_lines; + for( const dynamic_line_t &line: lines ) { + all_lines += line( d ); + } + return all_lines; + }; + } else if( jo.has_member( "u_male" ) && jo.has_member( "u_female" ) ) { const dynamic_line_t u_male = from_member( jo, "u_male" ); const dynamic_line_t u_female = from_member( jo, "u_female" ); function = [u_male, u_female]( const dialogue & d ) { @@ -2690,8 +2506,8 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) const dynamic_line_t yes = from_member( jo, "yes" ); const dynamic_line_t no = from_member( jo, "no" ); function = [item_id, yes, no]( const dialogue & d ) { - const bool has_it = d.alpha->inv.position_by_type( item_id ) != INT_MIN || - d.alpha->inv.has_charges( item_id, 1 ); + const bool has_it = d.alpha->has_charges( item_id, 1 ) || + d.alpha->has_amount( item_id, 1 ); return ( has_it ? yes : no )( d ); }; } else if( jo.has_member( "npc_has_effect" ) ) { @@ -2765,7 +2581,9 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) const dynamic_line_t yes = from_member( jo, "yes" ); const dynamic_line_t no = from_member( jo, "no" ); function = [trait_flag_to_check, yes, no]( const dialogue & d ) { - if( d.alpha->has_trait_flag( trait_flag_to_check ) ) { + if( trait_flag_to_check == "MUTATION_THRESHOLD" && d.alpha->crossed_threshold() ) { + return yes( d ); + } else if( d.alpha->has_trait_flag( trait_flag_to_check ) ) { return yes( d ); } return no( d ); @@ -2775,7 +2593,9 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) const dynamic_line_t yes = from_member( jo, "yes" ); const dynamic_line_t no = from_member( jo, "no" ); function = [trait_flag_to_check, yes, no]( const dialogue & d ) { - if( d.beta->has_trait_flag( trait_flag_to_check ) ) { + if( trait_flag_to_check == "MUTATION_THRESHOLD" && d.beta->crossed_threshold() ) { + return yes( d ); + } else if( d.beta->has_trait_flag( trait_flag_to_check ) ) { return yes( d ); } return no( d ); @@ -2844,12 +2664,96 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) function = [is_day, is_night]( const dialogue & d ) { return ( calendar::turn.is_night() ? is_night : is_day )( d ); }; + } else if( jo.has_member( "npc_need" ) ) { + const std::string &need = jo.get_string( "npc_need" ); + int amount = 0; + if( jo.has_int( "amount" ) ) { + amount = jo.get_int( "amount" ); + } else { + 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 ); + } + } + const dynamic_line_t yes = from_member( jo, "yes" ); + const dynamic_line_t no = from_member( jo, "no" ); + function = [need, amount, yes, no]( const dialogue & d ) { + npc &p = *d.beta; + if( ( p.get_fatigue() > amount && need == "fatigue" ) || + ( p.get_hunger() > amount && need == "hunger" ) || + ( p.get_thirst() > amount && need == "thirst" ) ) { + return yes( d ); + } + return no( d ); + }; + } else if( jo.has_member( "u_driving" ) || jo.has_member( "npc_driving" ) ) { + const dynamic_line_t u_driving = from_member( jo, "u_driving" ); + const dynamic_line_t npc_driving = from_member( jo, "npc_driving" ); + const dynamic_line_t no_vehicle = from_member( jo, "no_vehicle" ); + function = [u_driving, npc_driving, no_vehicle]( const dialogue & d ) { + player &u = *d.alpha; + npc &p = *d.beta; + if( const optional_vpart_position vp = g->m.veh_at( u.pos() ) ) { + if( vp->vehicle().is_moving() && vp->vehicle().player_in_control( u ) ) { + return u_driving( d ); + } + } else if( const optional_vpart_position vp = g->m.veh_at( p.pos() ) ) { + if( vp->vehicle().is_moving() && vp->vehicle().player_in_control( p ) ) { + return npc_driving( d ); + } + } + return no_vehicle( d ); + }; + } else if( jo.has_string( "npc_aim_rule" ) ) { + std::string setting = jo.get_string( "npc_aim_rule" ); + const dynamic_line_t yes = from_member( jo, "yes" ); + const dynamic_line_t no = from_member( jo, "no" ); + function = [setting, yes, no]( const dialogue &d ) { + auto rule = aim_rule_strs.find( setting ); + if( rule != aim_rule_strs.end() && d.beta->rules.aim == rule->second ) { + return yes( d ); + } + return no( d ); + }; + } else if( jo.has_string( "npc_engagement_rule" ) ) { + std::string setting = jo.get_string( "npc_engagement_rule" ); + const dynamic_line_t yes = from_member( jo, "yes" ); + const dynamic_line_t no = from_member( jo, "no" ); + function = [setting, yes, no]( const dialogue &d ) { + auto rule = combat_engagement_strs.find( setting ); + if( rule != combat_engagement_strs.end() && + d.beta->rules.engagement == rule->second ) { + return yes( d ); + } + return no( d ); + }; + } else if( jo.has_string( "npc_rule" ) ) { + std::string rule = jo.get_string( "npc_rule" ); + const dynamic_line_t yes = from_member( jo, "yes" ); + const dynamic_line_t no = from_member( jo, "no" ); + function = [rule, yes, no]( const dialogue &d ) { + auto flag = ally_rule_strs.find( rule ); + if( flag != ally_rule_strs.end() && d.beta->rules.has_flag( flag->second ) ) { + return yes( d ); + } + return no( d ); + }; + } else if( jo.has_bool( "has_pickup_list" ) ) { + const dynamic_line_t yes = from_member( jo, "yes" ); + const dynamic_line_t no = from_member( jo, "no" ); + function = [yes, no]( const dialogue &d ) { + if( d.beta->rules.pickup_whitelist->empty() ) { + return no( d ); + } + return yes( d ); + }; } else if( jo.has_member( "give_hint" ) ) { function = [&]( const dialogue & ) { return get_hint(); }; } else { - jo.throw_error( "no supported" ); + jo.throw_error( "dynamic line not supported" ); } } @@ -3123,7 +3027,7 @@ std::string give_item_to( npc &p, bool allow_use, bool allow_carry ) reason << std::endl; reason << string_format( _( "I have no space to store it." ) ); reason << std::endl; - if( free_space > 0 ) { + if( free_space > 0_ml ) { reason << string_format( _( "I can only store %s %s more." ), format_volume( free_space ), volume_units_long() ); } else { @@ -3173,51 +3077,3 @@ bool npc::item_whitelisted( const item &it ) const auto to_match = it.tname( 1, false ); return item_name_whitelisted( to_match ); } - -npc_follower_rules::npc_follower_rules() -{ - engagement = ENGAGE_CLOSE; - aim = AIM_WHEN_CONVENIENT; - use_guns = true; - use_grenades = true; - use_silent = false; - - allow_pick_up = false; - allow_bash = false; - allow_sleep = false; - allow_complain = true; - allow_pulp = true; - - close_doors = false; -} - -npc *pick_follower() -{ - std::vector followers; - std::vector locations; - - for( npc &guy : g->all_npcs() ) { - if( guy.is_following() && g->u.sees( guy ) ) { - followers.push_back( &guy ); - locations.push_back( guy.pos() ); - } - } - - pointmenu_cb callback( locations ); - - uilist menu; - menu.text = _( "Select a follower" ); - menu.callback = &callback; - menu.w_y = 2; - - for( const npc *p : followers ) { - menu.addentry( -1, true, MENU_AUTOASSIGN, p->name ); - } - - menu.query(); - if( menu.ret < 0 || static_cast( menu.ret ) >= followers.size() ) { - return nullptr; - } - - return followers[ menu.ret ]; -} diff --git a/src/npctalk.h b/src/npctalk.h index d187e0cacd78d..f4f76228049ea 100644 --- a/src/npctalk.h +++ b/src/npctalk.h @@ -2,6 +2,8 @@ #ifndef NPCTALK_H #define NPCTALK_H +#include "auto_pickup.h" + #include #include "string_id.h" @@ -31,9 +33,10 @@ void bionic_remove( npc & ); void buy_haircut( npc & ); void buy_shave( npc & ); +void morale_chat( npc & ); +void morale_chat_activity( npc & ); void buy_10_logs( npc & ); void buy_100_logs( npc & ); -void give_equipment( npc & ); void start_trade( npc & ); void assign_base( npc & ); void assign_guard( npc & ); @@ -55,9 +58,6 @@ void stranger_neutral( npc & ); // p is now neutral towards you void start_mugging( npc & ); void player_leaving( npc & ); -void start_mugging( npc & ); -void player_leaving( npc & ); - void drop_weapon( npc & ); void player_weapon_away( npc & ); void player_weapon_drop( npc & ); @@ -66,7 +66,8 @@ void lead_to_safety( npc & ); void start_training( npc & ); void wake_up( npc & ); - +void copy_npc_rules( npc &p ); +void set_npc_pickup( npc &p ); } bool trade( npc &p, int cost, const std::string &deal ); diff --git a/src/npctalk_funcs.cpp b/src/npctalk_funcs.cpp index cf23a05be5bf6..5afd44e17306c 100644 --- a/src/npctalk_funcs.cpp +++ b/src/npctalk_funcs.cpp @@ -188,7 +188,7 @@ void talk_function::stop_guard( npc &p ) void talk_function::wake_up( npc &p ) { - p.rules.allow_sleep = false; + p.rules.clear_flag( ally_rule::allow_sleep ); p.remove_effect( effect_allow_sleep ); p.remove_effect( effect_lying_down ); p.remove_effect( effect_sleep ); @@ -272,7 +272,6 @@ void talk_function::bionic_remove( npc &p ) return; } - item tmp; std::vector bionic_types; std::vector bionic_names; for( auto &bio : all_bio ) { @@ -281,7 +280,7 @@ void talk_function::bionic_remove( npc &p ) bio.id != bionic_id( "bio_power_storage_mkII" ) ) { bionic_types.push_back( bio.id.str() ); if( item::type_is_defined( bio.id.str() ) ) { - tmp = item( bio.id.str(), 0 ); + item tmp = item( bio.id.str(), 0 ); bionic_names.push_back( tmp.tname() + " - " + format_money( 50000 + ( tmp.price( true ) / 4 ) ) ); } else { bionic_names.push_back( bio.id.str() + " - " + format_money( 50000 ) ); @@ -348,9 +347,8 @@ void talk_function::give_equipment( npc &p ) void talk_function::give_aid( npc &p ) { p.add_effect( effect_currently_busy, 30_minutes ); - body_part bp_healed; for( int i = 0; i < num_hp_parts; i++ ) { - bp_healed = player::hp_to_bp( hp_part( i ) ); + const body_part bp_healed = player::hp_to_bp( hp_part( i ) ); g->u.heal( hp_part( i ), 5 * rng( 2, 5 ) ); if( g->u.has_effect( effect_bite, bp_healed ) ) { g->u.remove_effect( effect_bite, bp_healed ); @@ -370,11 +368,10 @@ void talk_function::give_all_aid( npc &p ) { p.add_effect( effect_currently_busy, 30_minutes ); give_aid( p ); - body_part bp_healed; for( npc &guy : g->all_npcs() ) { if( rl_dist( guy.pos(), g->u.pos() ) < PICKUP_RANGE && guy.is_friend() ) { for( int i = 0; i < num_hp_parts; i++ ) { - bp_healed = player::hp_to_bp( hp_part( i ) ); + const body_part bp_healed = player::hp_to_bp( hp_part( i ) ); guy.heal( hp_part( i ), 5 * rng( 2, 5 ) ); if( guy.has_effect( effect_bite, bp_healed ) ) { guy.remove_effect( effect_bite, bp_healed ); @@ -406,6 +403,20 @@ void talk_function::buy_shave( npc &p ) add_msg( m_good, _( "%s gives you a decent shave..." ), p.name ); } +void talk_function::morale_chat( npc &p ) +{ + g->u.add_morale( MORALE_CHAT, rng( 3, 10 ), 10, 200_minutes, 5_minutes / 2 ); + add_msg( m_good, _( "That was a pleasant conversation with %s..." ), p.disp_name() ); +} + +void talk_function::morale_chat_activity( npc &p ) +{ + 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 ); +} + void talk_function::buy_10_logs( npc &p ) { std::vector places = overmap_buffer.find_all( @@ -608,3 +619,48 @@ void talk_function::start_training( npc &p ) g->u.assign_activity( activity_id( "ACT_TRAIN" ), to_moves( time ), p.getID(), 0, name ); p.add_effect( effect_asked_to_train, 6_hours ); } + +npc *pick_follower() +{ + std::vector followers; + std::vector locations; + + for( npc &guy : g->all_npcs() ) { + if( guy.is_following() && g->u.sees( guy ) ) { + followers.push_back( &guy ); + locations.push_back( guy.pos() ); + } + } + + pointmenu_cb callback( locations ); + + uilist menu; + menu.text = _( "Select a follower" ); + menu.callback = &callback; + menu.w_y = 2; + + for( const npc *p : followers ) { + menu.addentry( -1, true, MENU_AUTOASSIGN, p->name ); + } + + menu.query(); + if( menu.ret < 0 || static_cast( menu.ret ) >= followers.size() ) { + return nullptr; + } + + return followers[ menu.ret ]; +} + +void talk_function::copy_npc_rules( npc &p ) +{ + const npc *other = pick_follower(); + if( other != nullptr && other != &p ) { + p.rules = other->rules; + } +} + +void talk_function::set_npc_pickup( npc &p ) +{ + const std::string title = string_format( _( "Pickup rules for %s" ), p.name ); + p.rules.pickup_whitelist->show( title, false ); +} diff --git a/src/npctrade.cpp b/src/npctrade.cpp index d8736c33b6c1a..71ff6ac79bc57 100644 --- a/src/npctrade.cpp +++ b/src/npctrade.cpp @@ -225,7 +225,7 @@ TAB key to switch lists, letters to pick items, Enter to finalize, Esc to quit,\ volume_left = p.volume_capacity() - p.volume_carried_with_tweaks( { temp } ); weight_left = p.weight_capacity() - p.weight_carried_with_tweaks( { temp } ); - mvwprintz( w_head, 3, 2, ( volume_left < 0 || weight_left < 0 ) ? c_red : c_green, + mvwprintz( w_head, 3, 2, ( volume_left < 0_ml || weight_left < 0_gram ) ? c_red : c_green, _( "Volume: %s %s, Weight: %.1f %s" ), format_volume( volume_left ).c_str(), volume_units_abbr(), convert_weight( weight_left ), weight_units() ); @@ -343,7 +343,7 @@ TAB key to switch lists, letters to pick items, Enter to finalize, Esc to quit,\ format_money( -cash ) ); update = true; ch = ' '; - } else if( volume_left < 0 || weight_left < 0 ) { + } 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." ), p.name.c_str() ); update = true; diff --git a/src/options.cpp b/src/options.cpp index b9c842cb07bab..8f6709955965c 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -93,9 +93,8 @@ void options_manager::add_value( const std::string &lvar, const std::string &lva if( it != post_json_verify.end() ) { auto ot = options.find( lvar ); if( ot != options.end() && ot->second.sType == "string_select" ) { - for( auto eit = ot->second.vItems.begin(); - eit != ot->second.vItems.end(); ++eit ) { - if( eit->first == lval ) { // already in + for( auto &vItem : ot->second.vItems ) { + if( vItem.first == lval ) { // already in return; } } @@ -112,9 +111,27 @@ void options_manager::add_value( const std::string &lvar, const std::string &lva options_manager::cOpt::cOpt() { sType = "VOID"; + eType = CVT_VOID; hide = COPT_NO_HIDE; } +static options_manager::cOpt::COPT_VALUE_TYPE get_value_type( const std::string &sType ) +{ + using CVT = options_manager::cOpt::COPT_VALUE_TYPE; + + static std::unordered_map vt_map = { + { "float", CVT::CVT_FLOAT }, + { "bool", CVT::CVT_BOOL }, + { "int", CVT::CVT_INT }, + { "int_map", CVT::CVT_INT }, + { "string_select", CVT::CVT_STRING }, + { "string_input", CVT::CVT_STRING }, + { "VOID", CVT::CVT_VOID } + }; + auto result = vt_map.find( sType ); + return result != vt_map.end() ? result->second : options_manager::cOpt::CVT_UNKNOWN; +} + //add hidden external option with value void options_manager::add_external( const std::string &sNameIn, const std::string &sPageIn, const std::string &sType, @@ -128,6 +145,8 @@ void options_manager::add_external( const std::string &sNameIn, const std::strin thisOpt.sTooltip = sTooltipIn; thisOpt.sType = sType; + thisOpt.eType = get_value_type( thisOpt.sType ); + thisOpt.iMin = INT_MIN; thisOpt.iMax = INT_MAX; @@ -153,6 +172,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "string_select"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.hide = opt_hide; thisOpt.vItems = sItemsIn; @@ -182,6 +202,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "string_input"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.hide = opt_hide; @@ -207,6 +228,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "bool"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.hide = opt_hide; @@ -231,6 +253,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "int"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.format = format; @@ -258,7 +281,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI //add int map option void options_manager::add( const std::string &sNameIn, const std::string &sPageIn, const std::string &sMenuTextIn, const std::string &sTooltipIn, - const std::map mIntValuesIn, int iInitialIn, + const std::map &mIntValuesIn, int iInitialIn, int iDefaultIn, copt_hide_t opt_hide ) { cOpt thisOpt; @@ -268,6 +291,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "int_map"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.format = "%i"; @@ -306,6 +330,7 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.sMenuText = sMenuTextIn; thisOpt.sTooltip = sTooltipIn; thisOpt.sType = "float"; + thisOpt.eType = get_value_type( thisOpt.sType ); thisOpt.format = format; @@ -331,16 +356,32 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI options[sNameIn] = thisOpt; } -void options_manager::cOpt::setPrerequisite( const std::string &sOption ) +void options_manager::cOpt::setPrerequisites( const std::string &sOption, + const std::vector &sAllowedValues ) { - if( !get_options().has_option( sOption ) ) { + const bool hasOption = get_options().has_option( sOption ); + if( !hasOption ) { debugmsg( "setPrerequisite: unknown option %s", sType.c_str() ); + return; + } + + const cOpt &existingOption = get_options().get_option( sOption ); + const std::string &existingOptionType = existingOption.getType(); + bool isOfSupportType = false; + for( const std::string &sSupportedType : getPrerequisiteSupportedTypes() ) { + if( existingOptionType == sSupportedType ) { + isOfSupportType = true; + break; + } + } - } else if( get_options().get_option( sOption ).getType() != "bool" ) { - debugmsg( "setPrerequisite: option %s not of type bool", sType.c_str() ); + if( !isOfSupportType ) { + debugmsg( "setPrerequisite: option %s not of supported type", sType.c_str() ); + return; } sPrerequisite = sOption; + sPrerequisiteAllowedValues = sAllowedValues; } std::string options_manager::cOpt::getPrerequisite() const @@ -353,6 +394,22 @@ bool options_manager::cOpt::hasPrerequisite() const return !sPrerequisite.empty(); } +bool options_manager::cOpt::checkPrerequisite() const +{ + if( !hasPrerequisite() ) { + return true; + } + bool isPrerequisiteFulfilled = false; + const std::string prerequisite_option_value = get_options().get_option( sPrerequisite ).getValue(); + for( const std::string &sAllowedPrerequisiteValue : sPrerequisiteAllowedValues ) { + if( prerequisite_option_value == sAllowedPrerequisiteValue ) { + isPrerequisiteFulfilled = true; + break; + } + } + return isPrerequisiteFulfilled; +} + //helper functions bool options_manager::cOpt::is_hidden() const { @@ -483,7 +540,7 @@ std::string options_manager::cOpt::getValue( bool classis_locale ) const template<> std::string options_manager::cOpt::value_as() const { - if( sType != "string_select" && sType != "string_input" ) { + if( eType != CVT_STRING ) { debugmsg( "%s tried to get string value from option of type %s", sName.c_str(), sType.c_str() ); } return sSet; @@ -492,7 +549,7 @@ std::string options_manager::cOpt::value_as() const template<> bool options_manager::cOpt::value_as() const { - if( sType != "bool" ) { + if( eType != CVT_BOOL ) { debugmsg( "%s tried to get boolean value from option of type %s", sName.c_str(), sType.c_str() ); } return bSet; @@ -501,7 +558,7 @@ bool options_manager::cOpt::value_as() const template<> float options_manager::cOpt::value_as() const { - if( sType != "float" ) { + if( eType != CVT_FLOAT ) { debugmsg( "%s tried to get float value from option of type %s", sName.c_str(), sType.c_str() ); } return fSet; @@ -510,7 +567,7 @@ float options_manager::cOpt::value_as() const template<> int options_manager::cOpt::value_as() const { - if( sType != "int" && sType != "int_map" ) { + if( eType != CVT_INT ) { debugmsg( "%s tried to get integer value from option of type %s", sName.c_str(), sType.c_str() ); } return iSet; @@ -1489,22 +1546,43 @@ void options_manager::add_options_graphics() ); #endif +#ifndef __ANDROID__ +# ifndef TILES + // No renderer selection in non-TILES mode + add( "RENDERER", "graphics", translate_marker( "Renderer" ), + translate_marker( "Set which renderer to use. Requires restart." ), { { "software", translate_marker( "software" ) } }, + "software", COPT_CURSES_HIDE ); +# else + std::vector renderer_list = cata_tiles::build_renderer_list(); + add( "RENDERER", "graphics", translate_marker( "Renderer" ), + translate_marker( "Set which renderer to use. Requires restart." ), renderer_list, + renderer_list.front().first, COPT_CURSES_HIDE ); +# endif + +#else add( "SOFTWARE_RENDERING", "graphics", translate_marker( "Software rendering" ), translate_marker( "Use software renderer instead of graphics card acceleration. Requires restart." ), -#ifdef __ANDROID__ + // take default setting from pre-game settings screen - important as both software + hardware rendering have issues with specific devices android_get_default_setting( "Software rendering", false ), - COPT_CURSES_HIDE // take default setting from pre-game settings screen - important as both software + hardware rendering have issues with specific devices -#else - false, COPT_CURSES_HIDE -#endif + COPT_CURSES_HIDE ); +#endif add( "FRAMEBUFFER_ACCEL", "graphics", translate_marker( "Software framebuffer acceleration" ), translate_marker( "Use hardware acceleration for the framebuffer when using software rendering. Requires restart." ), false, COPT_CURSES_HIDE ); +#ifdef __ANDROID__ get_option( "FRAMEBUFFER_ACCEL" ).setPrerequisite( "SOFTWARE_RENDERING" ); +#else + get_option( "FRAMEBUFFER_ACCEL" ).setPrerequisite( "RENDERER", "software" ); +#endif + + add( "USE_COLOR_MODULATED_TEXTURES", "graphics", translate_marker( "Use color modulated textures" ), + translate_marker( "If true, tries to use color modulated textures to speed-up ASCII drawing. Requires restart." ), + false, COPT_CURSES_HIDE + ); add( "SCALING_MODE", "graphics", translate_marker( "Scaling mode" ), translate_marker( "Sets the scaling mode, 'none' ( default ) displays at the game's native resolution, 'nearest' uses low-quality but fast scaling, and 'linear' provides high-quality scaling." ), @@ -2157,9 +2235,8 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) nc_color cLineColor = c_light_green; const cOpt ¤t_opt = cOPTIONS[mPageItems[iCurrentPage][i]]; - bool hasPrerequisite = current_opt.hasPrerequisite(); - bool prerequisiteEnabled = !hasPrerequisite || - cOPTIONS[ current_opt.getPrerequisite() ].value_as(); + const bool hasPrerequisite = current_opt.hasPrerequisite(); + const bool hasPrerequisiteFulfilled = current_opt.checkPrerequisite(); int line_pos = i - iStartPos; // Current line position in window. @@ -2175,9 +2252,9 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) const std::string name = utf8_truncate( current_opt.getMenuText(), name_width ); mvwprintz( w_options, line_pos, name_col + 3, !hasPrerequisite || - prerequisiteEnabled ? c_white : c_light_gray, name ); + hasPrerequisiteFulfilled ? c_white : c_light_gray, name ); - if( hasPrerequisite && !prerequisiteEnabled ) { + if( hasPrerequisite && !hasPrerequisiteFulfilled ) { cLineColor = c_light_gray; } else if( current_opt.getValue() == "false" ) { @@ -2276,10 +2353,9 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) cOpt ¤t_opt = cOPTIONS[mPageItems[iCurrentPage][iCurrentLine]]; bool hasPrerequisite = current_opt.hasPrerequisite(); - bool prerequisiteEnabled = !hasPrerequisite || - cOPTIONS[ current_opt.getPrerequisite() ].value_as(); + bool hasPrerequisiteFulfilled = current_opt.checkPrerequisite(); - if( hasPrerequisite && !prerequisiteEnabled && + if( hasPrerequisite && !hasPrerequisiteFulfilled && ( action == "RIGHT" || action == "LEFT" || action == "CONFIRM" ) ) { popup( _( "Prerequisite for this option not met!\n(%s)" ), get_options().get_option( current_opt.getPrerequisite() ).getMenuText() ); diff --git a/src/options.h b/src/options.h index 8c6b848afdec5..cc3db421ef5ec 100644 --- a/src/options.h +++ b/src/options.h @@ -112,9 +112,26 @@ class options_manager return !operator==( rhs ); } - void setPrerequisite( const std::string &sOption ); + static std::vector getPrerequisiteSupportedTypes() { + return { "bool", "string", "string_select", "string_input" }; + }; + + void setPrerequisites( const std::string &sOption, const std::vector &sAllowedValues ); + void setPrerequisite( const std::string &sOption, const std::string &sAllowedValue = "true" ) { + setPrerequisites( sOption, { sAllowedValue } ); + } std::string getPrerequisite() const; bool hasPrerequisite() const; + bool checkPrerequisite() const; + + enum COPT_VALUE_TYPE { + CVT_UNKNOWN = 0, + CVT_BOOL = 1, + CVT_STRING = 2, + CVT_FLOAT = 3, + CVT_INT = 4, + CVT_VOID = 5 + }; private: std::string sName; @@ -128,10 +145,13 @@ class options_manager std::string format; std::string sPrerequisite; + std::vector sPrerequisiteAllowedValues; copt_hide_t hide; int iSortPos; + COPT_VALUE_TYPE eType; + //sType == "string" std::string sSet; // first is internal value, second is untranslated text @@ -227,7 +247,7 @@ class options_manager //add int map option void add( const std::string &sNameIn, const std::string &sPageIn, const std::string &sMenuTextIn, const std::string &sTooltipIn, - const std::map mIntValuesIn, int iInitialIn, + const std::map &mIntValuesIn, int iInitialIn, int iDefaultIn, copt_hide_t opt_hide = COPT_NO_HIDE ); //add float option diff --git a/src/output.cpp b/src/output.cpp index f5db3e985676f..5d9fc09089492 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -143,9 +144,9 @@ std::string remove_color_tags( const std::string &s ) size_t next_pos = 0; if( tag_positions.size() > 1 ) { - for( size_t i = 0; i < tag_positions.size(); ++i ) { - ret += s.substr( next_pos, tag_positions[i] - next_pos ); - next_pos = s.find( ">", tag_positions[i], 1 ) + 1; + for( size_t tag_position : tag_positions ) { + ret += s.substr( next_pos, tag_position - next_pos ); + next_pos = s.find( ">", tag_position, 1 ) + 1; } ret += s.substr( next_pos, std::string::npos ); @@ -155,6 +156,24 @@ std::string remove_color_tags( const std::string &s ) return ret; } +static void update_color_stack( std::stack &color_stack, const std::string &seg ) +{ + color_tag_parse_result tag = get_color_from_tag( seg ); + switch( tag.type ) { + case color_tag_parse_result::open_color_tag: + color_stack.push( tag.color ); + break; + case color_tag_parse_result::close_color_tag: + if( !color_stack.empty() ) { + color_stack.pop(); + } + break; + case color_tag_parse_result::non_color_tag: + // Do nothing + break; + } +} + void print_colored_text( const catacurses::window &w, int y, int x, nc_color &color, nc_color base_color, const std::string &text ) { @@ -162,16 +181,20 @@ void print_colored_text( const catacurses::window &w, int y, int x, nc_color &co wmove( w, y, x ); } const auto color_segments = split_by_color( text ); + std::stack color_stack; + color_stack.push( color ); + for( auto seg : color_segments ) { if( seg.empty() ) { continue; } if( seg[0] == '<' ) { - color = get_color_from_tag( seg, base_color ); + update_color_stack( color_stack, seg ); seg = rm_prefix( seg ); } + color = color_stack.empty() ? base_color : color_stack.top(); wprintz( w, color, seg ); } } @@ -205,7 +228,7 @@ void trim_and_print( const catacurses::window &w, int begin_y, int begin_x, int if( iLength > width ) { sTempText = sTempText.substr( 0, cursorx_to_position( sTempText.c_str(), - iTempLen - ( iLength - width ) - 1, NULL, -1 ) ) + "\u2026"; + iTempLen - ( iLength - width ) - 1, nullptr, -1 ) ) + "\u2026"; } sText += sColor + sTempText; @@ -268,7 +291,7 @@ int fold_and_print_from( const catacurses::window &w, int begin_y, int begin_x, int begin_line, nc_color base_color, const std::string &text ) { const int iWinHeight = getmaxy( w ); - nc_color color = base_color; + std::stack color_stack; std::vector textformatted; textformatted = foldstring( text, width ); for( int line_num = 0; static_cast( line_num ) < textformatted.size(); line_num++ ) { @@ -284,11 +307,12 @@ int fold_and_print_from( const catacurses::window &w, int begin_y, int begin_x, std::vector::iterator it; for( it = color_segments.begin(); it != color_segments.end(); ++it ) { if( !it->empty() && it->at( 0 ) == '<' ) { - color = get_color_from_tag( *it, base_color ); + update_color_stack( color_stack, *it ); } if( line_num >= begin_line ) { std::string l = rm_prefix( *it ); if( l != "--" ) { // -- is a separation line! + nc_color color = color_stack.empty() ? base_color : color_stack.top(); wprintz( w, color, rm_prefix( *it ) ); } else { for( int i = 0; i < width; i++ ) { @@ -581,11 +605,12 @@ bool query_yn( const std::string &text ) return query_popup() .context( "YESNO" ) .message( force_uc ? - pgettext( "query_yn", "%s (Case Sensitive)" ) : - pgettext( "query_yn", "%s" ), text ) + pgettext( "query_yn", "%s (Case Sensitive)" ) : + pgettext( "query_yn", "%s" ), text ) .option( "YES", allow_key ) .option( "NO", allow_key ) .cursor( 1 ) + .default_color( c_light_red ) .query() .action == "YES"; } @@ -761,9 +786,9 @@ void draw_item_filter_rules( const catacurses::window &win, int starty, int heig } starty += fold_and_print( win, starty, 1, len, c_white, - _( "Search [c]ategory, [m]aterial, or [q]uality:" ) ); + _( "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" ) ); //~ An example of how to filter items based on category or material. - fold_and_print( win, starty, 1, len, c_white, _( "Example: c:food,m:iron,q:hammering" ) ); + fold_and_print( win, starty, 1, len, c_white, _( "Examples: c:food,m:iron,q:hammering,d:pipe" ) ); wrefresh( win ); } @@ -773,24 +798,24 @@ std::string format_item_info( const std::vector &vItemDisplay, std::ostringstream buffer; bool bIsNewLine = true; - for( size_t i = 0; i < vItemDisplay.size(); i++ ) { - if( vItemDisplay[i].sType == "DESCRIPTION" ) { + for( const auto &i : vItemDisplay ) { + if( i.sType == "DESCRIPTION" ) { // Always start a new line for sType == "DESCRIPTION" if( !bIsNewLine ) { buffer << "\n"; } - if( vItemDisplay[i].bDrawName ) { - buffer << vItemDisplay[i].sName; + if( i.bDrawName ) { + buffer << i.sName; } // Always end with a linebreak for sType == "DESCRIPTION" buffer << "\n"; bIsNewLine = true; } else { - if( vItemDisplay[i].bDrawName ) { - buffer << vItemDisplay[i].sName; + if( i.bDrawName ) { + buffer << i.sName; } - std::string sFmt = vItemDisplay[i].sFmt; + std::string sFmt = i.sFmt; std::string sPost; //A bit tricky, find %d and split the string @@ -802,22 +827,22 @@ std::string format_item_info( const std::vector &vItemDisplay, buffer << sFmt; } - if( vItemDisplay[i].sValue != "-999" ) { + if( i.sValue != "-999" ) { nc_color thisColor = c_yellow; for( auto &k : vItemCompare ) { if( k.sValue != "-999" ) { - if( vItemDisplay[i].sName == k.sName && vItemDisplay[i].sType == k.sType ) { - if( vItemDisplay[i].dValue > k.dValue - .1 && - vItemDisplay[i].dValue < k.dValue + .1 ) { + if( i.sName == k.sName && i.sType == k.sType ) { + if( i.dValue > k.dValue - .1 && + i.dValue < k.dValue + .1 ) { thisColor = c_light_gray; - } else if( vItemDisplay[i].dValue > k.dValue ) { - if( vItemDisplay[i].bLowerIsBetter ) { + } else if( i.dValue > k.dValue ) { + if( i.bLowerIsBetter ) { thisColor = c_light_red; } else { thisColor = c_light_green; } - } else if( vItemDisplay[i].dValue < k.dValue ) { - if( vItemDisplay[i].bLowerIsBetter ) { + } else if( i.dValue < k.dValue ) { + if( i.bLowerIsBetter ) { thisColor = c_light_green; } else { thisColor = c_light_red; @@ -828,13 +853,13 @@ std::string format_item_info( const std::vector &vItemDisplay, } } buffer << "" - << vItemDisplay[i].sValue + << i.sValue << ""; } buffer << sPost; // Set bIsNewLine in case the next line should always start in a new line - if( ( bIsNewLine = vItemDisplay[i].bNewLine ) ) { + if( ( bIsNewLine = i.bNewLine ) ) { buffer << "\n"; } } @@ -1805,10 +1830,10 @@ void scrollingcombattext::add( const int p_iPosX, const int p_iPosY, direction p p_oDir == ( iso_mode ? WEST : SOUTHEAST ) ) ) { //Message offset: multiple impacts in the same direction in short order overriding prior messages (mostly turrets) - for( std::vector::iterator iter = vSCT.begin(); iter != vSCT.end(); ++iter ) { - if( iter->getDirecton() == p_oDir && ( iter->getStep() + iter->getStepOffset() ) == iCurStep ) { + for( auto &iter : vSCT ) { + if( iter.getDirecton() == p_oDir && ( iter.getStep() + iter.getStepOffset() ) == iCurStep ) { ++iCurStep; - iter->advanceStepOffset(); + iter.advanceStepOffset(); } } vSCT.insert( vSCT.begin(), cSCT( p_iPosX, p_iPosY, p_oDir, p_sText, p_gmt, p_sText2, p_gmt2, @@ -2003,14 +2028,14 @@ bool wildcard_match( const std::string &text_in, const std::string &pattern_in ) } for( auto it = pattern.begin(); it != pattern.end(); ++it ) { - if( it == pattern.begin() && *it != "" ) { + if( it == pattern.begin() && !it->empty() ) { if( text.length() < it->length() || ci_find_substr( text.substr( 0, it->length() ), *it ) == -1 ) { return false; } text = text.substr( it->length(), text.length() - it->length() ); - } else if( it == pattern.end() - 1 && *it != "" ) { + } else if( it == pattern.end() - 1 && !it->empty() ) { if( text.length() < it->length() || ci_find_substr( text.substr( text.length() - it->length(), it->length() ), *it ) == -1 ) { @@ -2086,7 +2111,7 @@ int ci_find_substr( const std::string &str1, const std::string &str2, const std: */ std::string format_volume( const units::volume &volume ) { - return format_volume( volume, 0, NULL, NULL ); + return format_volume( volume, 0, nullptr, nullptr ); } /** diff --git a/src/output.h b/src/output.h index 5b4f676844171..71af646037c0f 100644 --- a/src/output.h +++ b/src/output.h @@ -11,18 +11,12 @@ #include "player.h" #include "string_formatter.h" #include "translations.h" +#include "units.h" struct input_event; struct iteminfo; enum direction : unsigned; class input_context; -namespace units -{ -template -class quantity; -class volume_in_milliliter_tag; -using volume = quantity; -} // namespace units namespace catacurses { class window; diff --git a/src/overlay_ordering.cpp b/src/overlay_ordering.cpp index 893323da8d313..071db26ff53ea 100644 --- a/src/overlay_ordering.cpp +++ b/src/overlay_ordering.cpp @@ -2,26 +2,40 @@ #include "json.h" -std::map base_mutation_overlay_ordering; -std::map tileset_mutation_overlay_ordering; +std::map base_mutation_overlay_ordering; +std::map tileset_mutation_overlay_ordering; void load_overlay_ordering( JsonObject &jsobj ) { load_overlay_ordering_into_array( jsobj, base_mutation_overlay_ordering ); } -void load_overlay_ordering_into_array( JsonObject &jsobj, std::map &orderarray ) +void load_overlay_ordering_into_array( JsonObject &jsobj, std::map &orderarray ) { JsonArray jarr = jsobj.get_array( "overlay_ordering" ); while( jarr.has_more() ) { JsonObject ordering = jarr.next_object(); int order = ordering.get_int( "order" ); for( auto &id : ordering.get_tags( "id" ) ) { - orderarray[trait_id( id )] = order; + orderarray[id] = order; } } } +int get_overlay_order_of_mutation( const std::string &mutation_id_string ) +{ + auto it = base_mutation_overlay_ordering.find( mutation_id_string ); + auto it2 = tileset_mutation_overlay_ordering.find( mutation_id_string ); + int value = 9999; + if( it != base_mutation_overlay_ordering.end() ) { + value = it->second; + } + if( it2 != tileset_mutation_overlay_ordering.end() ) { + value = it2->second; + } + return value; +} + void reset_overlay_ordering() { // tileset specific overlays are cleared on new tileset load diff --git a/src/overlay_ordering.h b/src/overlay_ordering.h index 234a48668e649..f44c5ba5c3ef3 100644 --- a/src/overlay_ordering.h +++ b/src/overlay_ordering.h @@ -7,14 +7,13 @@ #include "string_id.h" class JsonObject; -struct mutation_branch; -using trait_id = string_id; -extern std::map base_mutation_overlay_ordering; -extern std::map tileset_mutation_overlay_ordering; +extern std::map base_mutation_overlay_ordering; +extern std::map tileset_mutation_overlay_ordering; void load_overlay_ordering( JsonObject &jsobj ); -void load_overlay_ordering_into_array( JsonObject &jsobj, std::map &orderarray ); +void load_overlay_ordering_into_array( JsonObject &jsobj, std::map &orderarray ); +int get_overlay_order_of_mutation( const std::string &mutation_id_string ); void reset_overlay_ordering(); #endif diff --git a/src/overmap.cpp b/src/overmap.cpp index 9497801bd5b9d..7650d62561539 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -873,6 +873,47 @@ void overmap::populate( overmap_special_batch &enabled_specials ) void overmap::populate() { overmap_special_batch enabled_specials = overmap_specials::get_default_batch( loc ); + + const bool should_blacklist = !settings.overmap_feature_flag.blacklist.empty(); + const bool should_whitelist = !settings.overmap_feature_flag.whitelist.empty(); + + // If this region's settings has blacklisted or whitelisted overmap feature flags, let's + // filter our default batch. + + // Remove any items that have a flag that is present in the blacklist. + if( should_blacklist ) { + for( auto it = enabled_specials.begin(); it != enabled_specials.end(); ) { + std::vector common; + std::set_intersection( settings.overmap_feature_flag.blacklist.begin(), + settings.overmap_feature_flag.blacklist.end(), + it->special_details->flags.begin(), it->special_details->flags.end(), + std::back_inserter( common ) + ); + if( !common.empty() ) { + it = enabled_specials.erase( it ); + } else { + ++it; + } + } + } + + // Remove any items which do not have any of the flags from the whitelist. + if( should_whitelist ) { + for( auto it = enabled_specials.begin(); it != enabled_specials.end(); ) { + std::vector common; + std::set_intersection( settings.overmap_feature_flag.whitelist.begin(), + settings.overmap_feature_flag.whitelist.end(), + it->special_details->flags.begin(), it->special_details->flags.end(), + std::back_inserter( common ) + ); + if( common.empty() ) { + it = enabled_specials.erase( it ); + } else { + ++it; + } + } + } + populate( enabled_specials ); } @@ -906,7 +947,7 @@ void overmap::init_layers() oter_id &overmap::ter( const int x, const int y, const int z ) { - if( !inbounds( x, y, z ) ) { + if( !inbounds( tripoint( x, y, z ) ) ) { return ot_null; } @@ -920,7 +961,7 @@ oter_id &overmap::ter( const tripoint &p ) const oter_id overmap::get_ter( const int x, const int y, const int z ) const { - if( !inbounds( x, y, z ) ) { + if( !inbounds( tripoint( x, y, z ) ) ) { return ot_null; } @@ -934,7 +975,7 @@ const oter_id overmap::get_ter( const tripoint &p ) const bool &overmap::seen( int x, int y, int z ) { - if( !inbounds( x, y, z ) ) { + if( !inbounds( tripoint( x, y, z ) ) ) { nullbool = false; return nullbool; } @@ -943,7 +984,7 @@ bool &overmap::seen( int x, int y, int z ) bool &overmap::explored( int x, int y, int z ) { - if( !inbounds( x, y, z ) ) { + if( !inbounds( tripoint( x, y, z ) ) ) { nullbool = false; return nullbool; } @@ -952,7 +993,7 @@ bool &overmap::explored( int x, int y, int z ) bool overmap::is_explored( const int x, const int y, const int z ) const { - if( !inbounds( x, y, z ) ) { + if( !inbounds( tripoint( x, y, z ) ) ) { return false; } return layer[z + OVERMAP_DEPTH].explored[x][y]; @@ -1085,16 +1126,17 @@ std::vector overmap::find_notes( const int z, const std::string &text ) return note_locations; } -bool overmap::inbounds( const tripoint &loc, int clearance ) +bool overmap::inbounds( const tripoint &p, int clearance ) { - return ( loc.x >= clearance && loc.x < OMAPX - clearance && - loc.y >= clearance && loc.y < OMAPY - clearance && - loc.z >= -OVERMAP_DEPTH && loc.z <= OVERMAP_HEIGHT ); -} + const tripoint overmap_boundary_min( 0, 0, -OVERMAP_DEPTH ); + const tripoint overmap_boundary_max( OMAPX, OMAPY, OVERMAP_HEIGHT ); + const tripoint overmap_clearance_min( 0 + clearance, 0 + clearance, 0 ); + const tripoint overmap_clearance_max( 1 + clearance, 1 + clearance, 0 ); -bool overmap::inbounds( int x, int y, int z, int clearance ) -{ - return inbounds( tripoint( x, y, z ), clearance ); + const box overmap_boundaries( overmap_boundary_min, overmap_boundary_max ); + const box overmap_clearance( overmap_clearance_min, overmap_clearance_max ); + + return generic_inbounds( p, overmap_boundaries, overmap_clearance ); } const scent_trace &overmap::scent_at( const tripoint &loc ) const @@ -1553,11 +1595,13 @@ bool overmap::generate_sub( const int z ) create_train_depots( oter_id( "central_lab_train_depot" ), central_lab_train_points ); for( auto &i : cities ) { - if( one_in( 3 ) ) { + // Sewers and city subways are present at z == -1 and z == -2. Don't spawn CHUD on other z-levels. + if( ( z == -1 || z == -2 ) && one_in( 3 ) ) { add_mon_group( mongroup( mongroup_id( "GROUP_CHUD" ), i.pos.x * 2, i.pos.y * 2, z, i.size, i.size * 20 ) ); } - if( !one_in( 8 ) ) { + // Sewers are present at z == -1. Don't spawn sewer monsters on other z-levels. + if( z == -1 && !one_in( 8 ) ) { add_mon_group( mongroup( mongroup_id( "GROUP_SEWER" ), i.pos.x * 2, i.pos.y * 2, z, ( i.size * 7 ) / 2, i.size * 70 ) ); } @@ -1975,9 +2019,7 @@ void overmap::place_forest_trails() } // This point is out of bounds, so bail. - bool in_bounds = current_point.x >= 0 && current_point.x < OMAPX && current_point.y >= 0 && - current_point.y < OMAPY; - if( !in_bounds ) { + if( !inbounds( current_point, 1 ) ) { continue; } @@ -2119,64 +2161,69 @@ void overmap::place_forest_trailheads() return; } - // Add the roads out of the overmap to our collection, which - // we'll then use to connect our trailheads to the rest of the - // road network. + // Add the roads out of the overmap and cities to our collection, which + // we'll then use to connect our trailheads to the rest of the road network. std::vector road_points; + road_points.reserve( roads_out.size() + cities.size() ); for( const auto &elem : roads_out ) { + road_points.emplace_back( elem.pos ); + } + for( const auto &elem : cities ) { road_points.emplace_back( elem.pos.x, elem.pos.y ); } // Trailheads may be placed if all of the following are true: // 1. we're at a forest_trail_end_north/south/west/east, // 2. the next two overmap terrains continuing in the direction - // of the trail are fields - // 3. rng rolls a success for our trailhead_chance from the configuration + // of the trail are fields + // 3. we're within trailhead_road_distance from an existing road + // 4. rng rolls a success for our trailhead_chance from the configuration + + const auto trailhead_close_to_road = [&]( const tripoint trailhead ) { + bool close = false; + for( point nearby_point : closest_points_first( settings.forest_trail.trailhead_road_distance, + point( trailhead.x, trailhead.y ) ) ) { + if( check_ot_subtype( "road", nearby_point.x, nearby_point.y, 0 ) ) { + close = true; + } + } + return close; + }; + + const auto try_place_trailhead = [&]( const tripoint trailhead, const tripoint road, + const std::string suffix ) { + oter_id &oter_potential_trailhead = ter( trailhead ); + oter_id &oter_potential_road = ter( road ); + if( oter_potential_trailhead == "field" && oter_potential_road == "field" && + one_in( settings.forest_trail.trailhead_chance ) && trailhead_close_to_road( trailhead ) ) { + oter_potential_trailhead = oter_id( "trailhead" + suffix ); + road_points.emplace_back( road.x, road.y ); + } + }; for( int i = 2; i < OMAPX - 2; i++ ) { for( int j = 2; j < OMAPY - 2; j++ ) { oter_id oter = ter( i, j, 0 ); if( oter == "forest_trail_end_north" ) { - oter_id &oter_potential_trailhead = ter( i, j - 1, 0 ); - oter_id &oter_potential_road = ter( i, j - 2, 0 ); - if( oter_potential_trailhead == "field" && oter_potential_road == "field" && - one_in( settings.forest_trail.trailhead_chance ) ) { - oter_potential_trailhead = oter_id( "trailhead_north" ); - road_points.emplace_back( i, j - 2 ); - } + try_place_trailhead( tripoint( i, j - 1, 0 ), tripoint( i, j - 2, 0 ), "_north" ); } else if( oter == "forest_trail_end_south" ) { - oter_id &oter_potential_trailhead = ter( i, j + 1, 0 ); - oter_id &oter_potential_road = ter( i, j + 2, 0 ); - if( oter_potential_trailhead == "field" && oter_potential_road == "field" && - one_in( settings.forest_trail.trailhead_chance ) ) { - oter_potential_trailhead = oter_id( "trailhead_south" ); - road_points.emplace_back( i, j + 2 ); - } + try_place_trailhead( tripoint( i, j + 1, 0 ), tripoint( i, j + 2, 0 ), "_south" ); } else if( oter == "forest_trail_end_west" ) { - oter_id &oter_potential_trailhead = ter( i - 1, j, 0 ); - oter_id &oter_potential_road = ter( i - 2, j, 0 ); - if( oter_potential_trailhead == "field" && oter_potential_road == "field" && - one_in( settings.forest_trail.trailhead_chance ) ) { - oter_potential_trailhead = oter_id( "trailhead_west" ); - road_points.emplace_back( i, j - 2 ); - } + try_place_trailhead( tripoint( i - 1, j, 0 ), tripoint( i - 2, j, 0 ), "_west" ); } else if( oter == "forest_trail_end_east" ) { - oter_id &oter_potential_trailhead = ter( i + 1, j, 0 ); - oter_id &oter_potential_road = ter( i + 2, j, 0 ); - if( oter_potential_trailhead == "field" && oter_potential_road == "field" && - one_in( settings.forest_trail.trailhead_chance ) ) { - oter_potential_trailhead = oter_id( "trailhead_east" ); - road_points.emplace_back( i, j + 2 ); - } + try_place_trailhead( tripoint( i + 1, j, 0 ), tripoint( i + 2, j, 0 ), "_east" ); } else { continue; } } } - // Connect our road points with local_road connections. - const string_id local_road( "local_road" ); - connect_closest_points( road_points, 0, *local_road ); + // If we actually added some trailheads... + if( road_points.size() > roads_out.size() ) { + // ...then connect our road points with local_road connections. + const string_id local_road( "local_road" ); + connect_closest_points( road_points, 0, *local_road ); + } } void overmap::place_river( point pa, point pb ) @@ -2242,7 +2289,7 @@ void overmap::place_river( point pa, point pb ) for( int i = -1; i <= 1; i++ ) { for( int j = -1; j <= 1; j++ ) { // We don't want our riverbanks touching the edge of the map for many reasons - if( inbounds( x + j, y + i, 0, 1 ) || + if( inbounds( tripoint( x + j, y + i, 0 ), 1 ) || // UNLESS, of course, that's where the river is headed! ( abs( pb.y - ( y + i ) ) < 4 && abs( pb.x - ( x + j ) ) < 4 ) ) { ter( x + j, y + i, 0 ) = oter_id( "river_center" ); @@ -2512,7 +2559,9 @@ bool overmap::build_lab( int x, int y, int z, int s, std::vector *lab_tra } } if( generate_stairs && !generated_lab.empty() ) { - std::random_shuffle( generated_lab.begin(), generated_lab.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( generated_lab.begin(), generated_lab.end(), eng ); // we want a spot where labs are above, but we'll settle for the last element if necessary. point p; @@ -3322,7 +3371,9 @@ om_direction::type overmap::random_special_rotation( const overmap_special &spec } } // Pick first valid rotation at random. - std::random_shuffle( first, last ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( first, last, eng ); const auto rotation = std::find_if( first, last, [&]( om_direction::type elem ) { return can_place_special( special, p, elem, must_be_unexplored ); } ); @@ -3439,7 +3490,9 @@ om_special_sectors get_sectors( const int sector_width ) res.emplace_back( x, y ); } } - std::random_shuffle( res.begin(), res.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( res.begin(), res.end(), eng ); return { res, sector_width }; } @@ -3453,7 +3506,9 @@ bool overmap::place_special_attempt( overmap_special_batch &enabled_specials, const tripoint p( rng( x, x + sector_width - 1 ), rng( y, y + sector_width - 1 ), 0 ); const city &nearest_city = get_nearest_city( p ); - std::random_shuffle( enabled_specials.begin(), enabled_specials.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( enabled_specials.begin(), enabled_specials.end(), eng ); for( auto iter = enabled_specials.begin(); iter != enabled_specials.end(); ++iter ) { const auto &special = *iter->special_details; // If we haven't finished placing minimum instances of all specials, @@ -3487,7 +3542,9 @@ void overmap::place_specials_pass( overmap_special_batch &enabled_specials, om_special_sectors §ors, const bool place_optional, const bool must_be_unexplored ) { // Walk over sectors in random order, to minimize "clumping". - std::random_shuffle( sectors.sectors.begin(), sectors.sectors.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( sectors.sectors.begin(), sectors.sectors.end(), eng ); for( auto it = sectors.sectors.begin(); it != sectors.sectors.end(); ) { const size_t attempts = 10; bool placed = false; @@ -3574,7 +3631,9 @@ void overmap::place_specials( overmap_special_batch &enabled_specials ) } } if( !nearest_candidates.empty() ) { - std::random_shuffle( nearest_candidates.begin(), nearest_candidates.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( nearest_candidates.begin(), nearest_candidates.end(), eng ); point new_om_addr = nearest_candidates.front(); overmap_buffer.create_custom_overmap( new_om_addr.x, new_om_addr.y, custom_overmap_specials ); } else { diff --git a/src/overmap.h b/src/overmap.h index a3230d52a325e..add89a950b042 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -15,7 +15,7 @@ #include "game_constants.h" #include "monster.h" #include "omdata.h" -#include "overmap_types.h" +#include "overmap_types.h" // IWYU pragma: keep #include "regional_settings.h" #include "weighted_list.h" @@ -203,12 +203,13 @@ class overmap void set_scent( const tripoint &loc, scent_trace &new_scent ); /** - * @returns Whether @param loc is within desired bounds of the overmap + * @returns Whether @param p is within desired bounds of the overmap * @param clearance Minimal distance from the edges of the overmap */ - static bool inbounds( const tripoint &loc, int clearance = 0 ); - static bool inbounds( int x, int y, int z, - int clearance = 0 ); /// @todo: This one should be obsoleted + static bool inbounds( const tripoint &p, int clearance = 0 ); + static bool inbounds( const point &p, int clearance = 0 ) { + return inbounds( tripoint( p, 0 ), clearance ); + } /** * Dummy value, used to indicate that a point returned by a function is invalid. */ diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index 2665d4d549296..2c210712d9f26 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -144,7 +144,7 @@ bool get_scent_glyph( const tripoint &pos, nc_color &ter_color, long &ter_sym ) color_manager &color_list = get_all_colors(); int i = 0; time_duration scent_age = calendar::turn - possible_scent.creation_time; - while( i < num_colors && scent_age > 0 ) { + while( i < num_colors && scent_age > 0_turns ) { i++; scent_age /= 10; } @@ -614,9 +614,11 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr const std::string ¬e_text = overmap_buffer.note( cursx, cursy, z ); if( !note_text.empty() ) { - const size_t pos = std::get<2>( get_note_display_info( note_text ) ); + const std::tuple note_info = get_note_display_info( + note_text ); + const size_t pos = std::get<2>( note_info ); if( pos != std::string::npos ) { - corner_text.emplace_back( c_yellow, note_text.substr( pos ) ); + corner_text.emplace_back( std::get<1>( note_info ), note_text.substr( pos ) ); } } @@ -1109,7 +1111,7 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() do { // overmap::draw will handle actually showing the preview draw( g->w_overmap, g->w_omlegend, curs, orig, uistate.overmap_show_overlays, show_explored, - fast_scroll, NULL, draw_data_t() ); + fast_scroll, nullptr, draw_data_t() ); draw_border( w_editor ); if( terrain ) { @@ -1121,7 +1123,7 @@ tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() mvwprintz( w_editor, 2, 1, c_light_blue, " " ); mvwprintz( w_editor, 2, 1, c_light_blue, uistate.place_special->id.c_str() ); } - const std::string rotation = om_direction::name( uistate.omedit_rotation ); + const std::string &rotation = om_direction::name( uistate.omedit_rotation ); mvwprintz( w_editor, 3, 1, c_light_gray, " " ); mvwprintz( w_editor, 3, 1, c_light_gray, _( "Rotation: %s %s" ), rotation.c_str(), diff --git a/src/overmapbuffer.cpp b/src/overmapbuffer.cpp index be68a97114cd5..e12dc8985eb95 100644 --- a/src/overmapbuffer.cpp +++ b/src/overmapbuffer.cpp @@ -712,7 +712,7 @@ bool overmapbuffer::check_overmap_special_type( const overmap_special_id &id, co bool overmapbuffer::is_findable_location( const tripoint &location, const std::string &type, bool must_be_seen, bool allow_subtype_matches, - bool existing_overmaps_only, cata::optional om_special ) + bool existing_overmaps_only, const cata::optional &om_special ) { if( existing_overmaps_only ) { const bool type_matches = allow_subtype_matches @@ -758,7 +758,7 @@ bool overmapbuffer::is_findable_location( const tripoint &location, const std::s tripoint overmapbuffer::find_closest( const tripoint &origin, const std::string &type, int const radius, bool must_be_seen, bool allow_subtype_matches, bool existing_overmaps_only, - cata::optional om_special ) + const cata::optional &om_special ) { // Check the origin before searching adjacent tiles! if( is_findable_location( origin, type, must_be_seen, allow_subtype_matches, existing_overmaps_only, @@ -824,7 +824,7 @@ tripoint overmapbuffer::find_closest( const tripoint &origin, const std::string std::vector overmapbuffer::find_all( const tripoint &origin, const std::string &type, int dist, bool must_be_seen, bool allow_subtype_matches, bool existing_overmaps_only, - cata::optional om_special ) + const cata::optional &om_special ) { std::vector result; // dist == 0 means search a whole overmap diameter. @@ -844,7 +844,7 @@ std::vector overmapbuffer::find_all( const tripoint &origin, const std tripoint overmapbuffer::find_random( const tripoint &origin, const std::string &type, int dist, bool must_be_seen, bool allow_subtype_matches, bool existing_overmaps_only, - cata::optional om_special ) + const cata::optional &om_special ) { return random_entry( find_all( origin, type, dist, must_be_seen, allow_subtype_matches, existing_overmaps_only, @@ -861,7 +861,7 @@ std::shared_ptr overmapbuffer::find_npc( int id ) return nullptr; } -void overmapbuffer::insert_npc( const std::shared_ptr who ) +void overmapbuffer::insert_npc( const std::shared_ptr &who ) { assert( who ); const tripoint npc_omt_pos = who->global_omt_location(); @@ -1237,7 +1237,7 @@ bool overmapbuffer::place_special( const overmap_special &special, const tripoin return placed; } -bool overmapbuffer::place_special( const overmap_special_id special_id, const tripoint ¢er, +bool overmapbuffer::place_special( const overmap_special_id &special_id, const tripoint ¢er, int radius ) { // First find the requested special. If it doesn't exist, we're done here. diff --git a/src/overmapbuffer.h b/src/overmapbuffer.h index 05509839240c8..5b619099e102b 100644 --- a/src/overmapbuffer.h +++ b/src/overmapbuffer.h @@ -201,7 +201,7 @@ class overmapbuffer * Adds the npc to an overmap ( based on the npcs current location ) * and stores it there. The overmap takes ownership of the pointer. */ - void insert_npc( std::shared_ptr who ); + void insert_npc( const std::shared_ptr &who ); /** * Find all places with the specific overmap terrain type. @@ -225,7 +225,7 @@ class overmapbuffer std::vector find_all( const tripoint &origin, const std::string &type, int dist, bool must_be_seen, bool allow_subtype_matches = false, bool existing_overmaps_only = false, - cata::optional om_special = cata::nullopt ); + const cata::optional &om_special = cata::nullopt ); /** * Returns a random point of specific terrain type among those found in certain search radius. @@ -248,7 +248,7 @@ class overmapbuffer tripoint find_random( const tripoint &origin, const std::string &type, int dist, bool must_be_seen, bool allow_subtype_matches = false, bool existing_overmaps_only = false, - cata::optional om_special = cata::nullopt ); + const cata::optional &om_special = cata::nullopt ); /** * Mark a square area around center on Z-level z @@ -286,7 +286,7 @@ class overmapbuffer tripoint find_closest( const tripoint &origin, const std::string &type, int radius, bool must_be_seen, bool allow_subtype_matches = false, bool existing_overmaps_only = false, - cata::optional om_special = cata::nullopt ); + const cata::optional &om_special = cata::nullopt ); /* These 4 functions return the overmap that contains the given * overmap terrain coordinate. @@ -430,7 +430,7 @@ class overmapbuffer * @param radius Used in conjunction with center. Absolute overmap terrain units. * @returns True if the special was placed, else false. */ - bool place_special( const overmap_special_id special_id, const tripoint ¢er, int radius ); + bool place_special( const overmap_special_id &special_id, const tripoint ¢er, int radius ); private: /** @@ -449,7 +449,7 @@ class overmapbuffer bool is_findable_location( const tripoint &location, const std::string &type, bool must_be_seen, bool allow_subtype_matches = false, bool existing_overmaps_only = false, - cata::optional om_special = cata::nullopt ); + const cata::optional &om_special = cata::nullopt ); std::unordered_map< point, std::unique_ptr< overmap > > overmaps; /** diff --git a/src/path_info.h b/src/path_info.h index 33ad902908069..b5db0a7d3a455 100644 --- a/src/path_info.h +++ b/src/path_info.h @@ -23,12 +23,12 @@ void set_standard_filenames(); * @param extension File name extension, is automatically added to the path * of the translated file. Can be empty, but must otherwise include the * initial '.', e.g. ".json" - * @param defaultid The path id of the fallback filename. As like pathid it's + * @param fallbackid The path id of the fallback filename. As like pathid it's * the key into the @ref FILENAMES map. It is used if no translated file can be * found. */ std::string find_translated_file( const std::string &pathid, const std::string &extension, - const std::string &defaultid ); + const std::string &fallbackid ); } #endif diff --git a/src/pickup.cpp b/src/pickup.cpp index dc436842d4645..1af8c22724c16 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -40,7 +40,7 @@ typedef enum { DONE, ITEMS_FROM_CARGO, ITEMS_FROM_GROUND, } interact_results; -static interact_results interact_with_vehicle( vehicle *veh, const tripoint &vpos, +static interact_results interact_with_vehicle( vehicle *veh, const tripoint &pos, int veh_root_part ); static void remove_from_map_or_vehicle( const tripoint &pos, vehicle *veh, int cargo_part, @@ -98,11 +98,13 @@ interact_results interact_with_vehicle( vehicle *veh, const tripoint &pos, const bool has_monster_capture = ( monster_capture_part >= 0 ); const int bike_rack_part = veh->avail_part_with_feature( veh_root_part, "BIKE_RACK_VEH", true ); const bool has_bike_rack = ( bike_rack_part >= 0 ); + const bool has_planter = veh->avail_part_with_feature( veh_root_part, "PLANTER", true ) >= 0 || + veh->avail_part_with_feature( veh_root_part, "ADVANCED_PLANTER", true ) >= 0; 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_WASHMACHINE, USE_MONSTER_CAPTURE, - USE_BIKE_RACK + USE_BIKE_RACK, RELOAD_PLANTER }; uilist selectmenu; @@ -175,6 +177,10 @@ interact_results interact_with_vehicle( vehicle *veh, const tripoint &pos, selectmenu.addentry( USE_BIKE_RACK, true, 'R', _( "Load or unload a vehicle" ) ); } + if( has_planter ) { + selectmenu.addentry( RELOAD_PLANTER, true, 's', _( "Reload seed drill with seeds" ) ); + } + int choice; if( selectmenu.entries.size() == 1 ) { choice = selectmenu.entries.front().retval; @@ -320,6 +326,10 @@ interact_results interact_with_vehicle( vehicle *veh, const tripoint &pos, case GET_ITEMS: return from_vehicle ? ITEMS_FROM_CARGO : ITEMS_FROM_GROUND; + + case RELOAD_PLANTER: + veh->reload_seeds( pos ); + return DONE; } return DONE; @@ -623,16 +633,16 @@ bool Pickup::do_pickup( const tripoint &pickup_target_arg, bool from_vehicle, } // Pick up items at (pos). -void Pickup::pick_up( const tripoint &pos, int min ) +void Pickup::pick_up( const tripoint &p, int min ) { int cargo_part = -1; - const optional_vpart_position vp = g->m.veh_at( pos ); + const optional_vpart_position vp = g->m.veh_at( p ); vehicle *const veh = veh_pointer_or_null( vp ); bool from_vehicle = false; if( min != -1 ) { - switch( interact_with_vehicle( veh, pos, vp ? vp->part_index() : -1 ) ) { + switch( interact_with_vehicle( veh, p, vp ? vp->part_index() : -1 ) ) { case DONE: return; case ITEMS_FROM_CARGO: { @@ -643,7 +653,7 @@ void Pickup::pick_up( const tripoint &pos, int min ) break; case ITEMS_FROM_GROUND: // Nothing to change, default is to pick from ground anyway. - if( g->m.has_flag( "SEALED", pos ) ) { + if( g->m.has_flag( "SEALED", p ) ) { return; } @@ -652,13 +662,13 @@ void Pickup::pick_up( const tripoint &pos, int min ) } if( !from_vehicle ) { - bool isEmpty = ( g->m.i_at( pos ).empty() ); + bool isEmpty = ( g->m.i_at( p ).empty() ); // Hide the pickup window if this is a toilet and there's nothing here // but water. - if( ( !isEmpty ) && g->m.furn( pos ) == f_toilet ) { + if( ( !isEmpty ) && g->m.furn( p ) == f_toilet ) { isEmpty = true; - for( const item &maybe_water : g->m.i_at( pos ) ) { + for( const item &maybe_water : g->m.i_at( p ) ) { if( maybe_water.typeId() != "water" ) { isEmpty = false; break; @@ -678,29 +688,29 @@ void Pickup::pick_up( const tripoint &pos, int min ) here.resize( vehitems.size() ); std::copy( vehitems.begin(), vehitems.end(), here.begin() ); } else { - auto mapitems = g->m.i_at( pos ); + auto mapitems = g->m.i_at( p ); here.resize( mapitems.size() ); std::copy( mapitems.begin(), mapitems.end(), here.begin() ); } if( min == -1 ) { // Recursively pick up adjacent items if that option is on. - if( get_option( "AUTO_PICKUP_ADJACENT" ) && g->u.pos() == pos ) { + if( get_option( "AUTO_PICKUP_ADJACENT" ) && g->u.pos() == p ) { //Autopickup adjacent direction adjacentDir[8] = {NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST}; for( auto &elem : adjacentDir ) { tripoint apos = tripoint( direction_XY( elem ), 0 ); - apos += pos; + apos += p; pick_up( apos, min ); } } // Bail out if this square cannot be auto-picked-up - if( g->check_zone( zone_type_id( "NO_AUTO_PICKUP" ), pos ) ) { + if( g->check_zone( zone_type_id( "NO_AUTO_PICKUP" ), p ) ) { return; - } else if( g->m.has_flag( "SEALED", pos ) ) { + } else if( g->m.has_flag( "SEALED", p ) ) { return; } } @@ -708,7 +718,7 @@ void Pickup::pick_up( const tripoint &pos, int min ) // Not many items, just grab them if( static_cast( here.size() ) <= min && min != -1 ) { g->u.assign_activity( activity_id( "ACT_PICKUP" ) ); - g->u.activity.placement = pos - g->u.pos(); + g->u.activity.placement = p - g->u.pos(); g->u.activity.values.push_back( from_vehicle ); // Only one item means index is 0. g->u.activity.values.push_back( 0 ); @@ -983,7 +993,7 @@ void Pickup::pick_up( const tripoint &pos, int min ) draw_item_info( w_item_info, "", "", vThisItem, vDummy, iScrollPos, true, true ); } - draw_custom_border( w_item_info, false ); + draw_custom_border( w_item_info, 0 ); mvwprintw( w_item_info, 0, 2, "< " ); trim_and_print( w_item_info, 0, 4, itemsW - 8, c_white, "%s >", selected_item.display_name().c_str() ); @@ -1012,7 +1022,7 @@ void Pickup::pick_up( const tripoint &pos, int min ) item &this_item = stacked_here[ true_it ].begin()->_item; nc_color icolor = this_item.color_in_inventory(); if( cur_it == selected ) { - icolor = hilite( icolor ); + icolor = hilite( c_white ); } if( cur_it < static_cast( pickup_chars.size() ) ) { @@ -1099,8 +1109,8 @@ void Pickup::pick_up( const tripoint &pos, int min ) for( int i = 9; i < pickupW; ++i ) { mvwaddch( w_pickup, 0, i, ' ' ); } - units::mass weight_picked_up = 0; - units::volume volume_picked_up = 0; + units::mass weight_picked_up = 0_gram; + units::volume volume_picked_up = 0_ml; for( size_t i = 0; i < getitem.size(); i++ ) { if( getitem[i].pick ) { item temp = stacked_here[i].begin()->_item; @@ -1156,7 +1166,7 @@ void Pickup::pick_up( const tripoint &pos, int min ) // At this point we've selected our items, register an activity to pick them up. g->u.assign_activity( activity_id( "ACT_PICKUP" ) ); - g->u.activity.placement = pos - g->u.pos(); + g->u.activity.placement = p - g->u.pos(); g->u.activity.values.push_back( from_vehicle ); if( min == -1 ) { // Auto pickup will need to auto resume since there can be several of them on the stack. diff --git a/src/pickup.h b/src/pickup.h index 4bc09bcbeb567..859e447a2ba3f 100644 --- a/src/pickup.h +++ b/src/pickup.h @@ -18,7 +18,7 @@ namespace Pickup * Returns `false` if the player was presented a prompt and decided to cancel the pickup. * `true` in other cases. */ -bool do_pickup( const tripoint &pickup_target, bool from_vehicle, +bool do_pickup( const tripoint &pickup_target_arg, bool from_vehicle, std::list &indices, std::list &quantities, bool autopickup ); /** Pick up items; ',' or via examine() */ diff --git a/src/player.cpp b/src/player.cpp index e7a9ee9b1d570..b37de1c7e88c9 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -1,9 +1,16 @@ #include "player.h" +#include +#include +#include #include #include +#include +#include +#include #include "action.h" +#include "activity_handlers.h" #include "addiction.h" #include "ammo.h" #include "bionics.h" @@ -24,6 +31,7 @@ #include "input.h" #include "inventory.h" #include "item.h" +#include "item_location.h" #include "itype.h" #include "iuse_actor.h" #include "map.h" @@ -68,20 +76,7 @@ #include "weather.h" #include "weather_gen.h" -#ifdef TILES -# if defined(_MSC_VER) && defined(USE_VCPKG) -# include -# else -# include -# endif -#endif // TILES - -#include -#include -#include -#include -#include -#include +constexpr double SQRT_2 = 1.41421356237309504880; const double MAX_RECOIL = 3000; @@ -172,6 +167,8 @@ const efftype_id effect_magnesium_supplements( "magnesium" ); const matype_id style_none( "style_none" ); const matype_id style_kicks( "style_kicks" ); +const species_id ROBOT( "ROBOT" ); + static const bionic_id bio_ads( "bio_ads" ); static const bionic_id bio_advreactor( "bio_advreactor" ); static const bionic_id bio_armor_arms( "bio_armor_arms" ); @@ -228,6 +225,7 @@ static const trait_id trait_ADDICTIVE( "ADDICTIVE" ); static const trait_id trait_ADRENALINE( "ADRENALINE" ); static const trait_id trait_ALBINO( "ALBINO" ); static const trait_id trait_AMORPHOUS( "AMORPHOUS" ); +static const trait_id trait_AMPHIBIAN( "AMPHIBIAN" ); static const trait_id trait_ANTENNAE( "ANTENNAE" ); static const trait_id trait_ANTLERS( "ANTLERS" ); static const trait_id trait_ARACHNID_ARMS( "ARACHNID_ARMS" ); @@ -238,9 +236,6 @@ static const trait_id trait_BADCARDIO( "BADCARDIO" ); static const trait_id trait_BADHEARING( "BADHEARING" ); static const trait_id trait_BADKNEES( "BADKNEES" ); static const trait_id trait_BARK( "BARK" ); -static const trait_id trait_BEAUTIFUL( "BEAUTIFUL" ); -static const trait_id trait_BEAUTIFUL2( "BEAUTIFUL2" ); -static const trait_id trait_BEAUTIFUL3( "BEAUTIFUL3" ); static const trait_id trait_BIRD_EYE( "BIRD_EYE" ); static const trait_id trait_CANINE_EARS( "CANINE_EARS" ); static const trait_id trait_CANNIBAL( "CANNIBAL" ); @@ -248,6 +243,7 @@ static const trait_id trait_CENOBITE( "CENOBITE" ); static const trait_id trait_CEPH_EYES( "CEPH_EYES" ); static const trait_id trait_CF_HAIR( "CF_HAIR" ); static const trait_id trait_CHAOTIC( "CHAOTIC" ); +static const trait_id trait_CHAOTIC_BAD( "CHAOTIC_BAD" ); static const trait_id trait_CHEMIMBALANCE( "CHEMIMBALANCE" ); static const trait_id trait_CHITIN2( "CHITIN2" ); static const trait_id trait_CHITIN3( "CHITIN3" ); @@ -268,15 +264,13 @@ static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); static const trait_id trait_DEBUG_LS( "DEBUG_LS" ); static const trait_id trait_DEBUG_NODMG( "DEBUG_NODMG" ); static const trait_id trait_DEBUG_NOTEMP( "DEBUG_NOTEMP" ); -static const trait_id trait_DEFORMED( "DEFORMED" ); -static const trait_id trait_DEFORMED2( "DEFORMED2" ); -static const trait_id trait_DEFORMED3( "DEFORMED3" ); static const trait_id trait_DISIMMUNE( "DISIMMUNE" ); static const trait_id trait_DISRESISTANT( "DISRESISTANT" ); static const trait_id trait_DOWN( "DOWN" ); static const trait_id trait_EAGLEEYED( "EAGLEEYED" ); static const trait_id trait_EASYSLEEPER( "EASYSLEEPER" ); static const trait_id trait_EASYSLEEPER2( "EASYSLEEPER2" ); +static const trait_id trait_ELECTRORECEPTORS( "ELECTRORECEPTORS" ); static const trait_id trait_EATHEALTH( "EATHEALTH" ); static const trait_id trait_FASTHEALER( "FASTHEALER" ); static const trait_id trait_FASTHEALER2( "FASTHEALER2" ); @@ -289,6 +283,7 @@ static const trait_id trait_FLEET( "FLEET" ); static const trait_id trait_FLEET2( "FLEET2" ); static const trait_id trait_FLOWERS( "FLOWERS" ); static const trait_id trait_FORGETFUL( "FORGETFUL" ); +static const trait_id trait_FRESHWATEROSMOSIS( "FRESHWATEROSMOSIS" ); static const trait_id trait_FUR( "FUR" ); static const trait_id trait_GILLS( "GILLS" ); static const trait_id trait_GILLS_CEPH( "GILLS_CEPH" ); @@ -361,7 +356,6 @@ static const trait_id trait_PONDEROUS3( "PONDEROUS3" ); 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_PRETTY( "PRETTY" ); static const trait_id trait_PROF_DICEMASTER( "PROF_DICEMASTER" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_PYROMANIA( "PYROMANIA" ); @@ -378,7 +372,9 @@ static const trait_id trait_ROOTS3( "ROOTS3" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_SAVANT( "SAVANT" ); static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); +static const trait_id trait_SEESLEEP( "SEESLEEP" ); static const trait_id trait_SELFAWARE( "SELFAWARE" ); +static const trait_id trait_SHARKTEETH( "SHARKTEETH" ); static const trait_id trait_SHELL2( "SHELL2" ); static const trait_id trait_SHOUT1( "SHOUT1" ); static const trait_id trait_SHOUT2( "SHOUT2" ); @@ -396,6 +392,7 @@ static const trait_id trait_SORES( "SORES" ); static const trait_id trait_SPINES( "SPINES" ); static const trait_id trait_SPIRITUAL( "SPIRITUAL" ); static const trait_id trait_SQUEAMISH( "SQUEAMISH" ); +static const trait_id trait_STIMBOOST( "STIMBOOST" ); static const trait_id trait_STRONGSTOMACH( "STRONGSTOMACH" ); static const trait_id trait_SUNBURN( "SUNBURN" ); static const trait_id trait_SUNLIGHT_DEPENDENT( "SUNLIGHT_DEPENDENT" ); @@ -407,7 +404,6 @@ static const trait_id trait_TOUGH_FEET( "TOUGH_FEET" ); static const trait_id trait_TROGLO( "TROGLO" ); static const trait_id trait_TROGLO2( "TROGLO2" ); static const trait_id trait_TROGLO3( "TROGLO3" ); -static const trait_id trait_UGLY( "UGLY" ); static const trait_id trait_UNOBSERVANT( "UNOBSERVANT" ); static const trait_id trait_UNSTABLE( "UNSTABLE" ); static const trait_id trait_URSINE_EARS( "URSINE_EARS" ); @@ -625,7 +621,7 @@ void player::reset_stats() add_miss_reason( _( "Your clothing constricts your arachnid limbs." ), 2 ); } } - const auto set_fake_effect_dur = [this]( const efftype_id &type, const time_duration dur ) { + const auto set_fake_effect_dur = [this]( const efftype_id &type, const time_duration &dur ) { effect &eff = get_effect( type ); if( eff.get_duration() == dur ) { return; @@ -664,7 +660,11 @@ void player::reset_stats() // Stimulants set_fake_effect_dur( effect_stim, 1_turns * stim ); set_fake_effect_dur( effect_depressants, 1_turns * -stim ); - set_fake_effect_dur( effect_stim_overdose, 1_turns * ( stim - 30 ) ); + if( has_trait ( trait_STIMBOOST ) ) { + set_fake_effect_dur ( effect_stim_overdose, 1_turns * (stim - 60) ); + } else { + set_fake_effect_dur ( effect_stim_overdose, 1_turns * (stim - 30) ); + } // Starvation if( get_starvation() >= 200 ) { // We die at 6000 @@ -832,6 +832,12 @@ void player::process_turn() add_msg_if_player( m_info, _( "You learned a new style." ) ); } } + if( inp_mngr.get_previously_pressed_key() == KEY_LEFT ) { + facing = FD_LEFT; + } + else if( inp_mngr.get_previously_pressed_key() == KEY_RIGHT ) { + facing = FD_RIGHT; + } } void player::action_taken() @@ -841,7 +847,7 @@ void player::action_taken() void player::update_morale() { - morale->decay( 1_turns ); + morale->decay( 10_turns ); apply_persistent_morale(); } @@ -862,7 +868,7 @@ void player::apply_persistent_morale() pen = pen / 2; } if( pen > 0 ) { - add_morale( MORALE_PERM_HOARDER, -pen, -pen, 5_turns, 5_turns, true ); + add_morale( MORALE_PERM_HOARDER, -pen, -pen, 1_minutes, 1_minutes, true ); } } } @@ -1030,7 +1036,8 @@ void player::update_bodytemp() const bool has_bark = has_trait( trait_BARK ); const bool has_sleep = has_effect( effect_sleep ); const bool has_sleep_state = has_sleep || in_sleep_state(); - const bool has_heatsink = has_bionic( bio_heatsink ) || is_wearing( "rm13_armor_on" ) || has_trait( trait_id( "M_SKIN2" ) ) || has_trait( trait_M_SKIN3 ); + const bool has_heatsink = has_bionic( bio_heatsink ) || is_wearing( "rm13_armor_on" ) || + has_trait( trait_M_SKIN2 ) || has_trait( trait_M_SKIN3 ); const bool has_common_cold = has_effect( effect_common_cold ); const bool has_climate_control = in_climate_control(); const bool use_floor_warmth = can_use_floor_warmth(); @@ -1865,7 +1872,7 @@ int player::run_cost( int base_cost, bool diag ) const movecost /= stamina_modifier; if( diag ) { - movecost *= 1.4142; + movecost *= SQRT_2; } return int( movecost ); @@ -1873,10 +1880,17 @@ int player::run_cost( int base_cost, bool diag ) const int player::swim_speed() const { - int ret = 440 + weight_carried() / 60_gram - 50 * get_skill_level( skill_swimming ); + int ret; const auto usable = exclusive_flag_coverage( "ALLOWS_NATURAL_ATTACKS" ); float hand_bonus_mult = ( usable.test( bp_hand_l ) ? 0.5f : 0.0f ) + ( usable.test( bp_hand_r ) ? 0.5f : 0.0f ); + + if( !has_trait( trait_AMPHIBIAN ) ) { + ret = 440 + weight_carried() / 60_gram - 50 * get_skill_level( skill_swimming ); + /** AMPHIBIAN increases base swim speed */ + } else { + ret = 200 + weight_carried() / 120_gram - 50 * get_skill_level( skill_swimming ); + } /** @EFFECT_STR increases swim speed bonus from PAWS */ if( has_trait( trait_PAWS ) ) { ret -= hand_bonus_mult * ( 20 + str_cur * 3 ); @@ -2772,7 +2786,7 @@ bool player::sight_impaired() const ( !( has_trait( trait_PER_SLIME_OK ) ) ) ) || ( underwater && !has_bionic( bio_membrane ) && !has_trait( trait_MEMBRANE ) && !worn_with_flag( "SWIM_GOGGLES" ) && !has_trait( trait_PER_SLIME_OK ) && - !has_trait( trait_CEPH_EYES ) ) || + !has_trait( trait_CEPH_EYES ) && !has_trait( trait_SEESLEEP ) ) || ( ( has_trait( trait_MYOPIC ) || has_trait( trait_URSINE_EYE ) ) && !worn_with_flag( "FIX_NEARSIGHT" ) && !has_effect( effect_contacts ) && @@ -2919,7 +2933,7 @@ void player::shout( std::string msg ) base = 15; shout_multiplier = 3; if ( msg.empty() ) { - msg = is_player() ? _("yourself scream loudly!") : _("a loud scream!"); + msg = is_player() ? _( "yourself scream loudly!" ) : _( "a loud scream!" ); } } @@ -2927,12 +2941,12 @@ void player::shout( std::string msg ) shout_multiplier = 4; base = 20; if ( msg.empty() ) { - msg = is_player() ? _("yourself let out a piercing howl!") : _("a piercing howl!"); + msg = is_player() ? _( "yourself let out a piercing howl!" ) : _( "a piercing howl!" ); } } if ( msg.empty() ) { - msg = is_player() ? _("yourself shout loudly!") : _("a loud shout!"); + msg = is_player() ? _( "yourself shout loudly!" ) : _( "a loud shout!" ); } // Masks and such dampen the sound // Balanced around whisper for wearing bondage mask @@ -2947,7 +2961,7 @@ void player::shout( std::string msg ) if ( noise <= base ) { std::string dampened_shout; - std::transform( msg.begin(), msg.end(), std::back_inserter(dampened_shout), tolower ); + std::transform( msg.begin(), msg.end(), std::back_inserter( dampened_shout ), tolower ); noise = std::max( minimum_noise, noise ); msg = std::move( dampened_shout ); } @@ -2958,15 +2972,17 @@ void player::shout( std::string msg ) mod_stat( "oxygen", -noise ); } - noise = std::max(minimum_noise, noise / 2); + noise = std::max( minimum_noise, noise / 2 ); } + // TODO: indistinct noise descriptions should be handled in the sounds code if( noise <= minimum_noise ) { - add_msg( m_warning, _( "The sound of your voice is almost completely muffled!" ) ); - msg.clear(); + add_msg_if_player( m_warning, + _( "The sound of your voice is almost completely muffled!" ) ); + msg = is_player() ? _( "your muffled shout" ) : _( "an indistinct voice" ); } else if( noise * 2 <= noise + penalty ) { // The shout's volume is 1/2 or lower of what it would be without the penalty - add_msg( m_warning, _( "The sound of your voice is significantly muffled!" ) ); + add_msg_if_player( m_warning, _( "The sound of your voice is significantly muffled!" ) ); } sounds::sound( pos(), noise, sounds::sound_t::speech, msg ); @@ -4265,55 +4281,81 @@ void player::check_needs_extremes() } -void player::update_needs( int rate_multiplier ) +needs_rates player::calc_needs_rates() { - // Hunger, thirst, & fatigue up every 5 minutes effect &sleep = get_effect( effect_sleep ); - // No food/thirst/fatigue clock at all - const bool debug_ls = has_trait( trait_DEBUG_LS ); - // No food/thirst, capped fatigue clock (only up to tired) - const bool npc_no_food = is_npc() && get_option( "NO_NPC_FOOD" ); - const bool foodless = debug_ls || npc_no_food; const bool has_recycler = has_bionic( bio_recycler ); const bool asleep = !sleep.is_null(); - const bool lying = asleep || has_effect( effect_lying_down ) || - activity.id() == "ACT_TRY_SLEEP"; - const bool hibernating = asleep && is_hibernating(); - const bool mouse = has_trait( trait_NO_THIRST ); - const bool mycus = has_trait( trait_M_DEPENDENT ); - float hunger_rate = metabolic_rate(); - add_msg_if_player( m_debug, "Metabolic rate: %.2f", hunger_rate ); - float thirst_rate = get_option< float >( "PLAYER_THIRST_RATE" ); - thirst_rate *= 1.0f + mutation_value( "thirst_modifier" ); + needs_rates rates; + rates.hunger = metabolic_rate(); + add_msg_if_player( m_debug, "Metabolic rate: %.2f", rates.hunger ); + + rates.thirst = get_option< float >( "PLAYER_THIRST_RATE" ); + rates.thirst *= 1.0f + mutation_value( "thirst_modifier" ); if( worn_with_flag( "SLOWS_THIRST" ) ) { - thirst_rate *= 0.7f; + rates.thirst *= 0.7f; } // Note: intentionally not in metabolic rate if( has_recycler ) { // Recycler won't help much with mutant metabolism - it is intended for human one - hunger_rate = std::min( hunger_rate, std::max( 0.5f, hunger_rate - 0.5f ) ); - thirst_rate = std::min( thirst_rate, std::max( 0.5f, thirst_rate - 0.5f ) ); + rates.hunger = std::min( rates.hunger, std::max( 0.5f, rates.hunger - 0.5f ) ); + rates.thirst = std::min( rates.thirst, std::max( 0.5f, rates.thirst - 0.5f ) ); } - if( asleep && !hibernating ) { - // Hunger and thirst advance more slowly while we sleep. This is the standard rate. - hunger_rate *= 0.5f; - thirst_rate *= 0.5f; - } else if( asleep && hibernating ) { - // Hunger and thirst advance *much* more slowly whilst we hibernate. - hunger_rate *= (2.0f / 7.0f); - thirst_rate *= (2.0f / 7.0f); + if( asleep ) { + rates.recovery = 1.0f + mutation_value( "fatigue_regen_modifier" ); + if( !is_hibernating() ) { + // Hunger and thirst advance more slowly while we sleep. This is the standard rate. + rates.hunger *= 0.5f; + rates.thirst *= 0.5f; + const int intense = sleep.is_null() ? 0 : sleep.get_intensity(); + // Accelerated recovery capped to 2x over 2 hours + // After 16 hours of activity, equal to 7.25 hours of rest + const int accelerated_recovery_chance = 24 - intense + 1; + const float accelerated_recovery_rate = 1.0f / accelerated_recovery_chance; + rates.recovery += accelerated_recovery_rate; + + } else { + // Hunger and thirst advance *much* more slowly whilst we hibernate. + rates.hunger *= ( 2.0f / 7.0f ); + rates.thirst *= ( 2.0f / 7.0f ); + } + rates.recovery -= float( get_perceived_pain() ) / 60; + + } else { + rates.recovery = 0; } if( is_npc() ) { - hunger_rate *= 0.25f; - thirst_rate *= 0.25f; + rates.hunger *= 0.25f; + rates.thirst *= 0.25f; } + rates.fatigue = get_option< float >( "PLAYER_FATIGUE_RATE" ); + rates.fatigue *= 1.0f + mutation_value( "fatigue_modifier" ); + return rates; +} + +void player::update_needs( int rate_multiplier ) +{ + // Hunger, thirst, & fatigue up every 5 minutes + effect &sleep = get_effect( effect_sleep ); + // No food/thirst/fatigue clock at all + const bool debug_ls = has_trait( trait_DEBUG_LS ); + // No food/thirst, capped fatigue clock (only up to tired) + const bool npc_no_food = is_npc() && get_option( "NO_NPC_FOOD" ); + const bool foodless = debug_ls || npc_no_food; + const bool asleep = !sleep.is_null(); + const bool lying = asleep || has_effect( effect_lying_down ) || + activity.id() == "ACT_TRY_SLEEP"; + const bool mouse = has_trait( trait_NO_THIRST ); + const bool mycus = has_trait( trait_M_DEPENDENT ); + + needs_rates rates = calc_needs_rates(); - if( !foodless && hunger_rate > 0.0f ) { - const int rolled_hunger = divide_roll_remainder( hunger_rate * rate_multiplier, 1.0 ); + if( !foodless && rates.hunger > 0.0f ) { + const int rolled_hunger = divide_roll_remainder( rates.hunger * rate_multiplier, 1.0 ); mod_hunger( rolled_hunger ); // if the playing is famished, starvation increases @@ -4324,8 +4366,8 @@ void player::update_needs( int rate_multiplier ) } } - if( !foodless && thirst_rate > 0.0f ) { - mod_thirst( divide_roll_remainder( thirst_rate * rate_multiplier, 1.0 ) ); + if( !foodless && rates.thirst > 0.0f ) { + mod_thirst( divide_roll_remainder( rates.thirst * rate_multiplier, 1.0 ) ); } if( mycus ) { // Mycus feeders synchronize hunger and thirst, since their only source of both is the mycus fruit. @@ -4342,11 +4384,8 @@ void player::update_needs( int rate_multiplier ) const bool wasnt_fatigued = get_fatigue() <= DEAD_TIRED; // Don't increase fatigue if sleeping or trying to sleep or if we're at the cap. if( get_fatigue() < 1050 && !asleep && !debug_ls ) { - float fatigue_rate = get_option< float >( "PLAYER_FATIGUE_RATE" ); - fatigue_rate *= 1.0f + mutation_value( "fatigue_modifier" ); - - if( fatigue_rate > 0.0f ) { - int fatigue_roll = divide_roll_remainder( fatigue_rate * rate_multiplier, 1.0 ); + if( rates.fatigue > 0.0f ) { + int fatigue_roll = divide_roll_remainder( rates.fatigue * rate_multiplier, 1.0 ); mod_fatigue( fatigue_roll ); if( get_option< bool >( "SLEEP_DEPRIVATION" ) ) { @@ -4367,21 +4406,8 @@ void player::update_needs( int rate_multiplier ) } } } else if( asleep ) { - float recovery_rate = 1.0f + mutation_value( "fatigue_regen_modifier" ); - if( !hibernating ) { - const int intense = sleep.is_null() ? 0 : sleep.get_intensity(); - // Accelerated recovery capped to 2x over 2 hours - // After 16 hours of activity, equal to 7.25 hours of rest - const int accelerated_recovery_chance = 24 - intense + 1; - const float accelerated_recovery_rate = 1.0f / accelerated_recovery_chance; - recovery_rate += accelerated_recovery_rate; - } - - // Untreated pain causes a flat penalty to fatigue reduction - recovery_rate -= float( get_perceived_pain() ) / 60; - - if( recovery_rate > 0.0f ) { - int recovered = divide_roll_remainder( recovery_rate * rate_multiplier, 1.0 ); + if( rates.recovery > 0.0f ) { + int recovered = divide_roll_remainder( rates.recovery * rate_multiplier, 1.0 ); if( get_fatigue() - recovered < -20 ) { // Should be wake up, but that could prevent some retroactive regeneration sleep.set_duration( 1_turns ); @@ -4431,8 +4457,8 @@ void player::update_needs( int rate_multiplier ) } if( is_player() && wasnt_fatigued && get_fatigue() > DEAD_TIRED && !lying ) { if( !activity ) { - add_msg_if_player(m_warning, _("You're feeling tired. %s to lie down for sleep."), - press_x(ACTION_SLEEP).c_str()); + add_msg_if_player( m_warning, _( "You're feeling tired. %s to lie down for sleep." ), + press_x( ACTION_SLEEP ) ); } else { g->cancel_activity_query( _( "You're feeling tired." ) ); } @@ -4448,32 +4474,38 @@ void player::update_needs( int rate_multiplier ) mod_painkiller( -std::min( get_painkiller(), rate_multiplier ) ); } - if( has_bionic( bn_bio_solar ) && g->is_in_sunlight( pos() ) ) { - charge_power( rate_multiplier * 25 ); - } - - if( is_wearing( "solarpack_on" ) && has_active_bionic( bionic_id( "bio_cable" ) ) && g->is_in_sunlight( pos() ) ) { - charge_power( rate_multiplier * 25 ); - } - - if( is_wearing( "q_solarpack_on" ) && has_active_bionic( bionic_id( "bio_cable" ) ) && g->is_in_sunlight( pos() ) ) { - charge_power( rate_multiplier * 50 ); + if( g->is_in_sunlight( pos() ) ) { + if( has_bionic( bn_bio_solar ) ) { + charge_power( rate_multiplier * 25 ); + } + if( has_active_bionic( bionic_id( "bio_cable" ) ) ) { + if( is_wearing( "solarpack_on" ) ) { + charge_power( rate_multiplier * 25 ); + } + if( is_wearing( "q_solarpack_on" ) ) { + charge_power( rate_multiplier * 50 ); + } + } } // Huge folks take penalties for cramming themselves in vehicles - if( in_vehicle && (has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK )) ) { - // TODO: Make NPCs complain - add_msg_if_player(m_bad, _("You're cramping up from stuffing yourself in this vehicle.")); - mod_pain_noresist( 2 * rng(2, 3) ); + if( in_vehicle && ( has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK ) ) ) { + add_msg_if_player( m_bad, + _( "You're cramping up from stuffing yourself in this vehicle." ) ); + if( is_npc() ) { + npc &as_npc = dynamic_cast( *this ); + as_npc.complain_about( "cramped_vehicle", 1_hours, "", false ); + } + mod_pain_noresist( 2 * rng( 2, 3 ) ); focus_pool -= 1; } - int dec_stom_food = int(get_stomach_food() * 0.2); - int dec_stom_water = int(get_stomach_water() * 0.2); + int dec_stom_food = static_cast( get_stomach_food() * 0.2 ); + int dec_stom_water = static_cast( get_stomach_water() * 0.2 ); dec_stom_food = dec_stom_food < 10 ? 10 : dec_stom_food; dec_stom_water = dec_stom_water < 10 ? 10 : dec_stom_water; - mod_stomach_food(-dec_stom_food); - mod_stomach_water(-dec_stom_water); + mod_stomach_food( -dec_stom_food ); + mod_stomach_water( -dec_stom_water ); } void player::regen( int rate_multiplier ) @@ -5158,6 +5190,14 @@ void player::suffer() apply_damage( nullptr, bp_torso, rng( 1, 4 ) ); } } + if( has_trait( trait_FRESHWATEROSMOSIS ) && !g->m.has_flag_ter( "SALT_WATER", pos() ) && get_thirst() > -60 ) { + mod_thirst( -1 ); + } + } + + if( has_trait( trait_SHARKTEETH ) && one_in( 14400 ) ) { + add_msg_if_player( m_neutral, _( "You shed a tooth!" ) ); + g->m.spawn_item( pos(), "bone", 1 ); } if( has_active_mutation( trait_id( "WINGS_INSECT" ) ) ) { @@ -5166,7 +5206,7 @@ void player::suffer() } bool wearing_shoes = is_wearing_shoes( side::LEFT ) || is_wearing_shoes( side::RIGHT ); - if( has_trait( trait_ROOTS3 ) && g->m.has_flag( "DIGGABLE", pos() ) && !wearing_shoes ) { + if( has_trait( trait_ROOTS3 ) && g->m.has_flag( "PLOWABLE", pos() ) && !wearing_shoes ) { if (one_in(100)) { add_msg_if_player(m_good, _("This soil is delicious!")); if (get_hunger() > -20) { @@ -5751,10 +5791,10 @@ void player::suffer() g->m.add_field( pos(), fd_web, 1 ); //this adds density to if its not already there. } - if (has_trait( trait_UNSTABLE ) && one_in(28800)) { // Average once per 2 days + if (has_trait( trait_UNSTABLE ) && !has_trait( trait_CHAOTIC_BAD ) && one_in(28800)) { // Average once per 2 days mutate(); } - if (has_trait( trait_CHAOTIC ) && one_in(7200)) { // Should be once every 12 hours + if (( has_trait( trait_CHAOTIC ) || has_trait ( trait_CHAOTIC_BAD )) && one_in(7200)) { // Should be once every 12 hours mutate(); } if (has_artifact_with(AEP_MUTAGENIC) && one_in(28800)) { @@ -6376,7 +6416,7 @@ void player::vomit() rem_morale( MORALE_FOOD_GOOD ); rem_morale( MORALE_FOOD_HOT ); rem_morale( MORALE_HONEY ); // bears must suffer too - add_morale( MORALE_VOMITED, -2 * stomach_contents, -40, 90_turns, 45_turns, false ); // 1.5 times longer + add_morale( MORALE_VOMITED, -2 * stomach_contents, -40, 90_minutes, 45_minutes, false ); // 1.5 times longer g->m.add_field( adjacent_tile(), fd_bile, 1 ); @@ -6386,7 +6426,7 @@ void player::vomit() } if( !has_effect( effect_nausea ) ) { // Prevents never-ending nausea - const effect dummy_nausea( &effect_nausea.obj(), 0, num_bp, false, 1, calendar::turn ); + const effect dummy_nausea( &effect_nausea.obj(), 0_turns, num_bp, false, 1, calendar::turn ); add_effect( effect_nausea, std::max( dummy_nausea.get_max_duration() * stomach_contents / 21, dummy_nausea.get_int_dur_factor() ) ); } @@ -6601,7 +6641,7 @@ void player::apply_wetness_morale( int temperature ) } } - add_morale( MORALE_WET, morale_effect, total_morale, 5_turns, 5_turns, true ); + add_morale( MORALE_WET, morale_effect, total_morale, 1_minutes, 1_minutes, true ); } void player::update_body_wetness( const w_point &weather ) @@ -6681,7 +6721,7 @@ int player::get_morale_level() const } void player::add_morale(morale_type type, int bonus, int max_bonus, - const time_duration duration, const time_duration decay_start, + const time_duration &duration, const time_duration &decay_start, bool capped, const itype* item_type) { morale->add( type, bonus, max_bonus, duration, decay_start, capped, item_type ); @@ -7136,7 +7176,8 @@ bool player::has_mission_item(int mission_id) const //Returns the amount of charges that were consumed by the player int player::drink_from_hands(item& water) { int charges_consumed = 0; - if( query_yn( _("Drink %s from your hands?"), water.type_name().c_str() ) ) + if( query_yn( _( "Drink %s from your hands?" ), + colorize( water.type_name(), water.color_in_inventory() ) ) ) { // Create a dose of water no greater than the amount of water remaining. item water_temp( water ); @@ -7195,7 +7236,7 @@ bool player::consume_item( item &target ) add_msg_if_player( m_info, _( "You do not have that item." ) ); return false; } - if( is_underwater() ) { + if( is_underwater() && !has_trait( trait_WATERSLEEP ) ) { add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); return false; } @@ -7281,7 +7322,7 @@ void player::rooted_message() const { bool wearing_shoes = is_wearing_shoes( side::LEFT ) || is_wearing_shoes( side::RIGHT ); if( (has_trait( trait_ROOTS2 ) || has_trait( trait_ROOTS3 ) ) && - g->m.has_flag("DIGGABLE", pos()) && + g->m.has_flag("PLOWABLE", pos()) && !wearing_shoes ) { add_msg(m_info, _("You sink your roots into the soil.")); } @@ -7293,7 +7334,7 @@ void player::rooted() { double shoe_factor = footwear_factor(); if( (has_trait( trait_ROOTS2 ) || has_trait( trait_ROOTS3 )) && - g->m.has_flag("DIGGABLE", pos()) && shoe_factor != 1.0 ) { + g->m.has_flag("PLOWABLE", pos()) && shoe_factor != 1.0 ) { if( one_in(20.0 / (1.0 - shoe_factor)) ) { if (get_hunger() > -20) { mod_hunger(-1); @@ -8459,7 +8500,8 @@ bool player::takeoff( const item &it, std::list *res ) if( res == nullptr ) { if( volume_carried() + it.volume() > volume_capacity_reduced_by( it.get_storage() ) ) { - if( is_npc() || query_yn( _( "No room in inventory for your %s. Drop it?" ), it.tname().c_str() ) ) { + if( is_npc() || query_yn( _( "No room in inventory for your %s. Drop it?" ), + colorize( it.tname(), it.color_in_inventory() ) ) ) { drop( get_item_position( &it ), pos() ); return true; // the drop activity ends up taking off the item anyway so shouldn't try to do it again here } else { @@ -8528,6 +8570,190 @@ void player::drop( const std::list> &what, const tripoint &t } } +bool player::add_or_drop_with_msg( item &it, const bool unloading ) +{ + if( it.made_of( LIQUID ) ) { + g->consume_liquid( it, 1 ); + return it.charges <= 0; + } + it.charges = this->i_add_to_container( it, unloading ); + if( it.is_ammo() && it.charges == 0 ) { + return true; + } else if( !this->can_pickVolume( it ) ) { + put_into_vehicle_or_drop( *this, item_drop_reason::too_large, { it } ); + } else if( !this->can_pickWeight( it, !get_option( "DANGEROUS_PICKUPS" ) ) ) { + put_into_vehicle_or_drop( *this, item_drop_reason::too_heavy, { it } ); + } else { + auto &ni = this->i_add( it ); + add_msg( _( "You put the %s in your inventory." ), ni.tname().c_str() ); + add_msg( m_info, "%c - %s", ni.invlet == 0 ? ' ' : ni.invlet, ni.tname().c_str() ); + } + return true; +} + +bool player::unload(item &it) +{ + // Unload a container consuming moves per item successfully removed + if( it.is_container() || it.is_bandolier() ) { + if( it.contents.empty() ) { + add_msg( m_info, _( "The %s is already empty!" ), it.tname().c_str() ); + return false; + } + if( !it.can_unload_liquid() ) { + add_msg( m_info, _( "The liquid can't be unloaded in its current state!" ) ); + return false; + } + + bool changed = false; + it.contents.erase( std::remove_if( it.contents.begin(), it.contents.end(), [this, + &changed]( item & e ) { + long old_charges = e.charges; + const bool consumed = this->add_or_drop_with_msg( e, true ); + changed = changed || consumed || e.charges != old_charges; + if( consumed ) { + this->mod_moves( -this->item_handling_cost( e ) ); + } + return consumed; + } ), it.contents.end() ); + if( changed ) { + it.on_contents_changed(); + } + return true; + } + + // If item can be unloaded more than once (currently only guns) prompt user to choose + std::vector msgs( 1, it.tname() ); + std::vector opts( 1, &it ); + + for( auto e : it.gunmods() ) { + if( e->is_gun() && !e->has_flag( "NO_UNLOAD" ) && + ( e->magazine_current() || e->ammo_remaining() > 0 || e->casings_count() > 0 ) ) { + msgs.emplace_back( e->tname() ); + opts.emplace_back( e ); + } + } + + item *target = nullptr; + if( opts.size() > 1 ) { + const int ret = uilist( _( "Unload what?" ), msgs ); + if( ret >= 0 ) { + target = opts[ret]; + } + } else { + target = ⁢ + } + + if( target == nullptr ) { + return false; + } + + // Next check for any reasons why the item cannot be unloaded + if( !target->ammo_type() || target->ammo_capacity() <= 0 ) { + add_msg( m_info, _( "You can't unload a %s!" ), target->tname().c_str() ); + return false; + } + + if( target->has_flag( "NO_UNLOAD" ) ) { + if( target->has_flag( "RECHARGE" ) || target->has_flag( "USE_UPS" ) ) { + add_msg( m_info, _( "You can't unload a rechargeable %s!" ), target->tname().c_str() ); + } else { + add_msg( m_info, _( "You can't unload a %s!" ), target->tname().c_str() ); + } + return false; + } + + if( !target->magazine_current() && target->ammo_remaining() <= 0 && target->casings_count() <= 0 ) { + if( target->is_tool() ) { + add_msg( m_info, _( "Your %s isn't charged." ), target->tname().c_str() ); + } else { + add_msg( m_info, _( "Your %s isn't loaded." ), target->tname().c_str() ); + } + return false; + } + + target->casings_handle( [&]( item & e ) { + return this->i_add_or_drop( e ); + } ); + + if( target->is_magazine() ) { + player_activity unload_mag_act( activity_id( "ACT_UNLOAD_MAG" ) ); + g->u.assign_activity( unload_mag_act ); + g->u.activity.targets.emplace_back( item_location(*this, target) ); + + // Calculate the time to remove the contained ammo (consuming half as much time as required to load the magazine) + int mv = 0; + for( auto &content : target->contents ) { + mv += this->item_reload_cost(it, content, content.charges) / 2; + } + g->u.activity.moves_left += mv; + + // I think this means if unload is not done on ammo-belt, it takes as long as it takes to reload a mag. + if( !it.is_ammo_belt() ) { + g->u.activity.moves_left += mv; + } + g->u.activity.auto_resume = true; + + return true; + + } else if( target->magazine_current() ) { + if( !this->add_or_drop_with_msg( *target->magazine_current(), true ) ) { + return false; + } + // Eject magazine consuming half as much time as required to insert it + this->moves -= this->item_reload_cost( *target, *target->magazine_current(), -1 ) / 2; + + target->contents.erase( std::remove_if( target->contents.begin(), + target->contents.end(), [&target]( const item & e ) { + return target->magazine_current() == &e; + } ) ); + + } else if( target->ammo_remaining() ) { + long qty = target->ammo_remaining(); + + if( target->ammo_type() == ammotype( "plutonium" ) ) { + qty = target->ammo_remaining() / PLUTONIUM_CHARGES; + if( qty > 0 ) { + add_msg( _( "You recover %i unused plutonium." ), qty ); + } else { + add_msg( m_info, _( "You can't remove partially depleted plutonium!" ) ); + return false; + } + } + + // Construct a new ammo item and try to drop it + item ammo( target->ammo_current(), calendar::turn, qty ); + + if( ammo.made_of_from_type( LIQUID ) ) { + if( !this->add_or_drop_with_msg( ammo ) ) { + qty -= ammo.charges; // only handled part (or none) of the liquid + } + if( qty <= 0 ) { + return false; // no liquid was moved + } + + } else if( !this->add_or_drop_with_msg( ammo, qty > 1 ) ) { + return false; + } + + // If successful remove appropriate qty of ammo consuming half as much time as required to load it + this->moves -= this->item_reload_cost( *target, ammo, qty ) / 2; + + if( target->ammo_type() == ammotype( "plutonium" ) ) { + qty *= PLUTONIUM_CHARGES; + } + + target->ammo_set( target->ammo_current(), target->ammo_remaining() - qty ); + } + + // Turn off any active tools + if( target->is_tool() && target->active && target->ammo_remaining() == 0 ) { + target->type->invoke( *this, *target, this->pos() ); + } + + add_msg( _( "You unload your %s." ), target->tname().c_str() ); + return true; +} + void player::use_wielded() { use(-1); } @@ -8967,8 +9193,9 @@ void player::gunmod_add( item &gun, item &mod ) int qty = 0; if( mod.is_irremovable() ) { - if( !query_yn( _( "Permanently install your %1$s in your %2$s?" ), mod.tname().c_str(), - gun.tname().c_str() ) ) { + if( !query_yn( _( "Permanently install your %1$s in your %2$s?" ), + colorize( mod.tname(), mod.color_in_inventory() ), + colorize( gun.tname(), gun.color_in_inventory() ) ) ) { add_msg_if_player( _( "Never mind." ) ); return; // player canceled installation } @@ -9034,8 +9261,9 @@ void player::toolmod_add( item_location tool, item_location mod ) return; } - if( !query_yn( _( "Permanently install your %1$s in your %2$s?" ), mod->tname().c_str(), - tool->tname().c_str() ) ) { + if( !query_yn( _( "Permanently install your %1$s in your %2$s?" ), + colorize( mod->tname().c_str(), mod->color_in_inventory() ), + colorize( tool->tname().c_str(), tool->color_in_inventory() ) ) ) { add_msg_if_player( _( "Never mind." ) ); return; // player canceled installation } @@ -9454,7 +9682,7 @@ bool player::read( int inventory_position, const bool continuous ) } for( player *elem : apply_morale ) { //Fun bonuses for spritual and To Serve Man are no longer calculated here. - elem->add_morale( MORALE_BOOK, book_fun_for( it, *elem ) * 5, book_fun_for( it, *elem ) * 15, decay_start + 3_minutes, + elem->add_morale( MORALE_BOOK, 0, book_fun_for( it, *elem ) * 15, decay_start + 30_minutes, decay_start, false, it.type ); } @@ -9539,7 +9767,7 @@ void player::do_read( item &book ) if( book_fun_for( book, *learner ) != 0 ) { //Fun bonus is no longer calculated here. - learner->add_morale( MORALE_BOOK, book_fun_for( book, *learner ) * 5, book_fun_for( book, *learner ) * 15, 6_minutes, 3_minutes, true, + learner->add_morale( MORALE_BOOK, book_fun_for( book, *learner ) * 5, book_fun_for( book, *learner ) * 15, 1_hours, 30_minutes, true, book.type ); } @@ -9708,18 +9936,9 @@ const recipe_subset player::get_recipes_from_books( const inventory &crafting_in for( const auto &stack : crafting_inv.const_slice() ) { const item &candidate = stack->front(); - if( !candidate.is_book() ) { - continue; - } - // NPCs don't need to identify books - if( is_player() && !items_identified.count( candidate.typeId() ) ) { - continue; - } - - for( const auto &elem : candidate.type->book->recipes ) { - if( get_skill_level( elem.recipe->skill_used ) >= elem.skill_level ) { - res.include( elem.recipe, elem.skill_level ); - } + for( std::pair recipe_entry : + candidate.get_available_recipes( *this ) ) { + res.include( recipe_entry.first, recipe_entry.second ); } } @@ -9845,7 +10064,7 @@ void player::try_to_sleep( const time_duration &dur ) ter_at_pos == t_improvised_shelter || trap_at_pos.loadid == tr_cot || trap_at_pos.loadid == tr_rollmat || trap_at_pos.loadid == tr_fur_rollmat || - in_shell || websleeping || + in_shell || websleeping || watersleep || vp.part_with_feature( "SEAT", true ) || vp.part_with_feature( "BED", true ) ) ) { add_msg_if_player(m_good, _("This is a comfortable place to sleep.")); @@ -9937,6 +10156,9 @@ comfort_level player::base_comfort_value( const tripoint &p ) const if( fungaloid_cosplay && g->m.has_flag_ter_or_furn( "FUNGUS", pos() ) ) { comfort += static_cast( comfort_level::very_comfortable ); } + else if( watersleep && g->m.has_flag_ter( "SWIMMABLE", pos() ) ) { + comfort += static_cast( comfort_level::very_comfortable ); + } } else if( plantsleep ) { if( vp || furn_at_pos != f_null ) { @@ -9958,11 +10180,6 @@ comfort_level player::base_comfort_value( const tripoint &p ) const comfort = static_cast( comfort_level::uncomfortable ); } } - //Has watersleep - } else if( watersleep ) { - if( g->m.has_flag_ter( "SWIMMABLE", pos() ) ) { - comfort += static_cast( comfort_level::very_comfortable ); - } // Has webforce } else { if( web >= 3 ) { @@ -9993,6 +10210,7 @@ int player::sleep_spot( const tripoint &p ) const { comfort_level base_level = base_comfort_value( p ); int sleepy = static_cast( base_level ); + bool watersleep = has_trait( trait_WATERSLEEP ); if (has_addiction(ADD_SLEEP)) { sleepy -= 4; @@ -10010,6 +10228,9 @@ int player::sleep_spot( const tripoint &p ) const // Mousefolk can sleep just about anywhere. sleepy += 40; } + if( watersleep && g->m.has_flag_ter( "SWIMMABLE", pos() ) ) { + sleepy += 10; //comfy water! + } if( get_fatigue() < TIRED + 1 ) { sleepy -= int( ( TIRED + 1 - get_fatigue() ) / 4 ); @@ -10643,6 +10864,9 @@ int player::get_env_resist(body_part bp) const ret = 5; } } + if( bp == bp_eyes && has_trait( trait_SEESLEEP ) ) { + ret += 8; + } return ret; } @@ -10930,6 +11154,7 @@ void player::assign_activity( const player_activity &act, bool allow_resume ) add_msg_if_player( _("You resume your task.") ); activity = backlog.front(); backlog.pop_front(); + activity.resume_with( act ); } else { if( activity ) { backlog.push_front( activity ); @@ -10938,14 +11163,12 @@ void player::assign_activity( const player_activity &act, bool allow_resume ) activity = act; } - activity.allow_distractions(); - if( activity.rooted() ) { rooted_message(); } } -bool player::has_activity(const activity_id type) const +bool player::has_activity(const activity_id &type) const { return activity.id() == type; } @@ -10969,6 +11192,14 @@ void player::cancel_activity() activity = player_activity(); } +void player::resume_backlog_activity() +{ + if( !backlog.empty() && backlog.front().auto_resume ) { + activity = backlog.front(); + backlog.pop_front(); + } +} + bool player::has_gun_for_ammo( const ammotype &at ) const { return has_item_with( [at]( const item & it ) { @@ -10988,11 +11219,12 @@ bool player::has_magazine_for_ammo( const ammotype &at ) const } ); } +// mytest return weapon name to display in sidebar std::string player::weapname() const { if( weapon.is_gun() ) { - std::stringstream str; - str << weapon.type_name(); + std::string str; + str = weapon.type_name(); // Is either the base item or at least one auxiliary gunmod loaded (includes empty magazines) bool base = weapon.ammo_capacity() > 0 && !weapon.has_flag( "RELOAD_AND_SHOOT" ); @@ -11003,37 +11235,38 @@ std::string player::weapname() const } ); if( base || aux ) { - str << " ("; + str += " ("; if( base ) { - str << weapon.ammo_remaining(); + str += std::to_string( weapon.ammo_remaining() ); if( weapon.magazine_integral() ) { - str << "/" << weapon.ammo_capacity(); + str += "/" + std::to_string( weapon.ammo_capacity() ); } } else { - str << "---"; + str += "---"; } - str << ")"; + str += ")"; for( auto e : mods ) { if( e->is_gun() && e->ammo_capacity() > 0 && !e->has_flag( "RELOAD_AND_SHOOT" ) ) { - str << " (" << e->ammo_remaining(); + str += " (" + std::to_string( e->ammo_remaining() ); if( e->magazine_integral() ) { - str << "/" << e->ammo_capacity(); + str += "/" + std::to_string( e->ammo_capacity() ); } - str << ")"; + str += ")"; } } } - return str.str(); + return "Weapon : " + str; } else if( weapon.is_container() && weapon.contents.size() == 1 ) { - return string_format( "%s (%d)", weapon.tname().c_str(), weapon.contents.front().charges ); + return string_format( "Weapon : %s (%d)", weapon.tname().c_str(), + weapon.contents.front().charges ); } else if( !is_armed() ) { - return _( "fists" ); + return _( "Weapon : fists" ); } else { - return weapon.tname(); + return "Weapon : " + weapon.tname(); } } @@ -11332,7 +11565,6 @@ action_id player::get_next_auto_move_direction() // Should never happen, but check just in case return ACTION_NULL; } - return get_movement_direction_from_delta( dp.x, dp.y, dp.z ); } @@ -11921,6 +12153,12 @@ void player::place_corpse( const tripoint &om_target ) bool player::sees_with_infrared( const Creature &critter ) const { + const monster *m = dynamic_cast< const monster * >( &critter ); + // electroreceptors grants vision of robots and electric monsters through walls + if( m != nullptr && has_trait( trait_ELECTRORECEPTORS ) && ( m->type->in_species( ROBOT ) || critter.has_flag( MF_ELECTRIC ) ) ) { + return true; + } + if( !vision_mode_cache[IR_VISION] || !critter.is_warm() ) { return false; } @@ -11938,6 +12176,8 @@ std::vector player::get_overlay_ids() const { std::vector rval; std::multimap mutation_sorting; + int order; + std::string overlay_id; // first get effects for( const auto &eff_pr : *effects ) { @@ -11945,17 +12185,17 @@ std::vector player::get_overlay_ids() const } // then get mutations - for( auto &mutation : get_mutations() ) { - auto it = base_mutation_overlay_ordering.find( mutation ); - auto it2 = tileset_mutation_overlay_ordering.find( mutation ); - int value = 9999; - if( it != base_mutation_overlay_ordering.end() ) { - value = it->second; - } - if( it2 != tileset_mutation_overlay_ordering.end() ) { - value = it2->second; - } - mutation_sorting.insert( std::pair( value, mutation.str() ) ); + for( const auto &mut : my_mutations ) { + overlay_id = ( mut.second.powered ? "active_" : "" ) + mut.first.str(); + order = get_overlay_order_of_mutation( overlay_id ); + mutation_sorting.insert( std::pair( order, overlay_id ) ); + } + + // then get bionics + for( const bionic &bio : *my_bionics ) { + overlay_id = ( bio.powered ? "active_" : "" ) + bio.id.str(); + order = get_overlay_order_of_mutation( overlay_id ); + mutation_sorting.insert( std::pair( order, overlay_id ) ); } for( auto &mutorder : mutation_sorting ) { @@ -12030,7 +12270,6 @@ float player::speed_rating() const if( move_mode != "run" ) { ret *= 1.0f + (static_cast( stamina ) / static_cast( get_stamina_max() )); } - return ret; } diff --git a/src/player.h b/src/player.h index 037e0c70a30cd..23ddb494b09c6 100644 --- a/src/player.h +++ b/src/player.h @@ -28,6 +28,7 @@ struct bionic; class JsonObject; class JsonIn; class JsonOut; +struct dealt_projectile_attack; class dispersion_sources; class monster; class game; @@ -142,6 +143,13 @@ struct stat_mod { int speed = 0; }; +struct needs_rates { + float thirst; + float hunger; + float fatigue; + float recovery; +}; + class player : public Character { public: @@ -249,6 +257,7 @@ class player : public Character void update_body( const time_point &from, const time_point &to ); /** Increases hunger, thirst, fatigue and stimulants wearing off. `rate_multiplier` is for retroactive updates. */ void update_needs( int rate_multiplier ); + needs_rates calc_needs_rates(); /** Set vitamin deficiency/excess disease states dependent upon current vitamin levels */ void update_vitamins( const vitamin_id &vit ); @@ -1021,6 +1030,11 @@ class player : public Character void drop( int pos, const tripoint &where ); void drop( const std::list> &what, const tripoint &where, bool stash = false ); + /** So far only called by unload() from game.cpp */ + bool add_or_drop_with_msg( item &it, const bool unloading = false ); + + bool unload( item &it ); + /** * Try to wield a contained item consuming moves proportional to weapon skill and volume. * @param container Container containing the item to be wielded @@ -1200,12 +1214,15 @@ class player : public Character const std::string &name = "" ); /** Assigns activity to player, possibly resuming old activity if it's similar enough. */ void assign_activity( const player_activity &act, bool allow_resume = true ); - bool has_activity( const activity_id type ) const; + bool has_activity( const activity_id &type ) const; void cancel_activity(); + void resume_backlog_activity(); int get_morale_level() const; // Modified by traits, &c - void add_morale( morale_type type, int bonus, int max_bonus = 0, time_duration duration = 6_minutes, - time_duration decay_start = 3_minutes, bool capped = false, const itype *item_type = nullptr ); + void add_morale( morale_type type, int bonus, int max_bonus = 0, + const time_duration &duration = 1_hours, + const time_duration &decay_start = 30_minutes, bool capped = false, + const itype *item_type = nullptr ); int has_morale( morale_type type ) const; void rem_morale( morale_type type, const itype *item_type = nullptr ); bool has_morale_to_read() const; @@ -1684,6 +1701,8 @@ class player : public Character */ void set_targeting_data( const targeting_data &td ); + std::set camps; + protected: // The player's position on the local map. tripoint position; diff --git a/src/player_activity.cpp b/src/player_activity.cpp index d11e2e3cd36a8..89730ee67eec2 100644 --- a/src/player_activity.cpp +++ b/src/player_activity.cpp @@ -127,10 +127,7 @@ void player_activity::do_turn( player &p ) if( !*this ) { // Make sure data of previous activity is cleared p.activity = player_activity(); - if( !p.backlog.empty() && p.backlog.front().auto_resume ) { - p.activity = p.backlog.front(); - p.backlog.pop_front(); - } + p.resume_backlog_activity(); // If whatever activity we were doing forced us to pick something up to // handle it, drop any overflow that may have caused @@ -161,8 +158,16 @@ bool player_activity::can_resume_with( const player_activity &other, const Chara } if( id() == activity_id( "ACT_CRAFT" ) || id() == activity_id( "ACT_LONGCRAFT" ) ) { - if( !containers_equal( values, other.values ) || - !containers_equal( coords, other.coords ) ) { + // The last value is a time stamp, and the last coord is the player + // position. We want to allow either to have changed. + // (This would be much less hacky in the hypothetical future of + // activity_handler_actors). + if( !( values.size() == other.values.size() && + values.size() >= 1 && + std::equal( values.begin(), values.end() - 1, other.values.begin() ) && + coords.size() == other.coords.size() && + coords.size() >= 1 && + std::equal( coords.begin(), coords.end() - 1, other.coords.begin() ) ) ) { return false; } } else if( id() == activity_id( "ACT_CLEAR_RUBBLE" ) ) { @@ -189,6 +194,22 @@ bool player_activity::can_resume_with( const player_activity &other, const Chara position == other.position && name == other.name && targets == other.targets; } +void player_activity::resume_with( const player_activity &other ) +{ + if( id() == activity_id( "ACT_CRAFT" ) || id() == activity_id( "ACT_LONGCRAFT" ) ) { + // For crafting actions, we need to update the start turn and position + // to the resumption time values. These are stored in the last + // elements of values and coords respectively. + if( !( values.size() >= 1 && values.size() == other.values.size() && + coords.size() >= 1 && coords.size() == other.coords.size() ) ) { + debugmsg( "Activities incompatible; should not have resumed" ); + return; + } + values.back() = other.values.back(); + coords.back() = other.coords.back(); + } +} + bool player_activity::is_distraction_ignored( distraction_type type ) const { return ignored_distractions.find( type ) != ignored_distractions.end(); @@ -203,3 +224,10 @@ void player_activity::allow_distractions() { ignored_distractions.clear(); } + +void player_activity::inherit_distractions( const player_activity &other ) +{ + for( auto &type : other.ignored_distractions ) { + ignore_distraction( type ); + } +} diff --git a/src/player_activity.h b/src/player_activity.h index e64a1e24c8ea1..3978b24a9bb24 100644 --- a/src/player_activity.h +++ b/src/player_activity.h @@ -98,10 +98,18 @@ class player_activity * can be resumed instead of starting the other activity. */ bool can_resume_with( const player_activity &other, const Character &who ) const; + /** + * When an old activity A is resumed by a new activity B, normally B is + * discarded and the saved A is simply used in its place. However, + * this will be called on A, passing B as an argument, in case A needs + * to grab any values from B. + */ + void resume_with( const player_activity &other ); bool is_distraction_ignored( distraction_type type ) const; void ignore_distraction( distraction_type type ); void allow_distractions(); + void inherit_distractions( const player_activity & ); }; #endif diff --git a/src/player_display.cpp b/src/player_display.cpp index 7a81af0ea1da7..b8b2e5dbd8c95 100644 --- a/src/player_display.cpp +++ b/src/player_display.cpp @@ -225,10 +225,9 @@ void player::disp_info() unsigned line; std::vector effect_name; std::vector effect_text; - std::string tmp; for( auto &elem : *effects ) { for( auto &_effect_it : elem.second ) { - tmp = _effect_it.second.disp_name(); + const std::string tmp = _effect_it.second.disp_name(); if( !tmp.empty() ) { effect_name.push_back( tmp ); effect_text.push_back( _effect_it.second.disp_desc() ); @@ -683,7 +682,7 @@ Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" ) ); } if( get_hunger() + get_starvation() > 100 ) { pen = abs( hunger_speed_penalty( get_hunger() + get_starvation() ) ); - mvwprintz( w_speed, line, 1, c_red, _( "Inanition -%s%d%%" ), + mvwprintz( w_speed, line, 1, c_red, _( "Under-Fed -%s%d%%" ), ( pen < 10 ? " " : "" ), pen ); line++; } diff --git a/src/player_hardcoded_effects.cpp b/src/player_hardcoded_effects.cpp index 0fa99c5ac282e..5506bdbe26929 100644 --- a/src/player_hardcoded_effects.cpp +++ b/src/player_hardcoded_effects.cpp @@ -65,7 +65,6 @@ const efftype_id effect_shakes( "shakes" ); const efftype_id effect_sleep( "sleep" ); const efftype_id effect_slept_through_alarm( "slept_through_alarm" ); const efftype_id effect_spores( "spores" ); -const efftype_id effect_stemcell_treatment( "stemcell_treatment" ); const efftype_id effect_strong_antibiotic( "strong_antibiotic" ); const efftype_id effect_stunned( "stunned" ); const efftype_id effect_tapeworm( "tapeworm" ); @@ -722,19 +721,6 @@ void player::hardcoded_effects( effect &it ) add_msg_if_player( m_bad, _( "You wheeze and gasp for air." ) ); } } - } else if( id == effect_stemcell_treatment ) { - // slightly repair broken limbs. (also non-broken limbs (unless they're too healthy)) - for( int i = 0; i < num_hp_parts; i++ ) { - if( one_in( 6 ) ) { - if( hp_cur[i] < rng( 0, 40 ) ) { - add_msg_if_player( m_good, _( "Your bones feel like rubber as they melt and remend." ) ); - hp_cur[i] += rng( 1, 8 ); - } else if( hp_cur[i] > rng( 10, 2000 ) ) { - add_msg_if_player( m_bad, _( "Your bones feel like they're crumbling." ) ); - hp_cur[i] -= rng( 0, 8 ); - } - } - } } else if( id == effect_brainworms ) { if( one_in( 256 ) ) { add_msg_if_player( m_bad, _( "Your head aches faintly." ) ); @@ -967,7 +953,7 @@ void player::hardcoded_effects( effect &it ) body_part_name( bp ).c_str() ); add_effect( effect_recover, 4 * dur ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); recovered = true; } } @@ -997,7 +983,7 @@ void player::hardcoded_effects( effect &it ) if( can_sleep() ) { fall_asleep(); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); } if( dur == 1_turns && !sleeping ) { add_msg_if_player( _( "You try to sleep, but can't..." ) ); @@ -1118,7 +1104,7 @@ void player::hardcoded_effects( effect &it ) one_in( get_fatigue() / 2 ) ) ) { add_msg_if_player( _( "It's too bright to sleep." ) ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; } // Ursine hibernators would likely do so indoors. Plants, though, might be in the sun. @@ -1127,14 +1113,14 @@ void player::hardcoded_effects( effect &it ) one_in( get_fatigue() / 2 ) ) ) { add_msg_if_player( _( "It's too bright to sleep." ) ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; } } else if( tirednessVal < g->m.ambient_light_at( pos() ) && ( get_fatigue() < 10 || one_in( get_fatigue() / 2 ) ) ) { add_msg_if_player( _( "It's too bright to sleep." ) ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; } } else if( has_active_mutation( trait_id( "SEESLEEP" ) ) ) { @@ -1142,7 +1128,7 @@ void player::hardcoded_effects( effect &it ) if( hostile_critter != nullptr ) { add_msg_if_player( _( "You see %s approaching!" ), hostile_critter->disp_name().c_str() ); - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; } } @@ -1161,7 +1147,7 @@ void player::hardcoded_effects( effect &it ) one_in( temp_cur[bp] + 5000 ) ) { add_msg_if_player( m_bad, _( "It's too cold to sleep." ) ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; break; } @@ -1173,7 +1159,7 @@ void player::hardcoded_effects( effect &it ) one_in( 15000 - temp_cur[bp] ) ) { add_msg_if_player( m_bad, _( "It's too hot to sleep." ) ); // Set ourselves up for removal - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; break; } @@ -1199,7 +1185,7 @@ void player::hardcoded_effects( effect &it ) } } } - it.set_duration( 0 ); + it.set_duration( 0_turns ); woke_up = true; } } @@ -1218,7 +1204,7 @@ void player::hardcoded_effects( effect &it ) } else { add_msg_if_player( m_warning, _( "It looks like you've slept through the alarm..." ) ); } - get_effect( effect_slept_through_alarm ).set_duration( 0 ); + get_effect( effect_slept_through_alarm ).set_duration( 0_turns ); } } } else if( id == effect_alarm_clock ) { @@ -1272,7 +1258,7 @@ void player::hardcoded_effects( effect &it ) } else if( id == effect_mending ) { // @todo: Remove this and encapsulate hp_cur instead if( hp_cur[bp_to_hp( bp )] > 0 ) { - it.set_duration( 0 ); + it.set_duration( 0_turns ); } } else if( id == effect_disabled ) { // @todo: Remove this and encapsulate hp_cur instead diff --git a/src/popup.cpp b/src/popup.cpp index 306c17e018cb7..16fa59c0428b0 100644 --- a/src/popup.cpp +++ b/src/popup.cpp @@ -6,7 +6,8 @@ extern bool test_mode; query_popup::query_popup() - : cur( 0 ), anykey( false ), cancel( false ), ontop( false ), fullscr( false ) + : cur( 0 ), default_text_color( c_white ), anykey( false ), cancel( false ), ontop( false ), + fullscr( false ) { } @@ -69,6 +70,12 @@ query_popup &query_popup::cursor( size_t pos ) return *this; } +query_popup &query_popup::default_color( const nc_color &d_color ) +{ + default_text_color = d_color; + return *this; +} + std::vector> query_popup::fold_query( const std::string &category, const std::vector &options, @@ -176,8 +183,7 @@ void query_popup::init() const // Right align. todo: multi-line buttons int button_x = std::max( 0, msg_width - button_width - horz_padding * static_cast( line.size() - 1 ) ); - for( size_t i = 0; i < line.size(); ++i ) { - const auto &opt = line[i]; + for( const auto &opt : line ) { buttons.emplace_back( opt, button_x, msg_height ); button_x += utf8_width( opt, true ) + horz_padding; } @@ -207,7 +213,7 @@ void query_popup::show() const draw_border( win ); for( size_t line = 0; line < folded_msg.size(); ++line ) { - nc_color col = c_white; + nc_color col = default_text_color; print_colored_text( win, border_width + line, border_width, col, col, folded_msg[line] ); } diff --git a/src/popup.h b/src/popup.h index ce6ad776e5ff4..fb1f33ed293f9 100644 --- a/src/popup.h +++ b/src/popup.h @@ -8,8 +8,7 @@ #include "cursesdef.h" #include "input.h" - -class nc_color; +#include "color.h" /** * UI class for displaying messages or querying player input with popups. @@ -163,6 +162,10 @@ class query_popup * Specify starting cursor position. **/ query_popup &cursor( size_t pos ); + /** + * Specify the default message color. + **/ + query_popup &default_color( const nc_color &d_color ); /** * Draw the UI. An input context should be provided using `context()` @@ -194,6 +197,7 @@ class query_popup std::string text; std::vector options; size_t cur; + nc_color default_text_color; bool anykey; bool cancel; bool ontop; diff --git a/src/posix_time.cpp b/src/posix_time.cpp index 750936621ffd5..f4fe962dbdac9 100644 --- a/src/posix_time.cpp +++ b/src/posix_time.cpp @@ -1,6 +1,8 @@ #include "posix_time.h" #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#include + int nanosleep( const struct timespec *requested_delay, struct timespec *remaining_delay ) diff --git a/src/posix_time.h b/src/posix_time.h index dded0235e0bb8..3df188333cabc 100644 --- a/src/posix_time.h +++ b/src/posix_time.h @@ -1,17 +1,21 @@ #pragma once #ifndef TIME_SPEC_H #define TIME_SPEC_H + +// Compatibility header. On POSIX, just include . On Windows, provide +// our own nanosleep implementation. + +#include // IWYU pragma: keep + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* Windows platforms. */ + /* Windows lacks the nanosleep() function. The following code was stuffed together from GNUlib (http://www.gnu.org/software/gnulib/), which is licensed under the GPLv3. */ -#include -#include enum { BILLION = 1000 * 1000 * 1000 }; -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -/* Windows platforms. */ - # ifdef __cplusplus extern "C" { # endif diff --git a/src/profession.h b/src/profession.h index e7c482e8e130b..bab02649fd897 100644 --- a/src/profession.h +++ b/src/profession.h @@ -79,7 +79,7 @@ class profession //these three aren't meant for external use, but had to be made public regardless profession(); - static void load_profession( JsonObject &obj, const std::string &src ); + static void load_profession( JsonObject &jo, const std::string &src ); static void load_item_substitutions( JsonObject &jo ); // these should be the only ways used to get at professions diff --git a/src/projectile.cpp b/src/projectile.cpp index c3547de83b3b5..d80f7810b9a33 100644 --- a/src/projectile.cpp +++ b/src/projectile.cpp @@ -14,6 +14,8 @@ projectile::projectile() : projectile::~projectile() = default; +projectile::projectile( projectile && ) = default; + projectile::projectile( const projectile &other ) { ( *this ) = other; diff --git a/src/projectile.h b/src/projectile.h index 0483be81522f7..959ca06bb09a1 100644 --- a/src/projectile.h +++ b/src/projectile.h @@ -41,7 +41,7 @@ struct projectile { projectile(); projectile( const projectile & ); - projectile( projectile && ) = default; + projectile( projectile && ); projectile &operator=( const projectile & ); ~projectile(); @@ -61,6 +61,6 @@ struct dealt_projectile_attack { }; void apply_ammo_effects( const tripoint &p, const std::set &effects ); -int aoe_size( const std::set &effects ); +int aoe_size( const std::set &tags ); #endif diff --git a/src/ranged.cpp b/src/ranged.cpp index 5f91f364bfe7c..69d79c902eb68 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -795,7 +795,7 @@ static int print_ranged_chance( const player &p, const catacurses::window &w, in } static int print_aim( const player &p, const catacurses::window &w, int line_number, item *weapon, - const double target_size, tripoint pos, double predicted_recoil ) + const double target_size, const tripoint &pos, double predicted_recoil ) { // This is absolute accuracy for the player. // TODO: push the calculations duplicated from Creature::deal_projectile_attack() and @@ -1374,7 +1374,6 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, recoil_pc = pc.recoil; recoil_pos = dst; - int aim_threshold; std::vector::iterator it; for( it = aim_types.begin(); it != aim_types.end(); it++ ) { if( action == it->action ) { @@ -1385,7 +1384,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, debugmsg( "Could not find a valid aim_type for %s", action.c_str() ); aim_mode = aim_types.begin(); } - aim_threshold = it->threshold; + int aim_threshold = it->threshold; set_last_target( dst ); do { do_aim( pc, *relevant ); @@ -1502,7 +1501,7 @@ static projectile make_gun_projectile( const item &gun ) return proj; } -int time_to_fire( const Character &p, const itype &firingt ) +int time_to_fire( const Character &p, const itype &firing ) { struct time_info_t { int min_time; // absolute floor on the time taken to fire. @@ -1521,7 +1520,7 @@ int time_to_fire( const Character &p, const itype &firingt ) {skill_id {"melee"}, {50, 200, 20}} }; - const skill_id &skill_used = firingt.gun->skill_used; + const skill_id &skill_used = firing.gun->skill_used; const auto it = map.find( skill_used ); // TODO: maybe JSON-ize this in some way? Probably as part of the skill class. static const time_info_t default_info{ 50, 220, 25 }; diff --git a/src/recipe.cpp b/src/recipe.cpp index a225f52730d06..f409318372988 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -200,6 +200,9 @@ void recipe::load( JsonObject &jo, const std::string &src ) assign( jo, "reversible", reversible, strict ); if( jo.has_member( "byproducts" ) ) { + if( this->reversible ) { + jo.throw_error( "Recipe cannot be reversible and have byproducts" ); + } auto bp = jo.get_array( "byproducts" ); byproducts.clear(); while( bp.has_more() ) { @@ -374,7 +377,7 @@ bool recipe::has_byproducts() const return !byproducts.empty(); } -std::string recipe::required_skills_string( const Character *c ) const +std::string recipe::required_skills_string( const Character *c, bool print_skill_level ) const { if( required_skills.empty() ) { return _( "none" ); @@ -383,11 +386,25 @@ std::string recipe::required_skills_string( const Character *c ) const [&]( const std::pair &skill ) { auto player_skill = c ? c->get_skill_level( skill.first ) : 0; std::string difficulty_color = skill.second > player_skill ? "yellow" : "green"; - return string_format( "%s (%d)", - skill.first.obj().name(), difficulty_color, skill.second ); + std::string skill_level_string = print_skill_level ? "" : ( std::to_string( player_skill ) + "/" ); + skill_level_string += std::to_string( skill.second ); + return string_format( "%s (%s)", + skill.first.obj().name(), difficulty_color, skill_level_string ); } ); } +std::string recipe::required_skills_string( const Character *c ) const +{ + return required_skills_string( c, false ); +} + +std::string recipe::batch_savings_string() const +{ + return ( batch_rsize != 0 ) ? + string_format( _( "%s%% at >%s units" ), int( batch_rscale * 100 ), batch_rsize ) + : _( "none" ); +} + std::string recipe::result_name() const { std::string name = item::nname( result_ ); diff --git a/src/recipe.h b/src/recipe.h index 436112e759a7e..5005a99d81b54 100644 --- a/src/recipe.h +++ b/src/recipe.h @@ -80,11 +80,16 @@ class recipe std::map learn_by_disassembly; // Skill levels required to learn by disassembly std::map booksets; // Books containing this recipe, and the skill level required - //Create a string list to describe the skill requirements fir this recipe - // Format: skill_name(amount), skill_name(amount) + // Create a string list to describe the skill requirements for this recipe + // Format: skill_name(level/amount), skill_name(level/amount) // Character object (if provided) used to color levels + std::string required_skills_string( const Character *, bool print_skill_level ) const; std::string required_skills_string( const Character * ) const; + // Create a string to describe the time savings of batch-crafting, if any. + // Format: "N% at >M units" or "none" + std::string batch_savings_string() const; + // Create an item instance as if the recipe was just finished, // Contain charges multiplier item create_result() const; diff --git a/src/recipe_dictionary.cpp b/src/recipe_dictionary.cpp index e90f0afff7dcb..39e59037aa87e 100644 --- a/src/recipe_dictionary.cpp +++ b/src/recipe_dictionary.cpp @@ -120,7 +120,6 @@ std::vector recipe_subset::recent() const return res; } - std::vector recipe_subset::search( const std::string &txt, const search_type key ) const { @@ -170,6 +169,32 @@ std::vector recipe_subset::search( const std::string &txt, return res; } +recipe_subset::recipe_subset( const recipe_subset &src, const std::vector &recipes ) +{ + for( const auto elem : recipes ) { + include( elem, src.get_custom_difficulty( elem ) ); + } +} + +recipe_subset recipe_subset::reduce( const std::string &txt, const search_type key ) const +{ + return recipe_subset( *this, search( txt, key ) ); +} +recipe_subset recipe_subset::intersection( const recipe_subset &subset ) const +{ + std::vector intersection_result; + std::set_intersection( this->begin(), this->end(), subset.begin(), subset.end(), + std::back_inserter( intersection_result ) ); + return recipe_subset( *this, intersection_result ); +} +recipe_subset recipe_subset::difference( const recipe_subset &subset ) const +{ + std::vector difference_result; + std::set_difference( this->begin(), this->end(), subset.begin(), subset.end(), + std::back_inserter( difference_result ) ); + return recipe_subset( *this, difference_result ); +} + std::vector recipe_subset::search_result( const itype_id &item ) const { std::vector res; @@ -188,6 +213,8 @@ bool recipe_subset::empty_category( const std::string &cat, const std::string &s return uistate.favorite_recipes.empty(); } else if( subcat == "CSC_*_RECENT" ) { return uistate.recent_recipes.empty(); + } else if( subcat == "CSC_*_HIDDEN" ) { + return uistate.hidden_recipes.empty(); } auto iter = category.find( cat ); @@ -240,25 +267,25 @@ void recipe_dictionary::load_uncraft( JsonObject &jo, const std::string &src ) } recipe &recipe_dictionary::load( JsonObject &jo, const std::string &src, - std::map &dest ) + std::map &out ) { recipe r; // defer entries dependent upon as-yet unparsed definitions if( jo.has_string( "copy-from" ) ) { auto base = recipe_id( jo.get_string( "copy-from" ) ); - if( !dest.count( base ) ) { + if( !out.count( base ) ) { deferred.emplace_back( jo.str(), src ); return null_recipe; } - r = dest[ base ]; + r = out[ base ]; } r.load( jo, src ); - dest[ r.ident() ] = std::move( r ); + out[ r.ident() ] = std::move( r ); - return dest[ r.ident() ]; + return out[ r.ident() ]; } size_t recipe_dictionary::size() const @@ -331,7 +358,7 @@ void recipe_dictionary::finalize() const recipe_id rid = recipe_id( id ); // books that don't already have an uncrafting recipe - if( e->book && !recipe_dict.uncraft.count( rid ) && e->volume > 0 ) { + if( e->book && !recipe_dict.uncraft.count( rid ) && e->volume > 0_ml ) { int pages = e->volume / units::from_milliliter( 12.5 ); auto &bk = recipe_dict.uncraft[rid]; bk.ident_ = rid; diff --git a/src/recipe_dictionary.h b/src/recipe_dictionary.h index d08b3c24264fb..56d3b5baf59f2 100644 --- a/src/recipe_dictionary.h +++ b/src/recipe_dictionary.h @@ -66,6 +66,8 @@ extern recipe_dictionary recipe_dict; class recipe_subset { public: + recipe_subset() = default; + recipe_subset( const recipe_subset &src, const std::vector &recipes ); /** * Include a recipe to the subset. * @param r recipe to include @@ -133,6 +135,12 @@ class recipe_subset /** Find recipes matching query (left anchored partial matches are supported) */ std::vector search( const std::string &txt, const search_type key = search_type::name ) const; + /** Find recipes matching query and return a new recipe_subset */ + recipe_subset reduce( const std::string &txt, const search_type key = search_type::name ) const; + /** Set intersection between recipe_subsets */ + recipe_subset intersection( const recipe_subset &subset ) const; + /** Set difference between recipe_subsets */ + recipe_subset difference( const recipe_subset &subset ) const; /** Find recipes producing the item */ std::vector search_result( const itype_id &item ) const; diff --git a/src/regional_settings.cpp b/src/regional_settings.cpp index 256f99a35511d..1e97045c9897a 100644 --- a/src/regional_settings.cpp +++ b/src/regional_settings.cpp @@ -205,6 +205,8 @@ void load_forest_trail_settings( JsonObject &jo, forest_trail_settings &forest_t forest_trail_settings.random_point_size_scalar, !overlay ); read_and_set_or_throw( forest_trail_settings_jo, "trailhead_chance", forest_trail_settings.trailhead_chance, !overlay ); + read_and_set_or_throw( forest_trail_settings_jo, "trailhead_road_distance", + forest_trail_settings.trailhead_road_distance, !overlay ); read_and_set_or_throw( forest_trail_settings_jo, "trail_center_variance", forest_trail_settings.trail_center_variance, !overlay ); read_and_set_or_throw( forest_trail_settings_jo, "trail_width_offset_min", @@ -237,6 +239,53 @@ void load_forest_trail_settings( JsonObject &jo, forest_trail_settings &forest_t } } +void load_overmap_feature_flag_settings( JsonObject &jo, + overmap_feature_flag_settings &overmap_feature_flag_settings, + const bool strict, const bool overlay ) +{ + if( !jo.has_object( "overmap_feature_flag_settings" ) ) { + if( strict ) { + jo.throw_error( "\"overmap_feature_flag_settings\": { ... } required for default" ); + } + } else { + JsonObject overmap_feature_flag_settings_jo = jo.get_object( "overmap_feature_flag_settings" ); + read_and_set_or_throw( overmap_feature_flag_settings_jo, "clear_blacklist", + overmap_feature_flag_settings.clear_blacklist, !overlay ); + read_and_set_or_throw( overmap_feature_flag_settings_jo, "clear_whitelist", + overmap_feature_flag_settings.clear_whitelist, !overlay ); + + if( overmap_feature_flag_settings.clear_blacklist ) { + overmap_feature_flag_settings.blacklist.clear(); + } + + if( overmap_feature_flag_settings.clear_whitelist ) { + overmap_feature_flag_settings.whitelist.clear(); + } + + if( !overmap_feature_flag_settings_jo.has_array( "blacklist" ) ) { + if( !overlay ) { + overmap_feature_flag_settings_jo.throw_error( "blacklist required" ); + } + } else { + JsonArray blacklist_ja = overmap_feature_flag_settings_jo.get_array( "blacklist" ); + while( blacklist_ja.has_more() ) { + overmap_feature_flag_settings.blacklist.emplace( blacklist_ja.next_string() ); + } + } + + if( !overmap_feature_flag_settings_jo.has_array( "whitelist" ) ) { + if( !overlay ) { + overmap_feature_flag_settings_jo.throw_error( "whitelist required" ); + } + } else { + JsonArray whitelist_ja = overmap_feature_flag_settings_jo.get_array( "whitelist" ); + while( whitelist_ja.has_more() ) { + overmap_feature_flag_settings.whitelist.emplace( whitelist_ja.next_string() ); + } + } + } +} + void load_region_settings( JsonObject &jo ) { regional_settings new_region; @@ -430,6 +479,8 @@ void load_region_settings( JsonObject &jo ) new_region.weather = weather_generator::load( wjo ); } + load_overmap_feature_flag_settings( jo, new_region.overmap_feature_flag, strict, false ); + region_settings_map[new_region.id] = new_region; } @@ -597,6 +648,8 @@ void apply_region_overlay( JsonObject &jo, regional_settings ®ion ) load_building_types( "basements", region.city_spec.basements ); load_building_types( "shops", region.city_spec.shops ); load_building_types( "parks", region.city_spec.parks ); + + load_overmap_feature_flag_settings( jo, region.overmap_feature_flag, false, true ); } void groundcover_extra::finalize() // @todo: fixme return bool for failure diff --git a/src/regional_settings.h b/src/regional_settings.h index fd70172b197da..87783e7cad1a5 100644 --- a/src/regional_settings.h +++ b/src/regional_settings.h @@ -152,6 +152,7 @@ struct forest_trail_settings { int random_point_max = 50; int random_point_size_scalar = 100; int trailhead_chance = 1; + int trailhead_road_distance = 6; int trail_center_variance = 3; int trail_width_offset_min = 1; int trail_width_offset_max = 3; @@ -163,6 +164,15 @@ struct forest_trail_settings { forest_trail_settings() = default; }; +struct overmap_feature_flag_settings { + bool clear_blacklist = false; + bool clear_whitelist = false; + std::set blacklist; + std::set whitelist; + + overmap_feature_flag_settings() = default; +}; + struct map_extras { unsigned int chance; weighted_int_list values; @@ -195,8 +205,8 @@ struct regional_settings { groundcover_extra field_coverage; forest_mapgen_settings forest_composition; forest_trail_settings forest_trail; - weather_generator weather; + overmap_feature_flag_settings overmap_feature_flag; std::unordered_map region_extras; diff --git a/src/requirements.h b/src/requirements.h index e874bd5b4593b..2cda53602b627 100644 --- a/src/requirements.h +++ b/src/requirements.h @@ -56,13 +56,19 @@ struct component { component( const itype_id &TYPE, int COUNT, bool RECOVERABLE ) : type( TYPE ), count( COUNT ), recoverable( RECOVERABLE ) { } void check_consistency( const std::string &display_name ) const; + int operator==( const component &rhs ) const { + return type == rhs.type && count == rhs.count; + } + int operator!=( const component &rhs ) const { + return !( *this == rhs ); + } }; struct tool_comp : public component { tool_comp() : component() { } tool_comp( const itype_id &TYPE, int COUNT ) : component( TYPE, COUNT ) { } - void load( JsonArray &jarr ); + void load( JsonArray &ja ); bool has( const inventory &crafting_inv, int batch = 1, std::function visitor = std::function() ) const; std::string to_string( int batch = 1 ) const; @@ -74,7 +80,7 @@ struct item_comp : public component { item_comp() : component() { } item_comp( const itype_id &TYPE, int COUNT ) : component( TYPE, COUNT ) { } - void load( JsonArray &jarr ); + void load( JsonArray &ja ); bool has( const inventory &crafting_inv, int batch = 1, std::function visitor = std::function() ) const; std::string to_string( int batch = 1 ) const; @@ -88,11 +94,11 @@ struct quality_requirement { mutable available_status available = a_false; bool requirement = false; // Currently unused, but here for consistency and templates - quality_requirement() { } + quality_requirement() = default; quality_requirement( const quality_id &TYPE, int COUNT, int LEVEL ) : type( TYPE ), count( COUNT ), level( LEVEL ) { } - void load( JsonArray &jarr ); + void load( JsonArray &ja ); bool has( const inventory &crafting_inv, int = 0, std::function visitor = std::function() ) const; std::string to_string( int = 0 ) const; diff --git a/src/rng.cpp b/src/rng.cpp index 6747f2abd6c41..01ccdf8b32707 100644 --- a/src/rng.cpp +++ b/src/rng.cpp @@ -1,14 +1,12 @@ #include "rng.h" #include - -#include "output.h" - -#define _USE_MATH_DEFINES #include #include #include +#include "output.h" + long rng( long val1, long val2 ) { long minVal = ( val1 < val2 ) ? val1 : val2; @@ -68,13 +66,13 @@ int divide_roll_remainder( double dividend, double divisor ) // http://www.cse.yorku.ca/~oz/hash.html // for world seeding. -int djb2_hash( const unsigned char *str ) +int djb2_hash( const unsigned char *input ) { unsigned long hash = 5381; - unsigned char c = *str++; + unsigned char c = *input++; while( c != '\0' ) { hash = ( ( hash << 5 ) + hash ) + c; /* hash * 33 + c */ - c = *str++; + c = *input++; } return hash; } diff --git a/src/safemode_ui.cpp b/src/safemode_ui.cpp index c87cbfb8139c5..9d595ca9e59ac 100644 --- a/src/safemode_ui.cpp +++ b/src/safemode_ui.cpp @@ -561,14 +561,14 @@ void safemode::add_rules( std::vector &rules_in ) } } else { //exclude monsters from the existing mapping - for( auto iter = safemode_rules.begin(); iter != safemode_rules.end(); ++iter ) { - set_rule( rule, iter->first, RULE_WHITELISTED ); + for( const auto &safemode_rule : safemode_rules ) { + set_rule( rule, safemode_rule.first, RULE_WHITELISTED ); } } } } -void safemode::set_rule( const rules_class rule_in, const std::string &name_in, rule_state rs_in ) +void safemode::set_rule( const rules_class &rule_in, const std::string &name_in, rule_state rs_in ) { static std::vector attitude_any = {{Creature::A_HOSTILE, Creature::A_NEUTRAL, Creature::A_FRIENDLY}}; @@ -585,13 +585,13 @@ void safemode::set_rule( const rules_class rule_in, const std::string &name_in, rule_state safemode::check_monster( const std::string &creature_name_in, const Creature::Attitude attitude_in, - const int proximity ) const + const int proximity_in ) const { const auto iter = safemode_rules.find( creature_name_in ); if( iter != safemode_rules.end() ) { const auto &tmp = ( iter->second )[static_cast( attitude_in )]; if( tmp.state == RULE_BLACKLISTED ) { - if( tmp.proximity == 0 || proximity <= tmp.proximity ) { + if( tmp.proximity == 0 || proximity_in <= tmp.proximity ) { return RULE_BLACKLISTED; } diff --git a/src/safemode_ui.h b/src/safemode_ui.h index a07a330f644bf..80759dfce610c 100644 --- a/src/safemode_ui.h +++ b/src/safemode_ui.h @@ -65,14 +65,14 @@ class safemode void test_pattern( const int tab_in, const int row_in ); - void load( const bool character_in ); - bool save( const bool character_in ); + void load( const bool is_character_in ); + bool save( const bool is_character_in ); bool is_character; void create_rules(); void add_rules( std::vector &rules_in ); - void set_rule( const rules_class rule_in, const std::string &name_in, rule_state rs_in ); + void set_rule( const rules_class &rule_in, const std::string &name_in, rule_state rs_in ); public: std::string lastmon_whitelist; @@ -88,7 +88,7 @@ class safemode std::string npc_type_name(); void show(); - void show( const std::string &custom_name_in, bool is_autopickup_in ); + void show( const std::string &custom_name_in, bool is_safemode_in ); bool save_character(); bool save_global(); diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index 4f28d046fe40b..e706a8c0080c6 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -160,7 +160,7 @@ std::vector item::magazine_convert() // normalize the base item and mark it as converted charges = 0; curammo = nullptr; - set_var( "magazine_converted", true ); + set_var( "magazine_converted", 1 ); return res; } @@ -569,6 +569,15 @@ void player::load( JsonObject &data ) // Need to do this *after* the monsters have been loaded! last_target = g->critter_tracker->from_temporary_id( tmptar ); } + + JsonArray basecamps = data.get_array( "camps" ); + camps.clear(); + while( basecamps.has_more() ) { + JsonObject bcdata = basecamps.next_object(); + tripoint bcpt; + bcdata.read( "pos", bcpt ); + camps.insert( bcpt ); + } } /* @@ -662,6 +671,15 @@ void player::store( JsonOut &json ) const } json.member( "ammo_location", ammo_location ); + + json.member( "camps" ); + json.start_array(); + for( const tripoint &bcpt : camps ) { + json.start_object(); + json.member( "pos", bcpt ); + json.end_object(); + } + json.end_array(); } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -762,7 +780,6 @@ void player::serialize( JsonOut &json ) const void player::deserialize( JsonIn &jsin ) { JsonObject data = jsin.get_object(); - JsonArray parray; load( data ); @@ -914,7 +931,7 @@ void player::deserialize( JsonIn &jsin ) } data.read( "show_map_memory", show_map_memory ); - parray = data.get_array( "assigned_invlet" ); + JsonArray parray = data.get_array( "assigned_invlet" ); while( parray.has_more() ) { JsonArray pair = parray.next_array(); inv.assigned_invlet[static_cast( pair.get_int( 0 ) )] = pair.get_string( 1 ); @@ -934,18 +951,11 @@ void npc_follower_rules::serialize( JsonOut &json ) const json.start_object(); json.member( "engagement", static_cast( engagement ) ); json.member( "aim", static_cast( aim ) ); - json.member( "use_guns", use_guns ); - json.member( "use_grenades", use_grenades ); - json.member( "use_silent", use_silent ); - - json.member( "allow_pick_up", allow_pick_up ); - json.member( "allow_bash", allow_bash ); - json.member( "allow_sleep", allow_sleep ); - json.member( "allow_complain", allow_complain ); - json.member( "allow_pulp", allow_pulp ); - - json.member( "close_doors", close_doors ); + // serialize the flags so they can be changed between save games + for( const auto &rule : ally_rule_strs ) { + json.member( rule.first, has_flag( rule.second ) ); + } json.member( "pickup_whitelist", *pickup_whitelist ); json.end_object(); @@ -960,17 +970,17 @@ void npc_follower_rules::deserialize( JsonIn &jsin ) int tmpaim = 0; data.read( "aim", tmpaim ); aim = static_cast( tmpaim ); - data.read( "use_guns", use_guns ); - data.read( "use_grenades", use_grenades ); - data.read( "use_silent", use_silent ); - data.read( "allow_pick_up", allow_pick_up ); - data.read( "allow_bash", allow_bash ); - data.read( "allow_sleep", allow_sleep ); - data.read( "allow_complain", allow_complain ); - data.read( "allow_pulp", allow_pulp ); - - data.read( "close_doors", close_doors ); + // deserialize the flags so they can be changed between save games + for( const auto &rule : ally_rule_strs ) { + bool tmpflag = false; + data.read( rule.first, tmpflag ); + if( tmpflag ) { + set_flag( rule.second ); + } else { + clear_flag( rule.second ); + } + } data.read( "pickup_whitelist", *pickup_whitelist ); } @@ -1698,7 +1708,7 @@ time_duration time_duration::read_from_json_string( JsonIn &jsin ) if( skip_spaces() ) { error( "invalid time duration string: empty string" ); } - time_duration result = 0; + time_duration result = 0_turns; do { int sign_value = +1; if( s[i] == '-' ) { @@ -1787,6 +1797,7 @@ void item::io( Archive &archive ) archive.io( "item_tags", item_tags, io::empty_default_tag() ); archive.io( "contents", contents, io::empty_default_tag() ); archive.io( "components", components, io::empty_default_tag() ); + archive.io( "recipe_charges", recipe_charges, 1 ); archive.template io( "curammo", curammo, load_curammo, []( const itype & i ) { return i.get_id(); @@ -2871,12 +2882,12 @@ void basecamp::serialize( JsonOut &json ) const json.end_array(); json.member( "expansions" ); json.start_array(); - for( auto it = expansions.begin(); it != expansions.end(); ++it ) { + for( const auto &expansion : expansions ) { json.start_object(); - json.member( "dir", it->first ); - json.member( "type", it->second.type ); - json.member( "cur_level", it->second.cur_level ); - json.member( "pos", it->second.pos ); + json.member( "dir", expansion.first ); + json.member( "type", expansion.second.type ); + json.member( "cur_level", expansion.second.cur_level ); + json.member( "pos", expansion.second.pos ); json.end_object(); } json.end_array(); diff --git a/src/scent_map.cpp b/src/scent_map.cpp index c0cd36a7f546e..0f6d090691d92 100644 --- a/src/scent_map.cpp +++ b/src/scent_map.cpp @@ -72,19 +72,13 @@ void scent_map::draw( const catacurses::window &win, const int div, const tripoi } } -static bool in_bounds( int x, int y ) -{ - return x >= 0 && x < MAPSIZE_X && y >= 0 && y < MAPSIZE_Y; -} - void scent_map::shift( const int sm_shift_x, const int sm_shift_y ) { scent_array new_scent; for( size_t x = 0; x < MAPSIZE_X; ++x ) { for( size_t y = 0; y < MAPSIZE_Y; ++y ) { - new_scent[x][y] = in_bounds( x + sm_shift_x, y + sm_shift_y ) ? - grscent[ x + sm_shift_x ][ y + sm_shift_y ] : - 0; + const point p( x + sm_shift_x, y + sm_shift_y ); + new_scent[x][y] = inbounds( p ) ? grscent[ p.x ][ p.y ] : 0; } } grscent = new_scent; @@ -92,7 +86,7 @@ void scent_map::shift( const int sm_shift_x, const int sm_shift_y ) int scent_map::get( const tripoint &p ) const { - if( in_bounds( p.x, p.y ) && grscent[p.x][p.y] > 0 && inbounds( p ) ) { + if( inbounds( p ) && grscent[p.x][p.y] > 0 ) { return grscent[p.x][p.y] - std::abs( gm.get_levz() - p.z ); } return 0; @@ -108,11 +102,24 @@ void scent_map::set( const tripoint &p, int value ) bool scent_map::inbounds( const tripoint &p ) const { // This weird long check here is a hack around the fact that scentmap is 2D - // A z-level can access scentmap if it is within 1 flying z-level move from player's z-level + // A z-level can access scentmap if it is within SCENT_MAP_Z_REACH flying z-level move from player's z-level // That is, if a flying critter could move directly up or down (or stand still) and be on same z-level as player - return p.x >= 0 && p.x < MAPSIZE_X && p.y >= 0 && p.y < MAPSIZE_Y && - ( p.z == gm.get_levz() || ( std::abs( p.z - gm.get_levz() ) == 1 && - gm.m.valid_move( p, tripoint( p.x, p.y, gm.get_levz() ), false, true ) ) ); + + const bool scent_map_z_level_inbounds = ( p.z == gm.get_levz() ) || + ( std::abs( p.z - gm.get_levz() ) == SCENT_MAP_Z_REACH && + gm.m.valid_move( p, tripoint( p.x, p.y, gm.get_levz() ), false, true ) ); + if( !scent_map_z_level_inbounds ) { + return false; + }; + const point scent_map_boundary_min( point_zero ); + const point scent_map_boundary_max( MAPSIZE_X, MAPSIZE_Y ); + const point scent_map_clearance_min( point_zero ); + const point scent_map_clearance_max( 1, 1 ); + + const rectangle scent_map_boundaries( scent_map_boundary_min, scent_map_boundary_max ); + const rectangle scent_map_clearance( scent_map_clearance_min, scent_map_clearance_max ); + + return generic_inbounds( { p.x, p.y }, scent_map_boundaries, scent_map_clearance ); } void scent_map::update( const tripoint ¢er, map &m ) diff --git a/src/scent_map.h b/src/scent_map.h index 52c86d158a01d..ff0756b5f98c2 100644 --- a/src/scent_map.h +++ b/src/scent_map.h @@ -5,10 +5,12 @@ #include #include "calendar.h" -#include "enums.h" +#include "enums.h" // IWYU pragma: keep #include "game_constants.h" #include "optional.h" +static constexpr int SCENT_MAP_Z_REACH = 1; + class map; class game; namespace catacurses @@ -34,7 +36,7 @@ class scent_map void deserialize( const std::string &data ); std::string serialize() const; - void draw( const catacurses::window &w, int div, const tripoint ¢er ) const; + void draw( const catacurses::window &win, int div, const tripoint ¢er ) const; void update( const tripoint ¢er, map &m ); void reset(); @@ -52,6 +54,9 @@ class scent_map /**@}*/ bool inbounds( const tripoint &p ) const; + bool inbounds( const point &p ) const { + return inbounds( tripoint( p, 0 ) ); + } }; #endif diff --git a/src/sdl_wrappers.cpp b/src/sdl_wrappers.cpp index 4d555e6dc09bf..534415d24e536 100644 --- a/src/sdl_wrappers.cpp +++ b/src/sdl_wrappers.cpp @@ -84,6 +84,25 @@ void RenderFillRect( const SDL_Renderer_Ptr &renderer, const SDL_Rect *const rec printErrorIf( SDL_RenderFillRect( renderer.get(), rect ) != 0, "SDL_RenderFillRect failed" ); } +void FillRect( const SDL_Surface_Ptr &surface, const SDL_Rect *const rect, Uint32 color ) +{ + if( !surface ) { + dbg( D_ERROR ) << "Tried to use a null surface"; + return; + } + printErrorIf( SDL_FillRect( surface.get(), rect, color ) != 0, "SDL_FillRect failed" ); +} + +bool SetTextureColorMod( const SDL_Texture_Ptr &texture, Uint32 r, Uint32 g, Uint32 b ) +{ + if( !texture ) { + dbg( D_ERROR ) << "Tried to use a null texture"; + return true; + } + return printErrorIf( SDL_SetTextureColorMod( texture.get(), r, g, b ) != 0, + "SDL_SetTextureColorMod failed" ); +} + void SetRenderDrawBlendMode( const SDL_Renderer_Ptr &renderer, const SDL_BlendMode blendMode ) { if( !renderer ) { @@ -133,4 +152,5 @@ SDL_Surface_Ptr CreateRGBSurface( const Uint32 flags, const int width, const int throwErrorIf( !surface, "Failed to create surface" ); return surface; } + #endif diff --git a/src/sdl_wrappers.h b/src/sdl_wrappers.h index 2cb0c55244562..5d7dbc8940a7a 100644 --- a/src/sdl_wrappers.h +++ b/src/sdl_wrappers.h @@ -2,6 +2,7 @@ #ifndef SDL_WRAPPERS_H #define SDL_WRAPPERS_H +// IWYU pragma: begin_exports #if defined(_MSC_VER) && defined(USE_VCPKG) # include # include @@ -9,6 +10,7 @@ # include # include #endif +// IWYU pragma: end_exports #include @@ -80,6 +82,8 @@ 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 RenderFillRect( const SDL_Renderer_Ptr &renderer, const SDL_Rect *rect ); +void FillRect( const SDL_Surface_Ptr &surface, const SDL_Rect *rect, Uint32 color ); +bool SetTextureColorMod( const SDL_Texture_Ptr &texture, Uint32 r, Uint32 g, Uint32 b ); void SetRenderDrawBlendMode( const SDL_Renderer_Ptr &renderer, SDL_BlendMode blendMode ); SDL_Surface_Ptr load_image( const char *path ); void SetRenderTarget( const SDL_Renderer_Ptr &renderer, const SDL_Texture_Ptr &texture ); diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index bb8c1683cfdb2..dff13ef9fd7a9 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -3,11 +3,19 @@ #include "sdlsound.h" #include +#include #include +#include #include #include #include +#if defined(_MSC_VER) && defined(USE_VCPKG) +# include +#else +# include +#endif + #include "debug.h" #include "init.h" #include "json.h" @@ -15,6 +23,7 @@ #include "options.h" #include "path_info.h" #include "rng.h" +#include "sdl_wrappers.h" #define dbg(x) DebugLog((DebugLevel)(x),D_SDL) << __FILE__ << ":" << __LINE__ << ": " @@ -73,7 +82,7 @@ static inline bool check_sound( const int volume = 1 ) /** * Attempt to initialize an audio device. Returns false if initialization fails. */ -bool init_sound( void ) +bool init_sound() { int audio_rate = 44100; Uint16 audio_format = AUDIO_S16; @@ -101,7 +110,7 @@ bool init_sound( void ) return sound_init_success; } -void shutdown_sound( void ) +void shutdown_sound() { // De-allocate all loaded sound. sfx_resources.resource.clear(); @@ -163,7 +172,7 @@ void musicFinished() play_music_file( next.file, next.volume ); } -void play_music( std::string playlist ) +void play_music( const std::string &playlist ) { const auto iter = playlists.find( playlist ); if( iter == playlists.end() ) { @@ -183,7 +192,9 @@ void play_music( std::string playlist ) playlist_indexes.push_back( i ); } if( list.shuffle ) { - std::random_shuffle( playlist_indexes.begin(), playlist_indexes.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( playlist_indexes.begin(), playlist_indexes.end(), eng ); } current_playlist = playlist; @@ -207,7 +218,7 @@ void update_music_volume() // Allocate new Mix_Chunk as a null-chunk. Results in a valid, but empty chunk // that is created when loading of a sound effect resource fails. Does not own // memory. Mix_FreeChunk will free the SDL_malloc'd Mix_Chunk pointer. -static Mix_Chunk *make_null_chunk( void ) +static Mix_Chunk *make_null_chunk() { static Mix_Chunk null_chunk = { 0, nullptr, 0, 0 }; // SDL_malloc to match up with Mix_FreeChunk's SDL_free call @@ -360,7 +371,8 @@ Mix_Chunk *do_pitch_shift( Mix_Chunk *s, float pitch ) Uint32 s_in = s->alen / 4; Uint32 s_out = static_cast( static_cast( s_in ) * pitch ); float pitch_real = static_cast( s_out ) / static_cast( s_in ); - Uint32 i, j; + Uint32 i; + Uint32 j; result = static_cast( malloc( sizeof( Mix_Chunk ) ) ); result->allocated = 1; result->alen = s_out * 4; @@ -414,7 +426,7 @@ void sfx::play_variant_sound( const std::string &id, const std::string &variant, } const sound_effect &selected_sound_effect = *eff; - Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id );; + Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id ); Mix_VolumeChunk( effect_to_play, selected_sound_effect.volume * get_option( "SOUND_EFFECT_VOLUME" ) * volume / ( 100 * 100 ) ); Mix_PlayChannel( -1, effect_to_play, 0 ); @@ -434,7 +446,7 @@ void sfx::play_variant_sound( const std::string &id, const std::string &variant, } const sound_effect &selected_sound_effect = *eff; - Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id );; + Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id ); float pitch_random = rng_float( pitch_min, pitch_max ); Mix_Chunk *shifted_effect = do_pitch_shift( effect_to_play, pitch_random ); Mix_VolumeChunk( shifted_effect, @@ -458,7 +470,7 @@ void sfx::play_ambient_variant_sound( const std::string &id, const std::string & } const sound_effect &selected_sound_effect = *eff; - Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id );; + Mix_Chunk *effect_to_play = get_sfx_resource( selected_sound_effect.resource_id ); Mix_VolumeChunk( effect_to_play, selected_sound_effect.volume * get_option( "SOUND_EFFECT_VOLUME" ) * volume / ( 100 * 100 ) ); if( Mix_FadeInChannel( channel, effect_to_play, -1, duration ) == -1 ) { diff --git a/src/sdlsound.h b/src/sdlsound.h index 0697529d0c2f9..c8266a896907a 100644 --- a/src/sdlsound.h +++ b/src/sdlsound.h @@ -3,35 +3,30 @@ #define SDL_SOUND_H #ifdef SDL_SOUND -# if defined(_MSC_VER) && defined(USE_VCPKG) -# include -# else -# include -# endif # include "sounds.h" /** * Attempt to initialize an audio device. Returns false if initialization fails. */ -bool init_sound( void ); -void shutdown_sound( void ); -void play_music( std::string playlist ); -void update_music_volume( void ); -void load_soundset( void ); +bool init_sound(); +void shutdown_sound(); +void play_music( const std::string &playlist ); +void update_music_volume(); +void load_soundset(); #else -inline bool init_sound( void ) +inline bool init_sound() { return false; } -inline void shutdown_sound( void ) { } -inline void play_music( std::string playlist ) +inline void shutdown_sound() { } +inline void play_music( const std::string &playlist ) { ( void )playlist; } -inline void update_music_volume( void ) { } -inline void load_soundset( void ) { } +inline void update_music_volume() { } +inline void load_soundset() { } #endif diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 289261d770cc4..dbcfed027fcfc 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -54,6 +54,8 @@ # ifndef strcasecmp # define strcasecmp StrCmpI # endif +#else +# include // for strcasecmp #endif #ifdef __ANDROID__ @@ -77,7 +79,10 @@ std::unique_ptr tilecontext; static unsigned long lastupdate = 0; static unsigned long interval = 25; static bool needupdate = false; -extern bool tile_iso; + +// used to replace SDL_RenderFillRect with a more efficient SDL_RenderCopy +SDL_Texture_Ptr alt_rect_tex = NULL; +bool alt_rect_tex_enabled = false; /** * A class that draws a single character on screen. @@ -96,8 +101,8 @@ class Font { */ virtual void OutputChar(const std::string &ch, int x, int y, unsigned char color) = 0; virtual void draw_ascii_lines(unsigned char line_id, int drawx, int drawy, int FG) const; - bool draw_window( const catacurses::window &win ); - bool draw_window( const catacurses::window &win, int offsetx, int offsety ); + bool draw_window( const catacurses::window &w ); + bool draw_window( const catacurses::window &w, int offsetx, int offsety ); static std::unique_ptr load_font(const std::string &typeface, int fontsize, int fontwidth, int fontheight, bool fontblending); public: @@ -118,7 +123,7 @@ class CachedTTFFont : public Font { CachedTTFFont( int w, int h, std::string typeface, int fontsize, bool fontblending ); ~CachedTTFFont() override = default; - virtual void OutputChar(const std::string &ch, int x, int y, unsigned char color) override; + void OutputChar(const std::string &ch, int x, int y, unsigned char color) override; protected: SDL_Texture_Ptr create_glyph( const std::string &ch, int color ); @@ -151,12 +156,12 @@ class CachedTTFFont : public Font { */ class BitmapFont : public Font { public: - BitmapFont( int w, int h, const std::string &path ); + BitmapFont( int w, int h, const std::string &typeface_path ); ~BitmapFont() override = default; - virtual void OutputChar(const std::string &ch, int x, int y, unsigned char color) override; + void OutputChar(const std::string &ch, int x, int y, unsigned char color) override; void OutputChar(long t, int x, int y, unsigned char color); - virtual void draw_ascii_lines(unsigned char line_id, int drawx, int drawy, int FG) const override; + void draw_ascii_lines(unsigned char line_id, int drawx, int drawy, int FG) const override; protected: std::array::COLOR_NAMES_COUNT> ascii; int tilewidth; @@ -207,6 +212,51 @@ extern catacurses::window w_hit_animation; //this window overlays w_terrain whic //*********************************** //Non-curses, Window functions * //*********************************** +void generate_alt_rect_texture() +{ +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + static const Uint32 rmask = 0xff000000; + static const Uint32 gmask = 0x00ff0000; + static const Uint32 bmask = 0x0000ff00; + static const Uint32 amask = 0x000000ff; +#else + static const Uint32 rmask = 0x000000ff; + static const Uint32 gmask = 0x0000ff00; + static const Uint32 bmask = 0x00ff0000; + static const Uint32 amask = 0xff000000; +#endif + + SDL_Surface_Ptr alt_surf( SDL_CreateRGBSurface( 0, 1, 1, 32, rmask, gmask, bmask, amask ) ); + if( alt_surf ) { + 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(); + + // Test to make sure color modulation is supported by renderer + alt_rect_tex_enabled = !SetTextureColorMod( alt_rect_tex, 0, 0, 0 ); + if( !alt_rect_tex_enabled ) { + alt_rect_tex.reset(); + } + DebugLog( D_INFO, DC_ALL ) << "generate_alt_rect_texture() = " << ( alt_rect_tex_enabled ? "FAIL" : "SUCCESS" ) << ". alt_rect_tex_enabled = " << alt_rect_tex_enabled; + } else { + DebugLog( D_ERROR, DC_ALL ) << "CreateRGBSurface failed: " << SDL_GetError(); + } +} + +void draw_alt_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, unsigned char color ) +{ + SetTextureColorMod( alt_rect_tex, windowsPalette[color].r, windowsPalette[color].g, + windowsPalette[color].b ); + RenderCopy( renderer, alt_rect_tex, NULL, &rect ); +} + +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, NULL, &rect ); +} static bool operator==( const cata_cursesport::WINDOW *const lhs, const catacurses::window &rhs ) { @@ -349,11 +399,34 @@ void WinCreate() format.reset( SDL_AllocFormat( wformat ) ); throwErrorIf( !format, "SDL_AllocFormat failed" ); + int renderer_id = -1; +#ifndef __ANDROID__ + bool software_renderer = get_option( "RENDERER" ).empty(); + std::string renderer_name; + if( software_renderer ) { + renderer_name = "software"; + } else { + renderer_name = get_option( "RENDERER" ); + } + + const int numRenderDrivers = SDL_GetNumRenderDrivers(); + for( int i = 0; i < numRenderDrivers; i++ ) { + SDL_RendererInfo ri; + SDL_GetRenderDriverInfo( i, &ri ); + if( renderer_name == ri.name ) { + renderer_id = i; + DebugLog( D_INFO, DC_ALL ) << "Active renderer: " << renderer_id << "/" << ri.name; + break; + } + } +#else bool software_renderer = get_option( "SOFTWARE_RENDERING" ); +#endif + if( !software_renderer ) { dbg( D_INFO ) << "Attempting to initialize accelerated SDL renderer."; - renderer.reset( SDL_CreateRenderer( ::window.get(), -1, SDL_RENDERER_ACCELERATED | + renderer.reset( SDL_CreateRenderer( ::window.get(), renderer_id, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE ) ); if( printErrorIf( !renderer, "Failed to initialize accelerated renderer, falling back to software rendering" ) ) { software_renderer = true; @@ -364,7 +437,9 @@ void WinCreate() renderer.reset(); } } + if( software_renderer ) { + alt_rect_tex_enabled = false; if( get_option( "FRAMEBUFFER_ACCEL" ) ) { SDL_SetHint( SDL_HINT_FRAMEBUFFER_ACCELERATION, "1" ); } @@ -413,6 +488,14 @@ void WinCreate() // Set up audio mixer. init_sound(); + + DebugLog( D_INFO, DC_ALL ) << "USE_COLOR_MODULATED_TEXTURES is set to " << + get_option( "USE_COLOR_MODULATED_TEXTURES" ); + //initialize the alternate rectangle texture for replacing SDL_RenderFillRect + if( get_option( "USE_COLOR_MODULATED_TEXTURES" ) ) { + generate_alt_rect_texture(); + } + } void WinDestroy() @@ -426,6 +509,8 @@ void WinDestroy() if(joystick) { SDL_JoystickClose(joystick); + alt_rect_tex.reset(); + joystick = 0; } format.reset(); @@ -434,9 +519,16 @@ void WinDestroy() ::window.reset(); } -inline void FillRectDIB(SDL_Rect &rect, unsigned char color) { - SetRenderDrawColor( renderer, windowsPalette[color].r, windowsPalette[color].g, windowsPalette[color].b, 255 ); - RenderFillRect( renderer, &rect ); +inline void FillRectDIB( SDL_Rect &rect, unsigned char color ) +{ + if( alt_rect_tex_enabled ) { + draw_alt_rect( renderer, rect, windowsPalette[color].r, windowsPalette[color].g, + windowsPalette[color].b ); + } else { + SetRenderDrawColor( renderer, windowsPalette[color].r, windowsPalette[color].g, + windowsPalette[color].b, 255 ); + RenderFillRect( renderer, &rect ); + } } //The following 3 methods use mem functions for fast drawing @@ -773,8 +865,8 @@ void invalidate_framebuffer( std::vector &framebuffer, int x, int y, void invalidate_framebuffer( std::vector &framebuffer ) { - for( unsigned int i = 0; i < framebuffer.size(); i++ ) { - std::fill_n( framebuffer[i].chars.begin(), framebuffer[i].chars.size(), cursecell( "" ) ); + for( auto &i : framebuffer ) { + std::fill_n( i.chars.begin(), i.chars.size(), cursecell( "" ) ); } } @@ -989,12 +1081,12 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) } } -bool Font::draw_window( const catacurses::window &win ) +bool Font::draw_window( const catacurses::window &w ) { - cata_cursesport::WINDOW *const w = win.get(); + 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( win, w->x * ::fontwidth, w->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 ) @@ -3103,11 +3195,11 @@ int get_terminal_height() { return TERMINAL_HEIGHT; } -BitmapFont::BitmapFont( const int w, const int h, const std::string &typeface ) +BitmapFont::BitmapFont( const int w, const int h, const std::string &typeface_path ) : Font( w, h ) { - dbg( D_INFO ) << "Loading bitmap font [" + typeface + "]." ; - SDL_Surface_Ptr asciiload = load_image( typeface.c_str() ); + dbg( D_INFO ) << "Loading bitmap font [" + typeface_path + "]." ; + SDL_Surface_Ptr asciiload = load_image( typeface_path.c_str() ); assert( asciiload ); if (asciiload->w * asciiload->h < (fontwidth * fontheight * 256)) { throw std::runtime_error("bitmap for font is to small"); @@ -3116,12 +3208,12 @@ BitmapFont::BitmapFont( const int w, const int h, const std::string &typeface ) SDL_SetColorKey( asciiload.get(),SDL_TRUE,key ); SDL_Surface_Ptr ascii_surf[std::tuple_size::value]; ascii_surf[0].reset( SDL_ConvertSurface( asciiload.get(), format.get(), 0 ) ); - SDL_SetSurfaceRLE( ascii_surf[0].get(), true ); + SDL_SetSurfaceRLE( ascii_surf[0].get(), 1 ); asciiload.reset(); for (size_t a = 1; a < std::tuple_size::value; ++a) { ascii_surf[a].reset( SDL_ConvertSurface( ascii_surf[0].get(), format.get(), 0 ) ); - SDL_SetSurfaceRLE( ascii_surf[a].get(), true ); + SDL_SetSurfaceRLE( ascii_surf[a].get(), 1 ); } for (size_t a = 0; a < std::tuple_size::value - 1; ++a) { diff --git a/src/sidebar.cpp b/src/sidebar.cpp index 959740c47b65e..8a975385ec2a2 100644 --- a/src/sidebar.cpp +++ b/src/sidebar.cpp @@ -133,7 +133,7 @@ void draw_HP( const player &p, const catacurses::window &w_HP ) wmove( w_HP, i * dy + hpy, hpx ); static auto print_symbol_num = []( const catacurses::window & w, int num, const std::string & sym, - const nc_color color ) { + const nc_color & color ) { while( num-- > 0 ) { wprintz( w, color, sym.c_str() ); } @@ -177,47 +177,32 @@ void draw_HP( const player &p, const catacurses::window &w_HP ) } } + // display limbs status static std::array part = {{ bp_head, bp_torso, bp_arm_l, bp_arm_r, bp_leg_l, bp_leg_r, num_bp } }; for( size_t i = 0; i < part.size(); i++ ) { - const std::string str = ( i == part.size() - 1 ) ? - _( "POWER" ) : body_part_hp_bar_ui_text( part[i] ); + const std::string str = body_part_hp_bar_ui_text( part[i] ); wmove( w_HP, i * dy, 0 ); if( wide ) { wprintz( w_HP, p.limb_color( part[i], true, true, true ), " " ); } wprintz( w_HP, p.limb_color( part[i], true, true, true ), str ); - if( !wide ) { + if( !wide && !( i == part.size() - 1 ) ) { wprintz( w_HP, p.limb_color( part[i], true, true, true ), ":" ); } } - - const int powx = hpx; - const int powy = wide ? 6 : 13; - if( p.max_power_level == 0 ) { - wmove( w_HP, powy, powx ); - if( wide ) - for( int i = 0; i < 2; i++ ) { - wputch( w_HP, c_light_gray, LINE_OXOX ); - } else { - wprintz( w_HP, c_light_gray, " -- " ); - } - } else { - nc_color color = c_red; - if( p.power_level == p.max_power_level ) { - color = c_blue; - } else if( p.power_level >= p.max_power_level * .5 ) { - color = c_light_blue; - } else if( p.power_level > 0 ) { - color = c_yellow; - } - mvwprintz( w_HP, powy, powx, color, "%-3d", p.power_level ); + // display stamina + if( wide ) { + wmove( w_HP, 7 * dy, 0 ); + wprintz( w_HP, c_light_gray, _( "STA " ) ); + print_stamina_bar( p, w_HP ); } if( !wide ) { - mvwprintz( w_HP, 14, hpx, c_white, "%s", _( "Stm" ) ); - wmove( w_HP, 15, hpx ); + wmove( w_HP, 12, hpx ); + wprintz( w_HP, c_light_gray, _( "STA:" ) ); + wmove( w_HP, 13, hpx ); print_stamina_bar( p, w_HP ); } wrefresh( w_HP ); @@ -283,14 +268,14 @@ void player::disp_status( const catacurses::window &w, const catacurses::window { bool sideStyle = use_narrow_sidebar(); const catacurses::window &weapwin = sideStyle ? w2 : w; - { - const int y = sideStyle ? 1 : 0; + // sidebar display currently used weapon. + const int y = 0; const int wn = getmaxx( weapwin ); trim_and_print( weapwin, y, 0, wn, c_light_gray, print_gun_mode( *this ) ); } - // Print currently used style or weapon mode. + // Print in sidebar currently used martial style. std::string style; const auto &cur_style = style_selected.obj(); if( !weapon.is_gun() ) { @@ -305,28 +290,39 @@ void player::disp_status( const catacurses::window &w, const catacurses::window if( !style.empty() ) { const auto style_color = is_armed() ? c_red : c_blue; - const int x = sideStyle ? ( getmaxx( weapwin ) - 13 ) : 0; - mvwprintz( weapwin, 1, x, style_color, style ); + const int x = sideStyle ? ( getmaxx( weapwin ) - 13 ) : ( getmaxx( weapwin ) - 12 ); + mvwprintz( weapwin, 0, x, style_color, style ); } - wmove( w, sideStyle ? 1 : 2, 0 ); + std::string hunger_string = ""; + nc_color hunger_color = c_yellow; if( get_hunger() >= 300 && get_starvation() > 2500 ) { - wprintz( w, c_red, _( "Starving!" ) ); + hunger_color = c_red; + hunger_string = _( "Starving!" ); } else if( get_hunger() >= 300 && get_starvation() > 1100 ) { - wprintz( w, c_light_red, _( "Near starving" ) ); + hunger_color = c_light_red; + hunger_string = _( "Near starving" ); } else if( get_hunger() > 250 ) { - wprintz( w, c_light_red, _( "Famished" ) ); + hunger_color = c_light_red; + hunger_string = _( "Famished" ); } else if( get_hunger() > 100 ) { - wprintz( w, c_yellow, _( "Very hungry" ) ); + hunger_color = c_yellow; + hunger_string = _( "Very hungry" ); } else if( get_hunger() > 40 ) { - wprintz( w, c_yellow, _( "Hungry" ) ); + hunger_color = c_yellow; + hunger_string = _( "Hungry" ); } else if( get_hunger() < -60 ) { - wprintz( w, c_green, _( "Engorged" ) ); + hunger_color = c_green; + hunger_string = _( "Engorged" ); } else if( get_hunger() < -20 ) { - wprintz( w, c_green, _( "Sated" ) ); + hunger_color = c_green; + hunger_string = _( "Sated" ); } else if( get_hunger() < 0 ) { - wprintz( w, c_green, _( "Full" ) ); + hunger_color = c_green; + hunger_string = _( "Full" ); } + mvwprintz( sideStyle ? w : g->w_location_wider, + sideStyle ? 1 : 2, sideStyle ? 0 : 22, hunger_color, hunger_string ); /// Find hottest/coldest bodypart // Calculate the most extreme body temperatures @@ -366,7 +362,7 @@ void player::disp_status( const catacurses::window &w, const catacurses::window } // printCur the hottest/coldest bodypart, and if it is rising or falling in temperature - wmove( w, sideStyle ? 6 : 1, sideStyle ? 0 : 9 ); + wmove( w, sideStyle ? 6 : 1, sideStyle ? 0 : 22 ); if( temp_cur[current_bp_extreme] > BODYTEMP_SCORCHING ) { wprintz( w, c_red, _( "Scorching!%s" ), temp_message ); } else if( temp_cur[current_bp_extreme] > BODYTEMP_VERY_HOT ) { @@ -384,33 +380,35 @@ void player::disp_status( const catacurses::window &w, const catacurses::window wprintz( w, c_blue, _( "Freezing!%s" ), temp_message ); } - const int x = 32; - const int y = sideStyle ? 0 : 1; - if( is_deaf() ) { - mvwprintz( sideStyle ? w2 : w, y, x, c_red, _( "Deaf!" ) ); - } else { - mvwprintz( sideStyle ? w2 : w, y, x, c_yellow, _( "Sound %d" ), volume ); - } - volume = 0; - - wmove( w, 2, sideStyle ? 0 : 15 ); + std::string hydration_string = ""; + nc_color hydration_color = c_yellow; if( get_thirst() > 520 ) { - wprintz( w, c_light_red, _( "Parched" ) ); + hydration_color = c_light_red; + hydration_string = _( "Parched" ); } else if( get_thirst() > 240 ) { - wprintz( w, c_light_red, _( "Dehydrated" ) ); + hydration_color = c_light_red; + hydration_string = _( "Dehydrated" ); } else if( get_thirst() > 80 ) { - wprintz( w, c_yellow, _( "Very thirsty" ) ); + hydration_color = c_yellow; + hydration_string = _( "Very thirsty" ); } else if( get_thirst() > 40 ) { - wprintz( w, c_yellow, _( "Thirsty" ) ); + hydration_color = c_yellow; + hydration_string = _( "Thirsty" ); } else if( get_thirst() < -60 ) { - wprintz( w, c_green, _( "Turgid" ) ); + hydration_color = c_green; + hydration_string = _( "Turgid" ); } else if( get_thirst() < -20 ) { - wprintz( w, c_green, _( "Hydrated" ) ); + hydration_color = c_green; + hydration_string = _( "Hydrated" ); } else if( get_thirst() < 0 ) { - wprintz( w, c_green, _( "Slaked" ) ); + hydration_color = c_green; + hydration_string = _( "Slaked" ); } + mvwprintz( sideStyle ? w : g->w_location_wider, + sideStyle ? 2 : 1, sideStyle ? 0 : 22, hydration_color, hydration_string ); + wrefresh( sideStyle ? w : g->w_location_wider ); - wmove( w, sideStyle ? 3 : 2, sideStyle ? 0 : 30 ); + wmove( w, sideStyle ? 3 : 2, 0 ); if( get_fatigue() > EXHAUSTED ) { wprintz( w, c_red, _( "Exhausted" ) ); } else if( get_fatigue() > DEAD_TIRED ) { @@ -419,7 +417,7 @@ void player::disp_status( const catacurses::window &w, const catacurses::window wprintz( w, c_yellow, _( "Tired" ) ); } - wmove( w, sideStyle ? 4 : 2, sideStyle ? 0 : 41 ); + wmove( w, sideStyle ? 4 : 2, sideStyle ? 0 : 43 ); wprintz( w, c_white, _( "Focus" ) ); nc_color col_xp = c_dark_gray; if( focus_pool >= 100 ) { @@ -459,15 +457,26 @@ void player::disp_status( const catacurses::window &w, const catacurses::window fc = face_bird; } - mvwprintz( w, sideStyle ? 1 : 3, sideStyle ? 14 : 9, col_morale, - morale_emotion( morale_cur, fc, get_option( "MORALE_STYLE" ) == "horizontal" ) ); + // display mood smiley + const bool mood_style_hor = get_option( "MORALE_STYLE" ) == "horizontal"; + int mood_x = 0; + if( sideStyle ) { + if( mood_style_hor ) { + //Currently, mood is next to current temp but we have space + mood_x = getmaxx( w ) - 3; + } else { + mood_x = getmaxx( w ) - 2; + } + } + mvwprintz( w, sideStyle ? 6 : 3, mood_x, col_morale, + morale_emotion( morale_cur, fc, mood_style_hor ) ); vehicle *veh = g->remoteveh(); if( veh == nullptr && in_vehicle ) { veh = veh_pointer_or_null( g->m.veh_at( pos() ) ); } if( veh ) { - veh->print_fuel_indicators( w, sideStyle ? 2 : 3, sideStyle ? getmaxx( w ) - 5 : 49 ); + veh->print_fuel_indicators( w, sideStyle ? 5 : 3, sideStyle ? getmaxx( w ) - 5 : 49 ); nc_color col_indf1 = c_light_gray; const float strain = veh->strain(); @@ -519,28 +528,35 @@ void player::disp_status( const catacurses::window &w, const catacurses::window wprintz( w, c_white, " " ); } - + wmove( w, sideStyle ? 4 : 3, getmaxx( w ) - ( sideStyle ? 14 : 12 ) ); //Vehicle direction indicator in 0-359° where 0 is north (veh->face.dir() 0° is west) wprintz( w, c_white, "%3d°", ( veh->face.dir() + 90 ) % 360 ); - if( sideStyle ) { - // Make sure this is left-aligned. - mvwprintz( w, speedoy, getmaxx( w ) - 9, c_white, "%s", _( "Stm " ) ); - print_stamina_bar( *this, w ); - } } else { // Not in vehicle - const int wx = sideStyle ? 18 : 12; - const int wy = sideStyle ? 0 : 3; - const int dx = sideStyle ? 0 : 7; - const int dy = sideStyle ? 1 : 0; - mvwprintz( w, wy + dy * 0, wx + dx * 0, stat_color( get_str_bonus() ), _( "Str %d" ), str_cur ); - mvwprintz( w, wy + dy * 1, wx + dx * 1, stat_color( get_dex_bonus() ), _( "Dex %d" ), dex_cur ); - mvwprintz( w, wy + dy * 2, wx + dx * 2, stat_color( get_int_bonus() ), _( "Int %d" ), int_cur ); - mvwprintz( w, wy + dy * 3, wx + dx * 3, stat_color( get_per_bonus() ), _( "Per %d" ), per_cur ); - - const int spdx = sideStyle ? 0 : wx + dx * 4 + 1; + const int wx = sideStyle ? 18 : 0; + const int wy = 0; + const int dx = 0; + const int dy = sideStyle ? 1 : 8; + mvwprintz( sideStyle ? w : g->w_HP, sideStyle ? ( wy + dy * 0 ) : 17, + sideStyle ? ( wx + dx * 0 ) - 1 : wx + dx * 0, stat_color( get_str_bonus() ), + _( "Str %02d" ), str_cur ); + + mvwprintz( sideStyle ? w : g->w_HP, sideStyle ? ( wy + dy * 1 ) : 18, + sideStyle ? ( wx + dx * 1 ) - 1 : wx + dx * 1, stat_color( get_dex_bonus() ), + _( "Dex %02d" ), dex_cur ); + + mvwprintz( sideStyle ? w : g->w_HP, sideStyle ? ( wy + dy * 2 ) : 19, + sideStyle ? ( wx + dx * 2 ) - 1 : wx + dx * 2, stat_color( get_int_bonus() ), + _( "Int %02d" ), int_cur ); + + mvwprintz( sideStyle ? w : g->w_HP, sideStyle ? ( wy + dy * 3 ) : 20, + sideStyle ? ( wx + dx * 3 ) - 1 : wx + dx * 3, stat_color( get_per_bonus() ), + _( "Per %02d" ), per_cur ); + + const int spdx = sideStyle ? 0 : getmaxx( w ) - 12; const int spdy = sideStyle ? 5 : wy + dy * 4; - mvwprintz( w, spdy, spdx, stat_color( get_speed_bonus() ), _( "Spd %d" ), get_speed() ); + mvwprintz( w, sideStyle ? spdy : 3, sideStyle ? spdx : 43, + stat_color( get_speed_bonus() ), _( "Spd %d" ), get_speed() ); nc_color col_time = c_white; if( this->weight_carried() > this->weight_capacity() ) { @@ -560,10 +576,62 @@ void player::disp_status( const catacurses::window &w, const catacurses::window //~ Movement type: "running". Max string length: one letter. const auto str_run = pgettext( "movement-type", "R" ); wprintz( w, c_white, " %s", move_mode == "walk" ? str_walk : str_run ); - if( sideStyle ) { - mvwprintz( w, spdy, wx + dx * 4 - 3, c_white, _( "Stm " ) ); - print_stamina_bar( *this, w ); + } + // display power level + wmove( sideStyle ? w : g->w_HP, + sideStyle ? 4 : 21, + sideStyle ? 17 : 0 ); + + wprintz( sideStyle ? w : g->w_HP, c_white, _( "Pwr " ) ); + + if( this->max_power_level == 0 ) { + wprintz( sideStyle ? w : g->w_HP, c_light_gray, " --" ); + } else { + nc_color color = c_red; + if( this->power_level >= this->max_power_level / 2 ) { + color = c_green; + } else if( this->power_level >= this->max_power_level / 3 ) { + color = c_yellow; + } else if( this->power_level >= this->max_power_level / 4 ) { + color = c_red; + } + + // calc number of digits in powerlevel int + int offset = get_int_digits( this->power_level ); + + // case power_level > 999 display 1k instead + int display_power = this->power_level; + std::string unit = ""; + if( this->power_level > 999 ) { + switch( offset ) { + case 4: + display_power /= 1000; + unit = "k"; + offset = 2; + break; + case 5: + display_power /= 1000; + unit = "k"; + offset = 0; + break; + } + } else { + unit = ""; } + + wmove( sideStyle ? w : g->w_HP, + sideStyle ? 4 : 21, + sideStyle ? getmaxx( sideStyle ? w : g->w_HP ) - offset : 7 - offset ); + std::string power_value = std::to_string( display_power ) + unit; + wprintz( sideStyle ? w : g->w_HP, color, power_value ); } + wrefresh( sideStyle ? w : g->w_HP ); + +} + +int get_int_digits( const int &digits ) +{ + int offset = digits > 0 ? ( int ) log10( ( double ) digits ) + 1 : 1; + return offset; } diff --git a/src/sidebar.h b/src/sidebar.h index 77f707aaa4a11..290ae0b027fd8 100644 --- a/src/sidebar.h +++ b/src/sidebar.h @@ -10,5 +10,5 @@ class window; void draw_HP( const player &p, const catacurses::window &w_HP ); void print_stamina_bar( const player &p, const catacurses::window &w ); - +int get_int_digits( const int &digits ); #endif diff --git a/src/skill.cpp b/src/skill.cpp index 8f294cc8ee3cd..19b35c2125a0c 100644 --- a/src/skill.cpp +++ b/src/skill.cpp @@ -179,7 +179,7 @@ bool SkillLevel::isRusting() const bool SkillLevel::rust( bool charged_bio_mem ) { const time_duration delta = calendar::turn - _lastPracticed; - if( _level <= 0 || delta <= 0 || delta % rustRate( _level ) != 0 ) { + if( _level <= 0 || delta <= 0_turns || delta % rustRate( _level ) != 0_turns ) { return false; } diff --git a/src/sounds.cpp b/src/sounds.cpp index 514c13b96d624..3a18fd6a3d761 100644 --- a/src/sounds.cpp +++ b/src/sounds.cpp @@ -82,9 +82,10 @@ static std::vector> sounds_since_last_turn; // The sound events currently displayed to the player. static std::unordered_map sound_markers; -void sounds::ambient_sound( const tripoint &p, int vol, const std::string &description ) +void sounds::ambient_sound( const tripoint &p, int vol, sound_t category, + const std::string &description ) { - sound( p, vol, sounds::sound_t::background, description, true ); + sound( p, vol, category, description, true ); } void sounds::sound( const tripoint &p, int vol, sound_t category, std::string description, @@ -323,7 +324,7 @@ void sounds::process_sound_markers( player *p ) } const std::string &description = sound.description.empty() ? "a noise" : sound.description; - if( p->is_npc() ) { + if( p->is_npc() && !sound.ambient ) { npc *guy = dynamic_cast( p ); guy->handle_sound( static_cast( sound.category ), description, heard_volume, pos ); continue; @@ -568,7 +569,7 @@ void sfx::do_ambient() } // We are indoors and it is also raining if( g->weather >= WEATHER_DRIZZLE && g->weather <= WEATHER_ACID_RAIN && !is_underground - && !is_channel_playing( 4 ) ) { + && is_sheltered && !is_channel_playing( 4 ) ) { play_ambient_variant_sound( "environment", "indoors_rain", heard_volume, 4, 1000 ); } @@ -622,14 +623,14 @@ void sfx::do_ambient() // firing is the item that is fired. It may be the wielded gun, but it can also be an attached // gunmod. p is the character that is firing, this may be a pseudo-character (used by monattack/ // vehicle turrets) or a NPC. -void sfx::generate_gun_sound( const player &p, const item &firing ) +void sfx::generate_gun_sound( const player &source_arg, const item &firing ) { end_sfx_timestamp = std::chrono::high_resolution_clock::now(); sfx_time = end_sfx_timestamp - start_sfx_timestamp; if( std::chrono::duration_cast ( sfx_time ).count() < 80 ) { return; } - const tripoint source = p.pos(); + const tripoint source = source_arg.pos(); int heard_volume = get_heard_volume( source ); if( heard_volume <= 30 ) { heard_volume = 30; diff --git a/src/sounds.h b/src/sounds.h index dd2679125e8be..93bd75502ecb3 100644 --- a/src/sounds.h +++ b/src/sounds.h @@ -46,7 +46,7 @@ void sound( const tripoint &p, int vol, sound_t category, std::string descriptio bool ambient = false, const std::string &id = "", const std::string &variant = "default" ); /** Functions identical to sound(..., true). */ -void ambient_sound( const tripoint &p, int vol, const std::string &description ); +void ambient_sound( const tripoint &p, int vol, sound_t category, const std::string &description ); /** Creates a list of coordinates at which to draw footsteps. */ void add_footstep( const tripoint &p, int volume, int distance, monster *source ); @@ -81,7 +81,7 @@ void play_variant_sound( const std::string &id, const std::string &variant, int void play_ambient_variant_sound( const std::string &id, const std::string &variant, int volume, int channel, int duration ); -void generate_gun_sound( const player &source, const item &firing ); +void generate_gun_sound( const player &source_arg, const item &firing ); void generate_melee_sound( const tripoint &source, const tripoint &target, bool hit, bool targ_mon = false, const std::string &material = "flesh" ); void do_hearing_loss( int turns = -1 ); diff --git a/src/start_location.cpp b/src/start_location.cpp index 6fd7de94ad06c..677e83e901755 100644 --- a/src/start_location.cpp +++ b/src/start_location.cpp @@ -1,6 +1,8 @@ #include "start_location.h" #include +#include +#include #include "coordinate_conversions.h" #include "debug.h" @@ -294,8 +296,8 @@ void start_location::place_player( player &u ) const // Need the "real" map with it's inside/outside cache and the like. map &m = g->m; // Start us off somewhere in the center of the map - u.setx( SEEX * int( MAPSIZE / 2 ) ); - u.sety( SEEY * int( MAPSIZE / 2 ) ); + u.setx( HALF_MAPSIZE_X ); + u.sety( HALF_MAPSIZE_Y ); u.setz( g->get_levz() ); m.build_map_cache( m.get_abs_sub().z ); const bool must_be_inside = flags().count( "ALLOW_OUTSIDE" ) == 0; @@ -328,8 +330,8 @@ void start_location::place_player( player &u ) const }; while( !found_good_spot && tries < 100 ) { - tripoint rand_point( ( SEEX * int( MAPSIZE / 2 ) ) + rng( 0, SEEX * 2 - 1 ), - ( SEEY * int( MAPSIZE / 2 ) ) + rng( 0, SEEY * 2 - 1 ), + tripoint rand_point( HALF_MAPSIZE_X + rng( 0, SEEX * 2 - 1 ), + HALF_MAPSIZE_Y + rng( 0, SEEY * 2 - 1 ), u.posz() ); check_spot( rand_point ); } @@ -358,8 +360,8 @@ void start_location::burn( const tripoint &omtstart, tinymap m; 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() % ( SEEX * int( MAPSIZE / 2 ) ); - const int uy = g->u.posy() % ( SEEY * int( MAPSIZE / 2 ) ); + const int ux = g->u.posx() % HALF_MAPSIZE_X; + const int uy = g->u.posy() % HALF_MAPSIZE_Y; std::vector valid; tripoint p = player_location; int &x = p.x; @@ -376,7 +378,9 @@ void start_location::burn( const tripoint &omtstart, } } } - random_shuffle( valid.begin(), valid.end() ); + static auto eng = std::default_random_engine( + std::chrono::system_clock::now().time_since_epoch().count() ); + std::shuffle( valid.begin(), valid.end(), eng ); for( size_t i = 0; i < std::min( count, valid.size() ); i++ ) { m.add_field( valid[i], fd_fire, 3 ); } diff --git a/src/string_formatter.h b/src/string_formatter.h index db2719bf979f7..4b5f29be27c53 100644 --- a/src/string_formatter.h +++ b/src/string_formatter.h @@ -7,7 +7,8 @@ #include #include -#include "compatibility.h" // needed for the workaround for the std::to_string bug in some compilers +// needed for the workaround for the std::to_string bug in some compilers +#include "compatibility.h" // IWYU pragma: keep //@todo: replace with std::optional #include "optional.h" diff --git a/src/string_input_popup.cpp b/src/string_input_popup.cpp index 322959b254024..e061f9047bbd1 100644 --- a/src/string_input_popup.cpp +++ b/src/string_input_popup.cpp @@ -154,6 +154,61 @@ void string_input_popup::add_to_history( const std::string &value ) const } } +void string_input_popup::update_input_history( utf8_wrapper &ret, bool up ) +{ + if( _identifier.empty() ) { + return; + } + + std::vector &hist = uistate.gethistory( _identifier ); + + if( hist.empty() ) { + return; + } + + if( hist.size() >= _hist_max_size ) { + hist.erase( hist.begin(), hist.begin() + ( hist.size() - _hist_max_size ) ); + } + + if( up ) { + if( _hist_str_ind >= static_cast( hist.size() ) ) { + return; + } else { + if( _hist_str_ind == 0 ) { + if( ret.empty() ) { + _session_str_entered.erase( 0 ); + } else { + _session_str_entered = ret.str(); + } + + //avoid showing the same result twice (after reopen filter window without reset) + if( hist.size() > 1 && ret.str() == hist[hist.size() - 1] ) { + _hist_str_ind += 1; + } + } + } + } else { + if( _hist_str_ind == 1 ) { + if( _session_str_entered.empty() ) { + ret.erase( 0 ); + } else { + ret = _session_str_entered; + _position = _session_str_entered.length(); + } + //show initial string entered and 'return' + _hist_str_ind = 0; + } + if( _hist_str_ind == 0 ) { + return; + } + } + + _hist_str_ind += up ? 1 : -1; + ret = hist[hist.size() - _hist_str_ind]; + _position = ret.length(); + +} + void string_input_popup::draw( const utf8_wrapper &ret, const utf8_wrapper &edit, const int shift ) const { @@ -325,9 +380,20 @@ const std::string &string_input_popup::query_string( const bool loop, const bool add_to_history( ret.str() ); _confirmed = true; _text = ret.str(); + if( !_hist_use_uilist ) { + _hist_str_ind = 0; + _session_str_entered.erase( 0 ); + } return _text; } else if( ch == KEY_UP ) { - show_history( ret ); + if( _hist_use_uilist ) { + show_history( ret ); + } else { + update_input_history( ret, true ); + } + redraw = true; + } else if( ch == KEY_DOWN && !_hist_use_uilist ) { + update_input_history( ret, false ); redraw = true; } else if( ch == KEY_DOWN || ch == KEY_NPAGE || ch == KEY_PPAGE || ch == KEY_BTAB || ch == 9 ) { /* absolutely nothing */ diff --git a/src/string_input_popup.h b/src/string_input_popup.h index 3c1e22a959cca..0d2556edf15ed 100644 --- a/src/string_input_popup.h +++ b/src/string_input_popup.h @@ -47,6 +47,7 @@ class string_input_popup std::string _text; std::string _description; std::string _identifier; + std::string _session_str_entered; nc_color _title_color = c_light_red; nc_color _desc_color = c_green; nc_color _string_color = c_magenta; @@ -55,10 +56,14 @@ class string_input_popup int _width = 0; int _max_length = -1; bool _only_digits = false; + bool _hist_use_uilist = true; int _startx = 0; int _starty = 0; int _endx = 0; int _position = -1; + int _hist_str_ind = 0; + //Counts only when @_hist_use_uilist is false + const size_t _hist_max_size = 100; catacurses::window w; @@ -73,6 +78,7 @@ class string_input_popup void show_history( utf8_wrapper &ret ); void add_to_history( const std::string &value ) const; + void update_input_history( utf8_wrapper &ret, bool up ); void draw( const utf8_wrapper &ret, const utf8_wrapper &edit, int shift ) const; public: @@ -139,6 +145,15 @@ class string_input_popup _only_digits = value; return *this; } + /** + * Make any difference only if @identifier is used. + * If true, create UiList window with query history, otherwise use arrow keys at string input to move through history. + * Default is true. + */ + string_input_popup &hist_use_uilist( bool value ) { + _hist_use_uilist = value; + return *this; + } /** * Set the window area where to display the input text. If this is set, * the class will not create a separate window and *only* the editable @@ -160,7 +175,7 @@ class string_input_popup * Set / get the foreground color of the title. * Optional, default value is c_light_red. */ - string_input_popup &title_color( const nc_color color ) { + string_input_popup &title_color( const nc_color &color ) { _title_color = color; return *this; } @@ -168,7 +183,7 @@ class string_input_popup * Set / get the foreground color of the description. * Optional, default value is c_green. */ - string_input_popup &desc_color( const nc_color color ) { + string_input_popup &desc_color( const nc_color &color ) { _desc_color = color; return *this; } @@ -176,7 +191,7 @@ class string_input_popup * Set / get the foreground color of the input string. * Optional, default value is c_magenta. */ - string_input_popup &string_color( const nc_color color ) { + string_input_popup &string_color( const nc_color &color ) { _string_color = color; return *this; } @@ -184,7 +199,7 @@ class string_input_popup * Set / get the foreground color of the caret. * Optional, default value is h_light_gray. */ - string_input_popup &cursor_color( const nc_color color ) { + string_input_popup &cursor_color( const nc_color &color ) { _cursor_color = color; return *this; } @@ -192,7 +207,7 @@ class string_input_popup * Set / get the foreground color of the dashed line. * Optional, default value is c_light_gray. */ - string_input_popup &underscore_color( const nc_color color ) { + string_input_popup &underscore_color( const nc_color &color ) { _underscore_color = color; return *this; } @@ -228,7 +243,7 @@ class string_input_popup * canceled). Cancelling the popup keeps the value unmodified. */ /**@{*/ - void edit( std::string &text ); + void edit( std::string &value ); void edit( long &value ); void edit( int &value ); /**@}*/ diff --git a/src/submap.cpp b/src/submap.cpp index 91c13e8baef73..949171229052f 100644 --- a/src/submap.cpp +++ b/src/submap.cpp @@ -49,7 +49,7 @@ static cosmetic_find_result make_result( bool b, int ndx ) return result; } static cosmetic_find_result find_cosmetic( - const std::vector &cosmetics, const point p, const std::string &type ) + const std::vector &cosmetics, const point &p, const std::string &type ) { for( size_t i = 0; i < cosmetics.size(); ++i ) { if( cosmetics[i].pos == p && cosmetics[i].type == type ) { diff --git a/src/submap.h b/src/submap.h index 2295988ec30a5..04783b389f422 100644 --- a/src/submap.h +++ b/src/submap.h @@ -233,7 +233,7 @@ struct maptile { return sm->fld[x][y].findField( field_to_find ); } - bool add_field( const field_id field_to_add, const int new_density, const time_duration new_age ) { + bool add_field( const field_id field_to_add, const int new_density, const time_duration &new_age ) { const bool ret = sm->fld[x][y].addField( field_to_add, new_density, new_age ); if( ret ) { sm->field_count++; diff --git a/src/text_snippets.cpp b/src/text_snippets.cpp index a857d5d35ba40..26f4a21224dc0 100644 --- a/src/text_snippets.cpp +++ b/src/text_snippets.cpp @@ -11,7 +11,7 @@ static const std::string null_string; snippet_library SNIPPET; -snippet_library::snippet_library() {} +snippet_library::snippet_library() = default; void snippet_library::load_snippet( JsonObject &jsobj ) { diff --git a/src/trait_group.h b/src/trait_group.h index 0987bf1dc9794..de4daf5937828 100644 --- a/src/trait_group.h +++ b/src/trait_group.h @@ -159,9 +159,9 @@ class Trait_group : public Trait_creation_data */ virtual void add_entry( std::unique_ptr &ptr ) = 0; - virtual void check_consistency() const override; - virtual bool remove_trait( const trait_id &tid ) override; - virtual bool has_trait( const trait_id &tid ) const override; + void check_consistency() const override; + bool remove_trait( const trait_id &tid ) override; + bool has_trait( const trait_id &tid ) const override; protected: // Links to all entries in this group. @@ -180,8 +180,8 @@ class Trait_group_collection : public Trait_group Trait_group_collection( int probability ); ~Trait_group_collection() override = default; - virtual trait_group::Trait_list create( RecursionList &rec ) const override; - virtual void add_entry( std::unique_ptr &ptr ) override; + trait_group::Trait_list create( RecursionList &rec ) const override; + void add_entry( std::unique_ptr &ptr ) override; }; /** @@ -196,8 +196,8 @@ class Trait_group_distribution : public Trait_group Trait_group( probability ) {} ~Trait_group_distribution() override = default; - virtual trait_group::Trait_list create( RecursionList &rec ) const override; - virtual void add_entry( std::unique_ptr &ptr ) override; + trait_group::Trait_list create( RecursionList &rec ) const override; + void add_entry( std::unique_ptr &ptr ) override; }; #endif diff --git a/src/translations.h b/src/translations.h index a9b25b628250f..f7d5774644fb6 100644 --- a/src/translations.h +++ b/src/translations.h @@ -33,7 +33,9 @@ #endif #endif +// IWYU pragma: begin_exports #include +// IWYU pragma: end_exports #if defined(__GNUC__) # define ATTRIBUTE_FORMAT_ARG(a) __attribute__((format_arg(a))) diff --git a/src/trap.h b/src/trap.h index 1b4a6c4bc09a1..66f7eb0ca5a69 100644 --- a/src/trap.h +++ b/src/trap.h @@ -139,7 +139,7 @@ struct trap { * It should spawn trap items (if any) and remove the trap from the map via * @ref map::remove_trap. */ - void on_disarmed( map &m, const tripoint &pos ) const; + void on_disarmed( map &m, const tripoint &p ) const; /** * Whether this kind of trap actually occupies a 3x3 area. Currently only blade traps * do so. diff --git a/src/trapfunc.cpp b/src/trapfunc.cpp index d511000d1b4db..907e4c87859d1 100644 --- a/src/trapfunc.cpp +++ b/src/trapfunc.cpp @@ -37,7 +37,7 @@ static const trait_id trait_WINGS_BUTTERFLY( "WINGS_BUTTERFLY" ); // A pit becomes less effective as it fills with corpses. float pit_effectiveness( const tripoint &p ) { - units::volume corpse_volume = 0; + units::volume corpse_volume = 0_ml; for( auto &pit_content : g->m.i_at( p ) ) { if( pit_content.is_corpse() ) { corpse_volume += pit_content.volume(); diff --git a/src/tutorial.cpp b/src/tutorial.cpp index 8aeb1f22becb2..286fa4496f08b 100644 --- a/src/tutorial.cpp +++ b/src/tutorial.cpp @@ -144,6 +144,7 @@ void tutorial_game::pre_action( action_id &act ) case ACTION_QUICKSAVE: popup( _( "You're saving a tutorial - the tutorial world lacks certain features of normal worlds. " "Weird things might happen when you load this save. You have been warned." ) ); + act = ACTION_NULL; break; default: // Other actions are fine. diff --git a/src/ui.cpp b/src/ui.cpp index 15a67bdc1d0f7..de1eae01fc213 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -24,12 +24,12 @@ */ //////////////////////////////////// -int getfoldedwidth (const std::vector &foldedstring) +int getfoldedwidth( const std::vector &foldedstring ) { int ret = 0; - for (auto &i : foldedstring) { - int width = utf8_width(i); - if ( width > ret ) { + for( auto &i : foldedstring ) { + int width = utf8_width( i ); + if( width > ret ) { ret = width; } } @@ -84,8 +84,8 @@ uilist::uilist( int startx, int width, int starty, const std::string &msg, w_y = starty; w_width = width; text = msg; - for( auto it = opts.begin(); it != opts.end(); ++it ) { - entries.emplace_back( *it ); + for( const auto &opt : opts ) { + entries.emplace_back( opt ); } query(); } @@ -98,8 +98,8 @@ uilist::uilist( int startx, int width, int starty, const std::string &msg, w_y = starty; w_width = width; text = msg; - for( auto it = opts.begin(); it != opts.end(); ++it ) { - entries.emplace_back( *it ); + for( auto opt : opts ) { + entries.emplace_back( opt ); } query(); } @@ -183,9 +183,9 @@ void uilist::filterlist() int num_entries = entries.size(); bool nocase = filtering_nocase; // @todo: && is_all_lc( filter ) std::string fstr; - fstr.reserve(filter.size()); - if ( nocase ) { - transform( filter.begin(), filter.end(), std::back_inserter(fstr), tolower ); + fstr.reserve( filter.size() ); + if( nocase ) { + transform( filter.begin(), filter.end(), std::back_inserter( fstr ), tolower ); } else { fstr = filter; } @@ -194,11 +194,11 @@ void uilist::filterlist() int f = 0; for( int i = 0; i < num_entries; i++ ) { if( notfiltering || ( !nocase && static_cast( entries[i].txt.find( filter ) ) != -1 ) || - lcmatch(entries[i].txt, fstr ) ) { + lcmatch( entries[i].txt, fstr ) ) { fentries.push_back( i ); - if ( i == selected ) { + if( i == selected ) { fselected = f; - } else if ( i > selected && fselected == -1 ) { + } else if( i > selected && fselected == -1 ) { // Past the previously selected entry, which has been filtered out, // choose another nearby entry instead. fselected = f; @@ -206,21 +206,21 @@ void uilist::filterlist() f++; } } - if ( fselected == -1 ) { + if( fselected == -1 ) { fselected = 0; vshift = 0; - if ( fentries.empty() ) { + if( fentries.empty() ) { selected = -1; } else { selected = fentries [ 0 ]; } - } else if (fselected < static_cast( fentries.size() )) { + } else if( fselected < static_cast( fentries.size() ) ) { selected = fentries[fselected]; } else { fselected = selected = -1; } // scroll to top of screen if all remaining entries fit the screen. - if (static_cast( fentries.size() ) <= vmax) { + if( static_cast( fentries.size() ) <= vmax ) { vshift = 0; } } @@ -231,8 +231,8 @@ void uilist::filterlist() std::string uilist::inputfilter() { std::string identifier; // @todo: uilist.filter_identifier ? - mvwprintz(window, w_height - 1, 2, border_color, "< "); - mvwprintz(window, w_height - 1, w_width - 3, border_color, " >"); + mvwprintz( window, w_height - 1, 2, border_color, "< " ); + mvwprintz( window, w_height - 1, w_width - 3, border_color, " >" ); /* //debatable merit std::string origfilter = filter; @@ -242,9 +242,9 @@ std::string uilist::inputfilter() */ string_input_popup popup; popup.text( filter ) - .max_length( 256 ) - .window( window, 4, w_height - 1, w_width - 4 ) - .identifier( identifier ); + .max_length( 256 ) + .window( window, 4, w_height - 1, w_width - 4 ) + .identifier( identifier ); input_event event; #ifdef __ANDROID__ if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { @@ -256,15 +256,15 @@ std::string uilist::inputfilter() filter = popup.query_string( false ); event = popup.context().get_raw_input(); // key = filter_input->keypress; - if ( event.get_first_input() != KEY_ESCAPE ) { + if( event.get_first_input() != KEY_ESCAPE ) { if( !scrollby( scroll_amount_from_key( event.get_first_input() ) ) ) { filterlist(); } show(); } - } while(event.get_first_input() != '\n' && event.get_first_input() != KEY_ESCAPE); + } while( event.get_first_input() != '\n' && event.get_first_input() != KEY_ESCAPE ); - if ( event.get_first_input() == KEY_ESCAPE ) { + if( event.get_first_input() == KEY_ESCAPE ) { /* //perhaps as an option filter = origfilter; @@ -275,11 +275,11 @@ std::string uilist::inputfilter() filterlist(); } - wattron(window, border_color); + wattron( window, border_color ); for( int i = 1; i < w_width - 1; i++ ) { - mvwaddch(window, w_height - 1, i, LINE_OXOX); + mvwaddch( window, w_height - 1, i, LINE_OXOX ); } - wattroff(window, border_color); + wattroff( window, border_color ); return filter; } @@ -328,26 +328,27 @@ static int find_minimum_fold_width( const std::string &str, int max_lines, */ void uilist::setup() { - bool w_auto = (w_width == -1 || w_width == -2 ); - bool w_autofold = ( w_width == -2); + bool w_auto = ( w_width == -1 || w_width == -2 ); + bool w_autofold = ( w_width == -2 ); // Space for a line between text and entries. Only needed if there is actually text. const int text_separator_line = text.empty() ? 0 : 1; - if ( w_auto ) { + if( w_auto ) { w_width = 4; - if ( !title.empty() ) { + if( !title.empty() ) { w_width = title.size() + 5; } } - bool h_auto = (w_height == -1); - if ( h_auto ) { + bool h_auto = ( w_height == -1 ); + if( h_auto ) { w_height = 4; } - if ( desc_enabled && !(w_auto && h_auto) ) { + if( desc_enabled && !( w_auto && h_auto ) ) { desc_enabled = false; // give up - debugmsg( "desc_enabled without w_auto and h_auto (h: %d, w: %d)", static_cast( h_auto ), static_cast( w_auto ) ); + debugmsg( "desc_enabled without w_auto and h_auto (h: %d, w: %d)", static_cast( h_auto ), + static_cast( w_auto ) ); } max_entry_len = 0; @@ -355,44 +356,44 @@ void uilist::setup() std::vector autoassign; int pad = pad_left + pad_right + 2; int descwidth_final = 0; // for description width guard - for ( size_t i = 0; i < entries.size(); i++ ) { - int txtwidth = utf8_width( remove_color_tags(entries[i].txt) ); - int ctxtwidth = utf8_width( remove_color_tags(entries[i].ctxt) ); - if ( txtwidth > max_entry_len ) { + for( size_t i = 0; i < entries.size(); i++ ) { + int txtwidth = utf8_width( remove_color_tags( entries[i].txt ) ); + int ctxtwidth = utf8_width( remove_color_tags( entries[i].ctxt ) ); + if( txtwidth > max_entry_len ) { max_entry_len = txtwidth; } - if ( ctxtwidth > max_column_len ) { + if( ctxtwidth > max_column_len ) { max_column_len = ctxtwidth; } - int clen = (ctxtwidth > 0) ? ctxtwidth + 2: 0; - if(entries[ i ].enabled) { + int clen = ( ctxtwidth > 0 ) ? ctxtwidth + 2 : 0; + if( entries[ i ].enabled ) { if( entries[ i ].hotkey > 0 ) { keymap[ entries[ i ].hotkey ] = i; - } else if ( entries[ i ].hotkey == -1 && i < 100 ) { - autoassign.push_back(i); + } else if( entries[ i ].hotkey == -1 && i < 100 ) { + autoassign.push_back( i ); } - if ( entries[ i ].retval == -1 ) { + if( entries[ i ].retval == -1 ) { entries[ i ].retval = i; } - if ( w_auto && w_width < txtwidth + pad + 4 + clen ) { + if( w_auto && w_width < txtwidth + pad + 4 + clen ) { w_width = txtwidth + pad + 4 + clen; } } else { - if ( w_auto && w_width < txtwidth + pad + 4 + clen ) { + if( w_auto && w_width < txtwidth + pad + 4 + clen ) { w_width = txtwidth + pad + 4 + clen; // @todo: or +5 if header } } - if ( desc_enabled ) { + if( desc_enabled ) { const int min_width = std::min( TERMX, std::max( w_width, descwidth_final ) ) - 4; const int max_width = TERMX - 4; int descwidth = find_minimum_fold_width( entries[i].desc, desc_lines, - min_width, max_width ); + min_width, max_width ); descwidth += 4; // 2x border + 2x ' ' pad - if ( descwidth_final < descwidth ) { + if( descwidth_final < descwidth ) { descwidth_final = descwidth; } } - if ( entries[ i ].text_color == c_red_red ) { + if( entries[ i ].text_color == c_red_red ) { entries[ i ].text_color = text_color; } fentries.push_back( i ); @@ -411,51 +412,51 @@ void uilist::setup() } } - if (desc_enabled) { - if (descwidth_final > TERMX) { + if( desc_enabled ) { + if( descwidth_final > TERMX ) { desc_enabled = false; // give up - debugmsg("description would exceed terminal width (%d vs %d available)", descwidth_final, TERMX); - } else if (descwidth_final > w_width) { + debugmsg( "description would exceed terminal width (%d vs %d available)", descwidth_final, TERMX ); + } else if( descwidth_final > w_width ) { w_width = descwidth_final; } } - if(!text.empty() ) { - int twidth = utf8_width( remove_color_tags(text) ); + if( !text.empty() ) { + int twidth = utf8_width( remove_color_tags( text ) ); bool formattxt = true; int realtextwidth = 0; - if ( textwidth == -1 ) { - if ( w_autofold || !w_auto ) { + if( textwidth == -1 ) { + if( w_autofold || !w_auto ) { realtextwidth = w_width - 4; } else { realtextwidth = twidth; - if ( twidth + 4 > w_width ) { - if ( realtextwidth + 4 > TERMX ) { + if( twidth + 4 > w_width ) { + if( realtextwidth + 4 > TERMX ) { realtextwidth = TERMX - 4; } - textformatted = foldstring(text, realtextwidth); + textformatted = foldstring( text, realtextwidth ); formattxt = false; realtextwidth = 10; - for (auto &l : textformatted) { + for( auto &l : textformatted ) { const int w = utf8_width( remove_color_tags( l ) ); - if ( w > realtextwidth ) { + if( w > realtextwidth ) { realtextwidth = w; } } - if ( realtextwidth + 4 > w_width ) { + if( realtextwidth + 4 > w_width ) { w_width = realtextwidth + 4; } } } - } else if ( textwidth != -1 ) { + } else if( textwidth != -1 ) { realtextwidth = textwidth; if( realtextwidth + 4 > w_width ) { w_width = realtextwidth + 4; } } - if ( formattxt ) { - textformatted = foldstring(text, realtextwidth); + if( formattxt ) { + textformatted = foldstring( text, realtextwidth ); } } @@ -482,11 +483,11 @@ void uilist::setup() additional_lines += desc_lines + 1; // add one for description separator line } - if (h_auto) { + if( h_auto ) { w_height = vmax + additional_lines; } - if ( w_height > TERMY ) { + if( w_height > TERMY ) { w_height = TERMY; } @@ -504,17 +505,17 @@ void uilist::setup() } } - if (w_x == -1) { - w_x = int((TERMX - w_width) / 2); + if( w_x == -1 ) { + w_x = int( ( TERMX - w_width ) / 2 ); } - if (w_y == -1) { - w_y = int((TERMY - w_height) / 2); + if( w_y == -1 ) { + w_y = int( ( TERMY - w_height ) / 2 ); } - if ( scrollbar_side == -1 ) { + if( scrollbar_side == -1 ) { scrollbar_side = ( pad_left > 0 ? 1 : 0 ); } - if ( static_cast( entries.size() ) <= vmax ) { + if( static_cast( entries.size() ) <= vmax ) { scrollbar_auto = false; } window = catacurses::newwin( w_height, w_width, w_y, w_x ); @@ -524,14 +525,14 @@ void uilist::setup() } fselected = selected; - if(fselected < 0) { + if( fselected < 0 ) { fselected = selected = 0; - } else if(fselected >= static_cast(entries.size())) { - fselected = selected = static_cast(entries.size()) - 1; + } else if( fselected >= static_cast( entries.size() ) ) { + fselected = selected = static_cast( entries.size() ) - 1; } - if(!entries.empty() && !entries[fselected].enabled) { - for(size_t i = 0; i < entries.size(); ++i) { - if(entries[i].enabled) { + if( !entries.empty() && !entries[fselected].enabled ) { + for( size_t i = 0; i < entries.size(); ++i ) { + if( entries[i].enabled ) { fselected = selected = i; break; } @@ -542,7 +543,7 @@ void uilist::setup() void uilist::apply_scrollbar() { - if ( !scrollbar_auto ) { + if( !scrollbar_auto ) { return; } @@ -573,38 +574,38 @@ void uilist::apply_scrollbar() */ void uilist::show() { - if (!started) { + if( !started ) { setup(); } - werase(window); - draw_border(window, border_color); + werase( window ); + draw_border( window, border_color ); if( !title.empty() ) { - mvwprintz(window, 0, 1, border_color, "< "); + mvwprintz( window, 0, 1, border_color, "< " ); wprintz( window, title_color, title ); - wprintz(window, border_color, " >"); + wprintz( window, border_color, " >" ); } - std::string padspaces = std::string(w_width - 2 - pad_left - pad_right, ' '); + std::string padspaces = std::string( w_width - 2 - pad_left - pad_right, ' ' ); const int text_lines = textformatted.size(); int estart = 1; if( !textformatted.empty() ) { - for ( int i = 0; i < text_lines; i++ ) { + for( int i = 0; i < text_lines; i++ ) { trim_and_print( window, 1 + i, 2, getmaxx( window ) - 4, text_color, textformatted[i] ); } - mvwputch(window, text_lines + 1, 0, border_color, LINE_XXXO); - for ( int i = 1; i < w_width - 1; ++i) { - mvwputch(window, text_lines + 1, i, border_color, LINE_OXOX); + mvwputch( window, text_lines + 1, 0, border_color, LINE_XXXO ); + for( int i = 1; i < w_width - 1; ++i ) { + mvwputch( window, text_lines + 1, i, border_color, LINE_OXOX ); } - mvwputch(window, text_lines + 1, w_width - 1, border_color, LINE_XOXX); + mvwputch( window, text_lines + 1, w_width - 1, border_color, LINE_XOXX ); estart += text_lines + 1; // +1 for the horizontal line. } calcStartPos( vshift, fselected, vmax, fentries.size() ); - for ( int fei = vshift, si = 0; si < vmax; fei++, si++ ) { - if ( fei < static_cast( fentries.size() ) ) { + for( int fei = vshift, si = 0; si < vmax; fei++, si++ ) { + if( fei < static_cast( fentries.size() ) ) { int ei = fentries [ fei ]; nc_color co = ( ei == selected ? hilight_color : @@ -613,7 +614,7 @@ void uilist::show() disabled_color ) ); - if ( hilight_full ) { + if( hilight_full ) { mvwprintz( window, estart + si, pad_left + 1, co, padspaces ); } if( entries[ ei ].hotkey >= 33 && entries[ ei ].hotkey < 126 ) { @@ -626,61 +627,63 @@ void uilist::show() // activate the highlighting, it is used to override previous text there, but in both // cases printing starts at pad_left+1, here it starts at pad_left+4, so 3 cells less // to be used. - const auto entry = utf8_wrapper( ei == selected ? remove_color_tags( entries[ ei ].txt ) : entries[ ei ].txt ); + const auto entry = utf8_wrapper( ei == selected ? remove_color_tags( entries[ ei ].txt ) : + entries[ ei ].txt ); trim_and_print( window, estart + si, pad_left + 4, max_entry_len, co, "%s", entry.c_str() ); if( max_column_len && !entries[ ei ].ctxt.empty() ) { - const auto centry = utf8_wrapper( ei == selected ? remove_color_tags( entries[ ei ].ctxt ) : entries[ ei ].ctxt ); + const auto centry = utf8_wrapper( ei == selected ? remove_color_tags( entries[ ei ].ctxt ) : + entries[ ei ].ctxt ); trim_and_print( window, estart + si, getmaxx( window ) - max_column_len - 2, max_column_len, co, "%s", centry.c_str() ); } } mvwzstr menu_entry_extra_text = entries[ei].extratxt; - if ( !menu_entry_extra_text.txt.empty() ) { + if( !menu_entry_extra_text.txt.empty() ) { mvwprintz( window, estart + si, pad_left + 1 + menu_entry_extra_text.left, menu_entry_extra_text.color, menu_entry_extra_text.txt ); } - if ( menu_entry_extra_text.sym != 0 ) { - mvwputch ( window, estart + si, pad_left + 1 + menu_entry_extra_text.left, - menu_entry_extra_text.color, menu_entry_extra_text.sym ); + if( menu_entry_extra_text.sym != 0 ) { + mvwputch( window, estart + si, pad_left + 1 + menu_entry_extra_text.left, + menu_entry_extra_text.color, menu_entry_extra_text.sym ); } - if ( callback != nullptr && ei == selected ) { - callback->select(ei, this); + if( callback != nullptr && ei == selected ) { + callback->select( ei, this ); } } else { mvwprintz( window, estart + si, pad_left + 1, c_light_gray, padspaces ); } } - if ( desc_enabled ) { + if( desc_enabled ) { // draw border - mvwputch(window, w_height - desc_lines - 2, 0, border_color, LINE_XXXO); - for ( int i = 1; i < w_width - 1; ++i) { - mvwputch(window, w_height - desc_lines - 2, i, border_color, LINE_OXOX); + mvwputch( window, w_height - desc_lines - 2, 0, border_color, LINE_XXXO ); + for( int i = 1; i < w_width - 1; ++i ) { + mvwputch( window, w_height - desc_lines - 2, i, border_color, LINE_OXOX ); } - mvwputch(window, w_height - desc_lines - 2, w_width - 1, border_color, LINE_XOXX); + mvwputch( window, w_height - desc_lines - 2, w_width - 1, border_color, LINE_XOXX ); // clear previous desc the ugly way - for ( int y = desc_lines + 1; y > 1; --y ) { - for ( int x = 2; x < w_width - 2; ++x) { - mvwputch(window, w_height - y, x, text_color, " "); + for( int y = desc_lines + 1; y > 1; --y ) { + for( int x = 2; x < w_width - 2; ++x ) { + mvwputch( window, w_height - y, x, text_color, " " ); } } - if( static_cast( selected ) < entries.size() ){ + if( static_cast( selected ) < entries.size() ) { fold_and_print( window, w_height - desc_lines - 1, 2, w_width - 4, text_color, entries[selected].desc ); } } - if ( !filter.empty() ) { + if( !filter.empty() ) { mvwprintz( window, w_height - 1, 2, border_color, "< %s >", filter.c_str() ); mvwprintz( window, w_height - 1, 4, text_color, filter ); } apply_scrollbar(); - this->refresh(true); + this->refresh( true ); } /** @@ -688,9 +691,9 @@ void uilist::show() */ void uilist::refresh( bool refresh_callback ) { - wrefresh(window); - if ( refresh_callback && callback != nullptr ) { - callback->refresh(this); + wrefresh( window ); + if( refresh_callback && callback != nullptr ) { + callback->refresh( this ); } } @@ -699,17 +702,17 @@ void uilist::refresh( bool refresh_callback ) */ void uilist::redraw( bool redraw_callback ) { - draw_border(window, border_color); + draw_border( window, border_color ); if( !title.empty() ) { - mvwprintz(window, 0, 1, border_color, "< "); + mvwprintz( window, 0, 1, border_color, "< " ); wprintz( window, title_color, title ); - wprintz(window, border_color, " >"); + wprintz( window, border_color, " >" ); } - if ( !filter.empty() ) { - mvwprintz(window, w_height - 1, 2, border_color, "< %s >", filter.c_str() ); + if( !filter.empty() ) { + mvwprintz( window, w_height - 1, 2, border_color, "< %s >", filter.c_str() ); mvwprintz( window, w_height - 1, 4, text_color, filter ); } - (void)redraw_callback; // TODO + ( void )redraw_callback; // TODO /* // pending tests on if this is needed if ( redraw_callback && callback != NULL ) { @@ -723,7 +726,7 @@ int uilist::scroll_amount_from_key( const int key ) if( key == KEY_UP ) { return -1; } else if( key == KEY_PPAGE ) { - return (-vmax + 1); + return ( -vmax + 1 ); } else if( key == KEY_DOWN ) { return 1; } else if( key == KEY_NPAGE ) { @@ -738,7 +741,7 @@ int uilist::scroll_amount_from_action( const std::string &action ) if( action == "UP" ) { return -1; } else if( action == "PAGE_UP" ) { - return (-vmax + 1); + return ( -vmax + 1 ); } else if( action == "SCROLL_UP" ) { return -3; } else if( action == "DOWN" ) { @@ -757,7 +760,7 @@ int uilist::scroll_amount_from_action( const std::string &action ) */ bool uilist::scrollby( const int scrollby ) { - if ( scrollby == 0 ) { + if( scrollby == 0 ) { return false; } @@ -765,15 +768,15 @@ bool uilist::scrollby( const int scrollby ) bool backwards = ( scrollby < 0 ); fselected += scrollby; - if ( ! looparound ) { - if ( backwards && fselected < 0 ) { + if( ! looparound ) { + if( backwards && fselected < 0 ) { fselected = 0; - } else if ( fselected >= static_cast( fentries.size() ) ) { + } else if( fselected >= static_cast( fentries.size() ) ) { fselected = fentries.size() - 1; } } - if ( backwards ) { + if( backwards ) { if( fselected < 0 ) { fselected = fentries.size() - 1; } @@ -813,7 +816,7 @@ bool uilist::scrollby( const int scrollby ) void uilist::query( bool loop, int timeout ) { keypress = 0; - if ( entries.empty() ) { + if( entries.empty() ) { ret = UILIST_ERROR; return; } @@ -832,7 +835,7 @@ void uilist::query( bool loop, int timeout ) ctxt.register_action( "FILTER" ); ctxt.register_action( "ANY_INPUT" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - for ( const auto &additional_action : additional_actions ) { + for( const auto &additional_action : additional_actions ) { ctxt.register_action( additional_action.first, additional_action.second ); } hotkeys = ctxt.get_available_single_char_hotkeys( hotkeys ); @@ -840,9 +843,10 @@ void uilist::query( bool loop, int timeout ) show(); #ifdef __ANDROID__ - for (const auto& entry : entries) { - if (entry.hotkey > 0 && entry.enabled) - ctxt.register_manual_key(entry.hotkey, entry.txt); + for( const auto &entry : entries ) { + if( entry.hotkey > 0 && entry.enabled ) { + ctxt.register_manual_key( entry.hotkey, entry.txt ); + } } #endif @@ -854,9 +858,9 @@ void uilist::query( bool loop, int timeout ) if( scrollby( scroll_amount_from_action( action ) ) ) { /* nothing */ - } else if ( action == "HELP_KEYBINDINGS" ) { + } else if( action == "HELP_KEYBINDINGS" ) { /* nothing, handled by input_context */ - } else if ( filtering && action == "FILTER" ) { + } else if( filtering && action == "FILTER" ) { inputfilter(); } else if( iter != keymap.end() ) { selected = iter->second; @@ -865,7 +869,7 @@ void uilist::query( bool loop, int timeout ) } else if( allow_disabled ) { ret = entries[selected].retval; // disabled } - } else if ( !fentries.empty() && action == "CONFIRM" ) { + } else if( !fentries.empty() && action == "CONFIRM" ) { if( entries[ selected ].enabled ) { ret = entries[ selected ].retval; // valid } else if( allow_disabled ) { @@ -916,7 +920,8 @@ void uilist::addentry_desc( int r, bool e, int k, const std::string &str, const entries.emplace_back( r, e, k, str, desc ); } -void uilist::addentry_col( int r, bool e, int k, const std::string &str, const std::string &column, const std::string &desc ) +void uilist::addentry_col( int r, bool e, int k, const std::string &str, const std::string &column, + const std::string &desc ) { entries.emplace_back( r, e, k, str, desc, column ); } @@ -932,11 +937,13 @@ pointmenu_cb::pointmenu_cb( const std::vector< tripoint > &pts ) : points( pts ) last_view = g->u.view_offset; } -void pointmenu_cb::select( int /*num*/, uilist * /*menu*/ ) { +void pointmenu_cb::select( int /*num*/, uilist * /*menu*/ ) +{ g->u.view_offset = last_view; } -void pointmenu_cb::refresh( uilist *menu ) { +void pointmenu_cb::refresh( uilist *menu ) +{ if( last == menu->selected ) { return; } @@ -954,7 +961,7 @@ void pointmenu_cb::refresh( uilist *menu ) { const tripoint ¢er = points[menu->selected]; g->u.view_offset = center - g->u.pos(); g->u.view_offset.z = 0; // TODO: Remove this line when it's safe - g->draw_trail_to_square( g->u.view_offset, true); + g->draw_trail_to_square( g->u.view_offset, true ); menu->redraw( false ); menu->show(); } diff --git a/src/ui.h b/src/ui.h index 185fbd959e02d..b50124e708e43 100644 --- a/src/ui.h +++ b/src/ui.h @@ -152,6 +152,7 @@ class uilist_callback /** * uilist: scrolling vertical list menu */ + class ui_element; class ui_element_input; diff --git a/src/uistate.h b/src/uistate.h index ff8cfe04b2ecd..0977d026ac75a 100644 --- a/src/uistate.h +++ b/src/uistate.h @@ -251,10 +251,9 @@ class uistatedata auto inhist = jo.get_object( "input_history" ); std::set inhist_members = inhist.get_member_names(); - for( std::set::iterator it = inhist_members.begin(); - it != inhist_members.end(); ++it ) { - auto ja = inhist.get_array( *it ); - std::vector &v = gethistory( *it ); + for( const auto &inhist_member : inhist_members ) { + auto ja = inhist.get_array( inhist_member ); + std::vector &v = gethistory( inhist_member ); v.clear(); while( ja.has_more() ) { v.push_back( ja.next_string() ); diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 20aeae09101d6..56e913f61324f 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -1633,7 +1633,7 @@ bool veh_interact::do_tirechange( std::string &msg ) return false; case LACK_TOOLS: - //~ %1$s represents the internal color name which shouldn't be translated, %2$s is an internal color name, %3$s is an internal color name, %4$s is an internal color name, and %5$d is the required lift strength + //~ %1$s represents the internal color name which shouldn't be translated, %2$s is an internal color name, %3$s is an internal color name, %4$s is an internal color name, and %5$d is the required lift strength msg = string_format( _( "To change a wheel you need a %1$swrench, a %2$swheel, and either " "%3$slifting equipment or %4$s%5$d strength." ), status_color( has_wrench ), status_color( has_wheel ), status_color( has_jack ), @@ -2021,8 +2021,8 @@ void veh_interact::display_stats() const const int slots = 24; // 3 * stats_h int x[slots], y[slots], w[slots]; - units::volume total_cargo = 0; - units::volume free_cargo = 0; + units::volume total_cargo = 0_ml; + units::volume free_cargo = 0_ml; for( const vpart_reference &vp : veh->get_any_parts( "CARGO" ) ) { const size_t p = vp.part_index(); total_cargo += veh->max_volume(p); @@ -2166,7 +2166,8 @@ void veh_interact::display_stats() const fold_and_print( w_stats, y[i], x[i], w[i], c_light_gray, _( "Offroad: %4d%%" ), - static_cast( veh->k_traction( veh->wheel_area() * 0.5f ) * 100 ) ); + static_cast( veh->k_traction( veh->wheel_area() * + veh->average_or_rating() ) * 100 ) ); i += 1; if( is_boat ) { @@ -2344,7 +2345,7 @@ void veh_interact::display_details( const vpart_info *part ) small_mode ? _("Wgt") : _("Weight"), convert_weight( item::find_type( part->item )->weight ), weight_units() ); - if ( part->folded_volume != 0 ) { + if ( part->folded_volume != 0_ml ) { fold_and_print(w_details, line+2, col_2, column_width, c_white, "%s: %s %s", small_mode ? _("FoldVol") : _("Folded Volume"), @@ -2353,7 +2354,7 @@ void veh_interact::display_details( const vpart_info *part ) } // line 3: (column 1) size, bonus, wheel diameter (if applicable) (column 2) epower, wheel width (if applicable) - if( part->size > 0 && part->has_flag( VPFLAG_CARGO ) ) { + if( part->size > 0_ml && part->has_flag( VPFLAG_CARGO ) ) { fold_and_print( w_details, line + 3, col_1, column_width, c_white, "%s: %s %s", small_mode ? _( "Cap" ) : _( "Capacity" ), diff --git a/src/veh_interact.h b/src/veh_interact.h index bd89d3d7325c6..e33b34c4a7885 100644 --- a/src/veh_interact.h +++ b/src/veh_interact.h @@ -143,7 +143,7 @@ class veh_interact void display_mode(); void display_list( size_t pos, const std::vector &list, const int header = 0 ); void display_details( const vpart_info *part ); - size_t display_esc( const catacurses::window &w ); + size_t display_esc( const catacurses::window &win ); /** * Display overview of parts, optionally with interactive selection of one part diff --git a/src/veh_type.cpp b/src/veh_type.cpp index 2785a8233bd66..cc59cc2d946cd 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -82,6 +82,28 @@ static const std::unordered_map vpart_bitflag_map = { "ENABLED_DRAINS_EPOWER", VPFLAG_ENABLED_DRAINS_EPOWER }, { "WASHING_MACHINE", VPFLAG_WASHING_MACHINE }, { "FLUIDTANK", VPFLAG_FLUIDTANK }, + { "REACTOR", VPFLAG_REACTOR }, +}; + +static const std::vector> standard_terrain_mod = {{ + { "FLAT", 4 }, { "ROAD", 2 } + } +}; +static const std::vector> rigid_terrain_mod = {{ + { "FLAT", 6 }, { "ROAD", 3 } + } +}; +static const std::vector> racing_terrain_mod = {{ + { "FLAT", 5 }, { "ROAD", 2 } + } +}; +static const std::vector> off_road_terrain_mod = {{ + { "FLAT", 3 }, { "ROAD", 1 } + } +}; +static const std::vector> treads_terrain_mod = {{ + { "FLAT", 3 } + } }; static std::map vpart_info_all; @@ -191,6 +213,26 @@ void vpart_info::load_wheel( cata::optional &whptr, JsonObject &jo wh_info = *whptr; } assign( jo, "rolling_resistance", wh_info.rolling_resistance ); + assign( jo, "contact_area", wh_info.contact_area ); + wh_info.terrain_mod = standard_terrain_mod; + wh_info.or_rating = 0.5f; + if( jo.has_string( "wheel_type" ) ) { + const std::string wheel_type = jo.get_string( "wheel_type" ); + if( wheel_type == "rigid" ) { + wh_info.terrain_mod = rigid_terrain_mod; + wh_info.or_rating = 0.1; + } else if( wheel_type == "off-road" ) { + wh_info.terrain_mod = off_road_terrain_mod; + wh_info.or_rating = 0.7; + } else if( wheel_type == "racing" ) { + wh_info.terrain_mod = racing_terrain_mod; + wh_info.or_rating = 0.3; + } else if( wheel_type == "treads" ) { + wh_info.terrain_mod = treads_terrain_mod; + wh_info.or_rating = 0.9; + } + } + whptr = wh_info; assert( whptr ); } @@ -328,7 +370,7 @@ void vpart_info::finalize() e.second.name_ = _( e.second.name_.c_str() ); } - if( e.second.folded_volume > 0 ) { + if( e.second.folded_volume > 0_ml ) { e.second.set_flag( "FOLDABLE" ); } @@ -507,16 +549,16 @@ void vpart_info::check() if( part.dmg_mod < 0 ) { debugmsg( "vehicle part %s has negative damage modifier", part.id.c_str() ); } - if( part.folded_volume < 0 ) { + if( part.folded_volume < 0_ml ) { debugmsg( "vehicle part %s has negative folded volume", part.id.c_str() ); } - if( part.has_flag( "FOLDABLE" ) && part.folded_volume == 0 ) { + if( part.has_flag( "FOLDABLE" ) && part.folded_volume == 0_ml ) { debugmsg( "vehicle part %s has folding part with zero folded volume", part.name().c_str() ); } if( !item::type_is_defined( part.default_ammo ) ) { debugmsg( "vehicle part %s has undefined default ammo %s", part.id.c_str(), part.item.c_str() ); } - if( part.size < 0 ) { + if( part.size < 0_ml ) { debugmsg( "vehicle part %s has negative size", part.id.c_str() ); } if( !item::type_is_defined( part.item ) ) { @@ -550,7 +592,7 @@ void vpart_info::check() static const std::vector handled = {{ "ENABLED_DRAINS_EPOWER", "SECURITY", "ENGINE", "ALTERNATOR", "SOLAR_PANEL", "POWER_TRANSFER", - "REACTOR" + "REACTOR", "WIND_TURBINE" } }; if( part.epower != 0 && @@ -761,6 +803,22 @@ float vpart_info::wheel_rolling_resistance() const return has_flag( VPFLAG_WHEEL ) ? wheel_info->rolling_resistance : 50; } +int vpart_info::wheel_area() const +{ + return has_flag( VPFLAG_WHEEL ) ? wheel_info->contact_area : 0; +} + +std::vector> vpart_info::wheel_terrain_mod() const +{ + std::vector> null_map; + return has_flag( VPFLAG_WHEEL ) ? wheel_info->terrain_mod : null_map; +} + +float vpart_info::wheel_or_rating() const +{ + return has_flag( VPFLAG_WHEEL ) ? wheel_info->or_rating : 0.0f; +} + /** @relates string_id */ template<> const vehicle_prototype &string_id::obj() const diff --git a/src/veh_type.h b/src/veh_type.h index 6df8373eb78fb..0c7ae8e337977 100644 --- a/src/veh_type.h +++ b/src/veh_type.h @@ -76,6 +76,7 @@ enum vpart_bitflags : int { VPFLAG_ENABLED_DRAINS_EPOWER, VPFLAG_WASHING_MACHINE, VPFLAG_FLUIDTANK, + VPFLAG_REACTOR, NUM_VPFLAGS }; @@ -104,6 +105,9 @@ struct vpslot_engine { struct vpslot_wheel { float rolling_resistance = 1; + int contact_area = 1; + std::vector> terrain_mod; + float or_rating; }; class vpart_info @@ -160,13 +164,13 @@ class vpart_info int epower = 0; /** - * Energy consumed by engines and motors (TODO: units?) when delivering max @ref power + * Energy consumed by engines and motors (watts) when delivering max @ref power * Includes waste. Gets scaled based on powertrain demand. */ int energy_consumption = 0; /** - * For engines and motors this is maximum output (TODO: units?) + * For engines and motors this is maximum output (watts) * For alternators is engine power consumed (negative value) */ int power = 0; @@ -178,10 +182,10 @@ class vpart_info itype_id default_ammo = "null"; /** Volume of a foldable part when folded */ - units::volume folded_volume = 0; + units::volume folded_volume = 0_ml; /** Cargo location volume */ - units::volume size = 0; + units::volume size = 0_ml; /** Mechanics skill required to install item */ int difficulty = 0; @@ -260,6 +264,9 @@ class vpart_info * */ float wheel_rolling_resistance() const; + int wheel_area() const; + std::vector> wheel_terrain_mod() const; + float wheel_or_rating() const; private: /** Name from vehicle part definition which if set overrides the base item name */ diff --git a/src/veh_utils.cpp b/src/veh_utils.cpp index d3204036ca68f..f904ef1f41d7a 100644 --- a/src/veh_utils.cpp +++ b/src/veh_utils.cpp @@ -42,10 +42,10 @@ int calc_xp_gain( const vpart_info &vp, const skill_id &sk, Character &who ) return std::ceil( double( vp.install_moves ) / to_moves( 1_minutes * pow( lvl, 2 ) ) ); } -vehicle_part &most_repairable_part( vehicle &veh, const Character &who_c, bool only_repairable ) +vehicle_part &most_repairable_part( vehicle &veh, const Character &who_arg, bool only_repairable ) { // @todo: Get rid of this cast after moving relevant functions down to Character - player &who = ( player & )who_c; + player &who = ( player & )who_arg; const auto &inv = who.crafting_inventory(); enum repairable_status { diff --git a/src/veh_utils.h b/src/veh_utils.h index 0a2d2bb9ddfa8..04487ef0c95d0 100644 --- a/src/veh_utils.h +++ b/src/veh_utils.h @@ -22,7 +22,7 @@ int calc_xp_gain( const vpart_info &vp, const skill_id &sk, Character &who ); * Prefers the most damaged parts that don't need replacements. * If no such part exists, returns a null part. */ -vehicle_part &most_repairable_part( vehicle &veh, const Character &who, +vehicle_part &most_repairable_part( vehicle &veh, const Character &who_arg, bool only_repairable = false ); /** * Repairs a given part on a given vehicle by given character. diff --git a/src/vehicle.cpp b/src/vehicle.cpp index fdef91a6c5278..47dbcebbf099e 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -30,6 +30,7 @@ #include "mapdata.h" #include "messages.h" #include "output.h" +#include "overmap.h" #include "overmapbuffer.h" #include "sounds.h" #include "string_formatter.h" @@ -89,7 +90,7 @@ units::volume vehicle_stack::max_volume() const // Set max volume for vehicle cargo to prevent integer overflow return std::min( myorigin->parts[part_num].info().size, 10000000_ml ); } - return 0; + return 0_ml; } // Vehicle class methods. @@ -360,7 +361,7 @@ void vehicle::init_state( int init_veh_fuel, int init_veh_status ) const size_t p = vp.part_index(); vehicle_part &pt = vp.part(); - if( vp.has_feature( "REACTOR" ) ) { + if( vp.has_feature( VPFLAG_REACTOR ) ) { // De-hardcoded reactors. Should always start active pt.enabled = true; } @@ -614,8 +615,8 @@ bool vehicle::has_engine_conflict( const vpart_info *possible_conflict, bool has_conflict = false; - for( size_t e = 0; e < engines.size(); ++e ) { - std::vector install_excludes = part_info( engines[e] ).engine_excludes(); + for( int engine : engines ) { + std::vector install_excludes = part_info( engine ).engine_excludes(); std::vector conflicts; std::set_intersection( new_excludes.begin(), new_excludes.end(), install_excludes.begin(), install_excludes.end(), back_inserter( conflicts ) ); @@ -666,8 +667,8 @@ bool vehicle::is_alternator_on( const int a ) const bool vehicle::has_security_working() const { bool found_security = false; - for( size_t s = 0; s < speciality.size(); s++ ) { - if( part_flag( speciality[ s ], "SECURITY" ) && parts[ speciality[ s ] ].is_available() ) { + for( int s : speciality ) { + if( part_flag( s, "SECURITY" ) && parts[ s ].is_available() ) { found_security = true; break; } @@ -680,7 +681,9 @@ void vehicle::backfire( const int e ) const const int power = part_vpower_w( engines[e], true ); const tripoint pos = global_part_pos3( engines[e] ); //~ backfire sound - sounds::ambient_sound( pos, 40 + power / 10000, _( "BANG!" ) ); + sounds::ambient_sound( pos, 40 + power / 10000, sounds::sound_t::movement, + string_format( _( "a loud BANG! from the %s" ), + parts[ engines[ e ] ].name() ) ); } const vpart_info &vehicle::part_info( int index, bool include_removed ) const @@ -755,7 +758,7 @@ int vehicle::vhp_to_watts( const int power_vhp ) return power_vhp * conversion_factor; } -bool vehicle::has_structural_part( const point dp ) const +bool vehicle::has_structural_part( const point &dp ) const { for( const int elem : parts_at_relative( dp, false ) ) { if( part_info( elem ).location == part_location_structure && @@ -787,7 +790,7 @@ bool vehicle::is_structural_part_removed() const * @param id The id of the part to install. * @return true if the part can be mounted, false if not. */ -bool vehicle::can_mount( const point dp, const vpart_id &id ) const +bool vehicle::can_mount( const point &dp, const vpart_id &id ) const { //The part has to actually exist. if( !id.is_valid() ) { @@ -904,9 +907,8 @@ bool vehicle::can_mount( const point dp, const vpart_id &id ) const // Security system must be installed on controls if( part.has_flag( "ON_CONTROLS" ) ) { bool anchor_found = false; - for( std::vector::const_iterator it = parts_in_square.begin(); - it != parts_in_square.end(); ++it ) { - if( part_info( *it ).has_flag( "CONTROLS" ) ) { + for( auto it : parts_in_square ) { + if( part_info( it ).has_flag( "CONTROLS" ) ) { anchor_found = true; } } @@ -919,9 +921,8 @@ bool vehicle::can_mount( const point dp, const vpart_id &id ) const // TODO: do this automatically using "location":"on_mountpoint" if( part.has_flag( "CARGO_LOCKING" ) ) { bool anchor_found = false; - for( std::vector::const_iterator it = parts_in_square.begin(); - it != parts_in_square.end(); ++it ) { - if( part_info( *it ).has_flag( "LOCKABLE_CARGO" ) ) { + for( auto it : parts_in_square ) { + if( part_info( it ).has_flag( "LOCKABLE_CARGO" ) ) { anchor_found = true; } } @@ -1197,7 +1198,7 @@ bool vehicle::is_connected( const vehicle_part &to, const vehicle_part &from, * @param force Skip check of whether we can mount the part here. * @return false if the part could not be installed, true otherwise. */ -int vehicle::install_part( const point dp, const vpart_id &id, bool force ) +int vehicle::install_part( const point &dp, const vpart_id &id, bool force ) { if( !( force || can_mount( dp, id ) ) ) { return -1; @@ -1205,7 +1206,7 @@ int vehicle::install_part( const point dp, const vpart_id &id, bool force ) return install_part( dp, vehicle_part( id, dp, item( id.obj().item ) ) ); } -int vehicle::install_part( const point dp, const vpart_id &id, item &&obj, bool force ) +int vehicle::install_part( const point &dp, const vpart_id &id, item &&obj, bool force ) { if( !( force || can_mount( dp, id ) ) ) { return -1; @@ -1213,7 +1214,7 @@ int vehicle::install_part( const point dp, const vpart_id &id, item &&obj, bool return install_part( dp, vehicle_part( id, dp, std::move( obj ) ) ); } -int vehicle::install_part( const point dp, const vehicle_part &new_part ) +int vehicle::install_part( const point &dp, const vehicle_part &new_part ) { // Should be checked before installing the part bool enable = false; @@ -1813,6 +1814,12 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, int mov_part = split_parts[ new_part ]; point cur_mount = parts[ mov_part ].mount; point new_mount = cur_mount; + if( !split_mounts.empty() ) { + new_mount = split_mounts[ new_part ]; + } else { + new_mount -= mnt_offset; + } + player *passenger = nullptr; // Unboard any entities standing on any transferred part if( part_flag( mov_part, "BOARDABLE" ) ) { @@ -1823,10 +1830,8 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, } // transfer the vehicle_part to the new vehicle new_vehicle->parts.emplace_back( parts[ mov_part ] ); - if( !split_mounts.empty() ) { - new_mount = split_mounts[ new_part ]; - new_vehicle->parts.back().mount = new_mount; - } + new_vehicle->parts.back().mount = new_mount; + // remove labels associated with the mov_part const auto iter = labels.find( label( cur_mount ) ); if( iter != labels.end() ) { @@ -1840,7 +1845,7 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, new_zones.emplace( new_mount, lz_iter->second ); loot_zones.erase( lz_iter ); } - // remove the passenger from the old new vehicle + // remove the passenger from the old vehicle if( passenger ) { parts[ mov_part ].remove_flag( vehicle_part::passenger_flag ); parts[ mov_part ].passenger_id = 0; @@ -1858,16 +1863,16 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, new_vehicle->loot_zones = new_zones; } - if( !split_mounts.empty() ) { + if( split_mounts.empty() ) { + new_vehicle->refresh(); + } else { // include refresh new_vehicle->shift_parts( point_zero - mnt_offset ); - } else { - new_vehicle->refresh(); } // update the precalc points - new_vehicle->precalc_mounts( 1, - new_vehicle->skidding ? new_vehicle->turn_dir : new_vehicle->face.dir(), + new_vehicle->precalc_mounts( 1, new_vehicle->skidding ? + new_vehicle->turn_dir : new_vehicle->face.dir(), new_vehicle->pivot_point() ); if( !passengers.empty() ) { new_vehicle->relocate_passengers( passengers ); @@ -2260,7 +2265,7 @@ std::vector vehicle::all_parts_at_location( const std::string &location ) c * @return A list of lists of indices of all parts sharing the flag and contiguous with the part * on the X or Y axis. Returns 0, 1, or 2 lists of indices. */ -std::vector> vehicle::find_lines_of_parts( int part, const std::string flag ) +std::vector> vehicle::find_lines_of_parts( int part, const std::string &flag ) { const auto possible_parts = get_avail_parts( flag ); std::vector> ret_parts; @@ -2364,7 +2369,7 @@ bool vehicle::part_flag( int part, const vpart_bitflags flag ) const } } -int vehicle::part_at( const point dp ) const +int vehicle::part_at( const point &dp ) const { for( const vpart_reference &vp : get_all_parts() ) { if( vp.part().precalc[0] == dp && !vp.part().removed ) { @@ -2405,7 +2410,7 @@ int vehicle::index_of_part( const vehicle_part *const part, const bool check_rem * @param dp The local coordinate. * @return The index of the part that will be displayed. */ -int vehicle::part_displayed_at( const point dp ) const +int vehicle::part_displayed_at( const point &dp ) const { // Z-order is implicitly defined in game::load_vehiclepart, but as // numbers directly set on parts rather than constants that can be @@ -2542,7 +2547,7 @@ player *vehicle::get_passenger( int p ) const if( p >= 0 && parts[p].has_flag( vehicle_part::passenger_flag ) ) { return g->critter_by_id( parts[p].passenger_id ); } - return 0; + return nullptr; } tripoint vehicle::global_pos3() const @@ -2582,7 +2587,7 @@ units::mass vehicle::total_mass() const units::volume vehicle::total_folded_volume() const { - units::volume m = 0; + units::volume m = 0_ml; for( const vpart_reference &vp : get_all_parts() ) { if( vp.part().removed ) { continue; @@ -3099,19 +3104,31 @@ void vehicle::noise_and_smoke( int load, time_duration time ) lvl++; } } - sounds::ambient_sound( global_pos3(), noise, sound_msgs[lvl] ); + sounds::ambient_sound( global_pos3(), noise, sounds::sound_t::movement, sound_msgs[lvl] ); } -float vehicle::wheel_area() const +int vehicle::wheel_area() const { - float total_area = 0.0f; - for( auto &wheel_index : wheelcache ) { - total_area += parts[ wheel_index ].base.wheel_area(); + int total_area = 0; + for( const int &wheel_index : wheelcache ) { + total_area += parts[ wheel_index ].wheel_area(); } return total_area; } +float vehicle::average_or_rating() const +{ + if( wheelcache.empty() ) { + return 0.0f; + } + float total_rating = 0; + for( const int &wheel_index : wheelcache ) { + total_rating += part_info( wheel_index ).wheel_or_rating(); + } + return total_rating / wheelcache.size(); +} + static double tile_to_width( int tiles ) { if( tiles < 1 ) { @@ -3136,6 +3153,7 @@ struct drag_column { int shield = minrow; int turret = minrow; int panel = minrow; + int windmill = minrow; int last = maxrow; }; @@ -3150,6 +3168,7 @@ double vehicle::coeff_air_drag() const constexpr double aisle_height = 0.6; constexpr double fullboard_height = 0.5; constexpr double roof_height = 0.1; + constexpr double windmill_height = 0.7; std::vector structure_indices = all_parts_at_location( part_location_structure ); int min_x = 0; @@ -3214,6 +3233,7 @@ double vehicle::coeff_air_drag() const !pa.info().has_flag( "SOLAR_PANEL" ) ); d_check_max( drag[ col ].roof, pa, pa.info().has_flag( "ROOF" ) ); d_check_max( drag[ col ].panel, pa, pa.info().has_flag( "SOLAR_PANEL" ) ); + d_check_max( drag[ col ].windmill, pa, pa.info().has_flag( "WIND_TURBINE" ) ); d_check_max( drag[ col ].exposed, pa, d_exposed( pa ) ); d_check_min( drag[ col ].last, pa, pa.info().has_flag( "LOW_FINAL_AIR_DRAG" ) || pa.info().has_flag( "HALF_BOARD" ) ); @@ -3243,6 +3263,8 @@ double vehicle::coeff_air_drag() const c_air_drag_c -= ( dc.last == min_x ) ? c_air_mod : 0; // turrets severely worsen air drag c_air_drag_c += ( dc.turret > minrow ) ? 3 * c_air_mod : 0; + // having a windmill is terrible for your drag + c_air_drag_c += ( dc.windmill > minrow ) ? 5 * c_air_mod : 0; c_air_drag = std::max( c_air_drag, c_air_drag_c ); // vehicles are 1.4m tall double c_height = base_height; @@ -3256,6 +3278,8 @@ double vehicle::coeff_air_drag() const c_height += ( dc.turret > minrow ) ? 2 * roof_height : 0; // solar panels are better than turrets or floodlights, though c_height += ( dc.panel > minrow ) ? roof_height : 0; + // windmills are tall, too + c_height += ( dc.windmill > minrow ) ? windmill_height : 0; height = std::max( height, c_height ); } constexpr double air_density = 1.29; // kg/m^3 @@ -3389,6 +3413,7 @@ float vehicle::k_traction( float wheel_traction_area ) const float traction = std::min( 1.0f, wheel_traction_area / mass_penalty ); add_msg( m_debug, "%s has traction %.2f", name, traction ); + // For now make it easy until it gets properly balanced: add a low cap of 0.1 return std::max( 0.1f, traction ); } @@ -4300,6 +4325,7 @@ void vehicle::refresh() engines.clear(); reactors.clear(); solar_panels.clear(); + wind_turbines.clear(); funnels.clear(); relative_parts.clear(); loose_parts.clear(); @@ -4342,12 +4368,15 @@ void vehicle::refresh() if( vpi.has_flag( VPFLAG_ENGINE ) ) { engines.push_back( p ); } - if( vpi.has_flag( "REACTOR" ) ) { + if( vpi.has_flag( VPFLAG_REACTOR ) ) { reactors.push_back( p ); } if( vpi.has_flag( VPFLAG_SOLAR_PANEL ) ) { solar_panels.push_back( p ); } + if( vpi.has_flag( "WIND_TURBINE" ) ) { + wind_turbines.push_back( p ); + } if( vpi.has_flag( "FUNNEL" ) ) { funnels.push_back( p ); } @@ -4462,13 +4491,13 @@ void vehicle::refresh_pivot() const const auto &wheel = parts[p]; // @todo: load on tire? - float contact_area = wheel.wheel_area(); + int contact_area = wheel.wheel_area(); float weight_i; // weighting for the in-line part float weight_p; // weighting for the perpendicular part if( wheel.is_broken() ) { // broken wheels don't roll on either axis - weight_i = contact_area * 2; - weight_p = contact_area * 2; + weight_i = contact_area * 2.0; + weight_p = contact_area * 2.0; } else if( wheel.info().has_flag( "STEERABLE" ) ) { // Unbroken steerable wheels can handle motion on both axes // (but roll a little more easily inline) @@ -4703,7 +4732,7 @@ void vehicle::damage_all( int dmg1, int dmg2, damage_type type, const point &imp * (0, 0) part is always present. * @param delta How much to shift along each axis */ -void vehicle::shift_parts( const point delta ) +void vehicle::shift_parts( const point &delta ) { // Don't invalidate the active item cache's location! active_items.subtract_locations( delta ); @@ -4725,7 +4754,6 @@ 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( smz ); } @@ -4867,6 +4895,7 @@ int vehicle::damage_direct( int p, int dmg, damage_type type ) if( ( static_cast( p ) >= parts.size() ) || parts[p].removed ) { return dmg; } + g->m.set_memory_seen_cache_dirty( global_part_pos3( p ) ); if( parts[p].is_broken() ) { return break_off( p, dmg ); } @@ -5071,7 +5100,7 @@ void vehicle::update_time( const time_point &update_to ) // Weather stuff, only for z-levels >= 0 // TODO: Have it wash cars from blood? - if( funnels.empty() && solar_panels.empty() ) { + if( funnels.empty() && solar_panels.empty() && wind_turbines.empty() ) { return; } @@ -5136,6 +5165,31 @@ void vehicle::update_time( const time_point &update_to ) charge_battery( energy_bat ); } } + if( !wind_turbines.empty() ) { + int epower_w = 0; + for( int part : wind_turbines ) { + if( parts[ part ].is_unavailable() ) { + continue; + } + + if( !is_sm_tile_outside( g->m.getabs( global_part_pos3( part ) ) ) ) { + continue; + } + + epower_w += part_epower_w( part ); + } + //Wind Turbine less efficient in forests + const oter_id &cur_om_ter = overmap_buffer.ter( g->m.getabs( global_pos3() ) ); + const w_point weatherPoint = *g->weather_precise; + int windpower = weatherPoint.windpower; + windpower = get_local_windpower( windpower, cur_om_ter, false ); + double intensity = windpower / to_turns( elapsed ); + int energy_bat = power_to_energy_bat( epower_w * intensity, 6 * to_turns( elapsed ) ); + if( energy_bat > 0 ) { + add_msg( m_debug, "%s got %d kJ energy from wind turbines", name, energy_bat ); + charge_battery( energy_bat ); + } + } } void vehicle::invalidate_mass() @@ -5158,14 +5212,14 @@ void vehicle::calc_mass_center( bool use_precalc ) const { units::quantity xf = 0; units::quantity yf = 0; - units::mass m_total = 0; + units::mass m_total = 0_gram; for( const vpart_reference &vp : get_all_parts() ) { const size_t i = vp.part_index(); if( vp.part().removed ) { continue; } - units::mass m_part = 0; + units::mass m_part = 0_gram; m_part += vp.part().base.weight(); for( const auto &j : get_items( i ) ) { //m_part += j.type->weight; @@ -5176,7 +5230,7 @@ void vehicle::calc_mass_center( bool use_precalc ) const if( vp.has_feature( VPFLAG_BOARDABLE ) && vp.part().has_flag( vehicle_part::passenger_flag ) ) { const player *p = get_passenger( i ); // Sometimes flag is wrongly set, don't crash! - m_part += p != nullptr ? p->get_weight() : units::mass( 0 ); + m_part += p != nullptr ? p->get_weight() : 0_gram; } if( vp.part().has_flag( vehicle_part::animal_flag ) ) { diff --git a/src/vehicle.h b/src/vehicle.h index 056bcf21d6fb3..48a49933fe62b 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -138,7 +138,7 @@ struct vehicle_part { vehicle_part(); /** DefaultConstructible */ - vehicle_part( const vpart_id &vp, point dp, item &&it ); + vehicle_part( const vpart_id &vp, const point &dp, item &&it ); /** Check this instance is non-null (not default constructed) */ explicit operator bool() const; @@ -569,7 +569,7 @@ struct label : public point { class vehicle { private: - bool has_structural_part( point dp ) const; + bool has_structural_part( const point &dp ) const; bool is_structural_part_removed() const; void open_or_close( int part_index, bool opening ); bool is_connected( const vehicle_part &to, const vehicle_part &from, @@ -710,20 +710,20 @@ class vehicle const vpart_info &part_info( int index, bool include_removed = false ) const; // check if certain part can be mounted at certain position (not accounting frame direction) - bool can_mount( point dp, const vpart_id &id ) const; + bool can_mount( const point &dp, const vpart_id &id ) const; // check if certain part can be unmounted bool can_unmount( int p ) const; bool can_unmount( int p, std::string &reason ) const; // install a new part to vehicle - int install_part( point dp, const vpart_id &id, bool force = false ); + int install_part( const point &dp, const vpart_id &id, bool force = false ); // Install a copy of the given part, skips possibility check - int install_part( point dp, const vehicle_part &part ); + int install_part( const point &dp, const vehicle_part &part ); /** install item specified item to vehicle as a vehicle part */ - int install_part( point dp, const vpart_id &id, item &&obj, bool force = false ); + int install_part( const point &dp, const vpart_id &id, item &&obj, bool force = false ); // find a single tile wide vehicle adjacent to a list of part indices bool find_rackable_vehicle( const std::vector> &list_of_racks ); @@ -838,12 +838,12 @@ class vehicle * Get all enabled, available, unbroken vehicle parts at specified position * @param pos position to check * @param flag if set only flags with this part will be considered - * @param conditions enum to include unabled, unavailable, and broken parts + * @param condition enum to include unabled, unavailable, and broken parts */ std::vector get_parts_at( const tripoint &pos, const std::string &flag, - const part_status_flag e ); + const part_status_flag condition ); std::vector get_parts_at( const tripoint &pos, - const std::string &flag, const part_status_flag e ) const; + const std::string &flag, const part_status_flag condition ) const; /** Test if part can be enabled (unbroken, sufficient fuel etc), optionally displaying failures to user */ bool can_enable( const vehicle_part &pt, bool alert = false ) const; @@ -877,7 +877,7 @@ class vehicle // Given a part and a flag, returns the indices of all continiguously adjacent parts // with the same flag on the X and Y Axis - std::vector> find_lines_of_parts( int part, const std::string flag ); + std::vector> find_lines_of_parts( int part, const std::string &flag ); // returns true if given flag is present for given part index bool part_flag( int p, const std::string &f ) const; @@ -899,8 +899,8 @@ class vehicle tripoint mount_to_tripoint( const point &mount, const point &offset ) const; // Seek a vehicle part which obstructs tile with given coordinates relative to vehicle position - int part_at( point dp ) const; - int part_displayed_at( point dp ) const; + int part_at( const point &dp ) const; + int part_displayed_at( const point &dp ) const; int roof_at_part( int p ) const; // Given a part, finds its index in the vehicle @@ -1078,7 +1078,9 @@ class vehicle /** * Calculates the sum of the area under the wheels of the vehicle. */ - float wheel_area() const; + int wheel_area() const; + // average off-road rating for displaying off-road perfomance + float average_or_rating() const; /** * Physical coefficients used for vehicle calculations. @@ -1243,7 +1245,7 @@ class vehicle void gain_moves(); // reduces velocity to 0 - void stop(); + void stop( bool update_cache = true ); void refresh_insides(); @@ -1259,7 +1261,7 @@ class vehicle void damage_all( int dmg1, int dmg2, damage_type type, const point &impact ); //Shifts the coordinates of all parts and moves the vehicle in the opposite direction. - void shift_parts( point delta ); + void shift_parts( const point &delta ); bool shift_if_needed(); void shed_loose_parts(); @@ -1352,6 +1354,7 @@ class vehicle // Honk the vehicle's horn, if there are any void honk_horn(); + void reload_seeds( const tripoint &pos ); void beeper_sound(); void play_music(); void play_chimes(); @@ -1454,6 +1457,7 @@ class vehicle std::vector engines; // List of engine indices std::vector reactors; // List of reactor indices std::vector solar_panels; // List of solar panel indices + std::vector wind_turbines; // List of wind turbine indices std::vector funnels; // List of funnel indices std::vector loose_parts; // List of UNMOUNT_ON_MOVE parts std::vector wheelcache; // List of wheels diff --git a/src/vehicle_move.cpp b/src/vehicle_move.cpp index ffa4505a3ec3d..2a24a221eef96 100644 --- a/src/vehicle_move.cpp +++ b/src/vehicle_move.cpp @@ -279,13 +279,19 @@ void vehicle::turn( int deg ) turn_dir = 15 * ( ( turn_dir * 2 + 15 ) / 30 ); } -void vehicle::stop() +void vehicle::stop( bool update_cache ) { velocity = 0; skidding = false; move = face; last_turn = 0; of_turn_carry = 0; + if( !update_cache ) { + return; + } + for( const tripoint &p : get_points() ) { + g->m.set_memory_seen_cache_dirty( p ); + } } bool vehicle::collision( std::vector &colls, @@ -1002,7 +1008,7 @@ bool vehicle::act_on_map() if( !g->m.inbounds( pt ) ) { dbg( D_INFO ) << "stopping out-of-map vehicle. (x,y,z)=(" << pt.x << "," << pt.y << "," << pt.z << ")"; - stop(); + stop( false ); of_turn = 0; is_falling = false; return true; @@ -1174,7 +1180,7 @@ void vehicle::check_falling_or_floating() is_falling &= !g->m.has_floor( p ) && ( p.z > -OVERMAP_DEPTH ) && !g->m.supports_above( below ); } - water_tiles += g->m.has_flag( "SWIMMABLE", p ) ? 1 : 0; + water_tiles += g->m.has_flag( TFLAG_DEEP_WATER, p ) ? 1 : 0; } // floating if 2/3rds of the vehicle is in water is_floating = 3 * water_tiles > 2 * pts.size(); @@ -1197,7 +1203,7 @@ float map::vehicle_wheel_traction( const vehicle &veh ) const float traction_wheel_area = 0.0f; for( int p : wheel_indices ) { const tripoint &pp = veh.global_part_pos3( p ); - const float wheel_area = veh.parts[ p ].wheel_area(); + const int wheel_area = veh.parts[ p ].wheel_area(); const auto &tr = ter( pp ).obj(); // Deep water and air @@ -1213,14 +1219,13 @@ float map::vehicle_wheel_traction( const vehicle &veh ) const return 0.0f; } - if( !tr.has_flag( "FLAT" ) ) { - // Wheels aren't as good as legs on rough terrain - move_mod += 4; - } else if( !tr.has_flag( "ROAD" ) ) { - move_mod += 2; + for( const auto &terrain_mod : veh.part_info( p ).wheel_terrain_mod() ) { + if( !tr.has_flag( terrain_mod.first ) ) { + move_mod += terrain_mod.second; + break; + } } - - traction_wheel_area += 2 * wheel_area / move_mod; + traction_wheel_area += 2.0 * wheel_area / move_mod; } return traction_wheel_area; diff --git a/src/vehicle_part.cpp b/src/vehicle_part.cpp index 812e5cd4a548f..3b5cfeab47353 100644 --- a/src/vehicle_part.cpp +++ b/src/vehicle_part.cpp @@ -28,7 +28,7 @@ static const itype_id fuel_type_battery( "battery" ); vehicle_part::vehicle_part() : mount( 0, 0 ), id( vpart_id::NULL_ID() ) {} -vehicle_part::vehicle_part( const vpart_id &vp, const point dp, item &&obj ) +vehicle_part::vehicle_part( const vpart_id &vp, const point &dp, item &&obj ) : mount( dp ), id( vp ), base( std::move( obj ) ) { // Mark base item as being installed as a vehicle part @@ -330,7 +330,7 @@ void vehicle_part::process_contents( const tripoint &pos, const bool e_heater ) if( base.is_food_container() ) { int temp = g->get_temperature( pos ); if( e_heater ) { - temp = std::max( temp, temperatures::cold + 1 ); + temp = std::max( temp, temperatures::normal ); } base.process( nullptr, pos, false, temp, 1 ); } @@ -367,7 +367,7 @@ bool vehicle_part::fault_set( const fault_id &f ) int vehicle_part::wheel_area() const { - return base.is_wheel() ? base.type->wheel->diameter * base.type->wheel->width : 0; + return info().wheel_area(); } /** Get wheel diameter (inches) or return 0 if part is not wheel */ @@ -455,7 +455,7 @@ bool vehicle_part::is_battery() const bool vehicle_part::is_reactor() const { - return info().has_flag( "REACTOR" ); + return info().has_flag( VPFLAG_REACTOR ); } bool vehicle_part::is_turret() const diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index 7284873f661b0..75b730b4b2f6b 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -8,6 +8,7 @@ #include #include "coordinate_conversions.h" +#include "activity_handlers.h" #include "debug.h" #include "game.h" #include "iexamine.h" @@ -31,6 +32,7 @@ #include "vpart_position.h" #include "vpart_range.h" #include "vpart_reference.h" +#include "string_input_popup.h" static const itype_id fuel_type_none( "null" ); static const itype_id fuel_type_battery( "battery" ); @@ -347,7 +349,6 @@ void vehicle::control_engines() int vehicle::select_engine() { uilist tmenu; - std::string name; tmenu.text = _( "Toggle which?" ); int i = 0; for( size_t x = 0; x < engines.size(); x++ ) { @@ -405,8 +406,7 @@ void vehicle::smash_security_system() //get security and controls location int s = -1; int c = -1; - for( size_t d = 0; d < speciality.size(); d++ ) { - int p = speciality[d]; + for( int p : speciality ) { if( part_flag( p, "SECURITY" ) && !parts[ p ].is_broken() ) { s = p; c = part_with_feature( s, "CONTROLS", true ); @@ -774,32 +774,37 @@ bool vehicle::start_engine( const int e ) const double cold_factor = engine_cold_factor( e ); const int start_moves = engine_start_time( e ); + const tripoint pos = global_part_pos3( engines[e] ); if( einfo.engine_backfire_threshold() ) { - if( ( 1 - dmg ) < einfo.engine_backfire_threshold() && one_in( einfo.engine_backfire_freq() ) ) { + if( ( 1 - dmg ) < einfo.engine_backfire_threshold() && + one_in( einfo.engine_backfire_freq() ) ) { backfire( e ); } else { - const tripoint pos = global_part_pos3( engines[e] ); - sounds::ambient_sound( pos, start_moves / 10, "Bang!" ); + sounds::ambient_sound( pos, start_moves / 10, sounds::sound_t::movement, + string_format( _( "the %s bang as it starts" ), eng.name() ) ); } } // Immobilizers need removing before the vehicle can be started if( eng.faults().count( fault_immobiliser ) ) { - add_msg( _( "The %s makes a long beeping sound." ), eng.name() ); + sounds::ambient_sound( pos, 5, sounds::sound_t::alarm, + string_format( _( "the %s making a long beep" ), eng.name() ) ); return false; } // Engine with starter motors can fail on both battery and starter motor if( eng.faults_potential().count( fault_starter ) ) { if( eng.faults().count( fault_starter ) ) { - add_msg( _( "The %s makes a single clicking sound." ), eng.name() ); + sounds::ambient_sound( pos, 2, sounds::sound_t::alarm, + string_format( _( "the %s clicking once" ), eng.name() ) ); return false; } const int start_draw_bat = power_to_energy_bat( engine_power * ( 1.0 + dmg / 2 + cold_factor / 5 ) * 10, TICKS_TO_SECONDS( start_moves ) ); if( discharge_battery( start_draw_bat, true ) != 0 ) { - add_msg( _( "The %s makes a rapid clicking sound." ), eng.name() ); + sounds::ambient_sound( pos, 2, sounds::sound_t::alarm, + string_format( _( "the %s rapidly clicking" ), eng.name() ) ); return false; } } @@ -812,7 +817,8 @@ bool vehicle::start_engine( const int e ) // Damaged engines have a chance of failing to start if( x_in_y( dmg * 100, 120 ) ) { - add_msg( _( "The %s makes a terrible clanking sound." ), eng.name() ); + sounds::ambient_sound( pos, 2, sounds::sound_t::movement, + string_format( _( "the %s clanking and grinding" ), eng.name() ) ); return false; } @@ -902,6 +908,46 @@ void vehicle::honk_horn() } } +void vehicle::reload_seeds( const tripoint &pos ) +{ + player &p = g->u; + + std::vector seed_inv = p.items_with( []( const item & itm ) { + return itm.is_seed(); + } ); + + auto seed_entries = iexamine::get_seed_entries( seed_inv ); + seed_entries.emplace( seed_entries.begin(), seed_tuple( itype_id( "null" ), "No seed", 0 ) ); + + int seed_index = iexamine::query_seed( seed_entries ); + + if( seed_index > 0 && seed_index < static_cast( seed_entries.size() ) ) { + const int count = std::get<2>( seed_entries[seed_index] ); + int amount = 0; + const std::string popupmsg = string_format( _( "Move how many? [Have %d] (0 to cancel)" ), count ); + + amount = string_input_popup() + .title( popupmsg ) + .width( 5 ) + .only_digits( true ) + .query_int(); + + if( amount > 0 ) { + int actual_amount = std::min( amount, count ); + itype_id seed_id = std::get<0>( seed_entries[seed_index] ); + std::list used_seed; + if( item::count_by_charges( seed_id ) ) { + used_seed = p.use_charges( seed_id, actual_amount ); + } else { + used_seed = p.use_amount( seed_id, actual_amount ); + } + used_seed.front().set_age( 0_turns ); + //place seeds into the planter + put_into_vehicle_or_drop( p, item_drop_reason::deliberate, used_seed, pos ); + } + } +} + void vehicle::beeper_sound() { // No power = no sound @@ -944,7 +990,7 @@ void vehicle::operate_plow() { for( const vpart_reference &vp : get_enabled_parts( "PLOW" ) ) { const tripoint start_plow = vp.pos(); - if( g->m.has_flag( "DIGGABLE", start_plow ) ) { + if( g->m.has_flag( "PLOWABLE", start_plow ) ) { g->m.ter_set( start_plow, t_dirtmound ); } else { const int speed = velocity; @@ -1023,19 +1069,19 @@ void vehicle::operate_planter() break; } else if( g->m.ter( loc ) == t_dirtmound ) { g->m.set( loc, t_dirt, f_plant_seed ); - } else if( !g->m.has_flag( "DIGGABLE", loc ) ) { - //If it isn't diggable terrain, then it will most likely be damaged. + } else if( !g->m.has_flag( "PLOWABLE", loc ) ) { + //If it isn't plowable terrain, then it will most likely be damaged. damage( planter_id, rng( 1, 10 ), DT_BASH, false ); sounds::sound( loc, rng( 10, 20 ), sounds::sound_t::combat, _( "Clink" ) ); } if( !i->count_by_charges() || i->charges == 1 ) { - i->set_age( 0 ); + i->set_age( 0_turns ); g->m.add_item( loc, *i ); v.erase( i ); } else { item tmp = *i; tmp.charges = 1; - tmp.set_age( 0 ); + tmp.set_age( 0_turns ); g->m.add_item( loc, tmp ); i->charges--; } @@ -1141,9 +1187,9 @@ void vehicle::open( int part_index ) } /** - * Opens an openable part at the specified index. If it's a multipart, opens + * Closes an openable part at the specified index. If it's a multipart, closes * all attached parts as well. - * @param part_index The index in the parts list of the part to open. + * @param part_index The index in the parts list of the part to close. */ void vehicle::close( int part_index ) { @@ -1173,40 +1219,26 @@ void vehicle::open_all_at( int p ) } } + +/** + * Opens or closes an openable part at the specified index based on the @opening value passed. + * If it's a multipart, opens or closes all attached parts as well. + * @param part_index The index in the parts list of the part to open or close. + */ 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( smz ); - if( !part_info( part_index ).has_flag( "MULTISQUARE" ) ) { - return; - } - - const point origin = parts[part_index].mount; - /* Find all other closed parts with the same ID in adjacent squares. - * This is a tighter restriction than just looking for other Multisquare - * Openable parts, and stops trunks from opening side doors and the like. */ - // FIXME let's not recursively call get_all_parts - for( const vpart_reference &vp : get_all_parts() ) { - const size_t next_index = vp.part_index(); - if( vp.part().removed ) { - continue; - } - - //Look for parts 1 square off in any cardinal direction - const int dx = vp.mount().x - origin.x; - const int dy = vp.mount().y - origin.y; - const int delta = dx * dx + dy * dy; - - const bool is_near = ( delta == 1 ); - const bool is_id = part_info( next_index ).get_id() == part_info( part_index ).get_id(); - const bool do_next = !!vp.part().open ^ opening; - - if( is_near && is_id && do_next ) { - open_or_close( next_index, opening ); + for( auto const &vec : find_lines_of_parts( part_index, "OPENABLE" ) ) { + for( auto const &partID : vec ) { + parts[partID].open = opening; } } + + coeff_air_changed = true; } void vehicle::use_washing_machine( int p ) @@ -1233,7 +1265,7 @@ void vehicle::use_washing_machine( int p ) } else { parts[p].enabled = true; for( auto &n : items ) { - n.set_age( 0 ); + n.set_age( 0_turns ); } if( fuel_left( "water" ) >= 24 ) { diff --git a/src/weather.cpp b/src/weather.cpp index 0bc8e9c5c6c64..17ecc0c2eac6a 100644 --- a/src/weather.cpp +++ b/src/weather.cpp @@ -70,26 +70,24 @@ void weather_effect::glare() } ////// food vs weather -int get_hourly_rotpoints_at_temp( int temp ); - time_duration get_rot_since( const time_point &start, const time_point &end, - const tripoint &location ) + const tripoint &pos ) { - time_duration ret = 0; + time_duration ret = 0_turns; const auto &wgen = g->get_cur_weather_gen(); /* Hoisting loop invariants */ - const auto location_temp = g->get_temperature( location ); - const auto local = g->m.getlocal( location ); + const auto location_temp = g->get_temperature( pos ); + const auto local = g->m.getlocal( pos ); const auto local_mod = g->new_game ? 0 : g->m.temperature( local ); const auto seed = g->get_seed(); const auto temp_modify = ( !g->new_game ) && ( g->m.ter( local ) == t_rootcellar ); for( time_point i = start; i < end; i += 1_hours ) { - w_point w = wgen.get_weather( location, i, seed ); + w_point w = wgen.get_weather( pos, i, seed ); //Use weather if above ground, use map temp if below - double temperature = ( location.z >= 0 ? w.temperature : location_temp ) + local_mod; + double temperature = ( pos.z >= 0 ? w.temperature : location_temp ) + local_mod; // If in a root celler: use AVERAGE_ANNUAL_TEMPERATURE // If not: use calculated temperature temperature = ( temp_modify * AVERAGE_ANNUAL_TEMPERATURE ) + ( !temp_modify * temperature ); @@ -132,7 +130,7 @@ inline void proc_weather_sum( const weather_type wtype, weather_sum &data, weather_sum sum_conditions( const time_point &start, const time_point &end, const tripoint &location ) { - time_duration tick_size = 0; + time_duration tick_size = 0_turns; weather_sum data; const auto wgen = g->get_cur_weather_gen(); @@ -162,14 +160,14 @@ weather_sum sum_conditions( const time_point &start, const time_point &end, * Determine what a funnel has filled out of game, using funnelcontainer.bday as a starting point. */ void retroactively_fill_from_funnel( item &it, const trap &tr, const time_point &start, - const time_point &end, const tripoint &location ) + const time_point &end, const tripoint &pos ) { if( start > end || !tr.is_funnel() ) { return; } it.set_birthday( end ); // bday == last fill check - auto data = sum_conditions( start, end, location ); + auto data = sum_conditions( start, end, pos ); // Technically 0.0 division is OK, but it will be cleaner without it if( data.rain_amount > 0 ) { @@ -301,7 +299,7 @@ void fill_funnels( int rain_depth_mm_per_hour, bool acid, const trap &tr ) // Give each funnel on the map a chance to collect the rain. const auto &funnel_locs = g->m.trap_locations( tr.loadid ); for( auto loc : funnel_locs ) { - units::volume maxcontains = 0; + units::volume maxcontains = 0_ml; if( one_in( turns_per_charge ) ) { // @todo: fixme //add_msg("%d mm/h %d tps %.4f: fill",int(calendar::turn),rain_depth_mm_per_hour,turns_per_charge); // This funnel has collected some rain! Put the rain in the largest @@ -318,7 +316,7 @@ void fill_funnels( int rain_depth_mm_per_hour, bool acid, const trap &tr ) if( container != items.end() ) { container->add_rain_to_container( acid, 1 ); - container->set_age( 0 ); + container->set_age( 0_turns ); } } } diff --git a/src/weather.h b/src/weather.h index b0e5a19f106e7..4cafa96ab3aa2 100644 --- a/src/weather.h +++ b/src/weather.h @@ -169,7 +169,7 @@ time_duration get_rot_since( const time_point &start, const time_point &end, con /** * Calculates rot per hour at given temperature. Reference in weather_data.cpp */ -int get_hourly_rotpoints_at_temp( int temp ); +int get_hourly_rotpoints_at_temp( const int temp ); /** * Is it warm enough to plant seeds? diff --git a/src/weather_gen.cpp b/src/weather_gen.cpp index fd741aeb34a2c..33cabf9df4afd 100644 --- a/src/weather_gen.cpp +++ b/src/weather_gen.cpp @@ -1,12 +1,18 @@ #include "weather_gen.h" +#include +#include #include #include #include +#include +#include +#include -#include "calendar.h" #include "enums.h" #include "json.h" +#include "messages.h" +#include "rng.h" #include "simplexnoise.h" #include "weather.h" @@ -18,6 +24,7 @@ constexpr double tau = 2 * PI; } //namespace weather_generator::weather_generator() = default; +int weather_generator::current_winddir = 1000; w_point weather_generator::get_weather( const tripoint &location, const time_point &t, unsigned seed ) const @@ -34,19 +41,18 @@ w_point weather_generator::get_weather( const tripoint &location, const time_poi //limit the random seed during noise calculation, a large value flattens the noise generator to zero //Windows has a rand limit of 32768, other operating systems can have higher limits const unsigned modSEED = seed % 32768; - // Noise factors double T( raw_noise_4d( x, y, z, modSEED ) * 4.0 ); double H( raw_noise_4d( x, y, z / 5, modSEED + 101 ) ); double H2( raw_noise_4d( x, y, z, modSEED + 151 ) / 4 ); - double P( raw_noise_4d( x, y, z / 3, modSEED + 211 ) * 70 ); + double P( raw_noise_4d( x / 2.5, y / 2.5, z / 30, modSEED + 211 ) * 70 ); double A( raw_noise_4d( x, y, z, modSEED ) * 8.0 ); - double W; + double W( raw_noise_4d( x / 2.5, y / 2.5, z / 200, modSEED ) * 10.0 ); const double now( ( time_past_new_year( t ) + calendar::season_length() / 2 ) / calendar::year_length() ); // [0,1) const double ctn( cos( tau * now ) ); - + const season_type season = season_of_year( now ); // Temperature variation const double mod_t( 0 ); // TODO: make this depend on latitude and altitude? const double current_t( base_temperature + @@ -77,13 +83,27 @@ w_point weather_generator::get_weather( const tripoint &location, const time_poi base_pressure; // Pressure is mostly random, but a bit higher on summer and lower on winter. In millibars. // Wind power - W = std::max( 0, 1020 - static_cast( P ) ); - + W = std::max( 0, static_cast( base_wind / pow( P / 1014.78, rng( 9, + base_wind_distrib_peaks ) ) + + ( seasonal_variation / base_wind_season_variation ) * rng( 1, 2 ) * W ) ); + // Wind direction + // initial static variable + if( current_winddir == 1000 ) { + current_winddir = get_wind_direction( season, seed ); + current_winddir = convert_winddir( current_winddir ); + } else { + //when wind strength is low, wind direction is more variable + bool changedir = one_in( W * 360 ); + if( changedir == true ) { + current_winddir = get_wind_direction( season, seed ); + current_winddir = convert_winddir( current_winddir ); + } + } + std::string dirstring = get_dirstring( current_winddir ); // Acid rains const double acid_content = base_acid * A; bool acid = acid_content >= 1.0; - - return w_point {T, H, P, W, acid}; + return w_point {T, H, P, W, current_winddir, dirstring, acid}; } weather_type weather_generator::get_weather_conditions( const tripoint &location, @@ -139,6 +159,35 @@ weather_type weather_generator::get_weather_conditions( const w_point &w ) const return r; } +int weather_generator::get_wind_direction( const season_type season, unsigned seed ) const +{ + unsigned dirseed = seed; + std::default_random_engine wind_dir_gen( dirseed ); + //assign chance to angle direction + if( season == SPRING ) { + std::discrete_distribution distribution {3, 3, 5, 8, 11, 10, 5, 2, 5, 6, 6, 5, 8, 10, 8, 6}; + return distribution( wind_dir_gen ); + } else if( season == SUMMER ) { + std::discrete_distribution distribution {3, 4, 4, 8, 8, 9, 8, 3, 7, 8, 10, 7, 7, 7, 5, 3}; + return distribution( wind_dir_gen ); + } else if( season == AUTUMN ) { + std::discrete_distribution distribution {4, 6, 6, 7, 6, 5, 4, 3, 5, 6, 8, 8, 10, 10, 8, 5}; + return distribution( wind_dir_gen ); + } else if( season == WINTER ) { + std::discrete_distribution distribution {5, 3, 2, 3, 2, 2, 2, 2, 4, 6, 10, 8, 12, 19, 13, 9}; + return distribution( wind_dir_gen ); + } else { + return 0; + } +} + +int weather_generator::convert_winddir( const int inputdir ) const +{ + //convert from discrete distribution output to angle + float finputdir = inputdir * 22.5; + return static_cast( finputdir ); +} + int weather_generator::get_water_temperature() const { /** @@ -150,6 +199,7 @@ int weather_generator::get_water_temperature() const int season_length = to_days( calendar::season_length() ); int day = calendar::turn.day_of_year(); int hour = hour_of_day( calendar::turn ); + int water_temperature = 0; if( season_length == 0 ) { @@ -167,6 +217,31 @@ int weather_generator::get_water_temperature() const return water_temperature; } +std::string weather_generator::get_dirstring( int angle ) const +{ + //convert angle to cardinal directions + std::string dirstring; + int dirangle = angle; + if( dirangle <= 23 || dirangle > 338 ) { + dirstring = ( "North" ); + } else if( dirangle <= 68 && dirangle > 23 ) { + dirstring = ( "North-East" ); + } else if( dirangle <= 113 && dirangle > 68 ) { + dirstring = ( "East" ); + } else if( dirangle <= 158 && dirangle > 113 ) { + dirstring = ( "South-East" ); + } else if( dirangle <= 203 && dirangle > 158 ) { + dirstring = ( "South" ); + } else if( dirangle <= 248 && dirangle > 203 ) { + dirstring = ( "South-West" ); + } else if( dirangle <= 293 && dirangle > 248 ) { + dirstring = ( "West" ); + } else if( dirangle <= 338 && dirangle > 293 ) { + dirstring = ( "North-West" ); + } + return dirstring; +} + void weather_generator::test_weather() const { // Outputs a Cata year's worth of weather data to a CSV file. @@ -195,5 +270,8 @@ weather_generator weather_generator::load( JsonObject &jo ) ret.base_humidity = jo.get_float( "base_humidity", 66.0 ); ret.base_pressure = jo.get_float( "base_pressure", 1015.0 ); ret.base_acid = jo.get_float( "base_acid", 1015.0 ); + ret.base_wind = jo.get_float( "base_wind", 5.7 ); + ret.base_wind_distrib_peaks = jo.get_int( "base_wind_distrib_peaks", 30 ); + ret.base_wind_season_variation = jo.get_int( "base_wind_season_variation", 64 ); return ret; } diff --git a/src/weather_gen.h b/src/weather_gen.h index 250cf2d665cda..049e77a521e0b 100644 --- a/src/weather_gen.h +++ b/src/weather_gen.h @@ -2,6 +2,7 @@ #ifndef WEATHER_GEN_H #define WEATHER_GEN_H +#include "calendar.h" struct point; struct tripoint; class time_point; @@ -13,6 +14,8 @@ struct w_point { double humidity; double pressure; double windpower; + int winddirection; + std::string dirstring; bool acidic; }; @@ -23,6 +26,11 @@ class weather_generator double base_humidity = 66.0; // Average humidity double base_pressure = 1015.0; // Average atmospheric pressure double base_acid = 0.0; + double base_wind = 5.7; //Average yearly windspeed of New England + int base_wind_distrib_peaks = 30; //How much the wind peaks above average + int base_wind_season_variation = + 64; //How much the wind folows seasonal variation ( lower means more change ) + static int current_winddir; weather_generator(); @@ -34,6 +42,9 @@ class weather_generator w_point get_weather( const tripoint &, const time_point &, unsigned ) const; weather_type get_weather_conditions( const tripoint &, const time_point &, unsigned seed ) const; weather_type get_weather_conditions( const w_point & ) const; + int get_wind_direction( const season_type, unsigned seed ) const; + int convert_winddir( const int ) const; + std::string get_dirstring( int ) const; int get_water_temperature() const; void test_weather() const; diff --git a/src/wish.cpp b/src/wish.cpp index 75cd9da95190b..8d6188517e60f 100644 --- a/src/wish.cpp +++ b/src/wish.cpp @@ -60,8 +60,8 @@ class wish_mutate_callback: public uilist_callback started = true; padding = std::string( menu->pad_right - 1, ' ' ); for( auto &traits_iter : mutation_branch::get_all() ) { - vTraits.push_back( traits_iter.first ); - pTraits[traits_iter.first] = ( p->has_trait( traits_iter.first ) ); + vTraits.push_back( traits_iter.id ); + pTraits[traits_iter.id] = ( p->has_trait( traits_iter.id ) ); } } const mutation_branch &mdata = vTraits[entnum].obj(); @@ -188,13 +188,13 @@ void debug_menu::wishmutate( player *p ) int c = 0; for( auto &traits_iter : mutation_branch::get_all() ) { - wmenu.addentry( -1, true, -2, traits_iter.second.name() ); + wmenu.addentry( -1, true, -2, traits_iter.name() ); wmenu.entries[ c ].extratxt.left = 1; wmenu.entries[ c ].extratxt.txt.clear(); wmenu.entries[ c ].extratxt.color = c_light_green; - if( p->has_trait( traits_iter.first ) ) { + if( p->has_trait( traits_iter.id ) ) { wmenu.entries[ c ].text_color = c_green; - if( p->has_base_trait( traits_iter.first ) ) { + if( p->has_base_trait( traits_iter.id ) ) { wmenu.entries[ c ].extratxt.txt = "T"; } } @@ -352,7 +352,7 @@ class wish_monster_callback: public uilist_callback } }; -void debug_menu::wishmonster( const cata::optional p ) +void debug_menu::wishmonster( const cata::optional &p ) { std::vector mtypes; diff --git a/src/worldfactory.h b/src/worldfactory.h index 65cea420d51f2..daafa8e4827fd 100644 --- a/src/worldfactory.h +++ b/src/worldfactory.h @@ -125,7 +125,7 @@ class worldfactory */ void delete_world( const std::string &worldname, bool delete_folder ); - static void draw_worldgen_tabs( const catacurses::window &win, size_t current ); + static void draw_worldgen_tabs( const catacurses::window &w, size_t current ); void show_active_world_mods( const std::vector &world_mods ); private: @@ -141,7 +141,7 @@ class worldfactory const std::vector &mods, bool is_active_list, const std::string &text_if_empty, const catacurses::window &w_shift ); - WORLDPTR add_world( std::unique_ptr world ); + WORLDPTR add_world( std::unique_ptr retworld ); pimpl mman; pimpl mman_ui; diff --git a/tests/comestible_tests.cpp b/tests/comestible_tests.cpp new file mode 100644 index 0000000000000..60a9e30d9867e --- /dev/null +++ b/tests/comestible_tests.cpp @@ -0,0 +1,122 @@ +#include "catch/catch.hpp" +#include "crafting.h" +#include "game.h" +#include "itype.h" +#include "map_helpers.h" +#include "npc.h" +#include "player.h" +#include "player_helpers.h" +#include "recipe_dictionary.h" +#include "recipe.h" +#include "requirements.h" +#include "test_statistics.h" +#include "recipe_dictionary.h" +#include "item.h" + +struct all_stats { + statistics calories; +}; + +// given a list of components, adds all the calories together +int comp_calories( std::vector components ) +{ + int calories = 0; + for( item_comp it : components ) { + auto temp = item::find_type( it.type )->comestible; + if( temp && temp->cooks_like.empty() ) { + calories += temp->get_calories() * it.count; + } else if( temp ) { + calories += item::find_type( temp->cooks_like )->comestible->get_calories() * it.count; + } + } + return calories; +} + +// puts one permutation of item components into a vector +std::vector item_comp_vector_create( const std::vector> &vv, + const std::vector &ndx ) +{ + std::vector list; + for( int i = 0, sz = vv.size(); i < sz; ++i ) { + list.emplace_back( vv[i][ndx[i]] ); + } + return list; +} + +std::vector> recipe_permutations( const + std::vector< std::vector< item_comp > > &vv ) +{ + std::vector muls; + std::vector szs; + std::vector> output; + + int total_mul = 1; + int sz = vv.size(); + + // Collect multipliers and sizes + for( const std::vector &iv : vv ) { + muls.push_back( total_mul ); + szs.push_back( iv.size() ); + total_mul *= iv.size(); + } + + // total_mul is number of [ v.pick(1) : vv] there are + // iterate over each + // container to hold the indices: + std::vector ndx; + ndx.resize( sz ); + for( int i = 0; i < total_mul; ++i ) { + for( int j = 0; j < sz; ++j ) { + ndx[j] = ( i / muls[j] ) % szs[j]; + } + + // Do thing with indices + output.emplace_back( item_comp_vector_create( vv, ndx ) ); + } + return output; +} + +all_stats run_stats( std::vector> permutations ) +{ + all_stats mystats; + for( const std::vector &permut : permutations ) { + mystats.calories.add( comp_calories( permut ) ); + } + return mystats; +} + +item food_or_food_container( item it ) +{ + return it.is_food_container() ? it.contents.front() : it; +} + +TEST_CASE( "recipe_permutations" ) +{ + for( auto i = recipe_dict.begin(); i != recipe_dict.end(); i++ ) { + all_stats mystats = run_stats( recipe_permutations( + i->first.obj().requirements().get_components() ) ); + // the resulting item + item res_it = food_or_food_container( i->first.obj().create_result() ); + const bool is_food = res_it.is_food(); + const bool has_override = res_it.has_flag( "NUTRIENT_OVERRIDE" ); + int default_calories = 0; + if( res_it.type->comestible ) { + default_calories = res_it.type->comestible->get_calories(); + } + if( res_it.charges > 0 ) { + default_calories *= res_it.charges; + } + const float lower_bound = std::min( default_calories - mystats.calories.stddev() * 2, + default_calories * 0.8 ); + const float upper_bound = std::max( default_calories + mystats.calories.stddev() * 2, + default_calories * 1.2 ); + if( mystats.calories.min() != mystats.calories.max() && is_food && !has_override ) { + if( lower_bound >= mystats.calories.avg() || mystats.calories.avg() >= upper_bound ) { + printf( "\n\nRecipeID: %s, Lower Bound: %f, Average: %f, Upper Bound: %f\n\n", i->first.c_str(), + lower_bound, mystats.calories.avg(), upper_bound ); + } + REQUIRE( lower_bound < mystats.calories.avg() ); + REQUIRE( mystats.calories.avg() < upper_bound ); + } + } +} diff --git a/tests/crafting_test.cpp b/tests/crafting_test.cpp index d8df143968699..8c4a1fe48e3a1 100644 --- a/tests/crafting_test.cpp +++ b/tests/crafting_test.cpp @@ -1,9 +1,13 @@ +#include + #include "catch/catch.hpp" #include "crafting.h" #include "game.h" #include "itype.h" +#include "map.h" #include "map_helpers.h" #include "npc.h" +#include "output.h" #include "player.h" #include "player_helpers.h" #include "recipe_dictionary.h" @@ -92,8 +96,7 @@ TEST_CASE( "recipe_subset" ) } } -// This crashes subsequent testcases for some reason. -TEST_CASE( "available_recipes", "[.]" ) +TEST_CASE( "available_recipes", "[recipes]" ) { const recipe *r = &recipe_id( "brew_mead" ).obj(); player dummy; @@ -159,6 +162,44 @@ TEST_CASE( "available_recipes", "[.]" ) } } + GIVEN( "an eink pc with a cannibal recipe" ) { + const recipe *r2 = &recipe_id( "soup_human" ).obj(); + item &eink = dummy.i_add( item( "eink_tablet_pc" ) ); + eink.set_var( "EIPC_RECIPES", ",soup_human," ); + REQUIRE_FALSE( dummy.knows_recipe( r2 ) ); + + WHEN( "the player holds it and has an appropriate skill" ) { + dummy.set_skill_level( r2->skill_used, 2 ); + + AND_WHEN( "he searches for the recipe in the tablet" ) { + THEN( "he finds it!" ) { + CHECK( dummy.get_recipes_from_books( dummy.inv ).contains( r2 ) ); + } + THEN( "he still hasn't the recipe memorized" ) { + CHECK_FALSE( dummy.knows_recipe( r2 ) ); + } + } + AND_WHEN( "he gets rid of the tablet" ) { + dummy.i_rem( &eink ); + + THEN( "he cant make the recipe anymore" ) { + CHECK_FALSE( dummy.get_recipes_from_books( dummy.inv ).contains( r2 ) ); + } + } + } + } +} + +// This crashes subsequent testcases for some reason. +TEST_CASE( "crafting_with_a_companion", "[.]" ) +{ + const recipe *r = &recipe_id( "brew_mead" ).obj(); + player dummy; + + REQUIRE( dummy.get_skill_level( r->skill_used ) == 0 ); + REQUIRE_FALSE( dummy.knows_recipe( r ) ); + REQUIRE( r->skill_used ); + GIVEN( "a companion who can help with crafting" ) { standard_npc who( "helper", {}, 0 ); @@ -198,7 +239,7 @@ TEST_CASE( "available_recipes", "[.]" ) } } -static void test_craft( const recipe_id &rid, const std::vector tools, +static void prep_craft( const recipe_id &rid, const std::vector tools, bool expect_craftable ) { clear_player(); @@ -218,8 +259,15 @@ static void test_craft( const recipe_id &rid, const std::vector tools, inventory crafting_inv = g->u.crafting_inventory(); bool can_craft = reqs.can_make_with_inventory( g->u.crafting_inventory() ); CHECK( can_craft == expect_craftable ); +} + +// This fakes a craft in a reasonable way which is fast +static void fake_test_craft( const recipe_id &rid, const std::vector tools, + bool expect_craftable ) +{ + prep_craft( rid, tools, expect_craftable ); if( expect_craftable ) { - g->u.consume_components_for_craft( r, 1 ); + g->u.consume_components_for_craft( rid.obj(), 1 ); g->u.invalidate_crafting_inventory(); } } @@ -240,7 +288,7 @@ TEST_CASE( "charge_handling" ) tools.emplace_back( "power_supply" ); tools.emplace_back( "scrap" ); - test_craft( recipe_id( "carver_off" ), tools, true ); + fake_test_craft( recipe_id( "carver_off" ), tools, true ); CHECK( get_remaining_charges( "hotplate" ) == 10 ); CHECK( get_remaining_charges( "soldering_iron" ) == 10 ); } @@ -260,7 +308,7 @@ TEST_CASE( "charge_handling" ) tools.emplace_back( "power_supply" ); tools.emplace_back( "scrap" ); - test_craft( recipe_id( "carver_off" ), tools, true ); + fake_test_craft( recipe_id( "carver_off" ), tools, true ); CHECK( get_remaining_charges( "hotplate" ) == 0 ); CHECK( get_remaining_charges( "soldering_iron" ) == 0 ); } @@ -283,7 +331,7 @@ TEST_CASE( "charge_handling" ) tools.emplace_back( "scrap" ); tools.emplace_back( "UPS_off", -1, 500 ); - test_craft( recipe_id( "carver_off" ), tools, true ); + fake_test_craft( recipe_id( "carver_off" ), tools, true ); CHECK( get_remaining_charges( "hotplate" ) == 0 ); CHECK( get_remaining_charges( "soldering_iron" ) == 0 ); CHECK( get_remaining_charges( "UPS_off" ) == 480 ); @@ -307,7 +355,7 @@ TEST_CASE( "charge_handling" ) tools.emplace_back( "scrap" ); tools.emplace_back( "UPS_off", -1, 10 ); - test_craft( recipe_id( "carver_off" ), tools, false ); + fake_test_craft( recipe_id( "carver_off" ), tools, false ); } } @@ -321,7 +369,7 @@ TEST_CASE( "tool_use" ) tools.push_back( plastic_bottle ); tools.emplace_back( "pot" ); - test_craft( recipe_id( "water_clean" ), tools, true ); + fake_test_craft( recipe_id( "water_clean" ), tools, true ); } SECTION( "clean_water_in_occupied_cooking_vessel" ) { std::vector tools; @@ -335,6 +383,87 @@ TEST_CASE( "tool_use" ) jar.contents.emplace_back( "water", -1, 2 ); tools.push_back( jar ); - test_craft( recipe_id( "water_clean" ), tools, false ); + fake_test_craft( recipe_id( "water_clean" ), tools, false ); + } +} + +static constexpr int midnight = HOURS( 0 ); +static constexpr int midday = HOURS( 12 ); + +static void set_time( int time ) +{ + calendar::turn = time; + g->reset_light_level(); + int z = g->u.posz(); + g->m.update_visibility_cache( z ); + g->m.build_map_cache( z ); +} + +// This tries to actually run the whole craft activity, which is more thorough, +// but slow +static int actually_test_craft( const recipe_id &rid, const std::vector tools, + int interrupt_after_turns ) +{ + prep_craft( rid, tools, true ); + set_time( midday ); // Ensure light for crafting + REQUIRE( !g->u.activity ); + g->u.make_craft( rid, 1 ); + CHECK( g->u.activity ); + CHECK( g->u.activity.id() == activity_id( "ACT_CRAFT" ) ); + int turns = 0; + while( g->u.activity.id() == activity_id( "ACT_CRAFT" ) ) { + if( turns >= interrupt_after_turns ) { + set_time( midnight ); // Kill light to interrupt crafting + } + ++turns; + g->u.moves = 100; + g->u.activity.do_turn( g->u ); + } + return turns; +} + +static void verify_inventory( const std::vector &has, + const std::vector &hasnt ) +{ + std::ostringstream os; + os << "Inventory:\n"; + for( const item *i : g->u.inv_dump() ) { + os << " " << i->typeId() << " (" << i->charges << ")\n"; + } + INFO( os.str() ); + for( const std::string &i : has ) { + INFO( "expecting " << i ); + CHECK( player_has_item_of_type( i ) ); + } + for( const std::string &i : hasnt ) { + INFO( "not expecting " << i ); + CHECK( !player_has_item_of_type( i ) ); + } +} + +TEST_CASE( "crafting_interruption" ) +{ + std::vector tools; + tools.emplace_back( "hammer" ); + tools.emplace_back( "scrap", -1, 1 ); + recipe_id test_recipe( "crude_picklock" ); + int time_taken = test_recipe->batch_time( 1, 1, 0 ); + int expected_turns_taken = divide_round_up( time_taken, 100 ); + REQUIRE( expected_turns_taken > 2 ); + + SECTION( "regular_craft" ) { + int turns_taken = actually_test_craft( test_recipe, tools, INT_MAX ); + CHECK( turns_taken == expected_turns_taken ); + verify_inventory( { "crude_picklock" }, { "scrap" } ); + } + SECTION( "interrupted_craft" ) { + int turns_taken = actually_test_craft( test_recipe, tools, 2 ); + CHECK( turns_taken == 3 ); + verify_inventory( { "scrap" }, { "crude_picklock" } ); + SECTION( "resumed_craft" ) { + turns_taken = actually_test_craft( test_recipe, tools, INT_MAX ); + CHECK( turns_taken == expected_turns_taken - 2 ); + verify_inventory( { "crude_picklock" }, { "scrap" } ); + } } } diff --git a/tests/hash_test.cpp b/tests/hash_test.cpp index cd11e04e56488..f0d073250eac9 100644 --- a/tests/hash_test.cpp +++ b/tests/hash_test.cpp @@ -1,4 +1,3 @@ -#include #include #include #include @@ -7,6 +6,10 @@ #include "map.h" #include "enums.h" +#ifdef RELEASE +#include +#endif + // A larger number for this would be GREAT, but the test isn't efficient enough to make it larger. // Previously tried inserting into an unordered_set, // but that was slower than appending to a vector and doing the sort+unique manually. diff --git a/tests/map_helpers.cpp b/tests/map_helpers.cpp index 1b298ec819fe6..2d4c9ebed3fc8 100644 --- a/tests/map_helpers.cpp +++ b/tests/map_helpers.cpp @@ -53,6 +53,7 @@ void clear_map() clear_fields( z ); } wipe_map_terrain(); + g->m.clear_traps(); clear_creatures(); } diff --git a/tests/map_memory.cpp b/tests/map_memory.cpp index d4d07f7f56622..f516f3d202a18 100644 --- a/tests/map_memory.cpp +++ b/tests/map_memory.cpp @@ -3,6 +3,7 @@ #include "catch/catch.hpp" #include "map_memory.h" #include "json.h" +#include "game_constants.h" static constexpr tripoint p1{ 0, 0, 1 }; static constexpr tripoint p2{ 0, 0, 2 }; @@ -111,3 +112,112 @@ TEST_CASE( "lru_cache_perf", "[.]" ) * rerun completed 1000000 insertions in 31337290 microseconds. */ } + +void shift_map_memory_seen_cache( + std::bitset &map_memory_seen_cache, + const int sx, const int sy ); + +// There are 4 quadrants we want to check, +// 1 | 2 +// ----- +// 3 | 4 +// The partitions are defined by x_partition and y_partition +// Each partition has an expected value, and should be homogenous. +void check_quadrants( std::bitset &test_cache, + size_t x_partition, size_t y_partition, + bool first_val, bool second_val, bool third_val, bool fourth_val ) +{ + size_t y = 0; + for( ; y < y_partition; ++y ) { + size_t y_offset = y * SEEX * MAPSIZE; + size_t x = 0; + for( ; x < x_partition; ++x ) { + INFO( x << " " << y ); + CHECK( first_val == test_cache[ y_offset + x ] ); + } + for( ; x < SEEX * MAPSIZE; ++x ) { + INFO( x << " " << y ); + CHECK( second_val == test_cache[ y_offset + x ] ); + } + } + for( ; y < SEEY * MAPSIZE; ++y ) { + size_t y_offset = y * SEEX * MAPSIZE; + size_t x = 0; + for( ; x < x_partition; ++x ) { + INFO( x << " " << y ); + CHECK( third_val == test_cache[ y_offset + x ] ); + } + for( ; x < SEEX * MAPSIZE; ++x ) { + INFO( x << " " << y ); + CHECK( fourth_val == test_cache[ y_offset + x ] ); + } + } +} + +constexpr size_t first_twelve = SEEX; +constexpr size_t last_twelve = ( SEEX *MAPSIZE ) - SEEX; + +TEST_CASE( "shift_map_memory_seen_cache" ) +{ + std::bitset test_cache; + + GIVEN( "all bits are set" ) { + test_cache.set(); + WHEN( "positive x shift" ) { + shift_map_memory_seen_cache( test_cache, 1, 0 ); + THEN( "last 12 columns are 0, rest are 1" ) { + check_quadrants( test_cache, last_twelve, 0, + true, false, true, false ); + } + } + WHEN( "negative x shift" ) { + shift_map_memory_seen_cache( test_cache, -1, 0 ); + THEN( "first 12 columns are 0, rest are 1" ) { + check_quadrants( test_cache, first_twelve, 0, + false, true, false, true ); + } + } + WHEN( "positive y shift" ) { + shift_map_memory_seen_cache( test_cache, 0, 1 ); + THEN( "last 12 rows are 0, rest are 1" ) { + check_quadrants( test_cache, 0, last_twelve, + true, true, false, false ); + } + } + WHEN( "negative y shift" ) { + shift_map_memory_seen_cache( test_cache, 0, -1 ); + THEN( "first 12 rows are 0, rest are 1" ) { + check_quadrants( test_cache, 0, first_twelve, + false, false, true, true ); + } + } + WHEN( "positive x, positive y shift" ) { + shift_map_memory_seen_cache( test_cache, 1, 1 ); + THEN( "last 12 columns and rows are 0, rest are 1" ) { + check_quadrants( test_cache, last_twelve, last_twelve, + true, false, false, false ); + } + } + WHEN( "positive x, negative y shift" ) { + shift_map_memory_seen_cache( test_cache, 1, -1 ); + THEN( "last 12 columns and first 12 rows are 0, rest are 1" ) { + check_quadrants( test_cache, last_twelve, first_twelve, + false, false, true, false ); + } + } + WHEN( "negative x, positive y shift" ) { + shift_map_memory_seen_cache( test_cache, -1, 1 ); + THEN( "first 12 columns and last 12 rows are 0, rest are 1" ) { + check_quadrants( test_cache, first_twelve, last_twelve, + false, true, false, false ); + } + } + WHEN( "negative x, negative y shift" ) { + shift_map_memory_seen_cache( test_cache, -1, -1 ); + THEN( "first 12 columns and rows are 0, rest are 1" ) { + check_quadrants( test_cache, first_twelve, first_twelve, + false, false, false, true ); + } + } + } +} diff --git a/tests/map_test.cpp b/tests/map_test.cpp index 0b48fb8f8b64d..0b9a102a4dce7 100644 --- a/tests/map_test.cpp +++ b/tests/map_test.cpp @@ -22,3 +22,43 @@ TEST_CASE( "destroy_grabbed_furniture" ) } } } + +TEST_CASE( "map_bounds_checking" ) +{ + map m; + 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 ) { + INFO( "( " << x << ", " << y << ", " << z << " )" ); + if( x < 0 || x >= MAPSIZE_X || + y < 0 || y >= MAPSIZE_Y || + z < -OVERMAP_DEPTH || z > OVERMAP_HEIGHT ) { + CHECK( !m.ter( { x, y, z } ) ); + } else { + CHECK( m.ter( { x, y, z } ) ); + } + } + } + } +} + +TEST_CASE( "tinymap_bounds_checking" ) +{ + tinymap m; + 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 ) { + INFO( "( " << x << ", " << y << ", " << z << " )" ); + if( x < 0 || x >= SEEX * 2 || + y < 0 || y >= SEEY * 2 || + z < -OVERMAP_DEPTH || z > OVERMAP_HEIGHT ) { + CHECK( !m.ter( { x, y, z } ) ); + } else { + CHECK( m.ter( { x, y, z } ) ); + } + } + } + } +} diff --git a/tests/morale_test.cpp b/tests/morale_test.cpp index fe371dc1e1266..5945feefd4df3 100644 --- a/tests/morale_test.cpp +++ b/tests/morale_test.cpp @@ -107,8 +107,8 @@ TEST_CASE( "player_morale" ) GIVEN( "OPTIMISTIC trait" ) { m.on_mutation_gain( trait_id( "OPTIMISTIC" ) ); - CHECK( m.has( MORALE_PERM_OPTIMIST ) == 4 ); - CHECK( m.get_level() == 5 ); + CHECK( m.has( MORALE_PERM_OPTIMIST ) == 9 ); + CHECK( m.get_level() == 10 ); WHEN( "lost the trait" ) { m.on_mutation_loss( trait_id( "OPTIMISTIC" ) ); @@ -119,8 +119,8 @@ TEST_CASE( "player_morale" ) GIVEN( "BADTEMPER trait" ) { m.on_mutation_gain( trait_id( "BADTEMPER" ) ); - CHECK( m.has( MORALE_PERM_BADTEMPER ) == -4 ); - CHECK( m.get_level() == -5 ); + CHECK( m.has( MORALE_PERM_BADTEMPER ) == -9 ); + CHECK( m.get_level() == -10 ); WHEN( "lost the trait" ) { m.on_mutation_loss( trait_id( "BADTEMPER" ) ); diff --git a/tests/npc_talk_test.cpp b/tests/npc_talk_test.cpp index fd9d7c24e694d..b9f61cfc9066c 100644 --- a/tests/npc_talk_test.cpp +++ b/tests/npc_talk_test.cpp @@ -8,6 +8,7 @@ #include "faction.h" #include "game.h" #include "map.h" +#include "mission.h" #include "npc.h" #include "overmapbuffer.h" #include "player.h" @@ -41,6 +42,21 @@ npc &create_test_talker() return *model_npc; } +void gen_response_lines( dialogue &d, size_t expected_count ) +{ + d.gen_responses( d.topic_stack.back() ); + for( talk_response &response : d.responses ) { + response.create_option_line( d, ' ' ); + } + if( d.responses.size() != expected_count ) { + printf( "Test failure in %s\n", d.topic_stack.back().id.c_str() ); + for( talk_response &response : d.responses ) { + printf( "response: %s\n", response.text.c_str() ); + } + } + REQUIRE( d.responses.size() == expected_count ); +} + void change_om_type( const std::string &new_type ) { const point omt_pos = ms_to_omt_copy( g->m.getabs( g->u.posx(), g->u.posy() ) ); @@ -62,9 +78,7 @@ TEST_CASE( "npc_talk_test" ) d.beta = &talker_npc; d.add_topic( "TALK_TEST_START" ); - d.gen_responses( d.topic_stack.back() ); - - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); g->u.str_cur = 8; @@ -73,8 +87,7 @@ TEST_CASE( "npc_talk_test" ) g->u.per_cur = 8; d.add_topic( "TALK_TEST_SIMPLE_STATS" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 5 ); + gen_response_lines( d, 5 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a strength test response." ); CHECK( d.responses[2].text == "This is a dexterity test response." ); @@ -84,13 +97,11 @@ TEST_CASE( "npc_talk_test" ) g->u.dex_cur = 6; g->u.int_cur = 6; g->u.per_cur = 6; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); d.add_topic( "TALK_TEST_NEGATED_STATS" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 5 ); + gen_response_lines( d, 5 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a low strength test response." ); CHECK( d.responses[2].text == "This is a low dexterity test response." ); @@ -100,30 +111,30 @@ TEST_CASE( "npc_talk_test" ) g->u.dex_cur = 8; g->u.int_cur = 8; g->u.per_cur = 8; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); + for( trait_id tr : g->u.get_mutations() ) { + g->u.unset_mutation( tr ); + } + d.add_topic( "TALK_TEST_WEARING_AND_TRAIT" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); + CHECK( d.responses[0].text == "This is a basic test response." ); g->u.toggle_trait( trait_id( "ELFA_EARS" ) ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + gen_response_lines( d, 3 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a trait test response." ); CHECK( d.responses[2].text == "This is a short trait test response." ); g->u.wear_item( item( "badge_marshal" ) ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a trait test response." ); CHECK( d.responses[2].text == "This is a short trait test response." ); CHECK( d.responses[3].text == "This is a wearing test response." ); talker_npc.toggle_trait( trait_id( "ELFA_EARS" ) ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 6 ); + gen_response_lines( d, 6 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a trait test response." ); CHECK( d.responses[2].text == "This is a short trait test response." ); @@ -134,8 +145,7 @@ TEST_CASE( "npc_talk_test" ) talker_npc.toggle_trait( trait_id( "ELFA_EARS" ) ); g->u.toggle_trait( trait_id( "PSYCHOPATH" ) ); talker_npc.toggle_trait( trait_id( "SAPIOVORE" ) ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a wearing test response." ); CHECK( d.responses[2].text == "This is a trait flags test response." ); @@ -144,17 +154,15 @@ TEST_CASE( "npc_talk_test" ) talker_npc.toggle_trait( trait_id( "SAPIOVORE" ) ); d.add_topic( "TALK_TEST_EFFECT" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); talker_npc.add_effect( effect_gave_quest_item, 9999_turns ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 2 ); + gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an npc effect test response." ); g->u.add_effect( effect_gave_quest_item, 9999_turns ); d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + gen_response_lines( d, 3 ); 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." ); @@ -162,17 +170,14 @@ TEST_CASE( "npc_talk_test" ) d.add_topic( "TALK_TEST_SERVICE" ); g->u.cash = 0; talker_npc.add_effect( effect_currently_busy, 9999_turns ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); g->u.cash = 800; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 cash test response." ); talker_npc.remove_effect( effect_currently_busy ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a cash test response." ); CHECK( d.responses[2].text == "This is an npc service test response." ); @@ -181,38 +186,32 @@ TEST_CASE( "npc_talk_test" ) change_om_type( "pond_swamp" ); d.add_topic( "TALK_TEST_LOCATION" ); d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); change_om_type( "field" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 om_location_field test response." ); change_om_type( "faction_base_camp_11" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 faction camp any test response." ); d.add_topic( "TALK_TEST_NPC_ROLE" ); talker_npc.companion_mission_role_id = "NO_TEST_ROLE"; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); talker_npc.companion_mission_role_id = "TEST_ROLE"; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 nearby role test response." ); d.add_topic( "TALK_TEST_NPC_CLASS" ); talker_npc.myclass = npc_class_id( "NC_NONE" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); talker_npc.myclass = npc_class_id( "NC_TEST_CLASS" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 class test response." ); @@ -221,42 +220,79 @@ TEST_CASE( "npc_talk_test" ) } talker_npc.set_attitude( NPCATT_FOLLOW ); d.add_topic( "TALK_TEST_NPC_ALLIES" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 npc allies 1 test response." ); + d.add_topic( "TALK_TEST_NPC_RULES" ); + gen_response_lines( d, 1 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + talker_npc.rules.engagement = ENGAGE_ALL; + talker_npc.rules.aim = AIM_SPRAY; + talker_npc.rules.set_flag( ally_rule::use_silent ); + gen_response_lines( d, 4 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + CHECK( d.responses[1].text == "This is a npc engagement rule test response." ); + 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 ); + + d.add_topic( "TALK_TEST_NPC_NEEDS" ); + gen_response_lines( d, 1 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + talker_npc.set_thirst( 90 ); + talker_npc.set_hunger( 90 ); + talker_npc.set_fatigue( EXHAUSTED ); + gen_response_lines( d, 4 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + CHECK( d.responses[1].text == "This is a npc thirst test response." ); + CHECK( d.responses[2].text == "This is a npc hunger test response." ); + CHECK( d.responses[3].text == "This is a npc fatigue test response." ); + + d.add_topic( "TALK_TEST_MISSION_GOAL" ); + gen_response_lines( d, 1 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + const std::vector &all_missions = mission_type::get_all(); + bool set_mission = false; + for( const mission_type &some_mission : all_missions ) { + if( some_mission.goal == MGOAL_ASSASSINATE ) { + mission *assassinate = mission::reserve_new( some_mission.id, talker_npc.getID() ); + talker_npc.chatbin.mission_selected = assassinate; + set_mission = true; + break; + } + } + CHECK( set_mission ); + 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." ); + const calendar old_calendar = calendar::turn; calendar::turn = calendar::start; d.add_topic( "TALK_TEST_SEASON" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 season spring test response." ); calendar::turn += to_turns( calendar::season_length() ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + 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 += to_turns( calendar::season_length() ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + 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 += to_turns( calendar::season_length() ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 5 ); + 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 += to_turns( calendar::season_length() ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 6 ); + 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." ); CHECK( d.responses[2].text == "This is a days since cataclysm 30 test response." ); @@ -266,40 +302,34 @@ TEST_CASE( "npc_talk_test" ) calendar::turn = calendar::turn.sunrise() + HOURS( 4 ); d.add_topic( "TALK_TEST_TIME" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 day test response." ); calendar::turn = calendar::turn.sunset() + HOURS( 2 ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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; d.add_topic( "TALK_TEST_SWITCH" ); g->u.cash = 1000; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + gen_response_lines( d, 3 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an switch 1 test response." ); CHECK( d.responses[2].text == "This is another basic test response." ); g->u.cash = 100; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + gen_response_lines( d, 3 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an switch 2 test response." ); CHECK( d.responses[2].text == "This is another basic test response." ); g->u.cash = 10; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an switch default 1 test response." ); CHECK( d.responses[2].text == "This is an switch default 2 test response." ); CHECK( d.responses[3].text == "This is another basic test response." ); g->u.cash = 0; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 3 ); + gen_response_lines( d, 3 ); 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." ); @@ -307,65 +337,69 @@ TEST_CASE( "npc_talk_test" ) d.add_topic( "TALK_TEST_OR" ); g->u.cash = 0; talker_npc.add_effect( effect_currently_busy, 9999_turns ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); g->u.toggle_trait( trait_id( "ELFA_EARS" ) ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 2 ); + 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." ); d.add_topic( "TALK_TEST_AND" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); g->u.cash = 800; talker_npc.remove_effect( effect_currently_busy ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 2 ); + 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." ); d.add_topic( "TALK_TEST_NESTED" ); talker_npc.add_effect( effect_currently_busy, 9999_turns ); g->u.cash = 0; - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); g->u.cash = 800; g->u.int_cur = 11; - d.gen_responses( d.topic_stack.back() ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 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 complex nested test response." ); + d.add_topic( "TALK_TEST_TRUE_FALSE_CONDITIONAL" ); + gen_response_lines( d, 3 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + CHECK( d.responses[1].text == "This is a true/false true response." ); + CHECK( d.responses[2].text == "This is a conditional trial response." ); + talk_response &chosen = d.responses[2]; + bool trial_success = chosen.trial.roll( d ); + CHECK( trial_success == true ); + talk_effect_t &trial_effect = trial_success ? chosen.success : chosen.failure; + CHECK( trial_effect.next_topic.id == "TALK_TEST_TRUE_CONDITION_NEXT" ); + g->u.cash = 0; + gen_response_lines( d, 3 ); + CHECK( d.responses[0].text == "This is a basic test response." ); + CHECK( d.responses[1].text == "This is a true/false false response." ); + CHECK( d.responses[2].text == "This is a conditional trial response." ); + chosen = d.responses[2]; + trial_success = chosen.trial.roll( d ); + CHECK( trial_success == false ); + trial_effect = trial_success ? chosen.success : chosen.failure; + CHECK( trial_effect.next_topic.id == "TALK_TEST_FALSE_CONDITION_NEXT" ); + d.add_topic( "TALK_TEST_HAS_ITEM" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 1 ); + gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); - const auto has_beer_bottle = [&]() { - const int bottle_pos = g->u.inv.position_by_type( itype_id( "bottle_glass" ) ); - if( bottle_pos == INT_MIN ) { - return false; - } - item &bottle = g->u.inv.find_item( bottle_pos ); - if( bottle.is_container_empty() ) { - return false; - } - const item &beer = bottle.get_contained(); - return beer.typeId() == itype_id( "beer" ) && beer.charges == 2; + const auto has_item = [&]( const std::string & id, int count ) { + return g->u.has_charges( itype_id( id ), count ) || + g->u.has_amount( itype_id( id ), count ); }; - const auto has_plastic_bottle = [&]() { - return g->u.inv.position_by_type( itype_id( "bottle_plastic" ) ) != INT_MIN; + const auto has_beer_bottle = [&]() { + return has_item( "bottle_glass", 1 ) && has_item( "beer", 2 ); }; g->u.cash = 1000; g->u.int_cur = 8; d.add_topic( "TALK_TEST_EFFECTS" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 10 ); + gen_response_lines( d, 10 ); REQUIRE( !g->u.has_effect( effect_infection ) ); talk_effect_t &effects = d.responses[1].success; effects.apply( d ); @@ -390,10 +424,10 @@ TEST_CASE( "npc_talk_test" ) effects.apply( d ); CHECK( g->u.cash == 500 ); CHECK( has_beer_bottle() ); - REQUIRE( !has_plastic_bottle() ); + REQUIRE( !has_item( "bottle_plastic", 1 ) ); effects = d.responses[6].success; effects.apply( d ); - CHECK( has_plastic_bottle() ); + CHECK( has_item( "bottle_plastic", 1 ) ); CHECK( g->u.cash == 500 ); effects = d.responses[7].success; effects.apply( d ); @@ -415,21 +449,29 @@ TEST_CASE( "npc_talk_test" ) CHECK( talker_npc.get_attitude() == NPCATT_KILL ); d.add_topic( "TALK_TEST_HAS_ITEM" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 4 ); + gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a u_has_item beer test response." ); CHECK( d.responses[2].text == "This is a u_has_item bottle_glass test response." ); CHECK( d.responses[3].text == "This is a u_has_items beer test response." ); d.add_topic( "TALK_TEST_EFFECTS" ); - d.gen_responses( d.topic_stack.back() ); - REQUIRE( d.responses.size() == 10 ); - REQUIRE( has_plastic_bottle() ); + gen_response_lines( d, 10 ); + REQUIRE( has_item( "bottle_plastic", 1 ) ); REQUIRE( has_beer_bottle() ); + REQUIRE( g->u.wield( g->u.i_at( g->u.inv.position_by_type( "bottle_glass" ) ) ) ); effects = d.responses[9].success; effects.apply( d ); - CHECK( !has_plastic_bottle() ); - CHECK( g->u.inv.position_by_type( itype_id( "beer" ) ) == INT_MIN ); - + CHECK( !has_item( "bottle_plastic", 1 ) ); + CHECK( !has_item( "beer", 1 ) ); + + d.add_topic( "TALK_COMBAT_COMMANDS" ); + gen_response_lines( d, 7 ); + CHECK( d.responses[0].text == "Change your engagement rules..." ); + CHECK( d.responses[1].text == "Change your aiming rules..." ); + CHECK( d.responses[2].text == "Don't use ranged weapons anymore." ); + CHECK( d.responses[3].text == "Use only silent weapons." ); + CHECK( d.responses[4].text == "Don't use grenades anymore." ); + CHECK( d.responses[5].text == "Don't worry about shooting an ally." ); + CHECK( d.responses[6].text == "Never mind." ); } diff --git a/tests/npc_test.cpp b/tests/npc_test.cpp index 59983cc015f7a..ee41cf9ce28f0 100644 --- a/tests/npc_test.cpp +++ b/tests/npc_test.cpp @@ -14,7 +14,7 @@ #include "veh_type.h" #include "vehicle.h" #include "vpart_position.h" -#include "vpart_reference.h" +#include "vpart_reference.h" // IWYU pragma: keep void on_load_test( npc &who, const time_duration &from, const time_duration &to ) { diff --git a/tests/player_helpers.cpp b/tests/player_helpers.cpp index dba22652af865..715c8df62a52b 100644 --- a/tests/player_helpers.cpp +++ b/tests/player_helpers.cpp @@ -5,6 +5,7 @@ #include "enums.h" #include "game.h" #include "item.h" +#include "itype.h" #include "map.h" #include "player.h" @@ -22,6 +23,16 @@ int get_remaining_charges( const std::string &tool_id ) return remaining_charges; } +bool player_has_item_of_type( const std::string &type ) +{ + std::vector matching_items = g->u.inv.items_with( + [&]( const item & i ) { + return i.type->get_id() == type; + } ); + + return !matching_items.empty(); +} + void clear_player() { player &dummy = g->u; diff --git a/tests/player_helpers.h b/tests/player_helpers.h index 63b7fb9c0893d..96155b83d93ab 100644 --- a/tests/player_helpers.h +++ b/tests/player_helpers.h @@ -4,7 +4,10 @@ #include +struct itype; + int get_remaining_charges( const std::string &tool_id ); +bool player_has_item_of_type( const std::string & ); void clear_player(); #endif diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 949b79e406fef..0950dd67b1a65 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -5,7 +5,7 @@ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85828 #include // Any cheap-to-include stdlib header #ifdef __GLIBCXX__ -#include +#include // IWYU pragma: keep #undef __glibcxx_check_self_move_assign #define __glibcxx_check_self_move_assign(x) diff --git a/tests/vehicle_drag.cpp b/tests/vehicle_drag.cpp index 68b410662ce3c..c5b76bdf5af7f 100644 --- a/tests/vehicle_drag.cpp +++ b/tests/vehicle_drag.cpp @@ -233,66 +233,67 @@ TEST_CASE( "vehicle_drag_calc_baseline", "[.]" ) // coeffs are dimensionless, speeds are 100ths of mph, so 6101 is 61.01 mph TEST_CASE( "vehicle_drag", "[vehicle] [engine]" ) { - test_vehicle_drag( "bicycle", 0.609525, 0.0169566, 42.6792, 2356, 3078 ); - test_vehicle_drag( "bicycle_electric", 0.609525, 0.0274778, 69.1604, 3067, 3528 ); - test_vehicle_drag( "motorcycle", 0.609525, 0.596862, 266.852, 7205, 8621 ); - test_vehicle_drag( "motorcycle_sidecart", 0.880425, 0.888749, 353.202, 6343, 7599 ); - test_vehicle_drag( "quad_bike", 1.15133, 1.14383, 568.219, 5782, 6932 ); + test_vehicle_drag( "bicycle", 0.609525, 0.016957, 42.679167, 2356, 3078 ); + test_vehicle_drag( "bicycle_electric", 0.609525, 0.027478, 69.160417, 3067, 3528 ); + test_vehicle_drag( "motorcycle", 0.609525, 0.568903, 254.351562, 7212, 8628 ); + test_vehicle_drag( "motorcycle_sidecart", 0.880425, 0.857295, 340.701562, 6349, 7604 ); + test_vehicle_drag( "quad_bike", 1.151325, 1.110281, 551.552083, 5786, 6937 ); test_vehicle_drag( "scooter", 0.609525, 0.171854, 129.764583, 4012, 4902 ); test_vehicle_drag( "scooter_electric", 0.609525, 0.161612, 122.031250, 4928, 5106 ); - test_vehicle_drag( "superbike", 0.609525, 0.872952, 390.289, 9861, 11759 ); + test_vehicle_drag( "superbike", 0.609525, 0.844993, 377.789062, 9867, 11765 ); test_vehicle_drag( "tandem", 0.609525, 0.021344, 40.290625, 2353, 3076 ); - test_vehicle_drag( "unicycle", 0.690795, 0.00239997, 24.1625, 2266, 2958 ); + test_vehicle_drag( "unicycle", 0.690795, 0.002400, 24.162500, 2266, 2958 ); + test_vehicle_drag( "beetle", 1.320638, 1.693784, 1199.020312, 7542, 9024 ); test_vehicle_drag( "bubble_car", 0.846562, 1.541691, 873.083750, 9373, 9720 ); - test_vehicle_drag( "car", 0.507938, 2.47283, 1167, 10030, 12084 ); - test_vehicle_drag( "car_mini", 0.507938, 1.74473, 1235.08, 10201, 12246 ); - test_vehicle_drag( "car_sports", 0.507938, 2.51383, 1423.62, 17543, 20933 ); - test_vehicle_drag( "car_sports_atomic", 0.507938, 3.15377, 1488.36, 17451, 18103 ); - test_vehicle_drag( "car_sports_electric", 0.507938, 2.46264, 1394.63, 17587, 18239 ); - test_vehicle_drag( "electric_car", 0.507938, 2.12512, 1002.91, 13892, 14411 ); - test_vehicle_drag( "rara_x", 0.903, 1.92071, 828.744, 8443, 8759 ); + test_vehicle_drag( "car", 0.507938, 2.366883, 1117.002083, 10054, 12108 ); + test_vehicle_drag( "car_mini", 0.507938, 1.709414, 1210.084375, 10209, 12254 ); + test_vehicle_drag( "car_sports", 0.507938, 2.424461, 1373.010000, 17561, 20950 ); + test_vehicle_drag( "car_sports_atomic", 0.507938, 3.170346, 1496.180208, 17447, 18100 ); + test_vehicle_drag( "car_sports_electric", 0.507938, 2.479216, 1404.018750, 17584, 18235 ); + test_vehicle_drag( "electric_car", 0.507938, 2.125121, 1002.907292, 13892, 14411 ); + test_vehicle_drag( "rara_x", 0.903000, 1.920707, 828.743750, 8443, 8759 ); test_vehicle_drag( "suv", 0.507938, 2.807600, 1135.705357, 11834, 14217 ); - test_vehicle_drag( "suv_electric", 0.5418, 2.30686, 933.151, 13576, 14083 ); - test_vehicle_drag( "golf_cart", 0.943313, 1.25185, 787.71, 7161, 7427 ); - test_vehicle_drag( "golf_cart_4seat", 0.943313, 1.21921, 767.173, 7166, 7432 ); - test_vehicle_drag( "hearse", 0.67725, 3.12244, 1263.06, 9067, 10939 ); + test_vehicle_drag( "suv_electric", 0.541800, 2.306861, 933.150893, 13576, 14083 ); + test_vehicle_drag( "golf_cart", 0.943313, 1.251845, 787.710417, 7161, 7427 ); + test_vehicle_drag( "golf_cart_4seat", 0.943313, 1.219207, 767.172917, 7166, 7432 ); + test_vehicle_drag( "hearse", 0.677250, 3.016494, 1220.205357, 9086, 10957 ); test_vehicle_drag( "pickup_technical", 2.336513, 2.752690, 1113.493750, 7325, 8751 ); test_vehicle_drag( "ambulance", 2.275560, 2.264056, 1393.663281, 8763, 10446 ); - test_vehicle_drag( "car_fbi", 1.03619, 2.74101, 1293.56, 11247, 13441 ); + test_vehicle_drag( "car_fbi", 1.036193, 2.635064, 1243.564583, 11259, 13453 ); test_vehicle_drag( "fire_engine", 2.305875, 3.281582, 2154.679464, 8666, 10345 ); - test_vehicle_drag( "fire_truck", 2.27556, 8.06586, 3972.02, 8426, 10132 ); - test_vehicle_drag( "policecar", 1.03619, 2.74212, 1294.09, 11247, 13441 ); + test_vehicle_drag( "fire_truck", 2.275560, 7.944023, 3912.020625, 8433, 10139 ); + test_vehicle_drag( "policecar", 1.036193, 2.636167, 1244.085417, 11259, 13453 ); test_vehicle_drag( "policesuv", 1.036193, 2.967405, 1200.348214, 11221, 13417 ); - test_vehicle_drag( "truck_swat", 1.78794, 7.65986, 4715.1, 7822, 9180 ); + test_vehicle_drag( "truck_swat", 1.787940, 7.538017, 4640.104688, 7831, 9188 ); test_vehicle_drag( "oldtractor", 1.151325, 0.868099, 712.489583, 9631, 11170 ); test_vehicle_drag( "autotractor", 1.567995, 1.692942, 1667.372500, 7103, 7366 ); test_vehicle_drag( "tractor_plow", 1.693125, 0.893061, 879.572500, 8482, 9835 ); test_vehicle_drag( "tractor_reaper", 1.693125, 0.778836, 767.072500, 8492, 9844 ); test_vehicle_drag( "tractor_seed", 1.693125, 0.778836, 767.072500, 8492, 9844 ); - test_vehicle_drag( "aapc-mg", 4.740750, 8.587756, 4052.815972, 5776, 6754 ); + test_vehicle_drag( "aapc-mg", 4.740750, 8.570686, 4044.760417, 5776, 6754 ); test_vehicle_drag( "apc", 4.740750, 8.464568, 3994.679861, 5780, 6757 ); - test_vehicle_drag( "humvee", 1.66894, 7.35992, 4961.95, 9585, 11200 ); - test_vehicle_drag( "military_cargo_truck", 1.52381, 9.63358, 4445.34, 9678, 11351 ); + test_vehicle_drag( "humvee", 1.668938, 7.235435, 4878.022321, 9594, 11208 ); + test_vehicle_drag( "military_cargo_truck", 1.523813, 9.416864, 4345.338889, 9695, 11367 ); test_vehicle_drag( "flatbed_truck", 1.378688, 4.458495, 1995.980114, 8484, 10205 ); - test_vehicle_drag( "pickup", 0.914288, 3.19472, 1292.3, 9784, 11751 ); - test_vehicle_drag( "semi_truck", 1.71248, 10.2273, 4432.06, 9309, 10919 ); - test_vehicle_drag( "truck_trailer", 1.19647, 12.8338, 5688, 0, 0 ); - test_vehicle_drag( "tatra_truck", 0.846562, 7.90682, 4037.91, 14645, 17111 ); - test_vehicle_drag( "animalctrl", 0.67725, 2.82312, 1141.98, 10797, 12970 ); + test_vehicle_drag( "pickup", 0.914288, 3.088771, 1249.441964, 9798, 11764 ); + test_vehicle_drag( "semi_truck", 1.712475, 9.950414, 4312.056875, 9329, 10937 ); + test_vehicle_drag( "truck_trailer", 1.196475, 12.833835, 5688.000000, 0, 0 ); + test_vehicle_drag( "tatra_truck", 0.846562, 7.711005, 3937.911111, 14668, 17134 ); + test_vehicle_drag( "animalctrl", 0.677250, 2.717176, 1099.127679, 10815, 12987 ); test_vehicle_drag( "autosweeper", 1.567995, 1.544367, 1093.248437, 6051, 6276 ); test_vehicle_drag( "excavator", 1.425450, 1.749378, 1238.375000, 10243, 11880 ); test_vehicle_drag( "road_roller", 2.201063, 2.745174, 9120.522917, 8829, 10247 ); - test_vehicle_drag( "forklift", 0.943313, 1.29042, 608.986, 7155, 7421 ); - test_vehicle_drag( "trencher", 1.42545, 1.71732, 972.547, 6220, 6453 ); - test_vehicle_drag( "armored_car", 1.66894, 7.07939, 4772.82, 9606, 11219 ); - test_vehicle_drag( "cube_van", 1.1739, 2.75815, 1697.81, 9125, 10922 ); - test_vehicle_drag( "cube_van_cheap", 1.11101, 2.69431, 1658.51, 7848, 9428 ); + test_vehicle_drag( "forklift", 0.943313, 1.290417, 608.985937, 7155, 7421 ); + test_vehicle_drag( "trencher", 1.425450, 1.057291, 1041.322500, 6293, 6524 ); + test_vehicle_drag( "armored_car", 1.668938, 6.948507, 4684.580357, 9615, 11228 ); + test_vehicle_drag( "cube_van", 1.173900, 2.636314, 1622.810156, 9138, 10934 ); + test_vehicle_drag( "cube_van_cheap", 1.111012, 2.572474, 1583.513281, 7863, 9442 ); test_vehicle_drag( "hippie_van", 0.711113, 2.780080, 1124.573214, 8995, 10832 ); - test_vehicle_drag( "icecream_truck", 2.11302, 3.81449, 1543, 7472, 8959 ); + test_vehicle_drag( "icecream_truck", 2.113020, 3.708542, 1500.146429, 7479, 8965 ); test_vehicle_drag( "lux_rv", 3.286920, 3.503599, 1463.926136, 6694, 7786 ); - test_vehicle_drag( "meth_lab", 1.1739, 3.0226, 1543.6, 9069, 10875 ); - test_vehicle_drag( "rv", 1.1739, 3.07961, 1572.72, 9062, 10870 ); - test_vehicle_drag( "schoolbus", 0.846562, 3.18216, 1424.59, 10318, 12040 ); - test_vehicle_drag( "security_van", 1.1739, 7.71403, 4748.45, 8843, 10409 ); - test_vehicle_drag( "wienermobile", 3.28692, 2.37625, 1462.73, 7767, 9256 ); -} + test_vehicle_drag( "meth_lab", 1.173900, 2.957331, 1510.270833, 9076, 10882 ); + test_vehicle_drag( "rv", 1.173900, 2.932748, 1497.716667, 9078, 10885 ); + test_vehicle_drag( "schoolbus", 0.846562, 3.060324, 1370.046591, 10335, 12057 ); + test_vehicle_drag( "security_van", 1.173900, 7.592192, 4673.452344, 8855, 10421 ); + test_vehicle_drag( "wienermobile", 3.286920, 2.315334, 1425.228125, 7770, 9258 ); +}; diff --git a/tests/vehicle_efficiency.cpp b/tests/vehicle_efficiency.cpp index 3f0f8dbc1e26c..ff517c9916b05 100644 --- a/tests/vehicle_efficiency.cpp +++ b/tests/vehicle_efficiency.cpp @@ -411,20 +411,20 @@ TEST_CASE( "vehicle_efficiency", "[vehicle] [engine]" ) { test_vehicle( "beetle", 767373, 165400, 136200, 70280, 56130 ); test_vehicle( "car", 1072322, 283200, 188900, 49150, 30860 ); - test_vehicle( "car_sports", 1090898, 181000, 133500, 39920, 21770 ); + test_vehicle( "car_sports", 1098408, 181000, 139700, 39690, 23970 ); test_vehicle( "electric_car", 962791, 61520, 39080, 9000, 4950 ); test_vehicle( "suv", 1271990, 550100, 322600, 78690, 38840 ); - test_vehicle( "motorcycle", 162785, 63890, 63070, 41110, 33600 ); - test_vehicle( "quad_bike", 264745, 48980, 46380, 31200, 26540 ); + test_vehicle( "motorcycle", 162785, 63890, 53950, 41110, 34490 ); + test_vehicle( "quad_bike", 264745, 48980, 48980, 31200, 31200 ); test_vehicle( "scooter", 62287, 138000, 135700, 107000, 105300 ); - test_vehicle( "superbike", 241785, 58290, 45120, 30390, 16480 ); - test_vehicle( "ambulance", 1783889, 195800, 153200, 66510, 45650 ); - test_vehicle( "fire_engine", 2413241, 1028000, 865100, 249000, 215600 ); - test_vehicle( "fire_truck", 6259233, 166000, 25200, 22760, 5097 ); - test_vehicle( "truck_swat", 5939334, 267000, 36220, 36330, 8535 ); + test_vehicle( "superbike", 241785, 58290, 39870, 30390, 19850 ); + test_vehicle( "ambulance", 1783889, 195800, 162400, 66510, 49750 ); + test_vehicle( "fire_engine", 2413241, 1028000, 919500, 249000, 222700 ); + test_vehicle( "fire_truck", 6259233, 166000, 29430, 22760, 5135 ); + test_vehicle( "truck_swat", 5939334, 267000, 42380, 36330, 8619 ); test_vehicle( "tractor_plow", 703658, 187300, 187300, 95930, 95930 ); - test_vehicle( "apc", 5740739, 606000, 543600, 157000, 142600 ); - test_vehicle( "humvee", 5461385, 284700, 179000, 32490, 15870 ); - test_vehicle( "road_roller", 8755702, 270300, 270300, 22880, 22880 ); + test_vehicle( "apc", 5740739, 606000, 578700, 157000, 109400 ); + test_vehicle( "humvee", 5461385, 284700, 120400, 32490, 11490 ); + test_vehicle( "road_roller", 8755702, 270300, 56320, 22880, 7589 ); test_vehicle( "golf_cart", 378101, 21440, 24320, 11510, 7627 ); -} +}; diff --git a/tests/vehicle_split_test.cpp b/tests/vehicle_split_test.cpp index b8911f8248b2f..931ba2c6862f7 100644 --- a/tests/vehicle_split_test.cpp +++ b/tests/vehicle_split_test.cpp @@ -7,7 +7,7 @@ TEST_CASE( "vehicle_split_section" ) { - GIVEN( "Some vehicles to split" ) { + for( int dir = 0; dir < 360; dir += 15 ) { const tripoint test_origin( 15, 15, 0 ); g->u.setpos( test_origin ); tripoint vehicle_origin = tripoint( 10, 10, 0 ); @@ -19,20 +19,41 @@ TEST_CASE( "vehicle_split_section" ) } g->refresh_all(); REQUIRE( g->m.get_vehicles().empty() ); - veh_ptr = g->m.add_vehicle( vproto_id( "cross_split_test" ), vehicle_origin, 0, 0, 0 ); + veh_ptr = g->m.add_vehicle( vproto_id( "cross_split_test" ), vehicle_origin, dir, 0, 0 ); REQUIRE( veh_ptr != nullptr ); + std::set original_points = veh_ptr->get_points( true ); + g->m.destroy( vehicle_origin ); veh_ptr->part_removal_cleanup(); REQUIRE( veh_ptr->get_parts_at( vehicle_origin, "", part_status_flag::available ).empty() ); - vehs = g->m.get_vehicles(); // destroying the center frame results in 4 new vehicles CHECK( vehs.size() == 4 ); if( vehs.size() == 4 ) { - CHECK( vehs[ 0 ].v->parts.size() == 8 ); - CHECK( vehs[ 1 ].v->parts.size() == 8 ); + // correct number of parts + CHECK( vehs[ 0 ].v->parts.size() == 10 ); + CHECK( vehs[ 1 ].v->parts.size() == 10 ); CHECK( vehs[ 2 ].v->parts.size() == 2 ); - CHECK( vehs[ 3 ].v->parts.size() == 2 ); + CHECK( vehs[ 3 ].v->parts.size() == 3 ); + std::vector> all_points; + for( int i = 0; i < 4; i++ ) { + std::set &veh_points = vehs[ i ].v->get_points( true ); + all_points.push_back( veh_points ); + } + for( int i = 0; i < 4; i++ ) { + std::set &veh_points = all_points[ i ]; + // every point in the new vehicle was in the old vehicle + for( const tripoint &vpos : veh_points ) { + CHECK( original_points.find( vpos ) != original_points.end() ); + } + // no point in any new vehicle is in any other new vehicle + for( int j = i + 1; j < 4; j++ ) { + std::set &other_points = all_points[ j ]; + for( const tripoint &vpos : veh_points ) { + CHECK( other_points.find( vpos ) == other_points.end() ); + } + } + } g->m.destroy_vehicle( vehs[ 3 ].v ); g->m.destroy_vehicle( vehs[ 2 ].v ); g->m.destroy_vehicle( vehs[ 1 ].v ); @@ -41,7 +62,7 @@ TEST_CASE( "vehicle_split_section" ) g->refresh_all(); REQUIRE( g->m.get_vehicles().empty() ); vehicle_origin = tripoint( 20, 20, 0 ); - veh_ptr = g->m.add_vehicle( vproto_id( "circle_split_test" ), vehicle_origin, 0, 0, 0 ); + veh_ptr = g->m.add_vehicle( vproto_id( "circle_split_test" ), vehicle_origin, dir, 0, 0 ); REQUIRE( veh_ptr != nullptr ); g->m.destroy( vehicle_origin ); veh_ptr->part_removal_cleanup(); diff --git a/tests/vision_test.cpp b/tests/vision_test.cpp index bbca0f0476239..06141819c441b 100644 --- a/tests/vision_test.cpp +++ b/tests/vision_test.cpp @@ -21,6 +21,7 @@ void full_map_test( const std::vector &setup, g->place_player( tripoint( 60, 60, 0 ) ); g->reset_light_level(); + g->u.worn.clear(); // Remove any light-emitting clothing g->u.clear_effects(); clear_map(); @@ -48,9 +49,16 @@ void full_map_test( const std::vector &setup, tripoint origin; for( int y = 0; y < height; ++y ) { for( int x = 0; x < width; ++x ) { - if( setup[y][x] == 'U' || setup[y][x] == 'u' ) { - origin = g->u.pos() - point( x, y ); - break; + switch( setup[y][x] ) { + case 'V': + case 'U': + case 'u': + origin = g->u.pos() - point( x, y ); + if( setup[y][x] == 'V' ) { + item headlamp( "wearable_light_on" ); + g->u.worn.push_back( headlamp ); + } + break; } } } @@ -63,7 +71,7 @@ void full_map_test( const std::vector &setup, REQUIRE( player_offset.x >= 0 ); REQUIRE( player_offset.x < width ); char player_char = setup[player_offset.y][player_offset.x]; - REQUIRE( ( player_char == 'U' || player_char == 'u' ) ); + REQUIRE( ( player_char == 'U' || player_char == 'u' || player_char == 'V' ) ); } for( int y = 0; y < height; ++y ) { @@ -86,6 +94,7 @@ void full_map_test( const std::vector &setup, g->m.ter_set( p, t_floor ); break; case 'U': + case 'V': // Already handled above break; default: @@ -269,6 +278,7 @@ static constexpr int midday = HOURS( 12 ); // '-' - empty, indoors // 'U' - player, outdoors // 'u' - player, indoors +// 'V' - player, with light in inventory // 'L' - light, indoors // '#' - wall // '=' - window frame @@ -395,6 +405,30 @@ TEST_CASE( "vision_wall_obstructs_light", "[shadowcasting][vision]" ) t.test_all(); } +TEST_CASE( "vision_wall_can_be_lit_by_player", "[shadowcasting][vision]" ) +{ + vision_test_case t { + { + " V", + " ", + " ", + "##", + "--", + }, + { + "44", + "44", + "44", + "44", + "66", + }, + midnight, + true + }; + + t.test_all(); +} + TEST_CASE( "vision_see_wall_in_moonlight", "[shadowcasting][vision]" ) { const time_duration till_full_moon = calendar::season_length() / 3; diff --git a/tools/iwyu/cata.imp b/tools/iwyu/cata.imp new file mode 100644 index 0000000000000..d278546cfff3d --- /dev/null +++ b/tools/iwyu/cata.imp @@ -0,0 +1,5 @@ +[ + { ref: "gcc.stdlib.imp" }, + { ref: "vs.stdlib.imp" }, + { ref: "sdl.imp" }, +] diff --git a/tools/iwyu/gcc.stdlib.imp b/tools/iwyu/gcc.stdlib.imp new file mode 100644 index 0000000000000..483a1c8b51091 --- /dev/null +++ b/tools/iwyu/gcc.stdlib.imp @@ -0,0 +1,52 @@ +[ + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "public", "", "public"] }, + { include: ["", "public", "", "public"] }, + { include: ["", "public", "", "public"] }, + { include: ["", "public", "", "public"] }, + { include: ["", "public", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { include: ["", "private", "", "public"] }, + { symbol: ["std::ceil", "private", "", "public"] }, + { symbol: ["std::round", "private", "", "public"] }, + { symbol: ["std::pow", "private", "", "public"] }, + { symbol: ["std::fstream", "private", "", "public"] }, + { symbol: ["std::ifstream", "private", "", "public"] }, + { symbol: ["std::ofstream", "private", "", "public"] }, + { symbol: ["std::stringstream", "private", "", "public"] }, + { symbol: ["std::istringstream", "private", "", "public"] }, + { symbol: ["std::ostringstream", "private", "", "public"] }, +] diff --git a/tools/iwyu/sdl.imp b/tools/iwyu/sdl.imp new file mode 100644 index 0000000000000..443f0fb3a5d35 --- /dev/null +++ b/tools/iwyu/sdl.imp @@ -0,0 +1,41 @@ +[ + { include: ["\"SDL_audio.h\"", "private", "", "public"] }, + { include: ["\"SDL_blendmode.h\"", "private", "", "public"] }, + { include: ["\"SDL_clipboard.h\"", "private", "", "public"] }, + { include: ["\"SDL_endian.h\"", "private", "", "public"] }, + { include: ["\"SDL_events.h\"", "private", "", "public"] }, + { include: ["\"SDL_error.h\"", "private", "", "public"] }, + { include: ["\"SDL_hints.h\"", "private", "", "public"] }, + { include: ["\"SDL_joystick.h\"", "private", "", "public"] }, + { include: ["\"SDL_keyboard.h\"", "private", "", "public"] }, + { include: ["\"SDL_keycode.h\"", "private", "", "public"] }, + { include: ["\"SDL_messagebox.h\"", "private", "", "public"] }, + { include: ["\"SDL_mouse.h\"", "private", "", "public"] }, + { include: ["\"SDL_pixels.h\"", "private", "", "public"] }, + { include: ["\"SDL_rect.h\"", "private", "", "public"] }, + { include: ["\"SDL_render.h\"", "private", "", "public"] }, + { include: ["\"SDL_stdinc.h\"", "private", "", "public"] }, + { include: ["\"SDL_surface.h\"", "private", "", "public"] }, + { include: ["\"SDL_timer.h\"", "private", "", "public"] }, + { include: ["\"SDL_version.h\"", "public", "", "public"] }, + { include: ["\"SDL_video.h\"", "private", "", "public"] }, + { symbol: ["SDL_Init", "private", "", "public"] }, + { symbol: ["SDL_InitSubSystem", "private", "", "public"] }, + { symbol: ["SDL_Quit", "private", "", "public"] }, + { symbol: ["SDL_INIT_AUDIO", "private", "", "public"] }, + { symbol: ["SDL_INIT_JOYSTICK", "private", "", "public"] }, + { symbol: ["SDL_INIT_TIMER", "private", "", "public"] }, + { symbol: ["SDL_INIT_VIDEO", "private", "", "public"] }, + { symbol: ["TTF_OpenFontIndex", "private", "", "public"] }, + { symbol: ["TTF_FontFaceStyleName", "private", "", "public"] }, + { symbol: ["TTF_FontFaces", "private", "", "public"] }, + { symbol: ["TTF_FontFaceFamilyName", "private", "", "public"] }, + { symbol: ["TTF_FontHeight", "private", "", "public"] }, + { symbol: ["TTF_Init", "private", "", "public"] }, + { symbol: ["TTF_OpenFont", "private", "", "public"] }, + { symbol: ["TTF_SetFontStyle", "private", "", "public"] }, + { symbol: ["TTF_GetError", "private", "", "public"] }, + { symbol: ["TTF_RenderUTF8_Blended", "private", "", "public"] }, + { symbol: ["TTF_RenderUTF8_Solid", "private", "", "public"] }, + { symbol: ["TTF_STYLE_NORMAL", "private", "", "public"] }, +] diff --git a/tools/iwyu/vs.stdlib.imp b/tools/iwyu/vs.stdlib.imp new file mode 100644 index 0000000000000..07db16d9b8d80 --- /dev/null +++ b/tools/iwyu/vs.stdlib.imp @@ -0,0 +1,5 @@ +[ + { symbol: ["M_PI", "private", "\"math_defines.h\"", "public"] }, + { symbol: ["nanosleep", "private", "\"posix_time.h\"", "public"] }, + { symbol: ["timespec", "private", "\"posix_time.h\"", "public"] }, +]